Add Nova Fabric, Home Mode, and hardened workspace startup#709
Add Nova Fabric, Home Mode, and hardened workspace startup#709goodmorningmrj wants to merge 70 commits into
Conversation
Add Nova Fabric and Nova Wants stores, API routes, dashboard cards, and tests. Harden protected self-state flows with review proposals, approved-review receipts, atomic JSON writes, backups, and degraded/corrupt-file handling.
Add Home Mode classifier, helper, skill/docs, dashboard cards for control loops, trust ledger, NotebookLM bridge, and richer Mission Control overview aggregation. Refresh dashboard layout/catalog and visual polish while preserving source-of-truth boundaries.
Prefer known Hermes installer binaries before PATH fallback, avoid destructive gateway replacement during auto-start, constrain dashboard auto-detect to known loopback ports with a short timeout, and align responsive shell breakpoints for compact/tablet layouts.
Surface Mission Control live source status from existing real endpoints: Hermes gateway, model route, skills, cron, Google OAuth, Obsidian/vault, Neon Moon job board, kanban, route/cost analytics, and pending GitHub/agent wiring. Adds dashboard overview tests and the Live Systems card without introducing write paths.
Append server-side Fabric receipt events when review statuses change, linking the receipt back to the reviewed item and marking approved reviews as Taylor-approved evidence. Adds regression coverage so browser/local approval state is not treated as durable proof without a server Fabric receipt.
Derive a Mission Control Agent Workforce overview from existing swarm mission receipts, including worker status, blockers, review queues, and recent missions. Adds a dashboard card and tests without adding dispatch, cancel, or review write paths.
Expose local branch cleanliness, ahead/behind counts, latest commit, configured remotes, upstream, and optional PR receipt in Mission Control. The panel reads local git state only and does not push, open PRs, or mutate GitHub.
|
Nova containment pass pushed: commit 486d30d.\n\nSummary:\n- restored global Hermes branding/theme surfaces that had been Nova-skinned\n- kept Nova Mission Control cockpit styling local to the dashboard wrapper via data-nova-mission-control + local CSS variables\n- removed dashboard mobile theme behavior that forced global scifi/Nova theme state\n- restored shared/task/onboarding/mobile/settings copy where Nova skin leaked outside Mission Control\n\nVerification:\n- git diff --cached --check: passed\n- staged secret/mojibake scan: passed\n- pnpm build: passed\n- pnpm test src/screens/tasks/tasks-ux.test.ts: passed\n\nFull pnpm test was also run and still fails in existing/broader baseline areas outside this staged slice: 19 failed / 114 passed test files. The staged slice does not touch those failing server/API/chat-message-list areas. |
Recognize the current hermes_cli plus gateway layout, retain legacy webapi support, and add Windows installer binary/path handling for local dev startup.\n\nVerified: pnpm test src/server/claude-agent.test.ts; pnpm build.
Use gateway.run instead of the retired webapi uvicorn entrypoint when a modern source checkout has no CLI binary.\n\nVerified: pnpm test src/server/claude-agent.test.ts; pnpm build.
…t-first navigation
Separate systems across depth/scale, cap overview labels with collision culling, encode project color on rings/rims, and weight edge/focus fly-to so the map reads as a navigable working universe instead of an orange blob.
Focus mode was expanding tag budgets across every system, flooding the map with ~90 labels on large hubs. Cap expansion to the selected/hovered system only and cover it with a regression test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…va's list) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Post-migration eslint pass on Task 3's changes: reorder the new STATUS_TONE import ahead of type-only imports in the 5 migrated cards, and cast FAMILY's lookup in STATUS_TONE so the unknown-status ?? fallback isn't flagged as unreachable by @typescript-eslint (the cast input is untyped server data, so the fallback is real at runtime). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ection Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e helpers Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ember sizing, slow rotation + parallax, RAF lifecycle, perf budget Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…, neon-blue edge flare Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ocus mode Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…-week recency filter Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…visible The cockpit token wrapper used min-h-full under a non-full parent, so the Hermes shell background (teal on claude-nous) bled into the cockpit below the cards — now min-h-[100dvh]. Dust points were sub-pixel untextured squares (size 0.22) reading as empty space at overview distance; now soft-sprite textured at 0.72/0.62 opacity so the spiral visibly carries the scene (dust-forward). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…dust-forward demo Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Root cause of 'the old colors keep coming through': folderTintFor and FOLDER_TINTS in nova-galaxy-model still carried the pre-canon palette (mustard/rust/rose/olive with a GREEN default for unknown folders) and a green rim light in the renderer — every ember and cluster tint was repainted with those on every frame regardless of the theme passes. All tints now come from the canon neon-blue/amber family, the rim light is deep blue, and a tint tripwire test locks folderTintFor to canon so this class of regression is dead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The dense center stacked additive near-white dust into a cyan-green hotspot. Core dust stop is now warm gold (FFD27A) and dust opacity drops 0.62→0.40 / size 0.72→0.62 so dense regions saturate amber instead of clipping to white-teal. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…trol is mounted The active shell theme (claude-nous) is teal-green (#041c1c bg, #06282a sidebar, #8fff89 success pills) and framed the cockpit in green through every prior fix. dashboard-screen now stamps data-nova-cockpit on <html> while mounted, and a final styles.css override block (higher specificity than every [data-theme] block) retints the ENTIRE viewport — sidebar, status pills, header — to the Nova navy/amber canon. Leaving the dashboard restores the shell theme untouched. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pixel-audit driven: (1) skin stamp moved from dashboard-screen to WorkspaceShell so EVERY module renders navy/amber (chat was 91.9% teal, tasks 94%, memory 59% — all now <0.6%); (2) chat/composer/ tool-card/code vars covered (chat theme vars are separate from --theme-*); (3) warm scrollbars/selection; (4) SPIRAL_BLEND 0.25→0.88 so note embers live ON their spiral arms — the legacy settled-system layout no longer dominates the scene. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Upstream's lazy ChatPanel const sat mid-import-block since the merge, tripping import/first on every import after it. Lazy consts now follow the import block; AuthStatus is a top-level type import. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rors in workspace-shell Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ows with the vault Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The right-rail cards (Obsidian reflection / System inspector / Planetary systems) used hardcoded rgba(22,23,42)/rgba(13,14,24) surfaces — #16172A-family indigo darks from the original bible that ignored the token system and read as purple cards. All 18 now use var(--theme-panel)/var(--theme-card). Right-rail purple pixel density 0.88% → 0.23% (residue = text antialiasing blends, no purple elements). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary
Verification