Skip to content

feat(dashboard): FUI command-center redesign, navigation fix, real plates - #740

Draft
ScriptedAlchemy wants to merge 10 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
cursor/dashboard-graphs-and-observability-cc72
Draft

feat(dashboard): FUI command-center redesign, navigation fix, real plates#740
ScriptedAlchemy wants to merge 10 commits into
codex/tracedecay-total-redesign-plan-reopenedfrom
cursor/dashboard-graphs-and-observability-cc72

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Dashboard: FUI command-center redesign + the two bugs hiding everything

Stacked on codex/tracedecay-total-redesign-plan-reopened (PR #707). Nothing merged to master.

The two load-bearing bugs found first

  1. Client-side navigation was completely broken. Every route mounts the same RouteChunkBoundary component type at the same <Outlet> slot, so React reconciles a navigation as a prop update — but the boundary computed lazy(props.load) once in its constructor. Result: the URL and nav rail moved, the content never did; every workspace rendered whichever surface loaded first. Fixed with a per-loader lazy cache plus getDerivedStateFromProps, with regression tests (RouteChunkBoundary.dom.test.tsx).
  2. The visual audit harness was broken since commit 858a38a79 deleted dashboard/e2e/responsive.ts while stories/audit.ts still imports it. That is why the committed goldens were months stale (they still showed LINK DOWN / RECEIPTS 000 / BUILD PR14 chrome and text that no longer exists in the source). Restored the file (it is pure DOM measurement, not axe).

Plan citations → gap → change

Plan / source of intent What it asks Gap found What changed
docs/plans/tracedecay-v2/11a-dashboard-design.md ("Aesthetic quality bar", "Continuous visual enforcement") one accent as signal, hairline edges, tabular mono data, visual:audit + baseline diffing as product tests audit broken; baselines stale; drift gate checking nothing harness restored; 84 baselines regenerated; diff gate exercised
dashboard/src/theme/tokens.css design commentary ("the analytical field stays a dark optical window inside either shell") dark optical field for every quantitative drawing ECharts, the Loom weave, the Cortex relief and the Delivery field drew on shell paper in light theme .td-optic night-glass class; Chart.tsx, WeaveCanvas.tsx, cortexRender.ts, DeliveryField.tsx now sample the --raw-graph-* night palette in both themes
11b-structure-visualization.md (CORTEX relief, strata read) terrain from GET /api/plugins/graph/strata fixture never modeled the route → golden showed "strata could not be measured" forever wire-true StructureReadV12 fixture; terrain renders; region buttons raised to the 44px token
Loom plan language ("temporal and causal traces…") weave from GET /api/loom/temporal; crossings listed, not drawn route unmodeled → Loom golden was an empty UNSUPPORTED SCHEMA plate wire-true LoomTemporalPayloadV1 fixture (sessions + commits + edited files + branch spans + per-source coverage); crossings stay a listed rail
Delivery plan ("changes, commits, PRs, CI, releases; external authorities explicit") pipeline overview projections /api/delivery/overview unmodeled → UNSUPPORTED SCHEMA well fixture with measured local git stages and not_published · requires github_read_authority / ci_provider_read_authority forge stages
Target-look concept (segmented mission header) numbered subsystem header with OK/ALERT stamps none existed SystemsHeader on Observatory: 01 STORES · 02 INDEX · 03 DOCTOR · 04 BUDGET · 05 ORPHANS · 06 DEBRIS, each stamped from a real read; amber only for a served degraded/stale finding (tested)

The redesign (Jayse Hansen FUI grammar; no EDITH-ai, no Marvel IP)

  • Typography: display face is now Chakra Petch (chamfered industrial grotesque, SIL OFL, vendored offline) for every engraved legend/title/stamp; IBM Plex Mono stays the measured-value face; Archivo removed.
  • Segmented bars: every magnitude rail (.td-meter-fill) is 5px cells on a 7px pitch — instrument registers, not pills or pies.
  • Amber alert axis: --raw-alert tokens (both themes, AA-adjusted on paper); cyan stays live-signal/selection, red stays critical-only.
  • Night optical windows: every ECharts canvas, the Loom weave, the Code cortex and the Delivery recency field draw as projected light on dark glass inside either shell theme; data-contrast='more' still flattens all atmosphere.
  • Tactical dock: nav rail grouped WORKSPACE / OPS / CONFIG with engraved register stamps; all 14 channels keep their numbers (Settings stays 12 — grouping never renumbers an instrument).
  • Helicarrier status strip: numbered segments 01 LINK · 02 FEED · 03 SOURCE · 04 QUERY; SOURCE stamps LIVE / CAPTURED / NO SOURCE — captured reads over a dead or connecting stream are stamped CAPTURED in amber.

Real plates, not stubs

  • Observatory: four contextual wings (Diagnosis default / Adoption / Performance / Signals), URL-addressed like the Knowledge camera, under the segmented subsystem header. Every plate the contract enumerates (Doctor, canonical observations, adoption, retrieval, hooks, rejected args, budgets, execution topology, store telemetry) remains a real plate on its wing; no radial hero was built. Judgment call: the wings replace the previous single stack because that stack measured 22,000–41,000 px tall at tablet widths and broke page capture; the Diagnosis wing keeps Doctor + budgets + orphans + debris + telemetry as the default reading. Daemon-side sources verified real, not hidden: production_doctor_report_reader (daemon/doctor_kernel.rs, wired in daemon/project_composition.rs) produces over-budget (store_budget_observation), orphan/unregistered-store census (where stale branch databases surface), incident debris, retention backlog and table growth; the one genuinely unwired family (observability envelope) renders as a single labelled chip with its evidence reference.
  • Agents: delegation hero — Subagent tree (wide), Agent groups, Handoff frontier, Handoff tokens, Failure context — each behind its own read boundary; usage analytics demoted to a "Tool telemetry" register whose 10,000-event window is captioned as ANALYTICS_EVENT_LIMIT, never a total. Transport-fault tests rewritten to the per-plate contract.
  • Sessions: mounted-LCM fixtures, column headers, one raised count ("40 loaded of 6,053 sessions on record"); search/session-detail refusal states stay modeled.
  • Workflows: definitions read modeled through the application envelope walker; real definition ledger; 36px inputs raised to the touch token.
  • Code / Explorer: fixture symbols renamed from sym_N placeholders to realistic names; Cortex terrain measured and drawn on the night field; one lens CORTEX → TRACE → CORE.
  • Work: six cameras over one graph (Board / DAG / Timeline / Causal / Workload / Topology); typed rendering for structural-refusal evidence omissions (fixes a pre-existing tsc error).

Contract-corrections reconciliation (final review pass)

  • Explorer: four lanes (code/sessions/knowledge/semantic) with not_activated as the semantic lane's own honest state — verified in explorer/laneModel.ts.
  • Settings: effective values only; SettingsProvenance explicitly declines to invent per-key DEFAULT/USER/PROJECT attribution and states the gap.
  • Knowledge: four cameras; MemoryGeometry refuses to draw a scatter unless the wire reports method: "pca"; trust/recency are printed figures + rails, never text fades.
  • Brain: strikes come only from real SSE activation (useActivationField); nothing synthesizes firing.
  • Empty law: complete_zero_findings is only asserted by completed sources (house ReadSection/envelope handling).

Tests

  • cd dashboard && npx vitest run155 files, 1,726 tests, all passing
  • npx tsc --noEmit — clean (was failing on the base branch)
  • npm run visual:audit — 84/84 shots, 0 plan assertion failures, 0 touch targets under 44px
  • npm run visual:audit -- --diff — drift ≤0.06%/shot between adjacent runs, entirely wall-clock text (fixtures deliberately use Date.now())
  • npm run lint:commit — all nine commits on this branch pass (pre-existing merge commits on feat: consolidate TraceDecay V2 PR8-PR13 delivery #707 fail type checks, untouched)

Baselines in dashboard/audit-baselines/ are regenerated from this head; the gallery lands in dashboard/audit-gallery/ (git-ignored) on every run. Reference screenshots were never copied into the repo.

After

Brain light 1440 — measured registry field on the dark aperture, grouped rail, segmented strip
Code light 1440 — cortex terrain on night glass
Loom light 1440 — session weave on night glass, CAPTURED provenance stamp
Agents dark 1440 — delegation hero: subagent tree, groups, handoffs, failure context
Observatory dark 1440 — segmented subsystem header over the Diagnosis wing
Knowledge light 1440 — full-contrast fact ledger with trust ticks
Sessions dark 1440 — session ledger with headers and one raised count
Explorer dark 1440 — lane fan-out
Delivery light 1440 — recency field on night glass, honest pipeline authorities
Settings light 1440
Workflows dark 1440 — real definition ledger
Work dark 1440 — six cameras over one graph

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 6 commits August 27, 2026 09:08
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@changeset-bot

changeset-bot Bot commented Aug 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2f5c9f0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

cursoragent and others added 4 commits August 27, 2026 11:06
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
…oard-graphs-and-observability-cc72

Syncs the dashboard branch with its base, which just took master
(hotpath pull_request CI from PRs #742/#743).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants