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.
Terminal scrollIntoView was scrolling the entire page instead of just
the terminal panel. Replaced with container.scrollTop for scoped scroll.
Snippet cards in dark mode were invisible (surface-container-low ≈
background). Added border, background, and shadow to differentiate them.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>
loadFromDirectory() was missing the tenantId field auto-add logic that
loadFromFile() already had, causing "Unknown field: tenantId" on all
entities using the shorthand `"tenantId": true` convention.
Also corrected ComponentNode schema to match the C++ struct fields
(pageId, parentId, childIds, order) instead of the wrong Redux shape.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Without seed data the Settings endpoint returns 404, causing the
frontend to fall back to hardcoded defaults on every page load.
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>
The DBAL sync client referenced these 4 entities but no JSON schema files
existed, causing 422 Unprocessable Entity on CodeForge page load.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The storybook Docker build failed because @chromatic-com/playwright depended
on storybook@~8.5.8, causing npm to hoist storybook@8.6.18 to root while
@storybook/* addons were at 10.2.19. This version mismatch caused missing
export errors (STORY_HOT_UPDATED, Tag). Added top-level storybook override
to force 10.2.19 everywhere and included package-lock.json in Dockerfile COPY.
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>
auth-store.ts directly imported fetch-session, login, and register
which transitively pulled next/headers and server-only into the client
bundle, causing the Next.js 16 build to fail.
Replaced direct imports with fetch() calls to new API route handlers
at /api/auth/{login,register,session,logout}.
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>
constants.ts re-exported STATUS from routing/index.ts, which pulled
server-only modules (next/headers, server-only) into client bundles
via the webpack module graph, breaking the Docker frontend-app build.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
libgl1-mesa-glx, libegl1-mesa, and libgles2-mesa were removed in
Noble — use their non-transitional replacements.
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>
Light mode background #d8d8e0, paper #c8c8d2, surface #bfbfc9.
Enough contrast to read, not enough to need sunglasses.
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>
- AppShell with level-based auth gating (Guest through SuperGod)
- Sidebar with static core items + dynamic DBAL package navigation
- God Panel with 10 tabs: schemas, workflows, packages, users, DB, etc.
- Super God Panel with multi-tenant control
- Admin panel with entity browser
- JSON-driven config (sidebar-config.json, god-panel-config.json)
- DBAL health banner and graceful offline fallbacks
- Workflow editor integration via existing WorkflowBuilder component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New workflow commands: list, get, run, create, status
New package commands: install, uninstall, info, search
All backed by DBAL REST API with formatted table/JSON output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>