Commit Graph

3872 Commits

Author SHA1 Message Date
e2dabc1e84 feat(qt6): redesign login page — MD3 card, quick credential buttons, centered layout
- 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>
2026-03-19 08:44:52 +00:00
149d6cf297 fix(dbal): add missing codeforge entity schemas (Settings, Theme, Lambda, ComponentNode)
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>
2026-03-19 08:43:52 +00:00
dbb6b1a9ea fix(deployment): rename shadowed run import to run_proc in deploy.py
Also add docker-compose version permission to local settings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 08:32:16 +00:00
199d94cb76 fix(qml): center CButton text — wrap RowLayout in Item with anchors.centerIn
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 08:30:52 +00:00
2e40675994 fix(storybook): resolve Docker build failure from storybook version conflict
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>
2026-03-19 08:29:09 +00:00
04bc92b25e refactor(qt6): replace hand-rolled Rectangle buttons with CButton everywhere
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>
2026-03-19 08:20:55 +00:00
9d9fbed60e fix(qt6): fix text clipping in badges, add hero spacing
- 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>
2026-03-19 08:10:18 +00:00
553aa13824 fix(qt6): center all text — Layout.fillWidth + horizontalAlignment on hero and section titles
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 04:45:35 +00:00
ff226595c6 fix(qt6): desktop-scaled typography, responsive grid, uniform card heights
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>
2026-03-19 04:41:25 +00:00
96d16564a4 fix(nextjs): break server-only import leak in auth-store
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>
2026-03-19 04:38:28 +00:00
7fa19e4db7 fix(qml): resolve property color shadow crashes in CBadge and CChip
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>
2026-03-19 04:37:45 +00:00
cc6c93b2df fix(nextjs): break server-only import leak in constants.ts
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>
2026-03-19 04:33:27 +00:00
ead2d530a6 fix(docker): replace removed Mesa packages for Ubuntu 24.04
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>
2026-03-19 04:16:39 +00:00
73b4b78dca fix(qt6): prevent chips overflowing card boundaries
- Level cards: dynamic height from content instead of fixed 196px
- Level cards: clip: true on container
- CCard: add clip: true globally (content respects radius 12 corners)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 04:13:22 +00:00
41eb2d8e3e feat(qml): MD3 rework batch 3 — atoms (CPanel, CSection, CBlockquote, CHighlight, CProse, CMarkdown)
CPanel: radius 16, tonal surface container, tonal primary header
CSection: 22px bold title, inline divider
CBlockquote: 4px left accent border, tonal primary background, radius 8
CHighlight: tonal color variants at 15% opacity, radius 4
CProse: 16px body, 1.6 line-height, proportional height mode
CMarkdown: updated typography to match MD3 body scale

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 04:04:31 +00:00
de3a3ac194 feat(qml): MD3 rework batch 2 — 17 more components rewritten
Feedback: CAlert (tonal + accent bar), CDialog (radius 28, scale anim), CSnackbar (inverse surface, slide-in)
Navigation: CTabBar (animated indicator pill), CListItem (state layers), CBreadcrumbs (full rewrite)
Data: CAvatar (tonal primary), CDivider (theme-aware), CTable (hover rows, sort arrows, proper padding)
Typography: CText (full MD3 type scale inline), CTitle (extends CText), CCodeBlock (radius 12), CCodeInline (radius 4)
Forms: CFormGroup (focus/error states), CFormLabel (animated color), CLabel (control association), CAutocomplete (styled popup)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 04:03:58 +00:00
eecaac8634 feat(qml): MD3 rework batch 1 — 20 components rewritten
Core: CButton (pill variants), CFab (radius 16 tonal), CIconButton (circle state layers)
Cards: CCard (filled/outlined/elevated, radius 12), CAccordionItem (smooth expand), CPaper
Chips: CChip (8px radius, filter/assist/input), CBadge (6px dot/16px pill), CStatBadge, CStatusBadge
Forms: CTextField (floating label, outlined), CSelect (styled popup), CTextarea (scrollable)
Toggles: CCheckbox (Canvas checkmark), CSwitch (52x32 pill track), CRadio (scale dot), CRating (hover stars)
Feedback: CProgress (4px track, indeterminate slide), CSpinner (Canvas arc sweep), CErrorState (tonal container)

