Commit Graph

10373 Commits

Author SHA1 Message Date
gsxdsm
c15d1294eb FN-7115: expose governed heartbeat workflow tools
Expose the missing governed workflow and promotion tools to heartbeat agent sessions.\n\n- Add workflow authoring/settings, research cancellation, and task promotion/select tools to the shared heartbeat work surface.\n- Keep task-read discovery and executor-only worktree tools correctly scoped while documenting the heartbeat lane surface.\n- Cover tool injection, permission-gate behavior, and workflow factory exposure with regression tests.\n\nFiles changed:\n .changeset/FN-7115-heartbeat-tool-injection.md     |  7 ++\n docs/agents.md                                     |  6 +-\n .../engine/src/__tests__/agent-action-gate.test.ts | 86 +++++++++++++++++++++-\n .../agent-workflow-tools-exposure.test.ts          | 16 ++--\n .../src/__tests__/heartbeat-executor.test.ts       | 31 +++++---\n .../src/__tests__/heartbeat-session-prompt.test.ts | 69 ++++++++++++++++-\n packages/engine/src/agent-heartbeat.ts             | 22 ++++--\n 7 files changed, 207 insertions(+), 30 deletions(-)

Fusion-Task-Id: FN-7115

Fusion-Task-Lineage: 0883767b-7982-4f10-a466-1467b867dea1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 11:17:03 -07:00
gsxdsm
8f0f020caa FN-7118: add shared task read tool factories
Add reusable heartbeat-safe task read tools for agents.\n\n- Add shared fn_task_list, fn_task_show, and fn_task_search factories with text-safe formatting.\n- Wire the task read tools into permanent/custom heartbeat work tooling and prompts.\n- Classify task read surfaces as read-only coordination exemptions and export the factories.\n- Cover cross-surface task read behavior with engine tests and document the agent surface.\n\nFiles changed:\n .changeset/FN-7118-shared-task-read-tools.md       |   7 +\n docs/agents.md                                     |   2 +-\n .../src/__tests__/agent-task-read-tools.test.ts    | 160 ++++++++++++++++++++\n .../src/__tests__/gating-classifications.test.ts   |  15 ++\n .../src/__tests__/heartbeat-executor.test.ts       |  31 ++--\n .../src/__tests__/heartbeat-session-prompt.test.ts |   8 +-\n packages/engine/src/agent-heartbeat.ts             |  16 +-\n packages/engine/src/agent-tools.ts                 | 161 ++++++++++++++++++++-\n packages/engine/src/gating-classifications.ts      |  11 ++\n packages/engine/src/index.ts                       |   7 +\n 10 files changed, 396 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-7118

Fusion-Task-Lineage: 89a5b3a2-9295-435f-8bb9-f66f8ec73cc1

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 11:08:09 -07:00
gsxdsm
5ab4a5961c FN-7119: rescue quarantined engine and CLI tests
Restore quarantined scheduler/reliability coverage while preserving override column-agent model selection.

- remove rescued engine and CLI tests from quarantine configs and the ledger
- add scheduler fake updateSettings coverage so heartbeat writes do not skew call-count assertions
- preserve override column-agent runtime models during initial execution and mid-flight task edits
- update the stale user-configured command guard registry and add a patch changeset

Files changed:
 .changeset/fn-7119-column-agent-model.md           |  7 +++
 docs/testing.md                                    |  2 +
 packages/cli/vitest.config.ts                      |  6 +-
 .../executor-column-agent-principal.test.ts        | 34 +++++++++-
 .../lease-recovery-central-claim.test.ts           |  5 ++
 .../owning-node-unavailable-interactions.test.ts   |  5 ++
 .../todo-inprogress-flapping.test.ts               |  5 ++
 .../src/__tests__/restart.integration.test.ts      |  8 +++
 .../__tests__/scheduler-ephemeral-toggle.test.ts   |  5 ++
 .../scheduler-node-unreachable-audit.test.ts       |  5 ++
 .../__tests__/scheduler-overlap-starvation.test.ts |  5 ++
 .../user-configured-command-no-execsync.test.ts    | 12 +---
 packages/engine/src/executor.ts                    | 18 ++++--
 packages/engine/vitest.config.ts                   | 26 +++-----
 scripts/lib/test-quarantine.json                   | 73 +---------------------
 15 files changed, 106 insertions(+), 110 deletions(-)

Fusion-Task-Id: FN-7119
Fusion-Task-Lineage: 7dc033c8-29d1-4c0e-bfc1-b0ff0d325f43
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 10:50:33 -07:00
gsxdsm
92436d031b FN-7120: add mobile New Chat switcher action
Adds a mobile direct-chat shortcut for starting a new chat from the session switcher.

- Add a New Chat menuitem to the mobile direct-chat session dropdown using the existing NewChatDialog flow.
- Style the new mobile switcher action with touch-friendly spacing and focus handling.
- Extend mobile ChatView tests and docs, and add a changeset for the published CLI package.

Files changed:
 .changeset/fn-7120-mobile-new-chat.md              |   7 ++
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/components/ChatView.css     |  31 ++++++
 packages/dashboard/app/components/ChatView.tsx     |  17 +++
 .../components/__tests__/ChatView.mobile.test.tsx  | 115 +++++++++++++++++++--
 5 files changed, 162 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7120

Fusion-Task-Lineage: 5d066667-20c1-4015-9b84-a9e558eecd48

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 10:45:31 -07:00
gsxdsm
e909d41fed FN-7116: suppress transient footer connecting flashes
Keep executor footer stats stable through a one-off suspension-like fetch blip.

- Debounce transient executor stats failures after a successful poll while retaining last-good stats.
- Preserve explicit error reporting for first-load, non-transient, and sustained failures.
- Cover desktop and mobile footer behavior plus hook retry and visibility-resume cases.
- Document the footer behavior and add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-7116-footer-connecting-flash.md      |   7 ++
 docs/dashboard-guide.md                            |   2 +
 .../__tests__/ExecutorStatusBar.test.tsx           |  24 +++-
 .../app/hooks/__tests__/useExecutorStats.test.ts   | 132 ++++++++++++++++++++-
 packages/dashboard/app/hooks/useExecutorStats.ts   |  24 +++-
 5 files changed, 179 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7116

Fusion-Task-Lineage: 617b91a3-3d7c-42f1-8a44-ba3245eaf0dc

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 10:38:23 -07:00
gsxdsm
368f1e0e45 FN-7117: show all token models in Command Center
Show full-fidelity model token breakdowns in Command Center while keeping Overview compact.

- Remove the Tokens detail chart cap so bars, pies, and tables include every analytics model bucket.
- Keep Overview model summaries explicitly limited to the top consumers with a named cap.
- Add dashboard coverage and docs for full Tokens attribution versus Overview summaries.
- Add a patch changeset for the published CLI bundle.

Files changed:
 .changeset/fn-7117-tokens-by-model.md              |  7 ++
 docs/dashboard-guide.md                            |  5 +-
 .../components/command-center/CommandCenter.tsx    |  8 ++-
 .../__tests__/CommandCenter.test.tsx               | 78 +++++++++++++++++++++-
 .../components/command-center/areas/TokensArea.tsx | 38 ++++++-----
 .../areas/__tests__/TokensArea.test.tsx            | 68 +++++++++++++++++++
 6 files changed, 182 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-7117

Fusion-Task-Lineage: 7bf4c090-1054-40d0-97bf-e0e495077af5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 10:34:15 -07:00
gsxdsm
c61217e71a FN-7121: show queued chat previews above composer
Show queued Chat messages above the composer with a clear divider and covered placement behavior.

- Move the queued-message indicator out of the textarea wrapper so it spans above the input row.
- Add divider styling and responsive pending-message alignment for the composer.
- Extend ChatView coverage for placement, dismissal, and divider removal.
- Document the queued-message preview behavior and add a patch changeset.

Files changed:
 .changeset/fn-7121-queued-message-above-input.md   |  7 ++++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/ChatView.css     | 19 +++++++++--
 packages/dashboard/app/components/ChatView.tsx     | 35 ++++++++++++--------
 .../__tests__/ChatView.core-interactions.test.tsx  | 37 +++++++++++++++++++---
 5 files changed, 77 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-7121

