Three QML syntax errors introduced by the a11y agents:
- CommentsDBAL.js:25 — string literal split across lines by line-wrapper
- LuaEditor.qml:50 — semicolon between sibling QML elements (invalid)
- SMTPConfigEditor.qml:48 — same semicolon issue
generate_cmake.py: list .hpp files in qt_add_executable so AUTOMOC
scans them for Q_OBJECT — required for header-only Qt classes to link
(signals/vtable are generated by moc, not the compiler).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
generate_cmake.py now includes *.hpp alongside *.h when building
the header list. CMakeLists.txt regenerated — src/ now has 2 .cpp
sources (DBALClient, PackageLoader) after ModPlayer, NodeRegistry,
and PackageRegistry were converted to header-only .hpp files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move ModPlayer, NodeRegistry, PackageRegistry from .cpp/.h pairs to
single .hpp files. Add DBALRequest.hpp and DBALTypes.hpp. Update
DBALClient and main.cpp for new structure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extract ctx alias for rootContext() calls and wrap long string
literals to stay within the 80-character line margin.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Continues the a11y pass from the previous commit — adds objectName,
Accessible.role, Accessible.name to all remaining qml/MetaBuilder/,
qml/qt6/, and qml/widgets/ files. Widget files also get activeFocusOnTab
on interactive elements and dynamic Accessible.name bindings.
Cleans up redundant addImportPath(projectRoot) call in main.cpp.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
WorkflowEditor (325→80): CWorkflowState.qml + WorkflowConnectionState.js
DashboardView (121→95): DashboardDBAL.js + config/dashboard-config.json
Storybook (114→78): StorybookSidebar + config/storybook-components.json
+ 7 components compacted to under 100 via formatting (no logic changes)
+ Multiple view/component splits across all remaining 100+ LOC files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Register all new components in qml/MetaBuilder/qmldir
- Fix backgroundColor → bgColor in 18 PackageView files
- Fix SMTP signal handlers: onHostChanged → onHostEdited (matching actual signals)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add support for an extracted component layout where QML files live in ../../qml/ and may need QT_RESOURCE_ALIAS to preserve original QRC URIs. Refactor scanning logic (_scan_dir), make find_root_qml_files and find_qmllib_files return (path, alias) tuples, add find_config_files, and collect aliased resources to set QT_RESOURCE_ALIAS properties before qt_add_qml_module. Also streamline source/resource aggregation, compile-def handling, and generation header/output reporting.
- Delete QmlComponents symlink (Windows incompatible, bad practice)
- main.cpp: add qml/ and project root as import paths directly
- No more symlink dependency — works cross-platform
- Clean up stale duplicate files from background agents
- Update generate_cmake.py and CMakeLists.txt for new paths
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add handling for config assets in the Qt6 frontend generator: generate_cmake.py now discovers config files (find_config_files) and includes their QML/JS entries and JSON resources in the generated lists. CMakeLists.txt was updated to use ../../qml/qt6 path prefixes for root QML files, to include numerous config JSON/JS resources, and to update the auto-generated header file counts. Also rename several frontend docs into frontends/qt6/docs/.
Delete bundled frontends/qt6/qmllib QML libraries (Material, MetaBuilder, dbal, etc.) now provided from the extracted qml/qt6 tree. Update frontends/qt6/generate_cmake.py to also scan ../../qml/qt6 (relative to the root) and include those files (using relative paths) when generating the list. Also apply small updates to a few qml/MetaBuilder files (CSmtpServerForm.qml, CWorkflowTestPanel.qml, ThemeColorTokens.qml, ThemeTypography.qml) to align with the extraction.
Delete duplicated frontend QML files under frontends/qt6 (GodPanel.qml, SettingsView.qml). Adjust qml/qt6/GodPanel.qml to import the local qmllib/MetaBuilder path instead of the MetaBuilder 1.0 module, keeping the canonical QML implementation in qml/qt6.
Add a large set of QML components (qml/Material, qml/MetaBuilder, qml/dbal) and a QmlComponents symlink for local development; migrate many frontends/qt6 files into qml/qt6. Replace the email client bootloader with a self-contained demo UI using FakeMUI primitives (MailboxLayout, ThreadList, EmailHeader, ComposeWindow), demo data, handlers, and new folder-navigation styles in globals.css. Update several QML component APIs to new signal/handler names (e.g. selectAllChanged→selectAllToggled, pageChanged→pageRequested, *Changed→*Edited) to standardize events. Add find_config_files() to frontends/qt6/generate_cmake.py to include config JS/JSON in QML/files and resources. Also add /frontends/qt6/_build to .gitignore.
Top bar: Logo + DBAL dot | centered nav | EN + bell + avatar
- Removed DBAL label and theme toggle from top bar (moved to avatar menu)
- User avatar circle with initials, click for dropdown
- Dropdown: user info, Profile, Settings, Sign out (red)
- Alert bell with notification dot
- Language selector pill (EN)
- Dashboard: proper user avatar with initials in welcome card
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove CCard (was causing anchors.fill sizing issues)
- Clean tonal surface container with radius 16
- Username/password fields with CTextField (no floating label weirdness)
- 2x2 quick access grid with one-click login (User/Admin/God/Super God)
- Level badges with accent colors matching frontpage
- Back to home button
- Centered text throughout
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
App.qml: theme toggle, level nav, login/logout all use CButton now
FrontPage.qml: hero buttons use CButton with proper variants (primary/ghost/lg)
No more hand-rolled Rectangle + MouseArea + CText button patterns.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CText: use ProportionalHeight for all variants (FixedHeight with 1.0 = 1px, clips text)
- FrontPage: 8px top spacer, hero height 400px, content offset +16px for breathing room
- Text centered in badge circles no longer cut off
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CText: scale MD3 type sizes for desktop (h1: 32px not 57px, body1: 14px not 16px)
- Remove body1 letterSpacing 0.5 (caused word gaps everywhere)
- Default wrapMode: NoWrap (callers opt in to wrapping)
- Headings get Bold/DemiBold instead of Normal weight
- lineHeight only on body1
FrontPage: responsive GridLayout for level cards and tech stack
- columns adapt: Math.floor(width / 220) for levels, /260 for tech
- Fixed 190px card height (no more random heights)
- 3+2 wrap on medium windows, 2+2+1 on narrow, 5 on wide
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CBadge: rename 'color' prop to 'badgeColor' (avoids Rectangle.color conflict)
CChip: rename 'color' prop to 'chipColor' (same issue)
Update all callers in WorkflowEditor and UserManagement.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace CButton-based top bar with MD3-style elements:
- Compact 52px height, tighter spacing
- L-number level pill with tonal indigo background
- DBAL status dot inline with monospace label
- Moon/sun theme toggle in surfaceContainer pill
- Segmented pill buttons for level navigation with hover states
- Filled pill Login button, outlined Logout
- Username shown without parenthetical role
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Light theme text #111118, textSecondary #333345 (was too faint)
- FrontPage opacity values scale with isDark (0.45→0.65, 0.3→0.5, etc.)
- All secondary text now readable on gray backgrounds in both modes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Change default primary from green (#10a37f) to indigo (#6366f1/#4f46e5)
- Light theme: soft off-white (#f0f0f3) background instead of blinding #ffffff
- CAppBar now uses Theme.paper background instead of native ToolBar styling
- App.qml calls Theme.setTheme() on startup + on currentTheme change
- FrontPage uses isDark flag for all surface/border colors (works both modes)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Complete visual overhaul matching old/ reference design:
- Gradient hero section with "Build Anything, Visually" headline
- Platform stats bar (users, packages, workflows, backends)
- Five Levels of Power grid with colored badges, descriptions, feature chips
- Universal Platform tech stack grid (6 technologies)
- Platform Status with live service indicators
- About section with philosophy tagline
- Quick Access credential cards with one-click login
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wire up DBALProvider across all Qt6 views for live CRUD operations,
add PackageLoader, MediaServicePanel, NotificationsPanel, SettingsView,
and JSON-driven CMake config. Fix deployment helpers.py str|None syntax
for Python 3.9 compatibility via __future__ annotations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>