All components: theme-aware, dark/light mode, hover/press state layers, preserved public API.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 04:03:18 +00:00
6fa7e700cb feat(qt6): MD3 top bar — pill nav buttons, tonal level badge, theme toggle pill
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>
2026-03-19 03:59:51 +00:00
cd2bd3ffcf feat(qt6): Material Design 3 frontpage — tonal surfaces, pill buttons, proper type scale
Full MD3 pass on FrontPage and light theme:
- Tonal surface containers (surfaceContainer, High, Highest)
- Rounded pill buttons (radius 22) and cards (radius 12-16)
- MD3 type scale with DemiBold/Bold weight hierarchy
- Level badges with rounded-square containers instead of circles
- Proper onSurface/onSurfaceVariant color roles
- Light theme: cool blue-gray (#e8eaf2 bg, #f0f1f8 paper)
- Blue gradient hero wash, tonal stats strip
- Tag chips with tinted backgrounds matching level accent

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:58:20 +00:00
0cf7b46bf7 feat(qt6): light blue gradients for light mode — hero wash, stats tint, blue-gray palette
- Hero section: horizontal + vertical blue gradient overlays in light mode
- Stats strip: subtle blue-tinted background
- Light theme base colors shifted blue (#d6d9e4 bg, #c6c9d6 paper)
- Dark mode gradients unchanged

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:55:36 +00:00
3dacaa96d6 fix(qt6): improve light mode text contrast — darker text, adaptive opacity
- 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>
2026-03-19 03:51:12 +00:00
194255b21d fix(qt6): soften light theme — muted gray palette instead of bright white
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>
2026-03-19 03:49:19 +00:00
8b0e20f5bf fix(qt6): light mode overhaul — softer palette, theme-aware CAppBar, persist theme on startup
- 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>
2026-03-19 03:47:59 +00:00
f250ee9952 feat(qt6): redesign frontpage with tech/IDE aesthetic — kill the golf vibes
Replace green-heavy palette with cool indigo/violet/cyan design language:
- Version pill with monospace label
- Bold "MetaBuilder" headline with tight letter-spacing
- Monospace stats strip with subtle dividers
- Access level cards with accent bars instead of colored circles
- Tech stack grid with colored sidebar indicators
- Service status row with dot indicators
- Quick login cards with hover animations
- Consistent cardBg/subtleBorder/subtleText design tokens

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:39:41 +00:00
1efea13888 feat(qt6): full frontpage redesign — hero, stats, 5-level grid, tech stack, status, credentials
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>
2026-03-19 03:37:13 +00:00
e37b625576 docs: mark Phase 9 PLAN.md complete (Parts A, B, C all done)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:17:12 +00:00
d17e355b7f feat(nextjs): 5-level layout system, sidebar navigation, God Panel, DBAL integration
- 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>
2026-03-19 03:16:47 +00:00
75791eb2f3 feat(cli): add workflow and package DBAL commands
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>
2026-03-19 03:07:27 +00:00
7c5d0f1012 feat(qt6): package metadata updates, QmlComponents library enhancements, PackageLoader improvements
- Update 22 package metadata.json files with consistent schema
- Enhance PackageLoader with file watching and navigable packages
- Update QmlComponents library (atoms, core, data-display, feedback, form, layout, surfaces)
- Improve watchtower PackageView and MaterialAccordion

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:04:31 +00:00
e6a2a50ae1 feat(qt6): visual workflow canvas with infinite pan/zoom, Bezier connections, 152-node palette
Replace list-based WorkflowEditor with spatial infinite canvas:
- NodeRegistry C++ class loads 152 node types from node-registry.json
- 5000x5000 Flickable canvas with grid, Scale transform zoom (0.25x-2x)
- Draggable nodes with group-colored headers, input/output ports
- Bezier connection drawing via Canvas 2D (n8n adjacency map format)
- Interactive port-to-port connection creation with drag preview
- Searchable/filterable node palette with group chips
- Properties panel with schema-driven parameter editing
- Full n8n-style JSON: nodes, connections, variables, meta, tags
- DBAL integration preserved with mock workflow fallback

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 03:03:34 +00:00
e0893c2fe3 feat(qt6): DBAL live data integration + fix deployment Python 3.9 compat
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>
2026-03-19 01:43:26 +00:00
2895bc053e Add find command to .claude settings
Add a Bash entry to .claude/settings.local.json that runs a find under frontends/qt6 to locate markdown, CLAUDE.md, README.md, and roadmap files (improves document discovery). Also adjusts list punctuation to include the new entry.
2026-03-19 00:37:49 +00:00
3c13d01bce feat(qt6): restore 5-level builder vision with 15 God Panel tools
Complete Qt6/QML native frontend matching the old/ React 5-level platform:

- Qt5→Qt6 migration: versioned imports, TabView→TabBar+StackLayout,
  QtGraphicalEffects removed, QAudioOutput→stub, QJSValue::engine() fix
- Migrate from local qmllib/Material (35 components) to shared /qml/
  QmlComponents 1.0 library (119 components, 9 themes, 19 languages)
- 5-level auth system with seed users (demo/admin/god/super)
- Level 1: FrontPage, LoginView
- Level 2: DashboardView, ProfileView, CommentsView
- Level 3: AdminView (10 entities, full CRUD, search, filter, pagination)
- Level 4: GodPanel (13-tab builder) with SchemaEditor, WorkflowEditor,
  LuaEditor, DatabaseManager, PageRoutesManager, ComponentHierarchyEditor,
  CssClassManager, DropdownConfigManager, UserManagement, ThemeEditor,
  SMTPConfigEditor
- Level 5: SuperGodPanel (tenants, god users, power transfer, system health)
- Remove unused cpr dependency, fix conan Qt build (qtshadertools)
- Add ROADMAP.md with 10-phase plan including DBAL integration and
  Python+Jinja2 CMake generator

25 QML views (~12,800 LOC), 6 C++ files, 22 package views.
Builds successfully: Qt 6.7.3, MSVC 19.5, C++20.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 00:25:22 +00:00
b74931a3ce Add .act-env to .gitignore
Ignore the .act-env file to prevent committing local 'act' environment settings and other developer-specific artifacts. Keeps local environment configuration out of version control.
2026-03-19 00:16:49 +00:00
b6859ab57f chore(ci): downgrade artifact actions v6→v4 and add act local CI config
- Downgrade all actions/upload-artifact and actions/download-artifact from
  v6 to v4 for compatibility with act's local artifact server (v6 uses a
  new Azure blob backend that act doesn't support)
- Add .actrc with arm64 architecture, artifact server, sequential jobs,
  and secret/env file pointers for local act runs
- Add .act-env to .gitignore (contains local node PATH override)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 00:16:25 +00:00
7fbece2af5 fix(dbal): render CLI plain text output properly instead of escaped JSON
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 23:41:30 +00:00
f09c5e7ac3 fix(dbal): bake packages/ directory into CLI image for package commands
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 23:25:43 +00:00
23d495dec9 feat(dbal): run real C++ CLI binary from Query Console
- Build metabuilder-cli C++ binary into DBAL frontend Docker image
  via multi-stage build (conan-deps → cli-builder → nextjs → ubuntu runner)
- New /api/cli route executes the real C++ binary via child_process
- CLI mode runs actual metabuilder-cli commands (dbal, auth, user, tenant, package)
- Admin token forwarded via DBAL_ADMIN_TOKEN env var
- Ubuntu 24.04 runtime for glibc 2.38 compatibility with Conan builds
- Added standalone CLI Dockerfile at frontends/cli/Dockerfile

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 23:20:28 +00:00
e51c7be9ba feat(dbal): add login gate + CLI mode to Query Console
- Login screen with admin token (default pre-configured for local dev)
- CLI mode: type dbal commands directly (list, read, create, update, delete, rest, ping)
- Clickable example commands for quick start
- CLI/GUI mode toggle
- Token persisted in localStorage, forwarded as Bearer auth
- History shows CLI commands with $ prefix
- Disconnect button to logout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:33:57 +00:00
b3962d742e fix: regenerate favicon.ico files with proper rounded rect + white letter
Previous ICOs were just solid color squares. Now rendered with Pillow
using Arial Bold, rounded corners, and centered white text matching
the SVG designs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:27:17 +00:00
6cadc9b118 fix: serve favicon.ico and favicon.svg from root URL via nginx
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:25:29 +00:00
0d7c2da91b feat: add favicons (SVG + ICO) to all 10 frontends missing them
Portal (M), Pastebin (P), WorkflowUI (W), Exploded Diagrams (3D),
Email Client (E), DBAL (DB), Frontend App (A), RepoForge (RF),
CaproverForge (CF), PackageRepo (PR) — each with matching brand color.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:23:14 +00:00
8ff699e776 fix: resolve DBAL frontend client-side errors and deployment issues
- Fix DBAL overview page: basePath doubled in NavTabs and Link hrefs
- Fix client-side fetch URLs: prepend basePath for /api/status and /api/query
- Remove unused workspace deps (api-clients, core-hooks, redux) from DBAL frontend
- Simplify DBAL Dockerfile to standalone build (no monorepo workspace deps needed)
- Add null guards for health array in ServerStatusPanel
- Fix Prometheus nginx proxy: don't strip prefix (web.external-url handles it)
- Fix caproverforge portal: remove onMouse handlers from Server Component

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:17:42 +00:00
9df6e1c64f fix: upgrade all Dockerfiles to node:24-alpine, fix portal build errors
- Update all 12 Dockerfiles from node:18/20/22 to node:24-alpine
- Fix caproverforge portal: remove event handlers from Server Component
- Fix repoforge/caproverforge portals: ensure public/ dir exists in builder
- Fix packagerepo Dockerfile: node:18 → node:24 (Next.js 16 requires >=20)
- Fix DBAL frontend port conflict: 3009 → 3015 (3009 in use by external container)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 21:43:28 +00:00
7e12140e41 feat: wire up 5 missing frontends, add analytics dashboard + Starlink monitoring
- Wire DBAL frontend, Docker Terminal, Package Repo into Docker stack
  with Dockerfiles, docker-compose entries, and nginx reverse proxy
- Create APK download portals for RepoForge and CaproverForge (Next.js)
- Add DBAL Query Console (REST query interface with history sidebar)
- Add C++ Prometheus /metrics endpoint to DBAL daemon (request counters,
  error rates, method breakdown, uptime, active connections)
- Enable Grafana/Prometheus via nginx sub-path routing (/grafana, /prometheus)
- Auto-provision 4 Grafana dashboards: DBAL Overview, Infrastructure,
  Starlink Dish
- Add Starlink exporter (danopstech/starlink_exporter) to monitoring profile
- Add alert rules for DBAL error rate, Starlink latency, Starlink obstruction
- Update welcome portal with all new app cards and monitoring section

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 21:35:19 +00:00
323086471d fix(pastebin): persist bio via Flask backend and load on settings page
Bio updates were sent directly to DBAL which returned 403 (user JWT lacks
admin privileges). Moved profile read/write through new Flask endpoints
(GET/PUT /api/profile) that use the DBAL admin token server-side.

Also fixed ProfileSettingsCard to fetch and populate the existing bio on
mount instead of always starting with an empty string.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 21:09:42 +00:00
196d818f1b fix(pastebin): wrap profile page with PageLayout and add breadcrumbs
The profile page was rendering without the shared PageLayout, so it was
missing the header (burger menu, logo, theme switcher, avatar) and footer.
Added PageLayout wrapper and a breadcrumb nav bar with back button.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:59:29 +00:00
8c454abf74 fix(pastebin): unwrap DBAL envelope in /api/auth/me so username is returned
The /api/auth/me endpoint read `username` from the top-level DBAL response,
but DBAL wraps records in {data: {...}, success: bool}. This caused the
avatar to show a blank circle and the profile menu to display "@" with no
username. Now correctly reads from `body.data.username`.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:39:52 +00:00
1c020824f1 fix(pastebin): replace python3 file writer with POSIX shell for all runners
The code runner used `python3 -c` to decode FILES_PAYLOAD inside every
container, but 6+ runner images (node, golang, bash, ruby, php, perl)
don't ship python3 — so JS/Go/Bash/Ruby/PHP/Perl snippets all failed.

Replaced with a pure POSIX `base64 -d | awk` pipeline that works on
every image. Also fixes:
- pids_limit 64→256 (Go compiler crashed spawning threads)
- Per-user configurable runTimeout via settings panel (5–300s)
- Default run timeout 10→30s, server-side cap at 300s
- Frontend AbortSignal raised to 310s to match max timeout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 20:34:52 +00:00
ede777ca95 feat(pastebin): add data-testid and ARIA attributes to login page
Add 18 data-testid selectors and improved ARIA attributes across sign-in,
register, and forgot-password forms for Playwright e2e testing and accessibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 18:49:34 +00:00