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
deb1717812
FN-6667: add real iOS Safari acceptance harness
...
Add a real iOS Safari acceptance harness and documentation for terminal verification gates.
- Add an `ios:acceptance` script with check, dry-run, and real WebDriver session modes.
- Support BrowserStack, Sauce Labs, and LambdaTest credential discovery with redacted capability planning.
- Document the real-iOS provisioning workflow and link it from testing docs.
- Cover credential selection, URL validation, capability shaping, and CLI behavior with node tests.
Files changed:
docs/README.md | 1 +
docs/ios-acceptance.md | 144 ++++++++++++++++
docs/testing.md | 3 +
package.json | 1 +
scripts/__tests__/ios-acceptance.test.mjs | 131 +++++++++++++++
scripts/ios-acceptance.mjs | 264 ++++++++++++++++++++++++++++++
scripts/lib/ios-acceptance.mjs | 243 +++++++++++++++++++++++++++
7 files changed, 787 insertions(+)
Fusion-Task-Id: FN-6667
Fusion-Task-Lineage: 9eee6dbe-646e-4fff-a1da-fd59cdd2cb59
2026-06-18 16:47:09 -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
e14f33568c
FN-6651: fix Command Center in-progress count
...
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
2026-06-18 14:59:26 -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
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
a6a3260fa3
FN-6647: preserve completed handoffs after graph aborts
...
Persist completed workflow handoffs so trailing graph aborts stay benign after executor cleanup.
- Derive finalized completion state from persisted task rows when volatile executor markers are gone.
- Keep genuine pause, global-pause, merge-seam, incomplete, and failed/error rows on their existing failure paths.
- Expand executor recovery tests for no-commit completions, terminal rows, stale marker cleanup, and durable classifier controls.
- Document the persisted completion-finalize classifier contract.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/executor-recovery.test.ts | 164 ++++++++++++++++++---
packages/engine/src/executor.ts | 18 ++-
3 files changed, 160 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6647
Fusion-Task-Lineage: 71605a4c-4077-4219-bfa9-44bba2d8372c
2026-06-18 12:36:48 -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
b480699e06
FN-6642: rescue dashboard flaky test coverage
...
Rescue the dashboard quarantine candidates by restoring stable shared mocks and refreshing quarantine evidence.
- Remove QuickEntryBox and chat-routes from the dashboard quarantine config and ledger.
- Add iterable chat task document tool mocks across dashboard session test helpers.
- Refresh the test velocity baseline and history with zero quarantined tests.
Files changed:
docs/test-velocity-baseline.md | 20 ++--
.../src/__tests__/session-error-recovery.test.ts | 2 +
.../session-persistence-roundtrip.test.ts | 2 +
.../src/__tests__/session-reconnect.test.ts | 2 +
.../src/__tests__/session-resume-history.test.ts | 2 +
packages/dashboard/src/test/mockCoreEngine.ts | 6 ++
packages/dashboard/vitest.config.ts | 13 ++-
scripts/lib/test-quarantine.json | 10 --
scripts/test-velocity-history.json | 111 +++++++++++++++++++++
9 files changed, 144 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6642
Fusion-Task-Lineage: 76e51d76-ce9a-4e68-9aa0-ad83cdf351a9
2026-06-18 09:16:32 -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
gsxdsm
3d28b3b212
FN-6632: preserve reattached chat stream chunks
...
Seed streaming accumulators from durable in-flight snapshots so reattached chat bubbles keep prior chunks.
- Add initial text, thinking, and tool-call snapshots to chat stream handlers.
- Wire main chat and QuickChat reattach flows to seed handler accumulators before replayed deltas arrive.
- Cover text, thinking, and tool-call continuation across shared handler, main chat, and QuickChat tests.
- Document the reattach accumulator invariant and add a published package changeset.
Files changed:
.changeset/fn-6632-chat-stream-reattach.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../__tests__/createChatStreamHandlers.test.ts | 63 +++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 182 +++++++++++++++++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 147 +++++++++++++++++
.../app/hooks/createChatStreamHandlers.ts | 19 ++-
packages/dashboard/app/hooks/useChat.ts | 7 +
packages/dashboard/app/hooks/useQuickChat.ts | 7 +
9 files changed, 429 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6632
Fusion-Task-Lineage: e2f2eb42-08aa-4bae-a79f-60cfc9fb03d4
2026-06-18 06:36:03 -07:00
gsxdsm
58a34e9cf0
FN-6631: fix Command Center completion gauges
...
Fix Command Center completion analytics and add futuristic activity visualizations.
- Compute SDLC completion rate as a triage cohort conversion capped between zero and one.
- Add a radial completion gauge plus a live activity strip with compact throughput sparkline styling.
- Cover the analytics and chart behavior with targeted tests, docs, and a patch changeset.
Files changed:
.changeset/fn-6631-command-center-rate-gauge.md | 5 +
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/activity-analytics.test.ts | 32 +++++-
packages/core/src/activity-analytics.ts | 23 +++-
.../components/command-center/CommandCenter.css | 128 ++++++++++++++++++++-
.../components/command-center/CommandCenter.tsx | 45 +++++++-
.../app/components/command-center/SdlcFunnel.tsx | 17 ++-
.../__tests__/CommandCenter.test.tsx | 12 +-
.../command-center/__tests__/SdlcFunnel.test.tsx | 2 +
.../command-center/__tests__/charts.test.tsx | 26 ++++-
.../command-center/charts/RadialGauge.tsx | 50 ++++++++
.../components/command-center/charts/charts.css | 83 +++++++++++++
.../vitest.config.ts | 2 +
scripts/lib/test-quarantine.json | 8 +-
14 files changed, 402 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-6631
Fusion-Task-Lineage: 0d09f18a-5f93-4dc8-8786-889f32eb63e8
2026-06-18 06:25:08 -07:00
gsxdsm
316968f0d3
FN-6628: Document Command Center dashboard view
...
Document the Command Center dashboard surface and its lazy-loaded view inventory entry.
- Add Command Center navigation, feature, and data-state guidance to the dashboard guide.
- Update the lazy-loaded heavy views count and include CommandCenter in the inventory.
Files changed:
docs/dashboard-guide.md | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6628
Fusion-Task-Lineage: e4a25b2d-919e-443f-b17c-c1f64f96d8ed
2026-06-18 01:50:32 -07:00
gsxdsm
b6ac5f2e51
FN-6608: bound engine verification runs
...
Add durable engine-level guardrails for verification command timeouts.
- Add project-level verificationCommandTimeoutMs settings plumbing and docs.
- Enforce configured verification budgets and hard caps in executor and merger verification paths.
- Detect marathon verification commands, soft-cap them by default, and require allowFullSuite for explicit full-suite runs.
- Cover timeout defaults, marathon detection, and guidance updates with engine/core tests.
Files changed:
.changeset/fn-6608-verification-bound.md | 5 +
docs/settings-reference.md | 1 +
docs/testing.md | 2 +
.../src/__tests__/settings-consistency.test.ts | 5 +
packages/core/src/agent-prompts.ts | 6 +-
packages/core/src/settings-schema.ts | 7 +-
packages/core/src/types.ts | 6 +
.../engine/src/__tests__/executor-core.test.ts | 3 +
.../src/__tests__/run-verification-command.test.ts | 176 ++++++++++++++++++++-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/merger.ts | 9 +-
packages/engine/src/run-verification-tool.ts | 142 +++++++++++++++--
packages/engine/src/verification-utils.ts | 13 +-
13 files changed, 360 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-6608
Fusion-Task-Lineage: c593a96d-eb8b-492c-82c7-8943c239f588
2026-06-18 01:27:09 -07:00
gsxdsm
d0be3e462d
FN-6610: harden engine test isolation recovery
...
Harden shared test isolation seams so engine tests survive mid-run cleanup.
- Recreate owned worker roots, HOME directories, and cwd before child-process launches.
- Add regression coverage for tmpdir redirect, HOME, cwd, SQLite, and git config recovery.
- Revalidate worktree database scratch directories before direct SQLite opens and document the rescue pattern.
Files changed:
docs/testing.md | 2 +
packages/core/src/__test-utils__/vitest-setup.ts | 92 ++++++++++++++++++----
.../__tests__/vitest-setup-tmp-redirect.test.ts | 33 ++++++++
.../src/__tests__/executor-step-session.test.ts | 6 +-
.../src/__tests__/worktree-db-hydrate.test.ts | 22 +++++-
5 files changed, 135 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6610
Fusion-Task-Lineage: 18233ee2-1dfe-4b0d-bd12-e4f5b7f9cc29
2026-06-18 01:20:03 -07:00
gsxdsm
4315cd01c6
FN-6598: suppress stuck detection during verification
...
Treat bounded verification subprocesses as healthy activity so progressing tasks avoid false stuck-loop recovery.
- Bracket fn_run_verification commands with stuck-detector start/end signals.
- Suppress loop and no-progress churn while verification is active, with timeout-bounded cleanup.
- Add regression coverage for verification heartbeats, compact-and-resume recovery, and no-progress churn behavior.
- Document verification suppression in reliability guidance.
Files changed:
docs/architecture.md | 5 +-
docs/testing.md | 1 +
.../src/__tests__/executor-step-session.test.ts | 10 +-
.../non-progress-churn.test.ts | 55 +++++++++
.../src/__tests__/run-verification-command.test.ts | 45 ++++++-
.../src/__tests__/stuck-task-detector.test.ts | 136 +++++++++++++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/run-verification-tool.ts | 33 +++--
packages/engine/src/stuck-task-detector.ts | 69 +++++++++++
9 files changed, 341 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6598
Fusion-Task-Lineage: 5449b413-c500-46aa-b46d-cf94c2d88710
2026-06-18 00:39:01 -07:00
gsxdsm
98ccf8a293
FN-6625: classify completion finalization aborts
...
Prevent completed no-commit executions that already advanced to review from being re-parked as pause-abort failures.
- Add completion-finalize pause-abort provenance and exclude it from genuine pause handling after review handoff.
- Mark paused-after-completion finalization paths with the new provenance before handing tasks to review.
- Cover the finalize-to-review abort recovery path with executor regression tests and document the lifecycle exception.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6625-finalize-to-review-abort.md | 5 +
docs/architecture.md | 2 +-
.../engine/src/__tests__/executor-recovery.test.ts | 158 ++++++++++++++++++++-
packages/engine/src/executor.ts | 26 +++-
4 files changed, 185 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6625
Fusion-Task-Lineage: 728f6fe5-4c27-4597-b17e-e16ff97b9277
2026-06-18 00:01:32 -07:00
gsxdsm
cdadac1662
FN-6622: wire dashboard interviews to session skills
...
Dashboard interview lanes now request the same role-fallback and enabled plugin skills as agent-acting sessions.
- Add skillSelection to agent onboarding and milestone/slice interview agent creation.
- Thread the plugin runner through mission interview and onboarding routes.
- Cover enabled and disabled plugin skill selection behavior in dashboard tests.
- Document the newly covered dashboard interview lanes and add a minor changeset.
Files changed:
.../fn-6622-session-skill-interview-lanes.md | 5 ++
docs/agents.md | 2 +-
.../src/__tests__/agent-onboarding.test.ts | 68 ++++++++++++++++++++++
.../__tests__/milestone-slice-interview.test.ts | 66 +++++++++++++++++++++
packages/dashboard/src/agent-onboarding.ts | 10 +++-
.../dashboard/src/milestone-slice-interview.ts | 39 ++++++++++---
packages/dashboard/src/mission-routes.ts | 10 ++--
...gister-agent-import-export-generation-routes.ts | 3 +-
8 files changed, 187 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6622
Fusion-Task-Lineage: 5e3dded1-1866-4b76-8302-253e5b3867fa
2026-06-17 22:21:34 -07:00
gsxdsm
0453a65bf1
FN-6613: inject skills into agent session lanes
...
Ensure every agent-acting session lane requests available agent and plugin skills.\n\n- Add skill selection context to planning, mission interview, workflow design, memory insight, and cron automation sessions.\n- Thread plugin runners through dashboard session creation, retry, reconnect, and route registration paths.\n- Cover skill injection behavior with dashboard and cron runner regression tests.\n- Document which agent session lanes request skills and which utility-only lanes remain exempt.\n- Add a minor changeset for the published CLI package.\n\nFiles changed:\n .changeset/fn-6613-session-skill-lanes.md | 5 +\n docs/agents.md | 1 +\n .../src/__tests__/mission-interview.test.ts | 55 ++++++\n .../src/__tests__/planning-skill-selection.test.ts | 130 +++++++++++++\n .../src/__tests__/session-error-recovery.test.ts | 6 +\n .../session-persistence-roundtrip.test.ts | 6 +\n .../src/__tests__/session-reconnect.test.ts | 6 +\n .../src/__tests__/session-resume-history.test.ts | 6 +\n packages/dashboard/src/mission-interview.ts | 23 ++-\n packages/dashboard/src/mission-routes.ts | 4 +-\n packages/dashboard/src/planning.ts | 32 +++-\n .../register-settings-memory-worktrunk.test.ts | 203 ++++++++++++++++++++-\n .../routes/__tests__/workflow-design-route.test.ts | 56 +++++-\n .../src/routes/register-integrated-routers.ts | 2 +-\n .../src/routes/register-planning-subtask-routes.ts | 5 +\n .../src/routes/register-settings-memory-routes.ts | 33 +++-\n .../src/routes/register-workflow-routes.ts | 16 +-\n packages/dashboard/src/test/mockCoreEngine.ts | 9 +\n packages/engine/src/__tests__/cron-runner.test.ts | 17 ++\n packages/engine/src/cron-runner.ts | 7 +\n 20 files changed, 599 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6613
Fusion-Task-Lineage: 985fa9fb-0381-4abf-930f-b547a475c4ed
2026-06-17 21:12:53 -07:00
gsxdsm
0767d1bf81
FN-6616: generalize bundled plugin freshness guard
...
Generalize stale-artifact detection so all staged bundled CLI plugins are checked consistently.
- Add reusable bundled plugin freshness helpers and coverage for missing, fresh, and stale artifact cases.
- Centralize staged bundled plugin id lists for runtime bundling and staged raw-src plugin checks.
- Assert tsup output leaves every staged bundled plugin loadable and document the broader freshness guard.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6616-bundled-plugin-freshness.md | 5 +
docs/PLUGIN_AUTHORING.md | 8 ++
.../__tests__/bundled-plugin-freshness.test.ts | 75 +++++++++++++
.../cli/src/plugins/bundled-plugin-freshness.ts | 118 +++++++++++++++++++++
.../cli/src/plugins/staged-bundled-plugin-ids.ts | 22 ++++
packages/cli/tsup.config.ts | 41 ++++---
6 files changed, 257 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-6616
Fusion-Task-Lineage: 3804827b-8f64-4268-a7bb-31a4b4ca9a87
2026-06-17 20:45:32 -07:00
gsxdsm
fbd9ad2f3b
FN-6617: add weekly test velocity baseline
...
Adds a report-only weekly baseline for test feedback-loop velocity.
- Add a test:velocity script that measures gate, boot smoke, and changed-only test durations and regenerates a #leads-ready report.
- Track committed baseline history, slowest-file summaries, and quarantine deletion-clock counts.
- Document the weekly refresh workflow in testing guidance and agent instructions.
Files changed:
AGENTS.md | 4 +-
docs/test-velocity-baseline.md | 92 ++++++
docs/testing.md | 18 ++
package.json | 1 +
scripts/__tests__/test-velocity-baseline.test.mjs | 121 ++++++++
scripts/test-velocity-baseline.mjs | 339 ++++++++++++++++++++++
scripts/test-velocity-history.json | 231 +++++++++++++++
7 files changed, 805 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6617
Fusion-Task-Lineage: 50a07298-74ec-4481-b288-4fadb7d3d29b
2026-06-17 20:09:05 -07:00
gsxdsm
f150a176b4
FN-6612: add test feedback-loop baseline reporting
...
Add a weekly baseline workflow for tracking test feedback-loop speed and flake pressure.
- Add a stdlib-only script to record gate and pnpm test timings alongside slowest test files and quarantine counts.
- Publish generated markdown and JSON baseline artifacts for #leads reporting.
- Document the weekly refresh process and add package scripts plus coverage for the baseline helper.
Files changed:
docs/test-feedback-loop-baseline.md | 48 ++++++
docs/test-feedback-loop-baselines.json | 122 ++++++++++++++
docs/testing.md | 12 ++
package.json | 1 +
scripts/__tests__/test-feedback-baseline.test.mjs | 90 ++++++++++
scripts/test-feedback-baseline.mjs | 192 ++++++++++++++++++++++
6 files changed, 465 insertions(+)
Fusion-Task-Id: FN-6612
Fusion-Task-Lineage: 72bdc070-50e3-4e6b-a07d-3b8aeb9c2e92
2026-06-17 19:25:06 -07:00
gsxdsm
c4878514f9
FN-6600: harden core worker-root teardown retries
...
Harden the core Vitest worker-root cleanup path and rescue the related broad-suite quarantines.
- Increase bounded retries for transient ENOTEMPTY/EBUSY worker-root cleanup races.
- Add teardown coverage proving transient ENOTEMPTY retries remove the worker root.
- Remove rescued core quarantine entries from the ledger and Vitest exclude list.
- Document the FN-6600 core cleanup rescue pattern in testing guidance.
Files changed:
docs/testing.md | 2 ++
.../core/src/__test-utils__/vitest-teardown.ts | 7 +++++-
.../vitest-teardown-worker-root-cleanup.test.ts | 27 ++++++++++++++++++++++
packages/core/vitest.config.ts | 6 +++--
scripts/lib/test-quarantine.json | 15 ------------
5 files changed, 39 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6600
Fusion-Task-Lineage: 107fb5cf-82c8-4e65-915d-0ef69725369b
2026-06-17 19:19:05 -07:00
gsxdsm
7f4f611367
FN-6611: clarify engineer backlog auto-claim routing
...
Clarifies why engineer agents see but do not auto-claim backlog tasks without opt-in.
- Surface actionable project and per-agent opt-in guidance in no-task heartbeat prompts.
- Include eligible backlog candidates in the blocked engineer guidance so routing remains visible.
- Cover disabled engineer auto-claim scenarios with prompt assertions.
- Update agent and settings docs with the visible configuration paths.
Files changed:
docs/agents.md | 2 +-
docs/settings-reference.md | 2 +-
.../engine/src/__tests__/heartbeat-executor.test.ts | 11 +++++++++--
packages/engine/src/agent-heartbeat.ts | 19 ++++++++++++++++---
4 files changed, 27 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6611
Fusion-Task-Lineage: ffcafc50-1664-4807-826c-cccf68d31012
2026-06-17 19:11:31 -07:00
gsxdsm
1bd8f6de6f
FN-6603: fix mobile terminal font measurement
...
Stabilize terminal glyph measurement by keeping monospace text fonts ahead of symbols fallbacks.
- Move the Fusion Terminal Nerd Font Symbols face behind real monospace fonts in the shared xterm font stack and terminal presets.
- Document the mobile WebKit cell-measurement hazard and keep SessionTerminal aligned with the shared preference path.
- Add regression coverage for mobile wide-glyph spacing, preference presets, and terminal input rendering.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-6603-terminal-render.md | 5 +++
.../xterm-symbols-nerd-font-unicode-range.md | 17 ++++++---
.../dashboard/app/__tests__/terminal-input.test.ts | 42 ++++++++++++++++++++--
.../dashboard/app/components/SessionTerminal.tsx | 3 ++
.../dashboard/app/components/TerminalModal.css | 5 ++-
.../__tests__/SessionTerminal.mobile.test.tsx | 22 +++++++++++-
.../components/__tests__/SessionTerminal.test.tsx | 23 ++++++++++--
.../dashboard/app/utils/terminalPreferences.ts | 14 +++++---
8 files changed, 115 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6603
Fusion-Task-Lineage: b5d90064-1bfd-4da9-8d89-c95cf6fcec0c
2026-06-17 18:48:53 -07:00
gsxdsm
19aac38c51
FN-6605: load chat skill slash commands
...
Load dashboard chat slash-command skill requests into model-loop sessions.
- Parse /skill:{name} tokens in main chat, QuickChat, and room responders.
- Merge typed skill requests with existing agent and plugin skill selection while preserving normal filters.
- Strip slash-command tokens from model prompts without mutating persisted chat history.
- Cover slash-command parsing, deduplication, prompt stripping, and room responder skill selection.
- Document dashboard chat skill command behavior and add a published package changeset.
Files changed:
.changeset/fn-6605-chat-skill-slash-command.md | 5 +
docs/agents.md | 1 +
docs/dashboard-guide.md | 1 +
.../dashboard/src/__tests__/chat-manager.test.ts | 158 +++++++++++++++++++++
.../dashboard/src/__tests__/chat.rooms.test.ts | 46 ++++++
packages/dashboard/src/chat.ts | 100 ++++++++++++-
6 files changed, 307 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6605
Fusion-Task-Lineage: 4ad2e015-30a5-4608-b69c-e42e46166f0e
2026-06-17 18:37:01 -07:00
gsxdsm
5b9ff047d3
FN-6599: preserve chat thread during streaming attach
...
Keep existing chat history visible when attaching to an in-flight streaming response.
- Commit attach-triggered message loads for the streaming session before active session refs settle.
- Avoid clearing cached main chat messages on attach cache misses while fetching prior thread history.
- Add regression coverage for main chat and QuickChat streaming thread visibility, plus quarantine ledger updates.
Files changed:
.changeset/fn-6599-chat-streaming-thread.md | 5 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 2 +-
packages/core/vitest.config.ts | 1 +
.../__tests__/ChatView.streaming-thread.test.tsx | 168 +++++++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 51 +++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 39 +++++
packages/dashboard/app/hooks/useChat.ts | 37 +++--
packages/dashboard/app/hooks/useQuickChat.ts | 27 ++--
scripts/lib/test-quarantine.json | 5 +
10 files changed, 307 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6599
Fusion-Task-Lineage: b2c94391-6a5b-4048-836d-e4bc56e16786
2026-06-17 17:49:20 -07:00
gsxdsm
01b80db603
FN-6589: add structured ask-question chat tool
...
Add a native chat-agent tool for presenting structured questions to dashboard users.
- Register `fn_ask_question` for dashboard chat sessions with prompt guidance to wait for user replies.
- Reuse the existing structured question card parser by recognizing the new tool name.
- Validate ask-question parameters in engine tooling and cover chat/parser behavior with tests.
- Document the dashboard chat question flow and add a patch changeset.
Files changed:
.changeset/fn-6589-chat-ask-question.md | 5 ++
docs/dashboard-guide.md | 3 +-
.../utils/__tests__/parseQuestionToolCall.test.ts | 19 +++++
.../dashboard/app/utils/parseQuestionToolCall.ts | 3 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 10 ++-
packages/dashboard/src/chat.ts | 10 ++-
.../src/__tests__/agent-tools-ask-question.test.ts | 51 ++++++++++++
packages/engine/src/agent-tools.ts | 94 ++++++++++++++++++++++
packages/engine/src/index.ts | 2 +
9 files changed, 190 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6589
Fusion-Task-Lineage: 3f416010-ed2f-40b3-a899-7a9f4a6ed265
2026-06-17 16:53:29 -07:00
gsxdsm
c261217ac1
FN-6597: add task chat timestamps
...
Show compact relative timestamps in task chat without adding live polling.
- Add a shared relative-time formatter for chat timestamps.
- Render muted timestamps on user message headers and agent group metadata.
- Cover timestamp formatting and chat header rendering with dashboard tests.
- Document task chat timestamp behavior in the dashboard guide.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.css | 19 +++++
packages/dashboard/app/components/TaskChatTab.tsx | 23 ++++-
.../app/components/__tests__/TaskChatTab.test.tsx | 97 +++++++++++++++++++++-
.../app/utils/__tests__/relativeTimeAgo.test.ts | 32 +++++++
packages/dashboard/app/utils/relativeTimeAgo.ts | 23 +++++
6 files changed, 192 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6597
Fusion-Task-Lineage: 52c54a9e-6d00-4df1-a454-2218a935ebda
2026-06-17 16:21:54 -07:00
gsxdsm
403bd9d716
FN-6582: enforce workflow gate artifact verdicts
...
Enforce custom workflow terminal gates for required artifacts and malformed pre-merge verdicts.
- Add runtime validation that declared workflow artifacts exist before reporting workflow success.
- Treat malformed pre-merge gate output as a blocking failure instead of a skipped success.
- Cover required-artifact and malformed-verdict gate behavior with focused engine tests.
- Document the required-artifact gate and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6582-workflow-gates.md | 5 +
docs/workflow-steps.md | 5 +-
.../workflow-malformed-verdict-gate.test.ts | 114 +++++++++++++++++++
.../workflow-required-artifact-gate.test.ts | 123 +++++++++++++++++++++
packages/engine/src/executor.ts | 63 +++++++----
packages/engine/src/workflow-task-runtime.ts | 41 ++++++-
6 files changed, 326 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6582
Fusion-Task-Lineage: 6f59fc33-dd35-4e28-bf6b-85b709c77453
2026-06-17 14:52:56 -07:00
gsxdsm
c94fb194c4
FN-6584: keep title summarizer out of workflow lanes
...
Clarify that title summarization remains project/global-scoped instead of a workflow model lane.
- Remove title summarizer entries from the workflow model lane catalog and display grouping.
- Add regression coverage for dashboard workflow settings and core built-in workflow setting parity.
- Update settings documentation to point title summarizer configuration at Project Models.
Files changed:
docs/settings-reference.md | 29 +++++++++++++--------
.../core/src/__tests__/settings-parity.test.ts | 6 +++++
.../app/components/WorkflowSettingsPanel.tsx | 22 +++++-----------
.../__tests__/WorkflowSettingsPanel.test.tsx | 30 +++++++++++++++++++++-
.../__tests__/workflow-setting-display.test.ts | 24 +++++++++++++++++
.../app/components/workflow-setting-display.ts | 12 +++------
6 files changed, 87 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-6584
Fusion-Task-Lineage: 2246213d-8775-4074-ae8e-04b9afe28f96
2026-06-17 14:52:56 -07:00
gsxdsm
484f016334
FN-6576: align chat send touch dedupe
...
Align the direct and room chat mobile send controls around the same pointer/touch dedupe contract.
- Add a per-gesture touch action latch separate from the trailing synthetic-click latch.
- Apply the two-latch handling to direct send, room send, and send-to-stop transitions.
- Cover repeated iOS taps, pointer/touch/click dedupe, and stop-button swap behavior in ChatView tests.
- Document the shared mobile send dedupe behavior for direct and room chat.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.tsx | 70 ++++++++---
.../components/__tests__/ChatView.rooms.test.tsx | 30 +++++
.../app/components/__tests__/ChatView.test.tsx | 132 +++++++++++++++++++++
4 files changed, 215 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6576
Fusion-Task-Lineage: b8ef427f-99f0-48d8-8cb8-d72ac352bdeb
2026-06-17 14:52:55 -07:00
gsxdsm
05fe6e5e0c
FN-6575: make CE stage gating opt-out
...
Make Compound Engineering stage launch gating opt-out so registered stages like debug remain launchable by default.
- Replace enabledStages settings schema with disabledStages defaults and docs.
- Derive launchable stages from the live registry minus explicit disabled opt-outs.
- Update orchestrator gating, exports, tests, and plugin docs for the new setting.
- Add a patch changeset for the Compound Engineering plugin behavior fix.
Files changed:
.changeset/fn-6575-ce-stage-optout.md | 5 ++++
docs/plugins/compound-engineering.md | 4 +--
.../fusion-plugin-compound-engineering/README.md | 9 ++++--
.../manifest.json | 8 +++---
.../src/__tests__/manifest.test.ts | 2 +-
.../src/__tests__/settings.test.ts | 33 +++++++++++++---------
.../src/__tests__/skill-wiring.test.ts | 21 +++++++++++++-
.../src/index.ts | 1 +
.../src/session/orchestrator.ts | 9 ++++--
.../src/settings.ts | 33 ++++++++++++++--------
10 files changed, 87 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6575
Fusion-Task-Lineage: 903732d7-4ffb-4c8f-ba3e-e517d88bc644
2026-06-17 14:52:55 -07:00
gsxdsm
8037ef15a3
Merge main into feature/factory-view: reconcile lazy-view inventory to 23
...
Resolves conflicts in the lazy-loaded heavy-views inventory. main independently
grew the curated list to 22 (adding AppModals lazy modals); this branch added the
Command Center view. Combined count is 23 — updated the AGENTS.md prose/inventory
and the lazy-loaded-views-docs test contract (count + length assertions) to 23,
keeping main's richer "App-level and AppModals" wording.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 11:46:31 -07:00
gsxdsm
a84a8e1793
FN-6570: guard task list formatting fallback
...
Prevent fn_task_list surfaces from crashing when the runtime core namespace lacks the clamp export.
- Add a shared defensive task-list formatter with a bounded fallback clamp.
- Route CLI, dashboard planning-board, and engine triage fn_task_list output through the formatter.
- Cover missing, throwing, and non-string clamp behavior in core and CLI tests.
- Document the resilient task-list formatting behavior and add a patch changeset.
Files changed:
.changeset/fn-6570-task-list-resolve-fix.md | 5 ++
docs/cli-reference.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 57 +++++++++++++++++++++-
packages/cli/src/extension.ts | 8 ++-
.../core/src/__tests__/task-list-format.test.ts | 49 ++++++++++++++++++-
packages/core/src/index.ts | 2 +-
packages/core/src/task-list-format.ts | 35 +++++++++++++
packages/dashboard/src/planning-board-tools.ts | 8 ++-
packages/engine/src/triage.ts | 8 ++-
9 files changed, 164 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6570
Fusion-Task-Lineage: 455f38a8-5e4f-4643-a3ce-088ef0c92b01
2026-06-17 06:14:10 -07:00
gsxdsm
5403a774de
FN-6571: define custom workflow reliability acceptance map
...
Document the reliability bar for custom workflow authoring, selection, execution, recovery, and restart durability.
- Add a docs index entry for the custom workflow reliability acceptance map.
- Define MVP/blocking versus enhancement acceptance areas for custom workflow reliability.
- Catalog critical journeys, measurable success signals, known deferred gaps, non-goals, and release checks.
Files changed:
docs/README.md | 1 +
docs/custom-workflow-reliability-acceptance-map.md | 125 +++++++++++++++++++++
2 files changed, 126 insertions(+)
Fusion-Task-Id: FN-6571
Fusion-Task-Lineage: 81760c46-8dc4-4828-8784-e734c406c996
2026-06-17 05:53:09 -07:00
gsxdsm
e2a3a37b26
FN-6569: make auto-merge retry cap configurable
...
Adds a project setting that controls how many auto-merge conflict retries run before recovery paths give up.
- Add maxAutoMergeRetries to project settings defaults, schema, types, and dashboard controls.
- Resolve the retry cap in engine merge handling, self-healing recovery, stall detection, and blocker fanout logic.
- Cover custom retry caps with core, dashboard, and engine regression tests.
Files changed:
.changeset/fn-6569-max-auto-merge-retries.md | 5 ++
docs/architecture.md | 2 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 12 ++++
packages/core/src/in-review-stall.ts | 16 ++++-
packages/core/src/index.ts | 1 +
packages/core/src/settings-schema.ts | 6 ++
packages/core/src/task-priority.ts | 4 +-
packages/core/src/types.ts | 8 +++
.../dashboard/app/components/SettingsModal.tsx | 8 +++
.../components/settings/sections/MergeSection.tsx | 26 +++++++
.../app/hooks/__tests__/useBlockerFanout.test.ts | 5 +-
packages/dashboard/app/hooks/useBlockerFanout.ts | 3 +-
.../auto-merge-retry-cap-settings.test.ts | 79 ++++++++++++++++++++++
packages/engine/src/project-engine.ts | 77 +++++++++++++--------
packages/engine/src/self-healing.ts | 30 +++++---
16 files changed, 236 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-6569
Fusion-Task-Lineage: 42242d6a-68bc-41f1-b2d9-af2e6f168eed
2026-06-17 04:51:31 -07:00
gsxdsm
6ced5d73de
FN-6568: route merge-seam graph aborts to retry
...
Classify merge-seam abort provenance so non-paused merge graph failures retry instead of parking as pauses.
- Track paused-abort provenance separately from the legacy pause-abort bit.
- Route merge and requestMerge graph failures through bounded auto-merge retry when they are not genuine pauses.
- Preserve user/global pause parking behavior with regression coverage and document the lifecycle invariant.
Files changed:
.../fn-6568-merge-seam-abort-classification.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 122 +++++++++++++------
4 files changed, 221 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6568
Fusion-Task-Lineage: 5d9ee4f8-0336-4fb9-aa95-beb65e6c1ed9
2026-06-17 04:16:10 -07:00