Fusion-Task-Lineage: b5cb0577-ca4e-459b-9b9e-5c60efd7bdfd

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 10:29:36 -07:00
gsxdsm
9511880525 Add MCP to gitignore 2026-06-27 10:23:27 -07:00
gsxdsm
e1dba3fcc9 FN-7113: validate workflow graph integrity before execution
Reject malformed workflow graphs at save and run boundaries.

- Add central IR validation for duplicate top-level node ids, unregistered extension keys, and unreachable required nodes.
- Re-validate resolved workflow IR in the graph runner before side effects and fail closed on invalid graphs.
- Expand graph integrity tests and document save/run validation behavior with a release changeset.

Files changed:
 .changeset/FN-7113-workflow-graph-integrity.md     |   7 +
 docs/custom-workflow-reliability-acceptance-map.md |   7 +-
 docs/workflow-steps.md                             |  20 +++
 .../workflow-ir-extension-metadata.test.ts         |  49 ++++++-
 packages/core/src/__tests__/workflow-ir.test.ts    | 106 +++++++++++++++-
 packages/core/src/workflow-ir.ts                   |  51 +++++++-
 .../__tests__/workflow-graph-task-runner.test.ts   | 141 +++++++++++++++++----
 packages/engine/src/workflow-graph-task-runner.ts  |  46 +++++--
 8 files changed, 386 insertions(+), 41 deletions(-)

Fusion-Task-Id: FN-7113

Fusion-Task-Lineage: f41e0d81-7cdf-497a-96ab-fe42504d0be4

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
9fc68bc350 FN-7114: speed up insights route tests
Optimize the insights route test harness by avoiding full server and engine graph imports.

- Mount the insights router in a lightweight Express app for the suite.
- Mock only the engine exports consumed by the router.
- Preserve route error payload assertions while keeping the shared store reset isolation.

Files changed:
 .../src/__tests__/insights-routes.test.ts          | 41 +++++++++++++---------
 1 file changed, 25 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-7114

Fusion-Task-Lineage: 93c5616a-7e28-4062-aac7-8ca030a3a420

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
56b4664df9 FN-7112: normalize pi-claude-cli requirement comments
Normalize pi-claude-cli requirement comments to the FNXC convention.\n\n- Convert ACP bridge and CLI validation requirement notes to FNXC-prefixed JSDoc comments.\n- Update inline ACP bridge comments to include dated FNXC context without changing behavior.\n\nFiles changed:\n packages/pi-claude-cli/index.ts | 28 ++++++++++++----------------\n 1 file changed, 12 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-7112

Fusion-Task-Lineage: 970a9ebc-2c8f-4481-9e2b-c1c3fcf5cc24

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
2b9e383e18 FN-7111: classify heartbeat tool parity gaps
Classify remaining heartbeat-agent tool gaps so permission gates enforce mutating and network behaviors consistently.

- Add shared classifications for workflow mutators, task update/promote/refine, verification/worktree acquisition, and research cancellation.
- Apply command-execution classifications in both action-gate and permanent-agent gating paths.
- Update operator docs, permission-policy examples, parity tests, and the published package changeset.

Files changed:
 .changeset/FN-7111-tool-classification-parity.md   |  7 ++
 docs/agents.md                                     |  8 +-
 packages/core/src/types.ts                         | 12 ++-
 .../engine/src/__tests__/agent-action-gate.test.ts | 11 ++-
 .../src/__tests__/gating-classifications.test.ts   | 93 +++++++++++++++++++++-
 .../src/__tests__/permanent-agent-gating.test.ts   | 44 ++++++++++
 packages/engine/src/agent-action-gate.ts           |  6 ++
 packages/engine/src/gating-classifications.ts      | 36 ++++++++-
 packages/engine/src/permanent-agent-gating.ts      |  5 ++
 9 files changed, 206 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-7111
Fusion-Task-Lineage: d2f5ee71-c742-4f10-af55-fec380f08f64
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
1a30ddd6e8 FN-7108: broaden heartbeat agent tool access
Heartbeat agents now receive safe coordination and discovery tools while risky calls remain permission-gated.

- Add shared heartbeat workflow, research, and clarification tools for task-scoped and no-task runs.
- Give no-task permanent agents artifact registry access alongside existing delegation, messaging, memory, goal, and identity tools.
- Cover the expanded tool surface and action-gate behavior with heartbeat and permission-policy tests.
- Document the permission-governed heartbeat tool model and add a minor changeset.

Files changed:
 .changeset/FN-7108-agent-tool-access.md            |  7 ++
 docs/agents.md                                     |  9 ++-
 .../src/__tests__/heartbeat-executor.test.ts       | 24 +++---
 .../src/__tests__/heartbeat-session-prompt.test.ts | 89 +++++++++++++++++++++-
 .../src/__tests__/pi-create-fn-agent.test.ts       | 67 ++++++++++++++++
 packages/engine/src/agent-heartbeat.ts             | 41 +++++++++-
 6 files changed, 221 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-7108

Fusion-Task-Lineage: 83302055-72be-47f8-a41d-70164d12f010

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
c17d745665 FN-7109: notify operators when CLI agents await input
Notify external providers when terminal-backed CLI agents pause for tool permission or user input.

- Add a dedicated cli-agent-awaiting-input notification event to settings, schema defaults, dashboard options, and provider tests.
- Dispatch CLI-agent waiting-on-input notifications from the in-process runtime with task context and prompt-scoped dedupe keys.
- Document the operator behavior and add a published package changeset for the new notification surface.

Files changed:
 .changeset/fn-7109-cli-agent-notification.md       |   7 ++
 docs/agents.md                                     |   4 +
 docs/settings-reference.md                         |   4 +-
 .../cli-agent-permission-notifications.md          |  13 +++
 .../core/src/__tests__/global-settings.test.ts     |   1 +
 packages/core/src/settings-schema.ts               |   1 +
 packages/core/src/types.ts                         |   6 ++
 .../SettingsModal.remote-notifications.test.tsx    |   1 +
 .../components/__tests__/settings-mobile.test.tsx  |   2 +-
 .../settings/sections/NotificationsSection.tsx     |   3 +
 .../src/__tests__/in-process-runtime.test.ts       |  56 ++++++++++-
 packages/engine/src/__tests__/notifier.test.ts     |   6 +-
 .../engine/src/__tests__/ntfy-provider.test.ts     |   4 +
 .../engine/src/__tests__/webhook-provider.test.ts  |   2 +
 .../engine/src/cli-agent/__tests__/runtime.test.ts |  39 +++++++-
 .../__tests__/notification-service.test.ts         |  56 ++++++++++-
 .../src/notification/notification-service.ts       |   9 +-
 packages/engine/src/notification/ntfy-provider.ts  |   7 ++
 .../engine/src/notification/webhook-provider.ts    |   2 +
 packages/engine/src/notifier.ts                    |   1 +
 packages/engine/src/runtimes/in-process-runtime.ts | 111 +++++++++++++++++++++
 21 files changed, 326 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-7109

Fusion-Task-Lineage: 636c1875-92a2-46a7-847e-1f4955c0822f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:31 -07:00
gsxdsm
e687ff3700 FN-7110: assert normalized CE skill requests
Update CE workflow-step convention coverage for normalized skill request matching.

- Refresh the U1 test narrative around requestedSkillMatchKey normalization.
- Assert namespaced, slash, SKILL.md-suffixed, mixed-case, and dual CE skill requests resolve once.
- Keep negative coverage for requests when the CE install directory is not discoverable.

Files changed:
 .../__tests__/ce-workflow-step-conventions.test.ts | 85 ++++++++++++----------
 1 file changed, 47 insertions(+), 38 deletions(-)

Fusion-Task-Id: FN-7110

Fusion-Task-Lineage: 807649db-6c61-4c1e-9b04-28257992eb21

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
04f8fe5d59 FN-7107: load CE stage skills for interactive sessions
Ensure Compound Engineering stages request and expose their registered skills when launching interactive sessions.

