Wraps the System tab's controls and stats areas in a shared flex container so vertical rhythm is consistent, and canonicalizes hard-coded status colors to design tokens.
- Wrap SystemControlsArea + SystemStatsArea in a new .cc-system-tab flex container with --space-lg gap, replacing the bare React fragment, so Server logs and Live system health sections get consistent breathing room.
- Add responsive gap rule for .cc-system-tab under the 768px breakpoint.
- Replace hard-coded --danger/--warning fallback colors in SystemControlsArea.css with canonical --color-error/--color-warning tokens.
- Add SystemControlsArea test coverage.
- Add a patch changeset documenting the spacing fix.
Files changed:
.changeset/fn-7877-system-tab-spacing.md | 7 +
.../components/command-center/CommandCenter.css | 15 ++
.../components/command-center/CommandCenter.tsx | 8 +-
.../__tests__/SystemControlsArea.test.tsx | 157 +++++++++++++++++++++
.../command-center/areas/SystemControlsArea.css | 8 +-
5 files changed, 189 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7877
Fusion-Task-Lineage: eb4a97ed-5442-43e8-8d38-348fc3e220a8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
- pnpm dev / new pnpm start default to the dashboard command
- fn dashboard (and bare fn/fusion/npx, incl. packaged binaries) now runs
supervised by default via an attached foreground child (TUI-safe);
--no-supervise opts out; FUSION_RESTART_EXIT_CODE=86 = intentional restart
- New /api/system routes: info, restart, rebuild jobs with SSE output,
engine restart, agents restart-all, plugins reload-all, log tail
- System tab: rebuild & restart (source checkouts only, hidden elsewhere),
restart server/engine/agents, backup DB, live server logs, copy
diagnostics, report bug; new Plugins tab reusing PluginManager
- Desktop restart via Electron app.relaunch(); DashboardLogSink now keeps a
bounded history + listener feed for the log viewer
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Show full-fidelity model token breakdowns in Command Center while keeping Overview compact.
- Remove the Tokens detail chart cap so bars, pies, and tables include every analytics model bucket.
- Keep Overview model summaries explicitly limited to the top consumers with a named cap.
- Add dashboard coverage and docs for full Tokens attribution versus Overview summaries.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7117-tokens-by-model.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../components/command-center/CommandCenter.tsx | 8 ++-
.../__tests__/CommandCenter.test.tsx | 78 +++++++++++++++++++++-
.../components/command-center/areas/TokensArea.tsx | 38 ++++++-----
.../areas/__tests__/TokensArea.test.tsx | 68 +++++++++++++++++++
6 files changed, 182 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7117
Fusion-Task-Lineage: 7bf4c090-1054-40d0-97bf-e0e495077af5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
Keep Command Center token usage surfaces mounted and updated during live analytics polling.
- Preserve existing analytics data while background polls are in flight so token surfaces revalidate without disappearing.
- Add live refresh intervals for Overview and Tokens token-usage data.
- Cover in-place token stat, chart, and model-row updates with Command Center and area tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6970-command-center-token-live.md | 7 ++
.../components/command-center/CommandCenter.tsx | 4 +
.../__tests__/CommandCenter.test.tsx | 81 +++++++++++++--
.../components/command-center/areas/AreaShell.tsx | 3 +
.../components/command-center/areas/TokensArea.tsx | 4 +
.../command-center/areas/__tests__/areas.test.tsx | 111 +++++++++++++++++++--
.../command-center/areas/useAnalyticsArea.ts | 12 ++-
7 files changed, 208 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-6970
Fusion-Task-Lineage: 670bb5ac-bc7d-47d8-abed-ef6748292cc6
- Remove the Active nodes and Sessions stat cards (data still feeds the activity sparkline). Remaining cards reflow via auto-fill.
- Stat value font scales up to fill the card (container-query cqi clamp, nowrap+overflow:hidden+min-width:0 so long values shrink to fit, never overflow).
- Add space-lg above the View Board/View Agents row so it's balanced below the Start/Stop AI Engine button.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- FloatingWindow: reusable non-blocking, draggable, smoothly-resizable window with focus-to-front z-index so multiple coexist (file browser + terminal + several task details open and movable at once).
- Task detail gains a Pop out (Maximize2) button in List + Board; App tracks multiple open floating task-detail windows (dedupe by id).
- New Task dialog is now a floating, draggable, resizable, non-blocking window; all quick-add controls visible without expanding (TaskForm forceMoreOptionsOpen).
- Dashboard Overview: removed the duplicate AI Engine row — View Board / View Agents moved into the first instance (the AI engine card, under Stop AI Engine).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code review (8 reviewers) fixes:
- P1: embedded board task-detail now passes onRequestClose so delete/merge/retry dismiss the panel (no ghost task).
- P1: RightDock + TerminalModal drag handlers add pointercancel + unmount teardown (no leaked document listeners / rAF / stuck userSelect); remove dead onOpenChange prop.
- Planning slot DOM-poll interval now caps (self-cancels on mobile); heartbeat slider persist debounced + mounted-guarded.
- Cleanup: remove dead ViewHeader-migration CSS (Skills/Insights), extract shared GithubIcon, move Activity Log embedded CSS to ActivityLogModal.css, FNXC date-format fixes, AGENTS lazy-view note.
- Update stale RightDock roster tests + LeftSidebarNav 'Compound Eng' test to current behavior.
Live UI tweaks:
- Default load lands on board, never the Command Center Dashboard.
- View Board/View Agents moved to the Command Center Overview tab (under the live-activity strip).
- Heartbeat card full-width with spaced, wrapping controls.
- Dev Server panel scrolls in the dock; ChatView right-pane title takes the full line.
- Files pop-out renders deterministic left-right two-pane.
- Mailbox list pane narrower + narrow by default; Add Goal button height matches the Compound stage button; Memory Working-Memory tab no longer overlaps; Skills view fills full width.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- TeamArea heartbeat card gains a heartbeat-multiplier slider (mirrors AgentsView: same range/step/presets, persisted via updateSettings) and a View Board / View Agents nav row (onChangeView threaded from CommandCenter <- App handleChangeTaskView).
- Update CC/TeamArea test mocks to export fetchSettings/updateSettings (220 pass).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Many loading states rendered bare "Loading…" text with no spinner
element, and a couple rendered an unstyled `loading-spinner` div with no
matching CSS (invisible). The global spin animation was never broken —
it rotates in Chromium and WebKit — so prior transform-box edits chased
a non-bug, validated only by a string-matching CSS test.
Add a shared <LoadingSpinner> (self-contained animated SVG, no
lucide-react import so it survives partial test mocks) and adopt it
across ~47 loading placeholders so every loading state shows a
consistent animated spinner. Includes a component test that asserts the
svg carries the animate-spin utility.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Surface selected-range session totals in the Command Center overview stat grid.
- Add a Sessions stat card backed by existing ActivityAnalytics data.
- Keep Overview populated when sessions are the only activity and default missing session values to zero.
- Cover populated, zero, omitted, and empty Overview session states in tests.
- Document the Overview sessions metric source in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
.../components/command-center/CommandCenter.tsx | 10 +++-
.../__tests__/CommandCenter.test.tsx | 53 ++++++++++++++++++++++
3 files changed, 62 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6718
Fusion-Task-Lineage: 5e41d3dc-2f69-48e0-aceb-848cb111ea3b
Reorders the Command Center overview charts so the richer daily activity line appears higher in the grid.
- Render the daily activity multi-series line card before the sparkline trend card while preserving existing data gates.
- Add a regression assertion for the overview chart ordering and empty-state absence.
- Update dashboard documentation and align the mailbox modal font-size expectation with the current tokenized CSS.
Files changed:
docs/dashboard-guide.md | 2 +-
.../app/components/__tests__/MailboxModal.test.tsx | 2 +-
.../components/command-center/CommandCenter.tsx | 28 ++++++++++++----------
.../__tests__/CommandCenter.test.tsx | 9 +++++++
4 files changed, 27 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-6716
Fusion-Task-Lineage: 0424f561-65f7-475a-a213-b12994c599c7
Place the Command Center throughput section first across overview states.
- Render the throughput funnel before loading, error, empty, and populated overview content.
- Preserve throughput test anchors while documenting the top-of-page ordering requirement.
- Add regression coverage for throughput ordering in loading, empty, populated, and error overview branches.
Files changed:
.../app/components/command-center/CommandCenter.tsx | 11 +++++++----
.../command-center/__tests__/CommandCenter.test.tsx | 21 +++++++++++++++++++++
2 files changed, 28 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6707
Fusion-Task-Lineage: 9b004ab4-e36b-4d83-804a-32503a7d8d72
Adds a live Team area to Command Center with per-agent analytics and supporting API data.\n\n- Add read-only core aggregation for agent tokens, cost, changed files, and task status counts.\n- Expose the team metrics through the Command Center API and render a responsive Team dashboard with charts and tables.\n- Cover aggregation, route, desktop, and mobile Command Center behavior with tests.\n- Document the Team area and add a patch changeset for the published CLI bundle.\n\nFiles changed:\n .changeset/fn-6655-command-center-team-view.md | 5 +\n docs/dashboard-guide.md | 2 +\n packages/core/src/__tests__/team-analytics.test.ts | 315 +++++++++++++++++++++\n packages/core/src/index.ts | 7 +\n packages/core/src/team-analytics.ts | 315 +++++++++++++++++++++\n .../components/command-center/CommandCenter.tsx | 9 +\n .../__tests__/CommandCenter.mobile-scroll.test.tsx | 22 ++\n .../__tests__/CommandCenter.test.tsx | 148 +++++++++-\n .../components/command-center/areas/TeamArea.tsx | 265 +++++++++++++++++\n .../app/components/command-center/areas/areas.css | 89 ++++++\n .../register-command-center-routes.auth.test.ts | 1 +\n .../register-command-center-routes.test.ts | 69 +++++\n .../src/routes/register-command-center-routes.ts | 24 ++\n 13 files changed, 1269 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6655
Fusion-Task-Lineage: 366170f4-a250-49ce-8ca6-aea865ab0b84
Command Center now shows current board-state in-progress tasks instead of historical funnel entries.
- Fetch the live Command Center snapshot for Overview live activity metrics.
- Source tasks-in-progress from current live column counts with loading and failure fallbacks.
- Cover populated, zero, missing-column, pending, failure, range-independent, and mobile overview cases.
- Document that the live snapshot count is independent of analytics date ranges.
Files changed:
docs/dashboard-guide.md | 2 +-
.../components/command-center/CommandCenter.tsx | 36 +++++++-
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 12 +++
.../__tests__/CommandCenter.test.tsx | 98 +++++++++++++++++++++-
4 files changed, 142 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6651
Fusion-Task-Lineage: a4c01d6f-437f-49e0-baf9-fb6b76d5e8e8
Command Center Overview now reports live analytics instead of placeholder empty data.
- Fetch token, tool, activity, and best-effort signal analytics for the overview cards.
- Show loading and error states around the core overview metrics while preserving the throughput section.
- Cover populated, empty, error, date-range, and mobile overview behavior in tests.
Files changed:
.../components/command-center/CommandCenter.tsx | 154 ++++++++++----
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 64 +++++-
.../__tests__/CommandCenter.test.tsx | 233 ++++++++++++++++++++-
3 files changed, 408 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6619
Fusion-Task-Lineage: 603bcbd1-7913-4014-aea7-9a941e16e29a
aggregateSdlcFunnel derives per-stage counts, conversion, completion rate, and
throughput/day from activityLog task:moved transitions, mapping columns to stages
by trait (unknown → Other). Rides additively on the /activity payload; SdlcFunnel
renders it via the U4 Funnel primitive in the Overview Throughput section.
MissionControlPanel renders the U6a /live snapshot with push+poll convergence
(SSE-triggered refetch + 5s interval armed only while sessions are in-flight,
cleared when idle), stale-node marking, and the live SDLC funnel. Wired into the
shell's Mission Control tab.
Tokens/Tools/Activity/Productivity/Ecosystem/Signals area components fetch the
U9 endpoints and render via the U4 chart primitives, wired into the shell tabs.
SWR reset effects key on a derived signature (not array identity) to survive
revalidation. LOC/plugin gaps show unavailable sentinels; Signals degrades to
empty until U11/U13 data lands.