gsxdsm
2e3b965909
FN-6757: smooth mobile Quick Chat keyboard resizing
...
Smooth Quick Chat mobile panel height changes while keeping viewport sampling synchronous.\n\n- Add Android resize-content detection that toggles height easing only for coarse keyboard viewport samples.\n- Clear smoothing and viewport CSS variables on blur, unmount, and suppressed shrink paths.\n- Cover Android smoothing, iOS offsetTop refocus, Latest gate, and streaming state with Quick Chat regression tests.\n- Document the mobile keyboard smoothing behavior and add a published package changeset.\n\nFiles changed:\n .changeset/smooth-mobile-quick-chat-keyboard.md | 5 +\n docs/dashboard-guide.md | 1 +\n .../quick-chat-mobile-keyboard-board-shift.md | 2 +\n packages/dashboard/app/components/QuickChatFAB.css | 8 ++\n packages/dashboard/app/components/QuickChatFAB.tsx | 17 +++\n .../app/components/__tests__/QuickChatFAB.test.tsx | 141 +++++++++++++++++++++\n 6 files changed, 174 insertions(+)
Fusion-Task-Id: FN-6757
Fusion-Task-Lineage: d301aee8-ef76-4d70-a4cd-91641bb05259
2026-06-20 00:41:36 -07:00
gsxdsm
d4d7623ee0
FN-6749: rebaseline i18n lint guardrail
...
Rebaseline the i18n hardcoded-string lint guardrail for shipping dashboard surfaces.
- Add scoped i18n lint ignores for non-shipping tests, stories, and deferred source-copy files with follow-up rationale.
- Localize remaining plugin/view copy and replace technical glyph literals that should not be linted as prose.
- Refresh synced locale catalogs and generated resource types, and document the lint baseline policy.
Files changed:
.changeset/fn-6749-i18n-lint-rebaseline.md | 5 +
docs/i18n-contributing.md | 14 +
i18next.config.ts | 96 ++
.../dashboard/app/components/AgentDetailView.tsx | 4 +-
.../app/components/ConversationHistory.tsx | 4 +-
.../app/components/DockerNodeOnboardingModal.tsx | 8 +-
.../components/MilestoneSliceInterviewModal.tsx | 4 +-
.../app/components/MissionInterviewModal.tsx | 4 +-
.../app/components/ModelSelectionModal.tsx | 4 +-
.../dashboard/app/components/NodeDetailModal.tsx | 15 +-
.../dashboard/app/components/PlanningModeModal.tsx | 4 +-
.../dashboard/app/components/SessionTerminal.tsx | 15 +-
.../app/components/SubtaskBreakdownModal.tsx | 4 +-
packages/dashboard/app/components/TaskForm.tsx | 4 +-
.../dashboard/app/components/TerminalModal.tsx | 18 +-
.../dashboard/app/plugins/pluginViewRegistry.tsx | 7 +-
packages/i18n/locales/en/app.json | 890 +++++++++---
packages/i18n/locales/en/common.json | 82 +-
packages/i18n/locales/es/app.json | 986 ++++++++++---
packages/i18n/locales/es/common.json | 82 +-
packages/i18n/locales/fr/app.json | 986 ++++++++++---
packages/i18n/locales/fr/common.json | 82 +-
packages/i18n/locales/ko/app.json | 1482 ++++++++++++++------
packages/i18n/locales/ko/cli.json | 8 +-
packages/i18n/locales/ko/common.json | 82 +-
packages/i18n/locales/zh-CN/app.json | 1482 ++++++++++++++------
packages/i18n/locales/zh-CN/cli.json | 8 +-
packages/i18n/locales/zh-CN/common.json | 82 +-
packages/i18n/locales/zh-TW/app.json | 1482 ++++++++++++++------
packages/i18n/locales/zh-TW/cli.json | 8 +-
packages/i18n/locales/zh-TW/common.json | 82 +-
packages/i18n/src/resources.d.ts | 459 +++---
32 files changed, 6055 insertions(+), 2438 deletions(-)
Fusion-Task-Id: FN-6749
Fusion-Task-Lineage: 789a7cbb-fdf8-4190-8cd2-6bf7d5e2d552
2026-06-19 22:14:57 -07:00
gsxdsm
e78853708a
Raise min heartbeat staleness floor 5m -> 10m
...
Agents stop heartbeating during long legitimate work (e.g. a verification
step blocked on a multi-minute test command). The 5-minute floor could
misread a busy agent as dead and reclaim its in-progress task mid-run.
Raise MIN_HEARTBEAT_STALENESS_MS to 10 minutes and strengthen the floor
test (7-minute-silent fast-interval agent stays healthy — would have read
stale under the old 5-minute floor). Engine typecheck clean; heartbeat
suite 148/148 pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 21:46:00 -07:00
gsxdsm
0c0fda1d7d
FN-6781: keep Command Center inline in the header
...
Keep Command Center anchored as an inline header destination while preserving changed-test coverage selection.
- Render Command Center immediately after Agents on tablet and desktop instead of moving it into the More views overflow.
- Update header and tablet tests plus docs to lock the stable inline navigation contract.
- Treat the quarantine data file as test-irrelevant so edits do not force gate mode and drop affected-package tests.
Files changed:
.changeset/fix-quarantine-json-gate-mode.md | 5 ++
.changeset/fn-6781-command-center-header.md | 5 ++
CONCEPTS.md | 3 +
docs/dashboard-guide.md | 4 +-
...data-file-forces-gate-mode-dropping-coverage.md | 74 ++++++++++++++++++++++
.../app/__tests__/tablet-header-controls.test.tsx | 7 +-
packages/dashboard/app/components/Header.tsx | 51 +++++----------
.../app/components/__tests__/Header.test.tsx | 8 ++-
scripts/__tests__/test-changed.test.mjs | 20 ++++++
scripts/test-changed.mjs | 8 +++
10 files changed, 142 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6781
Fusion-Task-Lineage: d328501d-7ec4-40ac-a140-6a491ea560e2
2026-06-19 20:59:05 -07:00
gsxdsm
60557cfea6
Merge pull request #1687 from Runfusion/fix/pause-abort-worktree-leak-storm
...
Fix pause-abort worktree-slot leak + retry storm; add board auto-recovery
2026-06-20 11:57:31 +08:00
gsxdsm
8b5b9a75ad
Build Compound Engineering plugin dist before its tests
...
dist-freshness.test.ts reads the plugin's compiled dist/settings.js and
dist/session/orchestrator.js to guard against stale dist (FN-6596), but the
plugin had no pretest build and was missing from ensure-test-artifacts.mjs.
On a fresh CI checkout dist/ does not exist, so the guard threw "dist/ is
missing" — failing the non-blocking Full Suite on every main commit.
Register the plugin's required artifacts in ensure-test-artifacts.mjs and add
a `pretest` hook that builds them, matching the dependency-graph / hermes /
openclaw plugins. Verified locally: with dist/ absent, `pnpm --filter
@fusion-plugin-examples/compound-engineering test` now builds dist via the
pretest and all 192 plugin tests pass (incl. the two dist-freshness cases).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 20:47:32 -07:00
gsxdsm
8e4b9e4f0f
Add leaked-slot reaper (A2) to self-healing
...
reapLeakedConcurrencySlots() reclaims in-memory worktree slots whose
holder is no longer in-progress (the FN-6756 "in todo yet still a
maxWorktrees holder" leak) without an engine restart — defense-in-depth
behind the source fix.
- executor: new listWorktreeHolders() read-only introspection over
activeWorktrees; wired through in-process-runtime to SelfHealingManager.
- reaper releases ONLY when every guard agrees: not executing, task
missing or in todo/triage, past a 60s grace, and clearPhantomExecutor
Binding itself refuses (returns false) if a live session surface is
registered — so it can never pull a worktree from a running agent.
- registered in maintenance batch 2 (respects globalPause/enginePaused
skip + FN-4962 ordering).
- widened the clearPhantomExecutorBinding option type to surface its
boolean refusal signal.
Engine typecheck clean; 19 tests pass (new reaper 7 cases + regression).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 20:03:24 -07:00
gsxdsm
9643563874
Fix pause-abort worktree leak + retry storm; add auto-recovery
...
A global pause/resume cycle parked tasks that had re-queued to todo as
status:"failed" ("operator action required") and leaked their in-memory
worktree slot. The scheduler kept re-dispatching the todo task, the
genuine-pause-abort branch re-fired on the still-set pausedAborted marker,
and it re-parked instantly with no backoff — a retry storm (75x/hr) that
pinned maxWorktrees=3/3 and concurrency-starved the whole queue.
- R1+R2 (executor.ts handleGraphFailure): treat a pause-abort that left a
task in `todo` as benign (FN-6782) — don't park failed, clear the
pausedAborted marker so the next dispatch is clean, and release the
leaked activeWorktrees slot. Operator-action failure preserved for
genuinely stranded non-todo columns (FN-6478).
- A1 (self-healing.ts recoverPausedAbortFailures): new maintenance sweep
that auto-recovers any pause-abort park still on the board and requeues
it (status:null = schedulable) so the board self-heals.
- run-audit.ts: new mutation types for the recovery telemetry.
Corrected the spec's null-vs-queued assumption: the scheduler dispatch set
is column==="todo" && !paused (scheduler.ts:1288); status:"queued" is the
*blocked* marker, status:null is runnable — so recovered tasks are left null.
Deferred (documented): A2 leaked-slot reaper needs a new executor
listWorktreeHolders introspection API to reap in-memory worktree slots
safely; R1 closes the observed leak at its source.
Tests: self-healing-paused-abort-recovery.test.ts (3),
executor-paused-abort-todo-benign.test.ts (2). Engine typecheck clean;
106 existing pause/graph-failure/limbo tests still pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 19:50:46 -07:00
gsxdsm
24ff12471f
Stop quarantine-list edits from forcing pnpm test into gate mode
...
scripts/lib/test-quarantine.json is runtime data (which tests are
quarantined), not executable test infra, but it tripped the shared-infra
catch-all in isSharedInfraChange. That forced mode=gate, which runs only
the fixed engine-core + cli-shape gate suite and returns before the
affected packages -- so a dev's real changes (e.g. @fusion/core,
@fusion/dashboard) got zero coverage whenever they also touched the
quarantine list. Classify the file as test-irrelevant so the diff stays
in changed mode and the affected packages run.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 19:05:49 -07:00
gsxdsm
5117944371
FN-6720: add productivity task duration stats
...
Adds completed-task active-duration analytics to the Command Center Productivity surface.\n\n- Aggregate average, median, p90, total, and completed-task duration metrics from done tasks with recorded active time.\n- Render duration stat cards with unavailable dash sentinels and export matching CSV rows.\n- Cover analytics, dashboard, route, CSV, mobile/tablet layout, and documentation behavior.\n\nFiles changed:\n .changeset/soft-badgers-measure.md | 5 +\n docs/architecture.md | 4 +-\n docs/dashboard-guide.md | 2 +-\n docs/storage.md | 2 +\n .../src/__tests__/productivity-analytics.test.ts | 105 ++++++++++++++++++++-\n packages/core/src/productivity-analytics.ts | 83 +++++++++++++++-\n .../__tests__/CommandCenter.mobile-scroll.test.tsx | 16 ++++\n .../__tests__/CommandCenter.tablet-layout.test.tsx | 19 ++++\n .../command-center/areas/ProductivityArea.tsx | 65 ++++++++++++-\n .../command-center/areas/__tests__/areas.test.tsx | 65 ++++++++++++-\n .../components/command-center/areas/areaShared.ts | 12 +++\n .../src/__tests__/command-center-csv.test.ts | 8 ++\n .../register-command-center-routes.test.ts | 22 +++++\n packages/dashboard/src/command-center-csv.ts | 5 +\n 14 files changed, 404 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6720
Fusion-Task-Lineage: aa0980eb-d156-4dca-b6b8-1788570c166b
2026-06-19 17:25:35 -07:00
gsxdsm
e19f7c2008
FN-6747: add shadcn dashboard theme
...
Add a shadcn-inspired dashboard theme across the theme picker, persisted startup validation, and public theme tokens.
- Register the Shadcn color theme in core and dashboard theme option lists.
- Add zinc-neutral dark and light CSS tokens with Geist typography, 1px borders, subtle shadows, and neutralized glow effects.
- Add theme swatches, documentation, startup allow-list support, regression coverage, and a published package changeset.
Files changed:
.changeset/shadcn-dashboard-theme.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/core/src/types.ts | 1 +
.../dashboard/app/components/ThemeSelector.css | 14 ++
packages/dashboard/app/components/themeOptions.ts | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 28 ++++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 166 +++++++++++++++++++++
8 files changed, 217 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6747
Fusion-Task-Lineage: cf0d6732-aa4f-457d-ae6c-e54fca0191b2
2026-06-19 16:47:34 -07:00
gsxdsm
59d3eee7f4
FN-6721: estimate productivity hours saved
...
Estimate human hours saved from productivity LOC analytics and expose it consistently.
- Add a shared human-lines-per-hour conversion and hoursSaved summary to productivity analytics.
- Show human hours saved in the Command Center productivity area with unavailable-state handling.
- Include hoursSaved in productivity CSV exports, docs, tests, and the release changeset.
Files changed:
.changeset/fuzzy-productivity-hours.md | 5 ++++
docs/architecture.md | 4 +--
docs/storage.md | 4 +--
.../src/__tests__/productivity-analytics.test.ts | 29 ++++++++++++++++------
packages/core/src/index.ts | 3 ++-
packages/core/src/productivity-analytics.ts | 28 +++++++++++++++++++--
.../command-center/areas/ProductivityArea.tsx | 24 ++++++++++++++++++
.../command-center/areas/__tests__/areas.test.tsx | 9 ++++++-
.../src/__tests__/command-center-csv.test.ts | 29 +++++++++++++++++++++-
.../register-command-center-routes.test.ts | 1 +
packages/dashboard/src/command-center-csv.ts | 1 +
11 files changed, 120 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6721
Fusion-Task-Lineage: 80114bfc-7d7f-4659-983a-9488660e5f0f
2026-06-19 16:47:34 -07:00
gsxdsm
c158dda8a6
FN-6745: add xhigh thinking level support
...
Adds the xhigh reasoning option across settings, task flows, APIs, and model adapter tests.
- Extend the shared thinking-level enum, validation paths, generated resource types, and settings documentation for `xhigh`.
- Surface `xhigh` in task, agent, and global model selectors with localized labels.
- Cover task route handling, task form rendering, and Pi adapter mapping behavior with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6745-xhigh-thinking-level.md | 5 +
docs/settings-reference.md | 2 +-
.../core/src/__tests__/thinking-levels.test.ts | 9 ++
packages/core/src/types.ts | 10 +-
packages/dashboard/app/api/legacy.ts | 6 +-
.../dashboard/app/components/AgentDetailView.tsx | 2 +-
.../dashboard/app/components/ModelSelectorTab.tsx | 1 +
.../dashboard/app/components/NewAgentDialog.tsx | 3 +-
packages/dashboard/app/components/NewTaskModal.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.tsx | 2 +-
packages/dashboard/app/components/TaskForm.tsx | 2 +
.../app/components/__tests__/TaskForm.test.tsx | 14 +++
.../settings/sections/GlobalModelsSection.tsx | 1 +
.../src/__tests__/routes-tasks-ops.test.ts | 8 +-
.../dashboard/src/__tests__/routes-tasks.test.ts | 8 +-
packages/dashboard/src/agent-generation.ts | 4 +-
packages/dashboard/src/agent-onboarding.ts | 4 +-
.../src/routes/register-task-workflow-routes.ts | 5 +-
packages/engine/src/__tests__/pi.test.ts | 25 ++++
packages/i18n/locales/en/app.json | 3 +
packages/i18n/locales/es/app.json | 3 +
packages/i18n/locales/fr/app.json | 3 +
packages/i18n/locales/ko/app.json | 3 +
packages/i18n/locales/zh-CN/app.json | 3 +
packages/i18n/locales/zh-TW/app.json | 3 +
packages/i18n/src/resources.d.ts | 126 ++++++++++++++++++++-
26 files changed, 229 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-6745
Fusion-Task-Lineage: 779e1517-607b-482b-83a1-0f2bb94ae736
2026-06-19 16:47:34 -07:00
gsxdsm
87f18f87ed
FN-6705: add plugin activation analytics
...
Record plugin activation events and expose them to Command Center analytics.
- Add plugin activation persistence, aggregation helpers, and exports.
- Record load/reload activation events through the plugin loader and store APIs.
- Surface plugin activation counts in the Command Center Ecosystem area and API route.
- Cover migrations, aggregation behavior, plugin loader recording, route auth, UI rendering, and quarantined flaky suites.
Files changed:
.changeset/fn-6705-plugin-activation-analytics.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
packages/cli/vitest.config.ts | 8 +
packages/core/src/__tests__/db-migrate.test.ts | 34 ++---
packages/core/src/__tests__/db.test.ts | 59 ++++----
packages/core/src/__tests__/goals-schema.test.ts | 6 +-
packages/core/src/__tests__/insight-store.test.ts | 12 +-
.../src/__tests__/merge-request-record.test.ts | 3 +-
packages/core/src/__tests__/mission-store.test.ts | 6 +-
.../__tests__/plugin-activation-analytics.test.ts | 67 ++++++++
packages/core/src/__tests__/plugin-loader.test.ts | 168 ++++++++++++++++++++-
packages/core/src/__tests__/run-audit.test.ts | 6 +-
.../core/src/__tests__/store-merge-queue.test.ts | 3 +-
.../src/__tests__/store-plugin-activations.test.ts | 52 +++++++
packages/core/src/__tests__/task-documents.test.ts | 3 +-
packages/core/src/db.ts | 35 ++++-
packages/core/src/index.ts | 8 +
packages/core/src/plugin-activation-analytics.ts | 104 +++++++++++++
packages/core/src/plugin-loader.ts | 27 ++++
packages/core/src/store.ts | 24 ++-
packages/core/src/types.ts | 22 +++
packages/core/vitest.config.ts | 12 ++
.../command-center/areas/EcosystemArea.tsx | 40 +++--
.../command-center/areas/__tests__/areas.test.tsx | 52 ++++++-
.../register-command-center-routes.auth.test.ts | 1 +
.../register-command-center-routes.test.ts | 29 ++++
.../src/routes/register-command-center-routes.ts | 20 +++
.../src/store/__tests__/roadmap-store.test.ts | 9 +-
scripts/boot-smoke.mjs | 24 ++-
scripts/lib/test-quarantine.json | 55 +++++++
31 files changed, 799 insertions(+), 99 deletions(-)
Fusion-Task-Id: FN-6705
Fusion-Task-Lineage: 12ed6227-f935-4038-bbe9-a605a054850e
2026-06-19 16:47:33 -07:00
gsxdsm
df139ec84c
FN-6736: reclaim phantom executor bindings
...
Recover wedged in-progress tasks by clearing stale executor bindings only after liveness proves the owner is gone.
- Add a guarded executor escape hatch that clears only stale in-memory task bookkeeping while refusing live session surfaces.
- Teach self-healing to identify phantom executor-active bindings using age, checkout, heartbeat, run-audit, and worktree liveness signals before requeueing preserved work.
- Record reclaim events in run audit and cover preserved-worktree recovery with reliability interaction tests.
- Document the recovery path and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6736-phantom-executor-binding.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 1 +
.../reclaim-phantom-executor-binding.test.ts | 244 +++++++++++++++++++++
packages/engine/src/executor.ts | 35 +++
packages/engine/src/run-audit.ts | 2 +
packages/engine/src/runtimes/in-process-runtime.ts | 3 +-
packages/engine/src/self-healing.ts | 112 ++++++++++
8 files changed, 402 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6736
Fusion-Task-Lineage: c76191ba-f4c3-4832-a790-67676e258ba2
2026-06-19 16:47:33 -07:00
gsxdsm
e6f611169b
FN-6737: preserve terminal Ctrl shortcuts
...
Keep terminal shortcut focus stable so Ctrl combinations emit control bytes reliably.
- Prevent pointer, mouse, and touch activation on terminal shortcut buttons from stealing xterm focus.
- Expand terminal shortcut coverage for Ctrl control codes, touch focus preservation, and platform copy modifiers.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6737-terminal-ctrl-shortcuts.md | 5 +++
.../dashboard/app/components/TerminalModal.tsx | 31 +++++++++++++--
.../components/__tests__/TerminalModal.test.tsx | 46 +++++++++++++++++++---
3 files changed, 73 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6737
Fusion-Task-Lineage: e27439e0-b2c5-44c1-8584-848e61d41e1b
2026-06-19 16:47:33 -07:00
gsxdsm
26e5514a8e
FN-6724: add Factory Mono theme
...
Add a monochrome Factory theme with red accents and no glow effects.
- Register Factory Mono across theme validation, typing, selector UI, and startup hydration.
- Define dark and light Factory Mono CSS tokens, swatches, red CTA accents, uppercase controls, and glow-free active states.
- Cover Factory Mono token behavior with a theme hook regression test and document the expanded theme count.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/factory-mono-theme.md | 5 +
docs/dashboard-guide.md | 2 +-
packages/core/src/types.ts | 1 +
.../dashboard/app/components/ThemeSelector.css | 14 ++
.../dashboard/app/components/ThemeSelector.tsx | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 28 ++++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 177 +++++++++++++++++++++
8 files changed, 228 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6724
Fusion-Task-Lineage: 861fbcef-d1b1-4bfb-bd60-0196ce825771
2026-06-19 16:47:33 -07:00
gsxdsm
8f052c6b92
FN-6723: normalize activity trend chart scaling
...
Normalize Command Center activity chart lines so low-volume agent series remain visible beside message volume.
- Add an opt-in per-series scale mode to the Recharts line chart while preserving shared scaling by default.
- Enable per-series scaling for the Activity trend chart and expose scale mode for regression coverage.
- Cover mixed-unit, non-finite, and finite chart geometry cases across Command Center chart tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-6723-command-center-activity-charts.md | 5 +++
.../command-center/__tests__/charts.test.tsx | 8 ++++
.../command-center/areas/ActivityArea.tsx | 5 +++
.../command-center/areas/__tests__/areas.test.tsx | 42 ++++++++++++++++++
.../command-center/charts/recharts/LineChart.tsx | 50 +++++++++++++++++-----
.../charts/recharts/__tests__/LineChart.test.tsx | 34 ++++++++++++++-
6 files changed, 131 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6723
Fusion-Task-Lineage: 8f7ee1cb-5488-4237-b0c1-b4547fa4961d
2026-06-19 16:47:33 -07:00
gsxdsm
ee72c942f1
FN-6715: move Overview funnel below charts
...
Move the Command Center Overview funnel to the bottom while expanding chart palette coverage.
- Render the SDLC throughput funnel after loading, error, empty, and populated Overview content.
- Broaden hand-rolled chart primitive colors across existing semantic theme tokens.
- Add regression coverage for Overview ordering, palette cycling, and safe chart geometry.
- Document the Overview funnel placement and add a patch changeset.
Files changed:
.../fn-6715-command-center-overview-funnel.md | 5 +
docs/dashboard-guide.md | 4 +-
.../components/command-center/CommandCenter.tsx | 13 +-
.../__tests__/CommandCenter.test.tsx | 20 +--
.../command-center/__tests__/charts.test.tsx | 103 ++++++++++++++-
.../components/command-center/charts/charts.css | 141 +++++++++++++++++++++
6 files changed, 263 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6715
Fusion-Task-Lineage: 27fafdff-6cd8-4497-ab52-6f28f3100df1
2026-06-19 16:47:33 -07:00
gsxdsm
70cce18c31
FN-6712: add managed agent instructions tool
...
Add a scoped extension tool for managers to update report instructions through AgentStore.
- Register fn_agent_set_instructions with validation, hierarchy authorization, and config-revision persistence.
- Cover direct, indirect, privileged, denied, missing-target, and field-clearing behaviors with CLI extension tests.
- Document the new agent-management tool in agent docs, Fusion skill references, and a published package changeset.
Files changed:
.changeset/fn-6712-agent-set-instructions-tool.md | 5 +
docs/agents.md | 12 ++
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 10 +
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../extension-agent-set-instructions.test.ts | 235 +++++++++++++++++++++
packages/cli/src/extension.ts | 94 +++++++++
7 files changed, 358 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6712
Fusion-Task-Lineage: 1fac1ff0-283d-4911-8fbf-f15c5de6b902
2026-06-19 07:41:44 -07:00
gsxdsm
4373946a07
chore(release): v0.44.0
...
Version bump via changesets.
2026-06-19 07:34:26 -07:00
gsxdsm
47e7b4a150
FN-6704: capture merge LOC for productivity analytics
...
Capture merge-time diff stats so Command Center Productivity can report real Lines changed when available.
- Add nullable additions/deletions columns to task commit associations with migration and storage normalization.
- Persist git shortstat counts from merge association paths without blocking merges when stats are unavailable.
- Aggregate Productivity LOC from recorded commit stats while preserving the unavailable sentinel for historical unknowns.
- Cover migration, store upsert, analytics, and merger association stats behavior with tests and documentation.
Files changed:
.changeset/fn-6704-command-center-loc.md | 5 ++
docs/architecture.md | 4 +-
docs/storage.md | 3 +
packages/core/src/__tests__/db-migrate.test.ts | 32 ++++----
packages/core/src/__tests__/db.test.ts | 90 ++++++++++++++++------
.../src/__tests__/productivity-analytics.test.ts | 47 +++++++++--
packages/core/src/__tests__/store-upsert.test.ts | 40 ++++++++++
packages/core/src/db.ts | 14 +++-
packages/core/src/productivity-analytics.ts | 56 +++++++++-----
packages/core/src/store.ts | 17 +++-
packages/core/src/task-lineage.ts | 2 +
packages/core/src/types.ts | 2 +
.../merger-commit-association-stats.test.ts | 90 ++++++++++++++++++++++
packages/engine/src/merger-ai.ts | 2 +
packages/engine/src/merger.ts | 17 +++-
15 files changed, 349 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-6704
Fusion-Task-Lineage: f079fecb-eade-4318-bc55-23aa48097b4a
2026-06-19 06:51:57 -07:00
gsxdsm
cfddde5a45
FN-6699: fix Command Center chart rendering
...
Command Center charts now reserve enough geometry and wrapper size to render activity graphs reliably.
- Pad SVG line chart coordinates so endpoints and zero/max values do not clip at the viewBox edge.
- Give shared Recharts wrappers a default measurable height and import the shared chart CSS from Recharts chart components.
- Add regression coverage for chart wrapper sizing, non-clipped activity graph points, and the retained Mailbox mobile tab font-size rule.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6699-command-center-charts.md | 5 ++++
packages/dashboard/app/components/MailboxModal.css | 4 +--
.../app/components/__tests__/MailboxModal.test.tsx | 2 +-
.../CommandCenter.mobile-chart-layout.test.ts | 1 +
.../command-center/__tests__/charts.test.tsx | 35 ++++++++++++++++++++--
.../command-center/areas/__tests__/areas.test.tsx | 32 ++++++++++++++++++++
.../components/command-center/charts/LineChart.tsx | 9 ++++--
.../components/command-center/charts/charts.css | 12 ++++++++
.../command-center/charts/recharts/LineChart.tsx | 4 +++
.../command-center/charts/recharts/PieChart.tsx | 4 +++
10 files changed, 100 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6699
Fusion-Task-Lineage: 8227a7be-e855-462a-aa0d-368890398a4c
2026-06-19 06:21:11 -07:00
gsxdsm
898ac1e85f
FN-6698: back command center signals with incidents
...
Replace the Command Center signals placeholders with incidents-backed analytics.
- Add core signal aggregation over the incidents table with date filtering, breakdowns, and MTTR handling.
- Expose the signals analytics through the Command Center API and update dashboard areas to consume real data.
- Cover empty, scoped, auth, and rendered signal states with tests and update docs/changeset.
Files changed:
.changeset/command-center-signals.md | 5 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 6 +-
.../core/src/__tests__/signals-analytics.test.ts | 114 ++++++++++++
packages/core/src/index.ts | 8 +
packages/core/src/signals-analytics.ts | 195 +++++++++++++++++++++
.../components/command-center/CommandCenter.tsx | 49 +-----
.../command-center/areas/EcosystemArea.tsx | 9 +-
.../command-center/areas/ProductivityArea.tsx | 3 +
.../command-center/areas/SignalsArea.tsx | 63 +------
.../register-command-center-routes.auth.test.ts | 1 +
.../register-command-center-routes.test.ts | 54 ++++++
.../src/routes/register-command-center-routes.ts | 23 +++
13 files changed, 431 insertions(+), 100 deletions(-)
Fusion-Task-Id: FN-6698
Fusion-Task-Lineage: 9ce41fb2-9a92-4863-8aa7-ae124294fe09
2026-06-19 06:04:20 -07:00
gsxdsm
9d07e85232
FN-6690: preload lazy-view CSS chunks
...
Ensure persisted lazy dashboard views request their extracted CSS before first paint.
- Carry CSS asset paths through the Vite view chunk manifest.
- Inject stylesheet links alongside modulepreload links for persisted lazy views.
- Cover Command Center CSS preloading and served CSS availability in dashboard tests.
- Quarantine the unrelated session cross-tab cleanup flake observed during verification.
Files changed:
.changeset/fn-6690-lazy-view-css.md | 5 +
.../__tests__/board-mobile-initial-render.test.tsx | 16 ++-
.../src/__tests__/server-view-preload.test.ts | 152 ++++++++++++++++++++-
.../src/__tests__/view-chunk-manifest.test.ts | 57 ++++++--
packages/dashboard/src/server.ts | 16 ++-
packages/dashboard/src/view-chunk-manifest.ts | 26 +++-
packages/dashboard/vitest.config.ts | 6 +-
scripts/lib/test-quarantine.json | 5 +
8 files changed, 253 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-6690
Fusion-Task-Lineage: 6ac0d06f-14db-4302-98f8-0e742172ed7f
2026-06-19 03:49:56 -07:00
gsxdsm
282b06949e
FN-6688: replace dashboard primary text alias
...
Replace undefined dashboard primary text aliases with the canonical theme-aware text token.
- Swap non-Command-Center CSS references from `--text-primary` to `--text` across dashboard components.
- Extend text token canonicalization tests to block future `--text-primary` usage and root alias definitions.
- Document the dashboard CSS token rule and add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6688-text-primary-cleanup.md | 5 +++++
docs/dashboard-guide.md | 2 ++
.../__tests__/text-token-canonicalization.test.ts | 18 ++++++++++++++++--
.../dashboard/app/components/ActiveAgentsPanel.css | 4 ++--
.../dashboard/app/components/CliBinaryPanel.css | 2 +-
.../app/components/ConversationHistory.css | 6 +++---
.../dashboard/app/components/DesktopLaunchGate.css | 2 +-
packages/dashboard/app/components/ErrorBoundary.css | 2 +-
.../dashboard/app/components/LanguageSelector.css | 2 +-
packages/dashboard/app/components/MobileNavBar.css | 4 ++--
packages/dashboard/app/components/QuickEntryBox.css | 6 +++---
packages/dashboard/app/components/ScriptsModal.css | 21 +++++++++++++--------
.../dashboard/app/components/SkillMultiselect.css | 2 +-
.../dashboard/app/components/TaskFieldsSection.css | 4 ++--
.../app/components/WorkflowFieldsPanel.css | 2 +-
packages/dashboard/app/styles.css | 2 +-
16 files changed, 55 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6688
Fusion-Task-Lineage: 96e47af2-8bf5-4326-be24-2816530fd646
2026-06-19 01:33:13 -07:00
gsxdsm
0f021aee4f
FN-6686: canonicalize Command Center CSS tokens
...
Canonicalize Command Center CSS token references so chart accents and primary text no longer rely on undefined aliases.
- Replace Command Center uses of `--color-accent` with `--accent` and `--text-primary` with `--text` across shell, chart, area, and control styles.
- Add a scoped CSS token canonicalization regression test for Command Center styles.
- Document the Command Center token-only rule and add a patch changeset for the published package.
Files changed:
.changeset/fn-6686-command-center-css-token-fix.md | 5 +++
docs/dashboard-guide.md | 2 +-
.../components/command-center/CommandCenter.css | 28 +++++++--------
.../components/command-center/DateRangePicker.css | 2 +-
.../command-center/MissionControlPanel.css | 2 +-
...mmand-center-css-token-canonicalization.test.ts | 40 ++++++++++++++++++++++
.../command-center/areas/SystemStatsArea.css | 4 +--
.../app/components/command-center/areas/areas.css | 14 ++++----
.../components/command-center/charts/charts.css | 39 ++++++++++++---------
9 files changed, 93 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6686
Fusion-Task-Lineage: 10a79117-9716-4228-b2db-78791ec73d0d
2026-06-19 01:21:39 -07:00
gsxdsm
5e1a4ff3fd
FN-6684: add Command Center chart coverage
...
Adds remaining Command Center pie and line chart surfaces with regression coverage.
- Add pie and trend charts to Team, Ecosystem, GitHub, Signals, and System areas using existing analytics data.
- Extend Command Center tests for the new chart surfaces, empty states, mobile scrolling, and system stats rendering.
- Document the expanded Command Center visualizations and add a patch changeset for the published package.
Files changed:
.changeset/fn-6684-command-center-charts.md | 5 +
docs/dashboard-guide.md | 18 +-
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 16 +-
.../__tests__/SystemStatsArea.test.tsx | 9 +
.../command-center/areas/EcosystemArea.tsx | 40 +++-
.../components/command-center/areas/GithubArea.tsx | 34 ++++
.../command-center/areas/SignalsArea.tsx | 20 ++
.../command-center/areas/SystemStatsArea.tsx | 34 ++++
.../components/command-center/areas/TeamArea.tsx | 15 ++
.../command-center/areas/__tests__/areas.test.tsx | 216 ++++++++++++++++++++-
10 files changed, 390 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6684
Fusion-Task-Lineage: dc4eda2f-bc1b-4b51-9317-19ab6ddcdba7
2026-06-19 01:02:50 -07:00
gsxdsm
99d799cb31
FN-6683: add analytics pie and line charts
...
Add chart coverage to Command Center analytics without replacing existing surfaces.
- Add pie and Recharts line visualizations to Overview, Tokens, Tools, Activity, and Productivity analytics areas.
- Reuse existing analytics payloads while preserving current bars, sparklines, tables, live refresh, and empty/loading branches.
- Extend Command Center tests and documentation for the new chart affordances.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6683-command-center-charts.md | 5 +
docs/dashboard-guide.md | 14 +-
.../components/command-center/CommandCenter.css | 15 +-
.../components/command-center/CommandCenter.tsx | 37 +++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 6 +-
.../__tests__/CommandCenter.test.tsx | 17 +-
.../command-center/areas/ActivityArea.tsx | 42 +++++
.../command-center/areas/ProductivityArea.tsx | 27 +++
.../components/command-center/areas/TokensArea.tsx | 45 +++++
.../components/command-center/areas/ToolsArea.tsx | 22 +++
.../command-center/areas/__tests__/areas.test.tsx | 184 ++++++++++++++++++++-
.../app/components/command-center/areas/areas.css | 11 ++
12 files changed, 407 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6683
Fusion-Task-Lineage: ca9d3103-5132-41f8-a9ce-39e0bff581b8
2026-06-19 00:07:50 -07:00
gsxdsm
fe207ca960
FN-6680: fix Command Center mobile chart layouts
...
Fix Command Center chart rendering and visual rhythm on constrained mobile layouts.
- Bound chart primitives, text labels, and grid tracks so mobile Command Center charts do not overflow, collapse, or steal scrolling.
- Normalize stat, table, team, and system chart card surfaces around shared dashboard spacing, border, radius, and surface tokens.
- Add CSS regression coverage and documentation for mobile chart layout limits beyond jsdom.
- Add a patch changeset for the published dashboard bundle.
Files changed:
.../fn-6680-command-center-mobile-chart-fix.md | 5 ++
docs/dashboard-guide.md | 3 +-
docs/testing.md | 3 +
.../components/command-center/CommandCenter.css | 16 +++--
.../CommandCenter.mobile-chart-layout.test.ts | 72 ++++++++++++++++++++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 4 ++
.../command-center/areas/SystemStatsArea.css | 14 ++++-
.../app/components/command-center/areas/areas.css | 19 +++---
.../components/command-center/charts/charts.css | 45 +++++++++++++-
9 files changed, 156 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6680
Fusion-Task-Lineage: 4dc731c4-6408-4b05-84f7-916bbc572a5d
2026-06-18 23:08:08 -07:00
gsxdsm
d6e2f920e4
FN-6682: add themed recharts chart wrappers
...
Add shared Recharts-powered chart wrappers for Command Center visuals.
- Add reusable themed pie and line chart wrappers with responsive sizing and reduced-motion behavior.
- Sanitize invalid or empty chart inputs and expose accessible empty states.
- Cover wrapper rendering, sanitization, theming, and reduced-motion behavior with dashboard tests.
- Add the recharts dependency and a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6681-recharts-charts.md | 5 +
.../command-center/charts/recharts/LineChart.tsx | 128 +++++++
.../command-center/charts/recharts/PieChart.tsx | 104 ++++++
.../charts/recharts/__tests__/LineChart.test.tsx | 83 +++++
.../charts/recharts/__tests__/PieChart.test.tsx | 83 +++++
.../command-center/charts/recharts/index.ts | 15 +
.../command-center/charts/recharts/theme.ts | 84 +++++
packages/dashboard/package.json | 1 +
pnpm-lock.yaml | 390 ++++++++++++++++++++-
9 files changed, 882 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6682
Fusion-Task-Lineage: f3253f7a-d0a3-43ef-a7c1-f7d887ec8629
2026-06-18 22:30:01 -07:00
gsxdsm
20597901a0
FN-6675: add GitHub close-time backfill action
...
Add a Command Center operator path to backfill exact GitHub source-issue close times.
- Add a dashboard API client for the paginated GitHub source-issue closed-at backfill endpoint.
- Add a GitHub Command Center button, progress/error/result state, and styling for manual backfills.
- Cover backfill success, empty, error, and pagination behavior with area tests and document the operator flow.
Files changed:
.../fn-6675-github-closed-at-backfill-dashboard.md | 5 +
docs/dashboard-guide.md | 4 +-
docs/storage.md | 2 +-
packages/dashboard/app/api/legacy.ts | 25 ++++
.../components/command-center/CommandCenter.css | 39 ++++++
.../components/command-center/areas/GithubArea.tsx | 117 ++++++++++++++++-
.../command-center/areas/__tests__/areas.test.tsx | 140 ++++++++++++++++++++-
7 files changed, 326 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6675
Fusion-Task-Lineage: 09e43b60-b9db-421f-a131-740a0d3164fe
2026-06-18 19:50:58 -07:00
gsxdsm
21d8076ae2
FN-6664: polish Command Center mobile charts
...
Polish Command Center chart surfaces and mobile scrolling behavior.
- Keep mobile Command Center chart tabs constrained to the tabpanel scroll owner without clipping or stretch artifacts.
- Normalize chart, stat, table, gauge, and team panel card styling around shared design tokens.
- Expand regression coverage for mobile chart sizing, overflow ownership, and tokenized area styling.
- Document the mobile rendering and token-only invariants and add a patch changeset.
Files changed:
.../fn-6664-command-center-mobile-chart-polish.md | 5 +
docs/dashboard-guide.md | 6 +
.../components/command-center/CommandCenter.css | 112 ++++++++++-------
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 128 ++++++++++++++++++-
.../command-center/areas/__tests__/areas.test.tsx | 47 ++++++-
.../app/components/command-center/areas/areas.css | 63 ++++++----
.../components/command-center/charts/charts.css | 135 +++++++++++++--------
7 files changed, 375 insertions(+), 121 deletions(-)
Fusion-Task-Id: FN-6664
Fusion-Task-Lineage: 14afa9c5-7287-4db1-beea-3bf7cbb70e7b
2026-06-18 19:29:40 -07:00
gsxdsm
9b396b6378
FN-6674: backfill GitHub source issue close times
...
Add an opt-in sweep to populate historical GitHub source issue close timestamps from GitHub.
- Add a project-scoped backfill endpoint with offset/limit pagination for missing sourceIssueClosedAt values.
- Implement reconciler logic that fetches real closed_at values, skips open or already-filled tasks, and logs per-task failures.
- Cover the route and reconciler backfill behavior with tests, plus document the manual sweep and release note.
Files changed:
.../fn-6674-source-issue-closed-at-backfill.md | 5 +
docs/dashboard-guide.md | 2 +-
docs/storage.md | 2 +-
.../github-source-issue-reconciler.test.ts | 105 ++++++++++++++++++++
.../__tests__/register-git-github.backfill.test.ts | 110 +++++++++++++++++++++
.../dashboard/src/github-tracking-reconciler.ts | 71 +++++++++++++
.../dashboard/src/routes/register-git-github.ts | 31 ++++++
7 files changed, 324 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6674
Fusion-Task-Lineage: 5231b107-79f3-4326-9093-c70182bc0dc8
2026-06-18 19:12:58 -07:00
gsxdsm
af31f7ddfa
FN-6657: embed system stats in Command Center
...
Move system telemetry out of the global header modal and into Command Center as a dedicated System area.
- add a Command Center System tab with live CPU, memory, heap, process, task, agent, and vitest controls
- remove the legacy System Stats modal entry points from desktop and mobile navigation
- update modal manager, docs, and regression coverage for the new embedded System area
- add a patch changeset for the published Fusion package
Files changed:
.../fn-6657-system-stats-into-command-center.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/App.tsx | 7 -
packages/dashboard/app/components/AppModals.tsx | 12 -
packages/dashboard/app/components/Header.tsx | 9 -
packages/dashboard/app/components/MobileNavBar.tsx | 12 -
.../dashboard/app/components/SystemStatsModal.css | 319 -------------
.../dashboard/app/components/SystemStatsModal.tsx | 523 ---------------------
.../app/components/__tests__/AppModals.test.tsx | 51 --
.../app/components/__tests__/Header.test.tsx | 12 -
.../app/components/__tests__/MobileNavBar.test.tsx | 13 -
.../components/__tests__/SystemStatsModal.test.tsx | 329 -------------
...-merge-toggle-blank.mobile-integration.test.tsx | 1 -
.../components/command-center/CommandCenter.tsx | 5 +
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 46 ++
.../__tests__/CommandCenter.test.tsx | 57 ++-
.../__tests__/SystemStatsArea.test.tsx | 229 +++++++++
.../command-center/areas/SystemStatsArea.css | 122 +++++
.../command-center/areas/SystemStatsArea.tsx | 440 +++++++++++++++++
.../app/hooks/__tests__/useModalManager.test.ts | 23 -
packages/dashboard/app/hooks/useModalManager.ts | 12 -
22 files changed, 906 insertions(+), 1327 deletions(-)
Fusion-Task-Id: FN-6657
Fusion-Task-Lineage: 7593ee86-671e-4c95-96f8-a8dc8861e7b7
2026-06-18 18:58:21 -07:00
gsxdsm
94a081f4f3
FN-6666: store GitHub issue closure timestamps
...
Persist GitHub source issue closure timestamps so Fixed by Fusion analytics can use exact close dates.
- add nullable sourceIssueClosedAt storage, migration coverage, serialization, and task source issue typing
- persist observed or newly closed GitHub issue closed timestamps during source issue reconciliation
- update GitHub issue analytics to prefer sourceIssueClosedAt with updatedAt fallback and cover the behavior in tests
- document the stored timestamp and publish a patch changeset
Files changed:
.changeset/fn-6666-source-issue-closed-at.md | 5 ++
docs/dashboard-guide.md | 2 +-
docs/storage.md | 2 +
packages/core/src/__tests__/db-migrate.test.ts | 94 +++++++++++++++++----
packages/core/src/__tests__/db.test.ts | 89 ++++++++++++++------
.../src/__tests__/github-issue-analytics.test.ts | 47 ++++++++++-
packages/core/src/db-migrate.ts | 5 +-
packages/core/src/db.ts | 12 ++-
packages/core/src/github-issue-analytics.ts | 28 +++----
packages/core/src/store.ts | 7 +-
packages/core/src/types.ts | 6 ++
.../__tests__/github-tracking-reconciler.test.ts | 80 +++++++++++++++++-
packages/dashboard/src/__tests__/github.test.ts | 95 +++++++++++++++++++++-
.../dashboard/src/github-tracking-reconciler.ts | 37 ++++++++-
packages/dashboard/src/github.ts | 20 ++++-
15 files changed, 457 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-6666
Fusion-Task-Lineage: 0fa8e824-14de-400e-b2a3-aa55d126e218
2026-06-18 18:48:05 -07:00
gsxdsm
36f1feef31
FN-6655: add Command Center team analytics
...
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
2026-06-18 17:52:08 -07:00
gsxdsm
317b08b227
FN-6669: price token costs from usage snapshots
...
Resolved-model task usage now contributes priced Command Center token costs without mutating model-resolution fields.
- Use token usage provider/model snapshots before legacy task model columns for cost attribution.
- Cover model, provider, node, agent, and time-series analytics with snapshot pricing tests.
- Document snapshot-first cost attribution and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6669-resolved-model-cost.md | 5 ++
docs/dashboard-guide.md | 2 +-
docs/storage.md | 2 +-
.../core/src/__tests__/token-analytics.test.ts | 82 ++++++++++++++++++++++
packages/core/src/token-analytics.ts | 9 ++-
5 files changed, 97 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6669
Fusion-Task-Lineage: 193a51f7-3328-44b2-b28b-25cd4f61d360
2026-06-18 17:14:19 -07:00
gsxdsm
ef544597da
FN-6665: group token analytics by runtime model
...
Record runtime model snapshots so token analytics group usage by the model that actually generated it.
- Add token-usage provider/model snapshot columns, store mapping, and migration support.
- Preserve actually-used session model metadata during executor/session token accumulation without changing task model overrides.
- Prefer runtime model snapshots in token provider/model aggregation and cover the behavior with regression tests and docs.
Files changed:
.changeset/fn-6665-tokens-by-model.md | 5 ++
docs/dashboard-guide.md | 2 +-
docs/storage.md | 2 +
.../core/src/__tests__/store-token-usage.test.ts | 4 ++
.../core/src/__tests__/token-analytics.test.ts | 54 ++++++++++++++++++++-
packages/core/src/db.ts | 12 ++++-
packages/core/src/store.ts | 10 +++-
packages/core/src/token-analytics.ts | 12 ++++-
packages/core/src/types.ts | 10 ++++
.../src/__tests__/session-token-usage.test.ts | 55 ++++++++++++++++++++--
packages/engine/src/executor.ts | 37 +++++++++++++--
packages/engine/src/session-token-usage.ts | 7 +++
12 files changed, 194 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6665
Fusion-Task-Lineage: e103de14-6298-4a9e-93af-4dd15798fde5
2026-06-18 16:58:11 -07:00
gsxdsm
64092ca0aa
FN-6654: add Command Center agent-run sheets
...
Surface agent heartbeat-run analytics in the Command Center activity views and exports.
- Add agent-run summary and daily aggregation to activity analytics with zero-value fallback for older databases.
- Render overview and Activity stat cards plus a daily agent-runs sparkline.
- Include agent-run values in Activity CSV exports, docs, release notes, and regression coverage.
Files changed:
.changeset/fn-6654-agent-runs-sheets.md | 5 +
docs/dashboard-guide.md | 5 +-
.../core/src/__tests__/activity-analytics.test.ts | 66 +++++++++++++
packages/core/src/activity-analytics.ts | 102 +++++++++++++++++++--
.../components/command-center/CommandCenter.tsx | 7 +-
.../__tests__/CommandCenter.test.tsx | 27 +++++-
.../command-center/areas/ActivityArea.tsx | 37 +++++++-
.../command-center/areas/__tests__/areas.test.tsx | 50 +++++++++-
.../src/__tests__/command-center-csv.test.ts | 46 +++++++++-
.../register-command-center-routes.test.ts | 14 +++
packages/dashboard/src/command-center-csv.ts | 12 ++-
11 files changed, 348 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6654
Fusion-Task-Lineage: d5c78ec1-8aef-4fdf-8a11-ee337da4cb00
2026-06-18 16:51:56 -07:00
gsxdsm
504305e1cb
FN-6653: add GitHub issue analytics to Command Center
...
Add Command Center analytics for GitHub issue activity using local task-store data.
- Aggregate filed and fixed GitHub issue counts by day and repository in core.
- Expose the GitHub analytics endpoint and CSV export fields through dashboard routes.
- Add a GitHub Command Center area with trend and repository visualizations.
- Cover analytics aggregation, API responses, CSV output, and dashboard rendering with tests.
- Document the dashboard GitHub analytics surface and add a patch changeset.
Files changed:
.../fn-6653-command-center-github-issue-stats.md | 5 +
docs/dashboard-guide.md | 2 +
.../src/__tests__/github-issue-analytics.test.ts | 242 +++++++++++++++++++++
packages/core/src/github-issue-analytics.ts | 196 +++++++++++++++++
packages/core/src/index.ts | 7 +
.../components/command-center/CommandCenter.tsx | 5 +
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 10 +
.../__tests__/CommandCenter.test.tsx | 35 ++-
.../components/command-center/areas/GithubArea.tsx | 111 ++++++++++
.../command-center/areas/__tests__/areas.test.tsx | 73 +++++++
.../register-command-center-routes.auth.test.ts | 1 +
.../register-command-center-routes.test.ts | 66 ++++++
packages/dashboard/src/command-center-csv.ts | 20 ++
.../src/routes/register-command-center-routes.ts | 25 +++
14 files changed, 796 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6653
Fusion-Task-Lineage: fe1b0484-779e-4602-a7c2-9ba41a84916e
2026-06-18 16:18:52 -07:00
gsxdsm
11c4120705
FN-6659: keep xterm font metrics symbols-free
...
Keep terminal wide-glyph fallback out of xterm's measured font path while preserving Nerd Font symbols in DOM rendering.
- Split terminal font resolution into symbols-free xterm font families and scoped glyph fallback families.
- Apply the glyph fallback CSS variable to both TerminalModal and SessionTerminal surfaces.
- Update regression coverage and the documented mobile xterm wide-glyph recurrence analysis.
Files changed:
.changeset/fn-6659-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 22 +++++++-----
.../dashboard/app/__tests__/terminal-input.test.ts | 42 +++++++++++++---------
.../dashboard/app/components/SessionTerminal.css | 8 +++++
.../dashboard/app/components/SessionTerminal.tsx | 21 +++++++++--
.../dashboard/app/components/TerminalModal.css | 8 +++++
.../dashboard/app/components/TerminalModal.tsx | 13 ++++++-
.../__tests__/SessionTerminal.mobile.test.tsx | 6 ++--
.../components/__tests__/SessionTerminal.test.tsx | 14 ++++----
.../components/__tests__/TerminalModal.test.tsx | 9 +++--
.../utils/__tests__/terminalPreferences.test.ts | 2 +-
.../dashboard/app/utils/terminalPreferences.ts | 16 +++++----
12 files changed, 117 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-6659
Fusion-Task-Lineage: e29a709d-9d9d-4a90-9616-8f08c41b126d
2026-06-18 15:59:34 -07:00
gsxdsm
f41732d04b
FN-6652: add live token usage timeline
...
Adds live token-over-time analytics and charting to Command Center.
- Add optional token analytics time-series buckets with hour, day, and week granularity.
- Surface live-polled token series data through the Command Center tokens API.
- Render an animated, reduced-motion-safe tokens-over-time chart with granularity controls.
- Cover analytics bucketing, API query parsing, and Command Center chart behavior with tests.
Files changed:
.changeset/fn-6652-token-usage-over-time.md | 5 +
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/token-analytics.test.ts | 76 ++++++++++++
packages/core/src/index.ts | 2 +
packages/core/src/token-analytics.ts | 65 ++++++++++-
.../components/command-center/CommandCenter.css | 24 +++-
.../components/command-center/CommandCenter.tsx | 12 +-
.../__tests__/CommandCenter.test.tsx | 39 ++++++-
.../command-center/__tests__/charts.test.tsx | 44 +++++++
.../components/command-center/areas/TokensArea.tsx | 46 +++++++-
.../command-center/areas/__tests__/areas.test.tsx | 128 ++++++++++++++++++++-
.../app/components/command-center/areas/areas.css | 57 +++++++++
.../command-center/areas/useAnalyticsArea.ts | 26 ++++-
.../command-center/charts/TokenSeriesChart.tsx | 52 +++++++++
.../components/command-center/charts/charts.css | 76 ++++++++++++
.../register-command-center-routes.test.ts | 38 +++++-
.../src/routes/register-command-center-routes.ts | 15 +++
17 files changed, 691 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6652
Fusion-Task-Lineage: ebfd1b5d-5b6c-48ef-bce3-f18bbc1605fa
2026-06-18 15:27:57 -07:00
gsxdsm
662a09b631
FN-6656: add live activity trend charts
...
Add live Command Center activity line charts with safe animated rendering.
- Replace activity sparklines with reusable SVG line charts for messages, agents, nodes, and throughput trends.
- Refresh activity analytics on a bounded interval while preserving existing data during revalidation.
- Add zero/NaN-safe chart geometry, reduced-motion styling, tests, docs, and a patch changeset.
Files changed:
.../fn-6656-command-center-activity-line-charts.md | 5 +
docs/dashboard-guide.md | 2 +-
.../command-center/__tests__/charts.test.tsx | 41 ++++++++
.../command-center/areas/ActivityArea.tsx | 62 ++++++++---
.../command-center/areas/__tests__/areas.test.tsx | 115 ++++++++++++++++++++-
.../components/command-center/charts/LineChart.tsx | 108 +++++++++++++++++++
.../components/command-center/charts/charts.css | 62 +++++++++++
7 files changed, 381 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-6656
Fusion-Task-Lineage: 301de13a-91c0-425d-b743-8688fed48d41
2026-06-18 14:51:47 -07:00
gsxdsm
2367918fdf
FN-6650: add Overview analytics charts
...
Add graph-rich Overview visuals to the Command Center using existing analytics data.
- Add tokens-by-model, tool-category, and daily activity chart cards to the Overview tab.
- Style the chart section with responsive dashboard-token layouts and reduced-motion safeguards.
- Cover populated, partial, edge-case, and mobile-scroll chart rendering in tests.
- Document the Overview charts and add a patch changeset for the published CLI package.
Files changed:
.../fn-6650-command-center-overview-charts.md | 5 +
docs/dashboard-guide.md | 2 +-
.../components/command-center/CommandCenter.css | 111 +++++++++++++++++++++
.../components/command-center/CommandCenter.tsx | 73 +++++++++++++-
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 73 +++++++++++++-
.../__tests__/CommandCenter.test.tsx | 58 +++++++++++
6 files changed, 313 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6650
Fusion-Task-Lineage: 227f5809-ed71-42fb-8847-b137dbef6ac7
2026-06-18 14:38:07 -07:00
gsxdsm
b6823af049
fix(FN-6648): treat completed in-review tasks as benign despite lingering non-user paused flag
...
The paused-after-completion graceful-exit path finalizes a fully completed task to in-review while leaving a non-user paused:true flag set (handoffToReview/applyInReviewEnterEffects clear status/blockedBy but not paused). handleGraphFailure's completion-finalized guards required paused!==true, so once the volatile completion markers were lost (execute() re-entry deletes completionFinalizedTaskIds; teardown overwrites provenance to hard-cancel) the trailing graph failure was misclassified as an operator-action pause abort and the completed task was parked status:failed (FN-6638 recurrence). Drop the paused!==true requirement from alreadyFinalizedToReview and suppressFinalizedCompletionAbort, and gate genuinePauseAbort's bare paused clause on the completion suppression. Genuine userPaused/global-pause/in-progress tasks are unaffected.
Fusion-Task-Id: FN-6648
2026-06-18 13:21:59 -07:00
gsxdsm
16b6e5decb
FN-6638: stabilize mobile terminal font metrics
...
Stabilize terminal font metric remeasurement across mobile and attach surfaces.
- Add a shared terminal font metric wait helper that falls back from full font stacks to concrete individual font families before remeasurement.
- Reapply font options, refit, resize, and refresh SessionTerminal after font metrics settle to cover attached CLI terminals.
- Pin text-size adjustment on xterm measurement subtrees so mobile WebKit cannot inflate ASCII cell metrics.
- Extend terminal preference and rendering tests, documentation, and changeset coverage for the recurrence.
Files changed:
.changeset/fn-6638-terminal-render.md | 5 +
.../xterm-async-font-remeasure-paste-dedupe.md | 20 +++-
.../dashboard/app/__tests__/terminal-input.test.ts | 26 +++++
.../dashboard/app/components/SessionTerminal.css | 10 ++
.../dashboard/app/components/SessionTerminal.tsx | 29 ++++++
.../dashboard/app/components/TerminalModal.css | 10 ++
.../dashboard/app/components/TerminalModal.tsx | 24 ++---
.../components/__tests__/SessionTerminal.test.tsx | 41 +++++++-
.../components/__tests__/TerminalModal.test.tsx | 38 ++++++++
.../utils/__tests__/terminalPreferences.test.ts | 29 +++++-
.../dashboard/app/utils/terminalPreferences.ts | 107 +++++++++++++++++++++
11 files changed, 319 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6638
Fusion-Task-Lineage: edbf071d-a0c1-4955-95ff-83e6996f4674
2026-06-18 13:19:43 -07:00
gsxdsm
3b32b535d0
FN-6644: preserve finalized graph aborts
...
Keep no-commit completion handoffs in review when teardown reclassifies their abort provenance.
- Track completed finalize-to-review handoffs with a durable executor marker.
- Suppress false operator-action graph failures after hard-cancel teardown overwrites completion-finalize provenance.
- Cover preserved user/global pause, merge-seam, hard-cancel, terminal, and redispatch cleanup behavior.
- Document the finalized completion abort exception and add a patch changeset.
Files changed:
.changeset/fn-6644-finalize-to-review-abort-overwrite.md | 5 +
docs/architecture.md | 2 +-
packages/engine/src/__tests__/executor-recovery.test.ts | 300 +++++++++++++++++++++
packages/engine/src/executor.ts | 40 ++-
4 files changed, 342 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6644
Fusion-Task-Lineage: 569fa84f-2cbe-45ae-b12c-874dd45cea73
2026-06-18 11:18:03 -07:00
gsxdsm
0ed46d9007
FN-6640: expose planning task document tools
...
Expose planning-lane task document tools with chat-style explicit task targeting.
- Add task document read/write tools to both planning agent creation paths.
- Cover non-streaming and streaming planning tool assembly plus explicit task_id document behavior.
- Update agent docs and generated skill tool references for chat/planning parity.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6640-planning-document-tools.md | 5 +
docs/agents.md | 2 +-
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../planning-document-tools-exposure.test.ts | 139 +++++++++++++++++++++
packages/dashboard/src/planning.ts | 7 ++
5 files changed, 154 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6640
Fusion-Task-Lineage: 6a9225cf-fbe7-4a87-8927-e01355a38e92
2026-06-18 07:23:02 -07:00
gsxdsm
b1a2aeebf2
FN-6635: expose task document tools to chat agents
...
Expose task document read/write tools to dashboard chat agents with explicit task targeting.
- Add chat-specific fn_task_document_write/read factories that require task_id and reuse task document read behavior.
- Wire dashboard chat custom tools to include task document tools when a scoped task store is available.
- Cover chat document tool exposure and explicit-task document operations with engine and dashboard tests.
- Document chat availability and add a published package changeset.
Files changed:
.changeset/fn-6635-chat-task-documents.md | 5 +
docs/agents.md | 1 +
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 78 +++++++++++
packages/dashboard/src/chat.ts | 15 ++-
.../src/__tests__/agent-document-tools.test.ts | 108 +++++++++++++++
packages/engine/src/agent-tools.ts | 145 ++++++++++++++++-----
packages/engine/src/index.ts | 3 +
8 files changed, 318 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-6635
Fusion-Task-Lineage: 25e701d4-7670-470b-9dea-df49884f7b21
2026-06-18 07:06:00 -07:00