- Add plugin-local skill resolution checks that warn when a stage skill install is missing.
- Pass a stable additional skill path and requested stage skill into every CE interactive session.
- Add coverage for stage skill loading options and update skill reachability expectations.

Files changed:
 ...d-skills-not-loading-in-interactive-sessions.md |  1 +
 .../src/__tests__/skill-reachability.test.ts       | 71 +++++++++++++---------
 .../src/__tests__/stage-skill-loading.test.ts      | 69 +++++++++++++++++++++
 .../src/session/orchestrator.ts                    | 48 ++++++++++++++-
 4 files changed, 157 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-7107

Fusion-Task-Lineage: 0504e9ba-c2e7-4317-9c90-55693baf8170

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
f42b49ab2d FN-7105: add CI print-mode regression guard
Add regression coverage ensuring CI=true no longer forces test-changed into full-suite mode.

- Add a reusable --print-mode subprocess helper for synthetic test-changed repositories.
- Seed the synthetic repo with changeset config so mode decisions match workspace expectations.
- Assert CI=true stays in gate or changed mode while --full and FUSION_TEST_FULL still select full mode.

Files changed:
 scripts/__tests__/test-changed.test.mjs | 54 +++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

Fusion-Task-Id: FN-7105

Fusion-Task-Lineage: f4a26d96-3992-4f25-a456-04f2b9b8a4dc

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
9843f2e772 FN-7104: Align ce-brainstorm durable artifact references
Keep bundled ce-brainstorm guidance aligned with docs/plans as the durable planning artifact.

- Update the visual probe reference to name docs/plans as the durable artifact.
- Add a recursive skill-content guard that prevents docs/brainstorms from being described as new or durable output.
- Assert legacy docs/brainstorms wording remains limited to ce-plan inputs.

Files changed:
 .../__tests__/skill-content-alias-guard.test.ts    | 85 ++++++++++++++++++++++
 .../ce-brainstorm/references/visual-probes.md      |  2 +-
 2 files changed, 86 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7104

Fusion-Task-Lineage: dd26a511-816d-479c-99ac-7cfec2b96bd4

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
b69dd8eb14 FN-7103: alias brainstorm artifacts to unified plans
Compound Engineering now treats brainstorm output as the requirements-only form of unified plan artifacts.

- Point the brainstorm stage at docs/plans while keeping the existing stage and skill identifiers for compatibility.
- Surface CE plan frontmatter metadata during artifact discovery and reading.
- Harden CE artifact discovery against symlink escapes for conventional artifact paths.
- Update docs, tests, and changeset coverage for the unified brainstorm/plan artifact flow.

Files changed:
 .changeset/fn-7103-ce-plan-alias.md                |   7 ++
 docs/plugins/compound-engineering.md               |  21 +++-
 .../fusion-plugin-compound-engineering/README.md   |  36 ++++--
 .../orchestrator-interrupt-resume.test.ts          |   8 +-
 .../src/__tests__/session-store.test.ts            |  38 ++++++
 .../src/__tests__/stage-registry.test.ts           |  18 +++
 .../src/__tests__/sync.test.ts                     |  36 +++++-
 .../src/artifacts/__tests__/discovery.test.ts      | 133 +++++++++++++++++++-
 .../src/artifacts/discovery.ts                     | 136 +++++++++++++++++++--
 .../src/session/stage-registry.ts                  |  10 +-
 .../src/sync/reconciler.ts                         |   2 +-
 11 files changed, 413 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-7103

Fusion-Task-Lineage: 284a5c5c-40f7-44b2-8e3e-1de671dde36a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
28cdd1c215 FN-7099: add project plan approval mode
Add a project-wide plan approval mode that can override workflow approval gates.

- Add core plan approval resolution for workflow, auto-approve-all, and require-all modes.
- Apply the resolved approval mode in triage recovery and planning finalization.
- Expose the mode in settings UI with translations, docs, tests, and a changeset.

Files changed:
 .changeset/fn-7099-plan-approval-mode.md           |  7 +++
 docs/settings-reference.md                         |  3 +-
 docs/storage.md                                    |  5 +-
 packages/core/src/__tests__/plan-approval.test.ts  | 37 ++++++++++++++
 packages/core/src/index.ts                         |  2 +
 packages/core/src/plan-approval.ts                 | 21 ++++++++
 packages/core/src/settings-schema.ts               |  3 +-
 packages/core/src/types.ts                         |  5 ++
 .../dashboard/app/components/SettingsModal.tsx     |  1 +
 .../SettingsModal.scheduling-merge.test.tsx        | 17 +++++++
 .../__tests__/SettingsModal.test-harness.tsx       |  1 +
 .../components/settings/sections/MergeSection.tsx  | 19 +++++++
 .../MergeSection.legacy-automerge-cleanup.test.tsx | 23 ++++++++-
 packages/engine/src/__tests__/triage.test.ts       | 58 ++++++++++++++++++++++
 packages/engine/src/triage.ts                      | 10 +++-
 packages/i18n/locales/en/app.json                  |  5 ++
 packages/i18n/src/resources.d.ts                   |  5 ++
 17 files changed, 215 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-7099
Fusion-Task-Lineage: 8b276000-1df3-41e4-a94d-724aac559954
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
9e2fb5d62c FN-7102: count active triage planners in project health
Align project health in-flight readouts with live agent slot holders.\n\n- Count non-paused triage planning tasks alongside in-progress executors for dashboard health and CLI project displays.\n- Keep persisted projectHealth.inFlightAgentCount as bookkeeping while deriving user-facing counts from live task state.\n- Cover CLI and dashboard health routes for paused, inactive, and per-project triage planner cases.\n- Document the live count behavior and add a patch changeset.\n\nFiles changed:\n .changeset/fn-7102-health-triage-inflight.md       |  7 +++\n docs/cli-reference.md                              |  2 +\n docs/multi-project.md                              |  4 +-\n .../cli/src/commands/__tests__/project.test.ts     | 59 +++++++++++++++---\n packages/cli/src/commands/project.ts               | 35 +++++++----\n packages/cli/src/project-resolver.ts               | 17 ++++--\n packages/core/src/types.ts                         |  4 +-\n .../dashboard/src/__tests__/project-routes.test.ts | 71 ++++++++++++++++++----\n .../src/routes/register-project-routes.ts          |  9 ++-\n 9 files changed, 163 insertions(+), 45 deletions(-)

Fusion-Task-Id: FN-7102

Fusion-Task-Lineage: ebcba74c-238d-4ca7-aa77-df0d329c0ea9

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
5899dca4f8 FN-7094: update Compound Engineering plugin to v3.15.0
Update the Compound Engineering plugin content and installers to the upstream v3.15.0 release.

- Refresh bundled Compound Engineering agents, skills, references, and helper scripts from upstream v3.15.0.
- Add upstream provenance metadata and regression coverage for provenance, agent installation, and skill installation behavior.
- Update plugin registration and installer logic to expose the expanded agent and skill catalog.

Files changed:
 .../fusion-plugin-compound-engineering/README.md   |  18 +-
 .../src/__tests__/agent-installation.test.ts       |  16 +-
 .../src/__tests__/skill-installation.test.ts       |  19 +-
 .../src/__tests__/upstream-provenance.test.ts      |  62 ++
 .../src/agent-installation.ts                      |  66 +-
 .../src/agents/ce-adversarial-document-reviewer.md |  12 +-
 .../src/agents/ce-adversarial-reviewer.md          |  12 +-
 .../agents/ce-agent-native-planning-strategist.md  |  71 ++
 .../src/agents/ce-best-practices-researcher.md     |  23 +-
 .../src/agents/ce-data-integrity-guardian.md       |   4 +
 .../src/agents/ce-deployment-verification-agent.md |   4 +
 .../src/agents/ce-figma-design-sync.md             |   4 +-
 .../src/agents/ce-framework-docs-researcher.md     |   4 +
 .../src/agents/ce-git-history-analyzer.md          |   2 +-
 .../src/agents/ce-issue-intelligence-analyst.md    |   9 +-
 .../src/agents/ce-learnings-researcher.md          |  16 +-
 .../agents/ce-pattern-recognition-specialist.md    |   4 +
 .../src/agents/ce-performance-oracle.md            |   4 +
 .../src/agents/ce-pr-comment-resolver.md           | 120 +--
 .../src/agents/ce-product-lens-reviewer.md         |   2 +-
 .../src/agents/ce-project-standards-reviewer.md    |   8 +-
 .../src/agents/ce-repo-research-analyst.md         |   6 +-
 .../src/agents/ce-scope-guardian-reviewer.md       |   6 +-
 .../src/agents/ce-security-lens-reviewer.md        |   2 +-
 .../src/agents/ce-security-sentinel.md             |   4 +
 .../src/agents/ce-session-historian.md             |  14 +-
 .../src/agents/ce-slack-researcher.md              |  25 +-
 .../src/agents/ce-web-researcher.md                |  13 +-
 .../src/index.ts                                   |  15 +-
 .../src/skill-installation.ts                      |  69 +-
 .../src/skills/ce-brainstorm/SKILL.md              | 125 ++-
 .../references/agents/slack-researcher.md          | 127 +++
 .../references/brainstorm-sections.md              | 161 +++-
 .../src/skills/ce-brainstorm/references/handoff.md | 114 ++-
 .../ce-brainstorm/references/html-rendering.md     | 253 ++++--
 .../ce-brainstorm/references/markdown-rendering.md |  55 +-
 .../ce-brainstorm/references/synthesis-summary.md  |  30 +-
 .../references/universal-brainstorming.md          |  14 +-
 .../ce-brainstorm/references/visual-probes.md      | 128 +++
 .../ce-brainstorm/scripts/visual-probe-server.js   | 419 ++++++++++
 .../src/skills/ce-code-review/SKILL.md             | 921 ++++++++++-----------
 .../references/action-class-rubric.md              |  26 +
 .../references/cross-model-review.md               |  63 ++
 .../skills/ce-code-review/references/diff-scope.md |  12 +-
 .../ce-code-review/references/findings-schema.json |  26 +-
 .../ce-code-review/references/persona-catalog.md   |  54 +-
 .../references/personas/adversarial-reviewer.md    | 102 +++
 .../references/personas/agent-native-reviewer.md   | 173 ++++
 .../references/personas/api-contract-reviewer.md   |  43 +
 .../references/personas/correctness-reviewer.md    |  43 +
 .../references/personas/data-migration-reviewer.md | 111 +++
 .../personas/deployment-verification-agent.md      | 157 ++++
 .../personas/julik-frontend-races-reviewer.md      |  44 +
 .../references/personas/learnings-researcher.md    | 247 ++++++
 .../personas/maintainability-reviewer.md           |  68 ++
 .../references/personas/performance-reviewer.md    |  45 +
 .../personas/previous-comments-reviewer.md         |  59 ++
 .../personas/project-standards-reviewer.md         |  75 ++
 .../references/personas/reliability-reviewer.md    |  43 +
 .../references/personas/security-reviewer.md       |  45 +
 .../references/personas/swift-ios-reviewer.md      |  99 +++
 .../references/personas/testing-reviewer.md        |  43 +
 .../references/review-output-template.md           | 117 +--
 .../ce-code-review/references/subagent-template.md |  51 +-
 .../references/validator-template.md               |   6 +-
 .../scripts/cross-model-adversarial-review.sh      | 218 +++++
 .../src/skills/ce-commit-push-pr/SKILL.md          |  19 +-
 .../references/pr-description-writing.md           |   2 +-
 .../src/skills/ce-commit/SKILL.md                  |   4 +-
 .../src/skills/ce-compound/SKILL.md                | 164 +++-
 .../references/agents/best-practices-researcher.md | 115 +++
 .../references/agents/data-integrity-guardian.md   |  68 ++
 .../references/agents/framework-docs-researcher.md |  93 +++
 .../agents/pattern-recognition-specialist.md       |  55 ++
 .../references/agents/performance-oracle.md        | 108 +++
 .../references/agents/security-sentinel.md         |  91 ++
 .../references/agents/session-historian.md         |  83 ++
 .../scripts/session-history/discover-sessions.sh   | 130 +++
 .../scripts/session-history/extract-errors.py      | 254 ++++++
 .../scripts/session-history/extract-metadata.py    | 456 ++++++++++
 .../scripts/session-history/extract-skeleton.py    | 570 +++++++++++++
 .../src/skills/ce-debug/SKILL.md                   | 286 +++++--
 .../skills/ce-debug/references/anti-patterns.md    |  91 ++
 .../skills/ce-debug/references/defense-in-depth.md |  35 +
 .../references/investigation-techniques.md         | 374 +++++++++
 .../src/skills/ce-ideate/SKILL.md                  | 223 ++---
 .../agents/issue-intelligence-analyst.md           | 200 +++++
 .../references/agents/learnings-researcher.md      | 247 ++++++
 .../references/agents/slack-researcher.md          | 127 +++
 .../ce-ideate/references/agents/web-researcher.md  | 121 +++
 .../ce-ideate/references/divergent-ideation.md     |  89 ++
 .../skills/ce-ideate/references/html-rendering.md  | 631 ++++++++++++++
 .../ce-ideate/references/ideation-sections.md      | 191 +++++
 .../ce-ideate/references/markdown-rendering.md     | 236 ++++++
 .../ce-ideate/references/post-ideation-workflow.md | 246 ++----
 .../ce-ideate/references/universal-ideation.md     |  24 +-
 .../src/skills/ce-plan/SKILL.md                    | 171 ++--
 .../agents/agent-native-planning-strategist.md     |  62 ++
 .../references/agents/architecture-strategist.md   |  46 +
 .../references/agents/best-practices-researcher.md | 114 +++
 .../references/agents/data-integrity-guardian.md   |  68 ++
 .../references/agents/data-migration-reviewer.md   | 103 +++
 .../agents/deployment-verification-agent.md        | 157 ++++
 .../references/agents/framework-docs-researcher.md |  93 +++
 .../references/agents/git-history-analyzer.md      |  40 +
 .../references/agents/learnings-researcher.md      | 247 ++++++
 .../agents/pattern-recognition-specialist.md       |  55 ++
 .../references/agents/performance-oracle.md        | 108 +++
 .../references/agents/repo-research-analyst.md     | 256 ++++++
 .../ce-plan/references/agents/security-sentinel.md |  91 ++
 .../ce-plan/references/agents/slack-researcher.md  | 127 +++
 .../references/agents/spec-flow-analyzer.md        |  80 ++
 .../ce-plan/references/agents/web-researcher.md    | 121 +++
 .../skills/ce-plan/references/approach-altitude.md |  55 ++
 .../ce-plan/references/deepening-workflow.md       |  68 +-
 .../skills/ce-plan/references/html-rendering.md    | 253 ++++--
 .../ce-plan/references/markdown-rendering.md       |  55 +-
 .../src/skills/ce-plan/references/plan-handoff.md  |  81 +-
 .../src/skills/ce-plan/references/plan-sections.md | 231 +++++-
 .../skills/ce-plan/references/synthesis-summary.md |  28 +-
 .../ce-plan/references/universal-planning.md       |   9 +-
 .../src/skills/ce-resolve-pr-feedback/SKILL.md     |  12 +-
 .../references/agents/pr-comment-resolver.md       |  56 ++
 .../references/evaluation-rubric.md                | 106 +++
 .../ce-resolve-pr-feedback/references/full-mode.md | 207 ++---
 .../references/targeted-mode.md                    |  24 +-
 .../ce-resolve-pr-feedback/scripts/get-pr-comments |  13 +-
 .../scripts/get-thread-for-comment                 |  11 +-
 .../src/skills/ce-strategy/SKILL.md                |   4 +-
 .../src/skills/ce-work/SKILL.md                    | 191 +++--
 .../ce-work/references/agents/figma-design-sync.md | 165 ++++
 .../skills/ce-work/references/execution-engines.md |  85 ++
 .../ce-work/references/non-code-execution.md       |  23 +
 .../ce-work/references/review-findings-followup.md | 104 +++
 .../skills/ce-work/references/shipping-workflow.md |  89 +-
 .../src/skills/ce-work/references/tracker-defer.md |  16 +-
 .../src/upstream-provenance.ts                     |  15 +
 137 files changed, 12130 insertions(+), 1994 deletions(-)

Fusion-Task-Id: FN-7094

Fusion-Task-Lineage: 85df8f84-86f1-496a-953a-e4cf5a9da596

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
674031b7f2 FN-7101: stabilize App deep-link history state
Reset App deep-link test history state around replaceState stubs so full-file order no longer leaks navigation state.

- Reset the real browser history snapshot before stubbing replaceState.
- Restore replaceState before cleanup so history state and URL are reset through the original implementation.
- Document why deep-link tests must clear navIndex between mounts.

Files changed:
 packages/dashboard/app/components/__tests__/App.test.tsx | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7101

Fusion-Task-Lineage: 5c44441f-f0d2-4ad3-bdcf-5a0a0e3e6e6f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:30 -07:00
gsxdsm
a8f51e9423 FN-7098: clarify prompt settings ownership
Clarify where Settings and Workflow Editor prompt editing responsibilities live.

- Add explanatory Prompts settings copy and a Workflow Editor navigation affordance.
- Thread the workflow settings opener into the Prompts section while keeping agent prompt tabs available.
- Document prompt ownership and add regression coverage for the new Prompts section behavior.
- Add a patch changeset for the published CLI package.

Files changed:
 .changeset/fn-7098-prompts-workflow-alignment.md   |   7 ++
 docs/settings-reference.md                         |  11 +-
 .../dashboard/app/components/SettingsModal.tsx     |   9 +-
 .../__tests__/SettingsModal.prompts.test.tsx       | 118 +++++++++++++++++++++
 .../settings/sections/PromptsSection.tsx           |  23 +++-
 5 files changed, 164 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-7098
Fusion-Task-Lineage: 57ac1f1b-77f8-4180-abe9-f6752768b17b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
f34b62cef9 FN-7097: count triage planners in running agents
Include active triage planners in live running-agent counts so global concurrency readouts match slot usage.

- Count unpaused triage tasks with planning status alongside in-progress tasks.
- Add resolver coverage for triage-only, mixed, and multi-project running-agent counts.
- Document that concurrency readouts include active triage planners and add a patch changeset.

Files changed:
 .changeset/fn-7097-triage-running-count.md         |  7 +++
 docs/dashboard-guide.md                            |  3 +-
 docs/multi-project.md                              |  3 +-
 .../src/__tests__/project-store-resolver.test.ts   | 73 ++++++++++++++++++++--
 packages/dashboard/src/project-store-resolver.ts   | 11 +++-
 5 files changed, 87 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7097

Fusion-Task-Lineage: 705daf65-0883-40cd-b620-3be8c0f38543

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
c2f8026d7a FN-7091: recover messaging index corruption on send
Repair the messaging send path when SQLite reports corrupt messages-table indexes despite quick_check passing.

- Detect SQLite corruption errors from codes, names, and messages instead of only FTS5 text.
- Add a scoped REINDEX messages repair and single retry around message inserts.
- Return actionable repair guidance when reindexing or the retry still fails.
- Cover send recovery and corruption classification with regression tests, plus a patch changeset.

Files changed:
 .changeset/fn-7091-messaging-corruption-recovery.md       |   7 ++
 packages/core/src/__tests__/db.test.ts             |  38 ++++++++
 packages/core/src/__tests__/message-store.test.ts  | 100 +++++++++++++++++++++
 packages/core/src/db.ts                            |  43 +++++++--
 packages/core/src/message-store.ts                 |  81 ++++++++++++++---
 5 files changed, 251 insertions(+), 18 deletions(-)

Fusion-Task-Id: FN-7091

Fusion-Task-Lineage: 47bcbe17-b428-4702-9835-59cb9e6ec164

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
ee3a06ecfd FN-7095: add actionable backup failure details
Database Backup automation failures now expose the affected database, paths, and root cause.

- Add DB-qualified error formatting for project and central backup creation, verification, schedule validation, and command failures.
- Normalize routine and cron in-process backup failures so empty or opaque errors become actionable AutomationRunResult errors.
- Cover missing database files, backup directory failures, central copy failures, corrupt backup quarantine, and runner normalization with regression tests.
- Document backup failure detail behavior and add a patch changeset.

Files changed:
 .changeset/fn-7095-backup-detail.md                |   7 ++
 docs/storage.md                                    |   2 +
 packages/core/src/__tests__/backup.test.ts         | 114 ++++++++++++++++++++-
 packages/core/src/backup.ts                        | 112 +++++++++++++++-----
 packages/engine/src/__tests__/cron-runner.test.ts  |  35 +++++++
 .../engine/src/__tests__/routine-runner.test.ts    |  45 ++++++++-
 packages/engine/src/cron-runner.ts                 |  20 +++-
 packages/engine/src/routine-runner.ts              |  20 +++-
 8 files changed, 324 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-7095

Fusion-Task-Lineage: 368e3edf-20d3-4756-97be-75734dbff703

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
f4b25dd2c9 FN-7096: gate approval banner to mailbox requests
Limit the dashboard approval banner to real mailbox approval requests instead of task plan-approval states.

- Stop awaiting-approval task updates from fabricating Open Mailbox banner candidates or refreshing mailbox counts.
- Gate DashboardBanners rendering to approval:<id> candidates while preserving pending-count race protection.
- Update dashboard tests, documentation, and release notes for mailbox-only approval banners.

Files changed:
 .changeset/fn-7096-approval-banner-mailbox.md      |   7 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/App.tsx                     |   3 +-
 .../app/components/__tests__/App.test.tsx          |  33 ++--
 .../app/components/dashboard/DashboardBanners.tsx  |   9 +-
 .../dashboard/__tests__/DashboardBanners.test.tsx  |  65 +++++++-
 .../hooks/__tests__/sseSplitIntegration.test.ts    |  28 ++--
 .../app/hooks/__tests__/useApprovalBanner.test.ts  | 177 ++++++++-------------
 packages/dashboard/app/hooks/useApprovalBanner.ts  |  34 +---
 packages/dashboard/app/hooks/useMailboxUnread.ts   |   5 +-
 10 files changed, 185 insertions(+), 178 deletions(-)

Fusion-Task-Id: FN-7096

Fusion-Task-Lineage: 40885aba-6a9f-4720-bea6-5a6f155c326d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
1f49cea6c0 FN-7092: refresh test velocity snapshots
Refresh the weekly test velocity baseline after the pnpm test lane recovered.

- Update the latest baseline with green gate, boot smoke, and pnpm test timings.
- Drop stale timing rows for removed or split test files.
- Append the new weekly history entry with current slowest-file data.

Files changed:
 docs/test-velocity-baseline.md     |  48 +++++++---------
 scripts/test-timings.json          |  14 +----
 scripts/test-velocity-history.json | 112 +++++++++++++++++++++++++++++++++++++
 3 files changed, 133 insertions(+), 41 deletions(-)

Fusion-Task-Id: FN-7092

Fusion-Task-Lineage: 0b2cfa7a-953b-4cf8-ac4b-c81a0580a4e0

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
8b22dd2ffe FN-7090: link imported GitHub issues as tracked tasks
Link GitHub issue imports to existing source issues when tracking defaults are enabled.

- Resolve project/global GitHub tracking defaults before CLI, extension, and dashboard issue imports.
- Mark imported issue tasks as tracking-enabled so the post-create hook adopts the source issue instead of creating duplicates.
- Cover tracked and untracked import behavior across CLI tools, task commands, and dashboard GitHub routes.
- Document the import tracking behavior and add a minor changeset for the published CLI.

Files changed:
 .changeset/fn-7090-import-github-tracked.md        |   7 ++
 docs/cli-reference.md                              |   2 +
 docs/settings-reference.md                         |   2 +-
 .../__tests__/extension-github-tracking.test.ts    |  63 +++++++++++
 packages/cli/src/__tests__/extension.test.ts       | 125 ++++++++++++++++++++-
 .../task-command-github-import-tracking.test.ts    | 119 ++++++++++++++++++++
 packages/cli/src/commands/__tests__/task.test.ts   |  64 ++++++++++-
 packages/cli/src/commands/task.ts                  |  30 ++++-
 packages/cli/src/extension.ts                      |  27 +++++
 .../dashboard/src/__tests__/routes-github.test.ts  |  74 ++++++++++++
 .../dashboard/src/routes/register-git-github.ts    |  21 +++-
 11 files changed, 524 insertions(+), 10 deletions(-)

Fusion-Task-Id: FN-7090
Fusion-Task-Lineage: 1e5510c3-7a98-4ff2-a109-e465ff58b9c2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
dbe1e2e39f FN-7093: tighten lazy-view inventory guard
Keep the lazy-loaded views documentation guard aligned with every curated chunk source.

- Expand AGENTS guidance to name the plugin and agent detail lazy-import sources.
- Teach the dashboard docs test to scan feature-owned lazy declarations in PluginsSection and AgentsView.
- Assert explicit exclusions for embedded views, terminal/onboarding internals, and duplicate overflow imports.

Files changed:
 AGENTS.md                                          |   4 +-
 .../app/__tests__/lazy-loaded-views-docs.test.ts   | 113 +++++++++++++++++++--
 2 files changed, 108 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-7093

Fusion-Task-Lineage: 25bbe920-529d-4f2b-95d4-4c17b682dc49

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-27 09:28:29 -07:00
gsxdsm
b4b9db12a4 test: quarantine 11 failing CI full-suite tests (#1792)
## Summary

Quarantine 11 test files consistently failing on the non-blocking
full-suite CI on `main`. Per the AGENTS.md deletion-ratchet policy, each
is added to `scripts/lib/test-quarantine.json` with a matching exclude
in its package's vitest config.

## Quarantined Tests

| Shard | Package | File | Failure |
|-------|---------|------|---------|
| 1/4 | engine-reliability | `lease-recovery-central-claim.test.ts` |
mock call count mismatch |
| 1/4 | engine-reliability |
`owning-node-unavailable-interactions.test.ts` | mock call count
mismatch |
| 1/4 | engine-reliability | `todo-inprogress-flapping.test.ts` | mock
call count + boolean mismatches |
| 1/4 | engine-default | `ce-workflow-step-conventions.test.ts` |
dual-form CE skill resolution |
| 1/4 | engine-default | `executor-column-agent-principal.test.ts` |
column agent model preservation |
| 1/4 | engine-default | `scheduler-ephemeral-toggle.test.ts` |
assertion failure |
| 2/4 | engine-default | `restart.integration.test.ts` | scheduler mock
call count mismatches |
| 2/4 | engine-default | `scheduler-node-unreachable-audit.test.ts` |
expected undefined to be event type |
| 2/4 | engine-default | `scheduler-overlap-starvation.test.ts` |
assertion failure |
| 2/4 | engine-default | `user-configured-command-no-execsync.test.ts` |
assertion failure |
| 3/4 | cli | `extension.test.ts` | Target cannot be null or undefined |

CI run: https://github.com/Runfusion/Fusion/actions/runs/28259456548

## Verification

- `pnpm test:gate` passes
- `pnpm lint` clean


<!-- stage-review-badge-begin -->

---

<a href="https://stagereview.app/Runfusion/Fusion/pull/1792">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg"
alt="Open in Stage">
  </picture>
</a>

<!-- stage-review-badge-end -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Updated CI test quarantine settings to exclude newly identified
flaky/failing suites from active runs, reducing noisy failures.
* Expanded the quarantine ledger with recent CLI, engine, and dashboard
test entries and failure context to improve tracking and stability.
* **Tests**
* Adjusted the test runner’s project exclusions so quarantined suites
are skipped during CI while preserving coverage elsewhere.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-26 23:40:24 -07:00
gsxdsm
9020f5774e test: quarantine 11 failing CI full-suite tests
Quarantine test files consistently failing on the non-blocking full-suite
CI on main, per the AGENTS.md deletion-ratchet policy:

Engine-default (shard 1-2): ce-workflow-step-conventions,
executor-column-agent-principal, restart.integration,
scheduler-node-unreachable-audit, scheduler-overlap-starvation,
scheduler-ephemeral-toggle, user-configured-command-no-execsync

Engine-reliability (shard 1): lease-recovery-central-claim,
owning-node-unavailable-interactions, todo-inprogress-flapping

CLI (shard 3): extension.test.ts

Each has a matching entry in scripts/lib/test-quarantine.json with the
failing CI run link and quarantinedAt date. Tests will be deleted
after 14 days unless rescued with a root-cause fix.
2026-06-26 21:49:32 -07:00
gsxdsm
ae0679b004 FN-7089: add other answers to interview prompts
Adds free-text Other answers across planning and mission interview prompts.

- Add synthetic Other options for single-select and multi-select planning, mission, milestone, and slice interviews.
- Thread reserved `_other` responses through agent-facing and history formatters.
- Cover Other-only and Other-plus-selection behavior with dashboard component and formatter tests.
- Document the behavior and add a minor changeset for the published CLI package.

Files changed:
 .changeset/fn-7089-interview-other-option.md       |   7 +
 docs/dashboard-guide.md                            |   2 +
 .../components/MilestoneSliceInterviewModal.tsx    | 112 +++++++-
 .../app/components/MissionInterviewModal.tsx       | 112 +++++++-
 .../dashboard/app/components/PlanningModeModal.css |  11 +-
 .../dashboard/app/components/PlanningModeModal.tsx | 110 +++++++-
 .../MilestoneSliceInterviewModal.test.tsx          | 313 +++++++++++++++++++++
 .../__tests__/MissionInterviewModal.test.tsx       | 244 ++++++++++++++++
 .../PlanningModeModal.planning-flow.test.tsx       | 200 +++++++++++++
 .../__tests__/milestone-slice-interview.test.ts    |  49 +++-
 .../src/__tests__/mission-interview.test.ts        |  47 ++++
 .../planning-interview-formatters.test.ts          |  47 ++++
 .../dashboard/src/milestone-slice-interview.ts     |  63 ++++-
 packages/dashboard/src/mission-interview.ts        |  63 ++++-
 packages/dashboard/src/planning.ts                 |  55 ++--
 15 files changed, 1381 insertions(+), 54 deletions(-)

Fusion-Task-Id: FN-7089

Fusion-Task-Lineage: 1c629492-13e4-4ee7-aa37-1d7d067548b7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 21:31:42 -07:00
gsxdsm
513882ecac FN-7087: speed up SettingsModal remote tests
Optimize the SettingsModal remote-notifications shard by rendering target sections directly.

- Add a section-targeted SettingsModal test harness helper.
- Reuse the no-delay shared user event instance across remote-notifications tests.
- Update velocity baseline documentation and history with the faster shard timing.

Files changed:
 docs/test-velocity-baseline.md                     |  72 +++---
 .../SettingsModal.remote-notifications.test.tsx    | 279 ++++++++-------------
 .../__tests__/SettingsModal.test-harness.tsx       |  16 ++
 scripts/test-velocity-history.json                 | 119 +++++++++
 4 files changed, 275 insertions(+), 211 deletions(-)

Fusion-Task-Id: FN-7087

Fusion-Task-Lineage: aec39ac9-dd6a-49b5-96c2-07a8d0a119b7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 19:16:26 -07:00
gsxdsm
cc7917d9a1 FN-7088: index unlinked documentation pages
Document the previously unlinked docs from the README index for easier discovery.

- Add Signals Connectors to the documentation guide section.
- Add testing baseline and audit reports to the audit reports index.
- Record the FN-7088 docs-index requirement in the existing FNXC DocsIndex note.

Files changed:
 docs/README.md | 7 +++++++
 1 file changed, 7 insertions(+)

Fusion-Task-Id: FN-7088

Fusion-Task-Lineage: df77fa9a-ba63-4df9-ac70-d144230eb8f3

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 18:53:08 -07:00
gsxdsm
5608bf555f FN-7083: derive project in-flight counts from live tasks
Derive CLI project in-flight agent displays from live in-progress task counts instead of persisted health bookkeeping.

- Add shared CLI display health handling for project list and show output.
- Cover stale, missing, unreadable, table, and JSON project health cases in CLI tests.
- Clarify central health and concurrency fields as persisted bookkeeping in docs and types.
- Add a patch changeset for the published CLI behavior fix.

Files changed:
 .changeset/fn-7083-cli-inflight-live-count.md      |   7 +
 docs/architecture.md                               |   1 +
 docs/multi-project.md                              |   4 +-
 .../cli/src/commands/__tests__/project.test.ts     | 172 ++++++++++++++++++++-
 packages/cli/src/commands/project.ts               |  60 ++++---
 packages/cli/src/project-resolver.ts               |   4 +
 packages/core/src/types.ts                         |  12 +-
 7 files changed, 235 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-7083

Fusion-Task-Lineage: 2b57cb35-383f-443b-8bf3-3fc3c7a1ad43

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 18:35:54 -07:00
gsxdsm
8bcda7325c FN-7082: add live running-agent count seam
Add a side-effect-safe core seam so global concurrency reads can report live running-agent counts.

- Add core helpers to register a running-agent count source and derive active project totals.
- Wire CentralCore and dashboard server setup to read live counts from already-open stores without starting runtimes.
- Update the global concurrency route to preserve slot bookkeeping while sourcing currentlyActive/projectsActive from the live seam.
- Cover the seam, dashboard store resolver, server wiring, and route behavior with focused tests and document the multi-project behavior.

Files changed:
 .changeset/fn-7082-live-running-agent-count-seam.md       |   7 ++
 docs/multi-project.md                              |   2 +-
 packages/core/src/__tests__/central-core.test.ts   | 106 +++++++++++++++++++++
 packages/core/src/central-core.ts                  |  28 ++++++
 packages/core/src/index.ts                         |   7 ++
 packages/core/src/live-agent-count.ts              |  38 ++++++++
 .../dashboard/src/__tests__/project-routes.test.ts |  20 +++-
 .../src/__tests__/project-store-resolver.test.ts   |  71 ++++++++++++++
 packages/dashboard/src/__tests__/server.test.ts    |  45 ++++++++-
 packages/dashboard/src/project-store-resolver.ts   |  24 +++++
 packages/dashboard/src/routes.ts                   |  25 +----
 packages/dashboard/src/server.ts                   |  42 +++++++-
 12 files changed, 387 insertions(+), 28 deletions(-)

Fusion-Task-Id: FN-7082

Fusion-Task-Lineage: 4dbca204-8bea-4de5-b56b-7468b61575ce

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 18:19:41 -07:00
gsxdsm
d9b17dea01 FN-7086: default dirty checkout merge sync
Default AI merge landing to preserve legacy dirty-checkout synchronization for new and partially configured projects.

- Default resolved project merger settings to allow dirty local checkout sync while preserving explicit false values.
- Pass the resolved dirty-checkout sync policy through single-repo and workspace AI merge landing paths.
- Update settings UI defaults, type docs, regression coverage, and release notes for the new behavior.

Files changed:
 .changeset/fn-7086-allow-dirty-sync-default.md     |  7 ++++
 packages/core/src/__tests__/store-settings.test.ts | 40 ++++++++++++++++++++++
 packages/core/src/settings-schema.ts               |  6 +++-
 packages/core/src/store.ts                         | 12 +++++++
 packages/core/src/types.ts                         |  6 ++--
 .../dashboard/app/components/SettingsModal.tsx     |  2 +-
 packages/engine/src/merger-ai.ts                   | 35 +++++++++++--------
 7 files changed, 89 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-7086
Fusion-Task-Lineage: 65871e7c-af0c-45b9-af54-749d56dfadd5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 18:11:41 -07:00
gsxdsm
0ddfe9a422 FN-7084: add concurrency save confirmations
Require explicit confirmation before Command Center concurrency sliders persist live capacity changes.

- Add confirmation flows for global and project concurrency sliders after debounce settles.
- Revert pending slider values on cancel, Escape, or backdrop dismissal without saving.
- Cover single, batched, no-op, failure, and dismissal paths in Command Center control tests.
- Document the confirmation behavior and add a published package changeset.

Files changed:
 .changeset/FN-7084-concurrency-confirm.md          |   7 +
 docs/dashboard-guide.md                            |   3 +-
 .../command-center/CommandCenterControls.tsx       | 169 ++++++++++++++---
 .../__tests__/CommandCenterControls.test.tsx       | 203 +++++++++++++++++----
 4 files changed, 323 insertions(+), 59 deletions(-)

Fusion-Task-Id: FN-7084

Fusion-Task-Lineage: f1ebe1f7-f570-4bcb-9dad-7c8f03808d54

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 18:01:21 -07:00
gsxdsm
42d9c656ee FN-7080: report live concurrency counts
Derive global concurrency running totals from live task columns so active work no longer appears idle.

- Count in-progress tasks across all projects for `/api/global-concurrency`.
- Replace stale slot bookkeeping in the response while preserving configured caps and queue counts.
- Cover empty, multi-project, and over-cap running-count scenarios in route tests.
- Add a patch changeset for the published Fusion package.

Files changed:
 .changeset/fn-7080-concurrency-running-count-fix.md       |   7 ++
 packages/dashboard/src/__tests__/project-routes.test.ts | 113 +++++++++++++++++++++
 packages/dashboard/src/routes.ts                   |  29 +++++-
 3 files changed, 148 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-7080

Fusion-Task-Lineage: a22d366f-ea93-47a5-b758-5e2d3828cff3

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 17:43:56 -07:00
gsxdsm
4c48ccfe03 FN-7078: forward MCP config to planning helpers
Dashboard readonly planning helpers now receive scoped MCP server configuration when creating AI sessions.

- Thread request-scoped TaskStore access into subtask, text refine, goal drafting, agent onboarding, PR metadata, insight, and triage helper paths.
- Resolve and forward in-memory MCP server declarations while preserving empty no-store fallbacks and secret hygiene.
- Document the expanded MCP forwarding surface and add regression coverage for helper forwarding and retry paths.
- Add a changeset for the published Fusion package.

Files changed:
 .changeset/fn-7078-mcp-planning-helpers.md         |   7 +
 docs/mcp.md                                        |   6 +-
 .../src/__tests__/agent-generation.test.ts         |   3 +
 .../src/__tests__/agent-onboarding.test.ts         |  72 +++++-
 packages/dashboard/src/__tests__/ai-refine.test.ts |  96 +++++++-
 .../src/__tests__/mcp-helper-forwarding.test.ts    | 258 +++++++++++++++++++++
 .../src/__tests__/pr-metadata-generator.test.ts    |   1 +
 .../src/__tests__/subtask-breakdown.test.ts        | 137 ++++++++++-
 packages/dashboard/src/agent-generation.ts         |  17 +-
 packages/dashboard/src/agent-onboarding.ts         |  49 +++-
 packages/dashboard/src/ai-refine.ts                |  18 +-
 packages/dashboard/src/insights-routes.ts          |  40 ++--
 packages/dashboard/src/pr-metadata-generator.ts    |  13 +-
 packages/dashboard/src/routes.ts                   |   3 +-
 ...gister-agent-import-export-generation-routes.ts |   6 +-
 .../dashboard/src/routes/register-git-github.ts    |   1 +
 .../src/routes/register-planning-subtask-routes.ts |   2 +-
 packages/dashboard/src/subtask-breakdown.ts        |  27 ++-
 packages/dashboard/src/triage-trait.ts             |   2 +-
 19 files changed, 695 insertions(+), 63 deletions(-)

Fusion-Task-Id: FN-7078
Fusion-Task-Lineage: 8ed30003-7a27-42e9-8b37-5ceb1a832334
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-06-26 17:38:41 -07:00
gsxdsm
f78711d21e test(FN-5048): replace fixed sleeps with polled waits in ws badge tests
Swap fixed 200ms "wait for pub/sub propagation" sleeps in the
multi-instance badge tests for polled waitForExpectation calls. Returns
on delivery (typically <20ms) instead of always paying 200ms, and
removes the delivery>200ms race an unconditional sleep masks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 17:33:12 -07:00
gsxdsm
20002e7186 test(FN-7077): allow dual-scoped mcpServers in settings parity guard
mcpServers is intentionally shared across global and project scopes (a
global default applies to every project; a project override tailors the
set per project). Add it to the parity guard's intentional shared-keys
allow-list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 17:33:11 -07:00
gsxdsm
525953b494 fix: stop schema comments truncating parsed table bodies
parseCreateTableSchemasFromSql now strips `--` comments before the
non-greedy CREATE TABLE body regex, so a `);` inside a schema comment can
no longer end a table body early and silently drop columns from
ensureSchemaCompatibility()'s backfill set. Fixes legacy DBs missing
newer task columns (checkout-lease, column dwell) after upgrade.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 17:33:06 -07:00
gsxdsm
ad3149093a FN-7077: inject configured MCP servers across agent surfaces
Configured MCP servers now follow every agent-work lane that launches model-backed tools.

- Thread MCP server forwarding through chat, task execution, tools, PR response, cron, memory, research, and planning surfaces.
- Add regression coverage for dashboard and engine lanes that previously omitted MCP server configuration.
- Document all covered MCP surfaces and add a published package changeset.

Files changed:
 .changeset/fn-7077-mcp-all-surfaces.md             |   7 +
 docs/mcp.md                                        |   3 +
 docs/settings-reference.md                         |   2 +-
 packages/cli/src/commands/__tests__/serve.test.ts  |   3 +-
 packages/core/src/memory-compaction.ts             |   4 +
 .../src/__tests__/mcp-lane-forwarding.test.ts      |  62 +++++++++
 packages/dashboard/src/agent-generation.ts         |   4 +
 packages/dashboard/src/ai-refine.ts                |   8 ++
 .../dashboard/src/milestone-slice-interview.ts     |  11 +-
 packages/dashboard/src/mission-interview.ts        |   9 +-
 packages/dashboard/src/pr-conflict-resolver.ts     |  12 +-
 packages/dashboard/src/routes.ts                   |  10 ++
 packages/dashboard/src/subtask-breakdown.ts        |   8 ++
 packages/engine/src/__tests__/cron-runner.test.ts  |  61 +++++++++
 .../src/__tests__/mcp-lane-forwarding.test.ts      |   3 +-
 .../__tests__/mcp-pr-response-forwarding.test.ts   | 110 ++++++++++++++++
 .../src/__tests__/mcp-surface-coverage.test.ts     | 141 +++++++++++++++++++++
 packages/engine/src/agent-heartbeat.ts             |  18 +++
 packages/engine/src/cli-agent-ask.ts               |   4 +
 packages/engine/src/cron-runner.ts                 |   9 +-
 packages/engine/src/pr-nodes.ts                    |   2 +-
 packages/engine/src/pr-response-run-ops.ts         |  10 +-
 packages/engine/src/project-engine.ts              |   2 +-
 .../research/providers/llm-synthesis-provider.ts   |   4 +
 .../src/research/providers/web-search-provider.ts  |   4 +
 25 files changed, 497 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-7077
Fusion-Task-Lineage: 00d36357-c3d8-4954-b647-d3aea24a967b
2026-06-26 16:14:44 -07:00
gsxdsm
af8cc7b29c FN-7079: Correct quarantine baseline reporting
Correct the velocity baseline to reflect an empty quarantine ledger and cover that report-only path.

- Update the published test velocity baseline quarantine totals, buckets, trend row, and #leads summary to zero.
- Add a regression test that regenerates the report from an empty live quarantine ledger without measuring lanes.
- Assert deletion-due and bucket rows stay zero and stale nonzero quarantine text is removed.

Files changed:
 docs/test-velocity-baseline.md                    | 10 ++--
 scripts/__tests__/test-velocity-baseline.test.mjs | 72 ++++++++++++++++++++++-
 2 files changed, 76 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-7079

Fusion-Task-Lineage: d641adc3-f991-4d95-bcb2-7b20bbfeb0bb
2026-06-26 15:50:40 -07:00
gsxdsm
0440ae4bb9 FN-7074: make task ID reservation commits atomic
Task creation now commits or rolls back distributed task ID reservations with the task-row transaction.

- Add transaction-participating reservation commit and rollback helpers.
- Wire create, duplicate, and refinement task paths to commit reservations inside task insertion.
- Record rollback audit events and preserve burned reservation rows after failed creates.
- Cover atomicity, rollback, and allocator behavior with reservation-focused tests and docs.

Files changed:
 .changeset/fn-7074-reservation-atomicity.md        |   7 +
 AGENTS.md                                          |   1 +
 docs/architecture.md                               |   7 +-
 docs/storage.md                                    |   4 +-
 .../core/src/__tests__/distributed-task-id.test.ts |  25 ++-
 .../__tests__/store-reservation-atomicity.test.ts  | 224 +++++++++++++++++++++
 packages/core/src/distributed-task-id.ts           | 208 +++++++++++++------
 packages/core/src/store.ts                         |  93 +++++++--
 8 files changed, 479 insertions(+), 90 deletions(-)

Fusion-Task-Id: FN-7074

Fusion-Task-Lineage: 464a98cf-e903-4257-93ac-424c7129412b
2026-06-26 14:55:01 -07:00
gsxdsm
93b01c8ea9 FN-7076: show Command Center concurrency utilization
Surface Command Center concurrency utilization beside the editable caps.

- Add loaded-only running-agent readouts for global and current-project concurrency.
- Render clamped current-use markers on the global and project max-concurrent sliders without intercepting drags.
- Cover loaded, zero, unavailable, over-subscribed, and persistence behavior in Command Center tests.
- Document the utilization indicators and add a release changeset.

Files changed:
 .../fn-7076-command-center-concurrency-counts.md   |   7 ++
 docs/dashboard-guide.md                            |   3 +-
 .../command-center/CommandCenterControls.css       |  22 ++++
 .../command-center/CommandCenterControls.tsx       | 103 ++++++++++++++-----
 .../__tests__/CommandCenterControls.test.tsx       | 111 +++++++++++++++++++++
 5 files changed, 219 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-7076

Fusion-Task-Lineage: 540a57aa-a31b-4a57-aff6-47b373713ab3
2026-06-26 14:38:12 -07:00
gsxdsm
7137e36ccb FN-7073: serve file previews inline
File viewer previews now request inline-safe responses while downloads remain attachments.

- Add an inline preview query option to file download URL helpers and preview consumers.
- Serve known media and PDF preview extensions with real MIME types, inline disposition, nosniff, and sandbox CSP headers.
- Keep explicit downloads and unknown file types on attachment/octet-stream behavior.
- Cover preview and download header behavior with dashboard route and component tests.

Files changed:
 .changeset/fn-7073-file-viewer-inline-preview.md   |   7 +
 docs/dashboard-guide.md                            |   2 +-
 packages/dashboard/app/api/legacy.ts               |   9 +-
 .../dashboard/app/components/DockFilesView.tsx     |   2 +-
 .../dashboard/app/components/FileBrowserModal.tsx  |   2 +-
 .../components/__tests__/DockFilesView.test.tsx    |  14 +-
 .../components/__tests__/FileBrowserModal.test.tsx |  12 +-
 .../register-file-workspace-routes.test.ts         | 141 +++++++++++++++++++++
 .../src/routes/register-file-workspace-routes.ts   | 111 +++++++++++-----
 9 files changed, 260 insertions(+), 40 deletions(-)

Fusion-Task-Id: FN-7073
Fusion-Task-Lineage: 922b4aa4-ac6d-4a59-b94f-bab4eeb65530
2026-06-26 14:33:58 -07:00