gsxdsm
6a2de64381
fix: normalize Anthropic storage ids at the ModelRuntime.login choke point
...
Third incident of the same class (#1857/FN-7391, FN-9101, GitHub #3462 ):
Fusion's Anthropic auth-card/storage ids (anthropic-subscription,
anthropic-api-key) leaking into pi, which only registers the execution
provider 'anthropic'. FusionAuthStorage.login is the single seam that hands
a provider id to ModelRuntime.login; it now normalizes via
toExecutionModelProviderId so a future caller bug degrades to a correct
upstream anthropic login instead of a hard 'Unknown provider' failure, with
a regression test pinning the seam. The invariant, incident history, and
guard inventory are captured in
docs/solutions/integration-issues/anthropic-storage-ids-are-never-pi-provider-ids.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-15 14:52:38 -07:00
gsxdsm
c0e568bf78
FN-9100: fix staged Cursor core imports in CLI builds
...
Ensure staged plugin core runtime imports resolve reliably in packaged CLI builds.
- Export Cursor runtime core helpers from the CLI runtime shim.
- Guard staged plugin imports against undeclared or unavailable core exports.
- Add Cursor bundle coverage and document the focused packaging test.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-9100-staged-plugin-core-shim.md | 7 +
docs/testing.md | 1 +
.../__tests__/plugin-sdk-core-runtime-shim.test.ts | 40 +++-
.../__tests__/staged-plugin-core-imports.test.ts | 221 +++++++++++++++++++++
packages/cli/src/plugin-sdk-core-runtime-shim.mjs | 10 +-
5 files changed, 272 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-9100
Fusion-Task-Lineage: 4c25ef74-065d-4e5a-86f2-e6f9a22500b3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 12:04:30 -07:00
gsxdsm
b6efd89ae5
FN-9097: add Cursor CLI execution runtime
...
Add a supervised Cursor CLI runtime for routed Cursor model sessions.
- Stream Cursor prompt output into Fusion session callbacks with resume support.
- Support Windows Cursor shims, inactivity-based supervision, and cursor-agent to cursor fallback execution.
- Route Cursor CLI models through the bundled plugin and document the runtime contract.
Files changed:
.changeset/fn-9097-cursor-cli-runtime.md | 7 ++
docs/cursor-cli-contract.md | 21 ++++
docs/settings-reference.md | 4 +-
.../cli-runtime-routing-conformance.test.ts | 11 +-
.../engine/src/agents/agent-session-helpers.ts | 6 +-
packages/engine/src/agents/cli-provider-routing.ts | 27 ++---
plugins/fusion-plugin-cursor-runtime/README.md | 21 ++++
plugins/fusion-plugin-cursor-runtime/package.json | 1 +
.../src/__tests__/cli-spawn.test.ts | 25 ++++-
.../src/__tests__/prompt-transport.test.ts | 58 ++++++++++
.../src/__tests__/runtime-adapter.test.ts | 44 +++++---
.../src/__tests__/stream-parser.test.ts | 12 +++
.../fusion-plugin-cursor-runtime/src/cli-spawn.ts | 57 +++++++++-
plugins/fusion-plugin-cursor-runtime/src/index.ts | 4 +-
.../src/prompt-transport.ts | 120 +++++++++++++++++++++
.../src/runtime-adapter.ts | 59 ++++++----
.../src/stream-parser.ts | 43 ++++++++
plugins/fusion-plugin-cursor-runtime/src/types.ts | 18 ++--
pnpm-lock.yaml | 3 +
19 files changed, 458 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-9097
Fusion-Task-Lineage: a4eed861-6059-4528-9f80-3426f5ccad58
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 08:51:35 -07:00
gsxdsm
1d3f6c198c
FN-9096: route CLI models through installed runtimes
...
Route every CLI-provider selection through an explicit installed-runtime policy.
- Centralize CLI provider classifications, runtime hints, fallback behavior, and actionable missing-runtime errors.
- Validate routing coverage statically and add conformance and integration tests for CLI runtime paths.
- Document runtime routing behavior and add a published CLI changeset.
Files changed: .changeset/fn-9096-cli-runtime-routing.md | 7 +
docs/settings-reference.md | 29 +++
docs/testing.md | 6 +-
package.json | 6 +-
.../src/__tests__/cli-provider-routing.test.ts | 74 ++++++++
.../__tests__/cli-runtime-routing-check.test.ts | 25 +++
.../cli-runtime-routing-conformance.test.ts | 210 +++++++++++++++++++++
.../__tests__/hermes-runtime-integration.test.ts | 28 +++
.../engine/src/agents/agent-session-helpers.ts | 166 ++++------------
packages/engine/src/agents/cli-provider-routing.ts | 174 +++++++++++++++++
scripts/check-cli-runtime-routing.mjs | 26 +++
scripts/lib/cli-runtime-routing-check.mjs | 84 +++++++++
12 files changed, 701 insertions(+), 134 deletions(-)
Fusion-Task-Id: FN-9096
Fusion-Task-Lineage: f9f6a434-b28d-4ebb-816a-53ca75efc2c4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 07:19:29 -07:00
gsxdsm
284feeaf11
FN-9092: prevent model menus from dismissing host dialogs
...
Keep portaled model-menu interaction from propagating to host dialog dismissal.
- Mark model-menu portal surfaces and stop their pointer events from reaching dialog backdrops.
- Apply the dismissal guard across agent, chat, floating-window, and model-selection dialogs.
- Close enabled overlays on valid touch taps while suppressing duplicate compatibility mouse closes.
- Add desktop and mobile regression coverage for portal-host dismissal behavior.
Files changed:
.../fn-9092-model-filter-dialog-dismissal.md | 7 +
.../ui-bugs/portaled-model-menu-host-dismissal.md | 19 +++
packages/dashboard/app/components/AgentsView.tsx | 6 +
.../app/components/ChatThinkingLevelControl.tsx | 17 ++-
packages/dashboard/app/components/ChatView.tsx | 38 +++--
.../app/components/CustomModelDropdown.tsx | 13 +-
.../dashboard/app/components/FloatingWindow.tsx | 17 +--
.../app/components/ModelSelectionModal.tsx | 17 +--
.../dashboard/app/components/NewAgentDialog.tsx | 12 +-
.../dashboard/app/components/QuickEntryBox.tsx | 5 +-
.../ChatThinkingLevelControl.portal.test.tsx | 9 ++
.../__tests__/CustomModelDropdown.test.tsx | 24 ++-
.../__tests__/ModelSelectionModal.test.tsx | 3 +-
.../NewAgentDialog.portal-dismissal.test.tsx | 77 ++++++++++
.../components/__tests__/NewAgentDialog.test.tsx | 11 ++
.../model-menu-filter-host-dismissal.test.tsx | 163 +++++++++++++++++++++
.../app/hooks/__tests__/useOverlayDismiss.test.tsx | 7 +-
packages/dashboard/app/hooks/useOverlayDismiss.ts | 26 +++-
.../app/utils/__tests__/portalSurfaces.test.ts | 31 ++++
packages/dashboard/app/utils/portalSurfaces.ts | 31 ++++
20 files changed, 469 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-9092
Fusion-Task-Lineage: a0d0b84d-2efe-4a67-9485-77c08f7cc57e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 06:42:39 -07:00
gsxdsm
b26894e0dd
FN-9095: move spec alignment details to Definition tab bottom
...
Place low-frequency spec alignment provenance after plan and relationship content.\n\n- Move the Definition-tab spec-lock report to the final section.\n- Cover populated, unavailable, and absent spec-lock report states.\n- Document the placement and add a patch changeset.\n\nFiles changed:\n .changeset/fn-9095-spec-alignment-position.md | 7 ++\n docs/dashboard-guide.md | 2 +-\n .../dashboard/app/components/TaskDetailModal.tsx | 87 +++++++++++-----------\n .../__tests__/TaskDetailModal.spec-lock.test.tsx | 63 ++++++++++++++++\n 4 files changed, 115 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-9095
Fusion-Task-Lineage: c017325c-b7c1-4f0e-abab-49462903a778
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 06:09:09 -07:00
gsxdsm
8d8ea26cb2
FN-9094: omit unsupported Grok auto-update flag
...
Align Grok ACP expectations with the released CLI contract.
- Update runtime routing and adapter assertions to omit --no-auto-update by default.
- Cover explicit false and default argument behavior in ACP settings tests.
- Document the released CLI incompatibility and opt-in escape hatch.
Files changed:
docs/grok-cli-contract.md | 7 ++++---
packages/engine/src/__tests__/grok-runtime-routing.test.ts | 14 +++++++++-----
.../src/__tests__/acp-settings.test.ts | 2 ++
.../src/__tests__/runtime-adapter.test.ts | 14 ++++++++++----
4 files changed, 25 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-9094
Fusion-Task-Lineage: f776e401-8473-45b2-a8b2-8d8251b4713e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 05:58:36 -07:00
gsxdsm
9fa8b386ee
FN-9059: add durable workspace coordination leases
...
Prevent overlapping multi-node workspace operations and duplicate repository landings.
- Add durable coordination leases, fence tokens, and land-intent persistence.
- Fence workspace merge dispatches and repository publication across engine nodes.
- Reconcile expired coordination state safely and cover lease lifecycle behavior.
Files changed:
.../fn-9059-workspace-durable-coordination.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/multi-project.md | 48 ++++
.../workspace-coordination-leases.pg.test.ts | 56 ++++
.../__tests__/postgres/workspace-leases.pg.test.ts | 112 ++++++++
packages/core/src/engine-node-identity.ts | 22 ++
packages/core/src/index.ts | 3 +
.../0060_fn_9059_workspace_coordination_leases.sql | 10 +
packages/core/src/postgres/schema-applier.ts | 13 +-
packages/core/src/postgres/schema/project.ts | 31 ++
packages/core/src/store.ts | 18 ++
packages/core/src/task-store/workspace-leases.ts | 261 +++++++++++++++++
packages/core/src/tasks/workspace-lease-types.ts | 24 ++
.../engine/src/__tests__/project-engine.test.ts | 69 ++++-
.../src/__tests__/self-healing-workspace.test.ts | 63 ++++-
.../workspace-durable-coordination.test.ts | 49 ++++
.../src/__tests__/workspace-merger-lease.test.ts | 312 ++++++++++++++++++++-
packages/engine/src/merge/merger-ai.ts | 277 ++++++++++++++++--
packages/engine/src/merge/workspace-fence-ref.ts | 171 +++++++++++
packages/engine/src/project-engine.ts | 175 ++++++++++--
packages/engine/src/runtimes/in-process-runtime.ts | 4 +-
packages/engine/src/self-healing.ts | 191 ++++++++++++-
packages/engine/src/util/run-audit.ts | 2 +
.../engine/src/worktree/worktree-acquisition.ts | 43 ++-
25 files changed, 1901 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-9059
Fusion-Task-Lineage: e51e3f54-69ee-4337-a218-4895d87474aa
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 03:22:13 -07:00
gsxdsm
2f99a8fb59
FN-9052: add atomic workspace worktree entry merges
...
Serialize per-repository workspace worktree state updates across concurrent Fusion processes.
- Add advisory-locked store-level per-entry workspace worktree merges.
- Route acquisition, landing, failure, and recovery updates through atomic merges.
- Cover concurrent sibling repository writes and document the invariant.
Files changed:
.../fn-9052-workspace-worktree-atomic-merge.md | 7 ++
docs/architecture.md | 1 +
...workspace-worktrees-concurrent-merge.pg.test.ts | 90 ++++++++++++++++++++++
packages/core/src/store.ts | 10 ++-
packages/core/src/task-store/task-mutation-ops.ts | 52 ++++++++++++-
packages/core/src/types.ts | 2 +
packages/core/src/types/task/task-core.ts | 17 +++-
.../merge-orphan-body-durable-writes.test.ts | 8 ++
.../src/__tests__/self-healing-workspace.test.ts | 49 +++++++++---
.../src/__tests__/workspace-merger-lease.test.ts | 12 +++
.../engine/src/__tests__/workspace-merger.test.ts | 12 +--
.../worktree-acquisition-workspace.test.ts | 82 +++++++++++++++++++-
packages/engine/src/merge/merger-ai.ts | 21 ++---
.../engine/src/merge/workspace-land-failure.ts | 19 +++--
packages/engine/src/self-healing.ts | 15 +++-
.../engine/src/worktree/worktree-acquisition.ts | 25 +++---
16 files changed, 370 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-9052
Fusion-Task-Lineage: 2168085a-74a7-4a0f-954e-50db99eb98b7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 01:14:43 -07:00
gsxdsm
7bb7d450e6
FN-9062: surface workspace repository land status
...
Expose per-repository workspace landing progress and failures in Task Detail.
- Persist display-only repository land failure breadcrumbs during merge and recovery
- Render landed, pending, and failed repository statuses with partial-land detail
- Document the workspace status behavior and add coverage for UI and recovery paths
Files changed:
.changeset/fn-9062-workspace-land-status.md | 7 ++
docs/dashboard-guide.md | 4 +
packages/core/src/types/task/task-core.ts | 11 ++-
.../dashboard/app/components/TaskDetailModal.css | 33 +++++++
.../app/components/WorkspaceWorktreesSummary.tsx | 106 ++++++++-------------
.../__tests__/WorkspaceWorktreesSummary.test.tsx | 46 ++++++++-
.../src/__tests__/self-healing-workspace.test.ts | 19 ++++
.../engine/src/__tests__/workspace-merger.test.ts | 6 ++
packages/engine/src/merge/merger-ai.ts | 7 +-
.../engine/src/merge/workspace-land-failure.ts | 21 ++++
packages/engine/src/self-healing.ts | 16 ++++
11 files changed, 208 insertions(+), 68 deletions(-)
Fusion-Task-Id: FN-9062
Fusion-Task-Lineage: 8c12b9f9-f6ed-4766-a6f1-49cdf9ea8926
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 00:48:23 -07:00
gsxdsm
43889bc684
FN-9058: block workspace main-checkout edits
...
Prevent workspace tasks from completing after task-era edits in configured sub-repository main checkouts.
- Detect dirty and recent commit evidence across every workspace main checkout before invariant checks.
- Block attributable edits with bounded retries while warning safely for inconclusive evidence.
- Add audit telemetry, documentation, changeset, and real-git regression coverage.
Files changed:
.../fn-9058-workspace-main-checkout-guard.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 1 +
.../engine/src/__tests__/_workspace-fixture.ts | 3 +-
.../executor-workspace-main-checkout-guard.test.ts | 164 +++++++++++++++++++++
packages/engine/src/executor/execution-prompt.ts | 3 +-
.../src/executor/workspace-main-checkout-guard.ts | 128 ++++++++++++++++
.../src/executor/worktree-verify-invariants.ts | 45 +++++-
packages/engine/src/util/run-audit.ts | 2 +
9 files changed, 351 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-9058
Fusion-Task-Lineage: b5dd58bd-4bd9-41fd-b3d5-e07270f3abca
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 00:41:44 -07:00
gsxdsm
c7779e44ac
FN-9055: guard archive disposal of live workspace worktrees
...
Prevent archive cleanup from removing worktrees that still belong to live tasks.
- Add shared archive liveness evaluation and transactional refusal guards.
- Require CLI and extension archive operations to refuse live tasks unless a human uses --force.
- Protect baseline archive worktree disposal and cover CLI, core, and engine paths with tests.
Files changed:
.changeset/fn-9055-archive-live-worktree-guard.md | 7 ++
docs/cli-reference.md | 4 +-
docs/task-management.md | 4 +-
.../extension-task-archive-live-guard.test.ts | 82 +++++++++++++++++++
packages/cli/src/bin.ts | 6 +-
packages/cli/src/commands/__tests__/task.test.ts | 66 ++++++++++++++-
packages/cli/src/commands/task.ts | 49 +++++++++---
packages/cli/src/extension.ts | 25 ++++--
.../src/__tests__/archive-live-task-guard.test.ts | 70 ++++++++++++++++
.../postgres/archive-live-task-fence.pg.test.ts | 69 ++++++++++++++++
.../src/__tests__/task-archive-liveness.test.ts | 19 +++++
packages/core/src/index.ts | 10 +++
packages/core/src/store.ts | 4 +-
.../core/src/task-store/archive-lifecycle-2.ts | 27 +++++--
packages/core/src/task-store/archive-lifecycle.ts | 20 ++---
.../src/task-store/async/async-archive-lineage.ts | 17 +++-
packages/core/src/tasks/task-archive-liveness.ts | 56 +++++++++++++
...chive-baseline-disposer-live-task-guard.test.ts | 93 ++++++++++++++++++++++
.../healing/archive-worktree-disposer-install.ts | 15 +++-
19 files changed, 592 insertions(+), 51 deletions(-)
Fusion-Task-Id: FN-9055
Fusion-Task-Lineage: 08644626-cc61-4854-abb9-5b415ddc9491
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 00:35:12 -07:00
gsxdsm
1372218b1f
FN-9047: invalidate stale workspace landing proof after revert
...
Preserve workspace landing attribution while allowing cleanly reverted work to land again.
- Record a per-repository revert boundary after clean git-mode workspace reverts.
- Reject recorded and trailer landing proof at or behind that boundary, then clear it on a fresh landing.
- Persist boundaries through the revert route and cover re-land behavior with git tests.
Files changed:
.changeset/fn-9047-workspace-revert-landed-sha.md | 7 +++
docs/architecture.md | 2 +
packages/core/src/types/task/task-core.ts | 7 ++-
.../src/routes/register-session-diff-routes.ts | 2 +-
.../src/routes/register-task-workflow-routes.ts | 11 ++++
.../task-revert.workspace.real-git.test.ts | 27 ++++++++++
...orkspace-land-predicate.revert-boundary.test.ts | 60 ++++++++++++++++++++++
packages/engine/src/execution/task-revert.ts | 42 +++++++++++++--
packages/engine/src/index.ts | 1 +
packages/engine/src/merge/merger-ai.ts | 5 +-
.../engine/src/merge/workspace-land-predicate.ts | 25 +++++++--
packages/engine/src/self-healing.ts | 9 +++-
12 files changed, 185 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-9047
Fusion-Task-Lineage: 8ac41347-3c76-4f54-8d69-f16f82084305
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-15 00:02:52 -07:00
gsxdsm
4bc0a32d60
FN-9050: enforce AI squash scope and diff-volume gates
...
Validate approved AI squashes before any integration ref advances.
- Enforce task file scope and diff-volume checks for single-repo and workspace lands.
- Reset rejected clean rooms to the integration tip so invalid approved squashes cannot be recovered on retry.
- Add audit events, documentation, a changeset, and regression coverage for land gates.
Files changed:
.changeset/fn-9050-ai-merge-scope-gates.md | 7 +
docs/architecture.md | 2 +
docs/workflow-steps.md | 4 +-
.../src/__tests__/merger-ai-squash-gates.test.ts | 188 +++++++++++++++++++++
.../__tests__/merger-file-scope-invariant.test.ts | 29 ++++
.../__tests__/workspace-merger-scope-gates.test.ts | 118 +++++++++++++
.../engine/src/merge/merger-ai-squash-gates.ts | 66 ++++++++
packages/engine/src/merge/merger-ai.ts | 21 ++-
.../engine/src/merge/merger-diff-volume-gate.ts | 14 +-
packages/engine/src/merge/merger-file-scope.ts | 33 +++-
packages/engine/src/util/run-audit.ts | 1 +
11 files changed, 474 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-9050
Fusion-Task-Lineage: 9ecd8b8c-5c00-45ea-98e9-2aa8a8040c53
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 23:42:52 -07:00
gsxdsm
6896f1d7f3
FN-9045: wire workspace mode toggle to workspace config
...
Connect workspace-mode settings updates to the runtime workspace configuration lifecycle.
- Synchronize workspace.json and config.json when workspace mode changes.
- Reconcile settings events and executor state after successful or failed toggles.
- Add dashboard route, UI copy, localization, documentation, and regression coverage.
Files changed:
.changeset/fn-9045-workspace-mode-toggle.md | 7 +
docs/settings-reference.md | 2 +-
.../settings-workspace-toggle-side-effect.test.ts | 178 +++++++++++++++++++++
.../src/__tests__/workspace-mode-toggle.test.ts | 71 ++++++++
packages/core/src/git/git-repository.ts | 147 ++++++++++++++++-
packages/core/src/index.gate.ts | 6 +
packages/core/src/index.ts | 6 +
packages/core/src/task-store/settings-ops.ts | 86 +++++++++-
packages/core/src/types/settings/settings-scope.ts | 11 +-
.../settings/sections/GeneralSection.tsx | 10 +-
.../settings-workspace-mode-route.test.ts | 148 +++++++++++++++++
.../src/routes/register-settings-memory-routes.ts | 18 +++
.../executor-workspace-toggle-invalidation.test.ts | 64 ++++++++
.../engine/src/executor/task-executor-state.ts | 6 +
.../src/executor/workspace-config-resolver.ts | 16 +-
packages/engine/src/runtimes/in-process-runtime.ts | 12 ++
packages/i18n/locales/en/app.json | 2 +-
packages/i18n/locales/es/app.json | 4 +-
packages/i18n/locales/fr/app.json | 4 +-
packages/i18n/locales/ko/app.json | 4 +-
packages/i18n/locales/pt-BR/app.json | 4 +-
packages/i18n/locales/zh-CN/app.json | 4 +-
packages/i18n/locales/zh-TW/app.json | 4 +-
23 files changed, 791 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-9045
Fusion-Task-Lineage: e382726f-8409-4983-94ef-93f341a6adbf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 23:33:36 -07:00
gsxdsm
892afaaf03
FN-9048: clear disposed workspace state on unarchive
...
Prevent disposed workspace metadata from being revived when archived tasks return.
- Reconcile missing workspace and singular worktree paths during archive restore.
- Preserve surviving workspace entries and cover archive-to-restore recovery behavior.
- Document the restore lifecycle and add a patch changeset.
Files changed:
.changeset/fn-9048-workspace-unarchive.md | 7 ++
docs/task-management.md | 2 +-
.../archive-restore-workspace-worktrees.pg.test.ts | 70 +++++++++++++
.../core/src/task-store/archive-lifecycle-2.ts | 8 +-
.../src/task-store/async/async-archive-lineage.ts | 43 ++++++++
.../src/__tests__/self-healing-workspace.test.ts | 111 ++++++++++++++++++++-
6 files changed, 236 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-9048
Fusion-Task-Lineage: fa9b9359-5fab-497f-87ce-0174d8069d99
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 23:22:05 -07:00
gsxdsm
db8e715452
FN-9056: reclaim safe terminal workspace worktrees
...
Reclaim safely abandoned workspace worktrees and canonical task branches without disrupting live or recoverable tasks.
- Tear down eligible complete, idle failed, and soft-deleted per-repository worktrees with bounded retries.
- Veto live, paused, scheduled-recovery, ambiguous, and unsafe-path cleanup candidates.
- Verify failed-task landing evidence against each repository integration branch before deleting canonical branches.
- Cover liveness and stale landed-SHA safety regressions.
Files changed:
.changeset/fn-9056-workspace-terminal-teardown.md | 7 +
AGENTS.md | 2 +-
docs/architecture.md | 1 +
.../src/__tests__/self-healing-workspace.test.ts | 319 ++++++++++++++++++++-
.../engine/src/executor/cleanup-task-worktree.ts | 8 +-
packages/engine/src/self-healing.ts | 268 ++++++++++++-----
packages/engine/src/util/run-audit.ts | 7 +-
7 files changed, 525 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-9056
Fusion-Task-Lineage: 4353f7d9-063b-442b-88d3-6f3da1c9aae8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 23:14:19 -07:00
gsxdsm
d77b427b8c
FN-9063: document multi-repository workspace mode
...
Document workspace setup, operation, recovery, and lifecycle guidance for operators.
- Add a dedicated multi-repository workspace guide.
- Link workspace mode from onboarding, settings, task management, and project documentation.
- Cover the documentation contract with focused dashboard tests.
Files changed:
docs/README.md | 1 +
docs/getting-started.md | 2 +-
docs/multi-project.md | 2 +-
docs/settings-reference.md | 1 +
docs/task-management.md | 4 +-
docs/workspaces.md | 129 +++++++++++++++++++++
packages/dashboard/src/__tests__/workspace-documentation.test.ts | 74 ++++++++++++
7 files changed, 209 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-9063
Fusion-Task-Lineage: b79baa34-fcd7-47ed-89de-b4637160c305
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 22:25:15 -07:00
gsxdsm
ebd345da0f
FN-9060: reconcile zero-acquire workspace completion reviews
...
Align workspace completion and per-repo review behavior for tasks with no acquired worktrees.
- Centralize zero-acquire classification for completion and review paths.
- Approve proven commit-free tasks and immediately route deterministic unavailable reviews.
- Add regression coverage, workflow documentation, and a patch changeset.
Files changed:
.changeset/fn-9060-workspace-zero-acquire.md | 7 +++
docs/workflow-steps.md | 2 +-
.../__tests__/executor-workspace-taskdone.test.ts | 14 +++++
.../src/__tests__/executor-workspace.test.ts | 10 ++--
.../src/__tests__/reviewer-workspace.test.ts | 37 +++++++++++++-
.../src/__tests__/workflow-step-review.test.ts | 14 +++++
.../src/__tests__/workspace-zero-acquire.test.ts | 59 ++++++++++++++++++++++
packages/engine/src/execution/reviewer.ts | 7 +++
.../create-authoritative-workflow-seams.ts | 26 ++++++++--
.../src/executor/workspace-review-per-repo.ts | 32 +++++++++---
.../engine/src/executor/workspace-zero-acquire.ts | 53 +++++++++++++++++++
.../engine/src/executor/worktree-verify-invariants.ts | 31 ++++++++----
.../engine/src/workflows/workflow-node-handlers.ts | 14 +++--
13 files changed, 274 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-9060
Fusion-Task-Lineage: eb88f881-7db2-49d2-b79a-796eacd4fa40
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 22:16:44 -07:00
gsxdsm
da4e4bca44
FN-9053: prevent workspace acquisition from persisting singular worktrees
...
Keep workspace tasks classified as multi-repository throughout sub-repository worktree acquisition.
- Suppress singular worktree and branch persistence for workspace sub-repo acquisition.
- Preserve the single-repository persistence contract and add regression coverage for acquisition failures.
- Document the workspace acquisition-state invariant and add a patch changeset.
Files changed:
.../fn-9053-workspace-acquisition-atomicity.md | 7 ++
docs/architecture.md | 1 +
.../worktree-acquisition-workspace.test.ts | 98 ++++++++++++++++++++--
.../engine/src/worktree/worktree-acquisition.ts | 66 +++++++++------
4 files changed, 142 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-9053
Fusion-Task-Lineage: e27d1e90-fc99-4bb6-ac83-033f71abc521
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 22:03:16 -07:00
gsxdsm
495845023d
FN-9061: gate workspace foreach worktree isolation
...
Reject unsupported workspace projects before per-instance foreach worktree allocation.
- Add a workspace-isolation guard at graph execution and worktree allocation seams.
- Propagate workspace configuration probing through foreach dependencies.
- Cover workspace and non-workspace behavior, and document the limitation.
Files changed: .../fn-9061-foreach-workspace-isolation-gate.md | 7 +++
docs/workflow-steps.md | 2 +
.../workflow-foreach-workspace-isolation.test.ts | 72 ++++++++++++++++++++++
.../src/__tests__/workflow-graph-foreach.test.ts | 56 +++++++++++++++++
.../src/executor/build-foreach-worktree-deps.ts | 34 +++++++++-
packages/engine/src/executor/deps-bags.ts | 1 +
.../src/workflows/workflow-graph-executor.ts | 3 +
.../engine/src/workflows/workflow-graph-foreach.ts | 17 +++++
.../src/workflows/workflow-graph-task-runner.ts | 2 +
9 files changed, 193 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9061
Fusion-Task-Lineage: 38772936-a45f-41f1-b7ee-7999997404db
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 21:44:18 -07:00
gsxdsm
52a28d39ff
feat: add per-task GitHub tracking overrides to task create (fn_task_create + CLI)
...
fn_task_create gains github_tracking/github_repo params and fn task create
gains --github/--no-github/--github-repo flags, resolved through
resolveTaskGithubTracking (task > project > global). CLI create now also
honors the project/global tracking-enabled default it previously ignored;
explicit disables persist enabled:false so later default flips cannot
re-enable a task.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-14 21:12:15 -07:00
gsxdsm
0188d9427b
FN-9044: group workspace tasks by acquired worktrees
...
Show workspace-mode task cards in their own worktree group instead of Unassigned.
- Classify workspace worktree groups with stable identifiers and repository counts.
- Render localized workspace headers and appropriate group icons.
- Cover workspace grouping across utilities, columns, lanes, and group headers.
- Document the board behavior and add a patch changeset.
Files changed:
.changeset/fn-9044-workspace-worktree-grouping.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/Column.tsx | 4 +-
.../dashboard/app/components/WorktreeGroup.tsx | 20 ++++--
.../app/components/__tests__/Column.test.tsx | 32 ++++++++-
.../app/components/__tests__/Lane.test.tsx | 24 ++++++-
.../__tests__/worktree-grouping-workspace.test.tsx | 66 +++++++++++++++++
.../app/utils/__tests__/worktreeGrouping.test.ts | 82 ++++++++++++++++++++++
packages/dashboard/app/utils/worktreeGrouping.ts | 37 ++++++++--
packages/i18n/locales/en/app.json | 4 +-
packages/i18n/src/resources.d.ts | 4 +-
11 files changed, 267 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-9044
Fusion-Task-Lineage: d342d4fb-9fab-4efd-813f-2a3091d7c414
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 20:50:55 -07:00
gsxdsm
ba643fc384
FN-9042: fix dashboard update installation feedback
...
Make dashboard update actions report clear terminal outcomes and avoid unsupported installs.
- Distinguish update checks, no-op responses, installation failures, and unsupported installation methods.
- Block source-checkout, Homebrew, and missing-npm global installation attempts with actionable guidance.
- Surface update results in dashboard controls and cover API, updater, and UI behavior with tests.
Files changed:
.changeset/fn-9042-update-now-outcomes.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
packages/dashboard/app/api/settings/settings.ts | 2 +
.../dashboard/app/components/SettingsModal.tsx | 18 +--
.../app/components/UpdateAvailableBanner.tsx | 11 +-
.../__tests__/SettingsModal.general.test.tsx | 20 ++++
.../__tests__/UpdateAvailableBanner.test.tsx | 19 ++++
.../dashboard/src/__tests__/auto-update.test.ts | 38 ++++++-
.../dashboard/src/__tests__/update-check.test.ts | 19 +++-
packages/dashboard/src/auto-update.ts | 33 +++++-
.../__tests__/register-update-check-routes.test.ts | 104 ++++++++++++++++++
.../src/routes/register-update-check-routes.ts | 28 +++--
packages/dashboard/src/server.ts | 9 +-
packages/dashboard/src/update-check.ts | 122 ++++++++++-----------
15 files changed, 338 insertions(+), 96 deletions(-)
Fusion-Task-Id: FN-9042
Fusion-Task-Lineage: 22ae5540-e5b5-43cf-ad16-c7aa05782593
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 12:59:23 -07:00
gsxdsm
b7604a94bf
FN-9041: remove agent state-change activity logs
...
Remove durable agent state-change events and hide retained state-change rows from activity displays.
- Stop AgentStore update and reconciliation paths from writing state-change activity events.
- Filter historical state-change events in activity stores and panels while retaining live roster notifications.
- Document the retained activity contract, add coverage, and include a patch changeset.
Files changed:
.changeset/fn-9041-removal.md | 7 ++++
docs/agent-activity-contract.md | 4 ++
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../src/__tests__/agent-activity-writers.test.ts | 23 ++++++-----
packages/core/src/agents/agent-store.ts | 28 +++++--------
.../app/components/agentsOrgChartActivity.ts | 12 ++++++
.../command-center/AgentActivityPanel.tsx | 25 +++++++----
.../__tests__/AgentActivityPanel.test.tsx | 48 ++++++++++++++++++++++
.../app/hooks/__tests__/agentActivityStore.test.ts | 39 +++++++++++++++++-
packages/dashboard/app/hooks/agentActivityStore.ts | 3 +-
11 files changed, 153 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-9041
Fusion-Task-Lineage: 532724b1-5945-4904-b5cd-2c27909805de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 12:41:03 -07:00
gsxdsm
873f339ddd
FN-9040: show backup status and preserve schedules
...
Expose database backup inventory and schedule execution evidence while keeping scheduled backups due after unchanged settings saves.
- Display backup files, empty and error states, and automatic schedule details in Settings.
- Reconcile the shared backup routine at engine startup and retain its next run when settings are unchanged.
- Add API, localization, documentation, and regression coverage for backup status and scheduling.
Files changed:
.changeset/fn-9040-database-backups-visibility.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 4 +
.../src/__tests__/backup-schedule-status.test.ts | 124 +++++++++++++++++++++
.../core/src/automation/global-routine-store.ts | 31 +++++-
packages/core/src/backup/backup.ts | 95 ++++++++++++++--
packages/core/src/index.gate.ts | 4 +-
packages/core/src/index.ts | 4 +-
.../app/api/agents/agent-import-generation.ts | 14 +++
packages/dashboard/app/api/legacy.ts | 1 +
.../dashboard/app/components/SettingsModal.tsx | 12 +-
.../__tests__/SettingsModal.test-harness.tsx | 7 +-
.../__tests__/SettingsModalNodeRouting.test.tsx | 2 +-
.../components/__tests__/settings-mobile.test.tsx | 2 +-
.../settings/sections/DatabaseBackupsSection.css | 24 ++++
.../settings/sections/DatabaseBackupsSection.tsx | 67 ++++++-----
.../__tests__/DatabaseBackupsSection.test.tsx | 45 ++++++++
.../register-system-maintenance-routes.test.ts | 47 +++++++-
.../routes/register-system-maintenance-routes.ts | 46 ++++++--
.../src/__tests__/in-process-runtime.pg.test.ts | 15 ++-
packages/engine/src/runtimes/in-process-runtime.ts | 13 +++
packages/i18n/locales/en/app.json | 17 ++-
packages/i18n/locales/es/app.json | 17 ++-
packages/i18n/locales/fr/app.json | 17 ++-
packages/i18n/locales/ko/app.json | 17 ++-
packages/i18n/locales/pt-BR/app.json | 17 ++-
packages/i18n/locales/zh-CN/app.json | 17 ++-
packages/i18n/locales/zh-TW/app.json | 17 ++-
packages/i18n/src/resources.d.ts | 28 ++++-
29 files changed, 623 insertions(+), 90 deletions(-)
Fusion-Task-Id: FN-9040
Fusion-Task-Lineage: 29a803a2-0784-4a99-b7cb-2f67d105254b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 17:22:46 -07:00
gsxdsm
bebb46ff41
FN-9037: add indexed recommendation task lookups
...
Keep recommendation task creation responsive without changing duplicate-intake semantics.
- Add project-scoped proposal claim and source-lineage persistence reads with supporting indexes.
- Use bounded lookups for recommendation replay and same-agent duplicate intake.
- Resolve terminal lanes from each candidate's workflow and cover the indexed query paths.
Files changed:
.changeset/fn-9037-recommendation-create-perf.md | 7 ++
docs/storage.md | 4 +
.../intake-duplicate-terminal-lanes.test.ts | 3 +-
.../postgres/proposal-claim-lookup.pg.test.ts | 106 +++++++++++++++++++++
.../__tests__/same-agent-duplicate-intake.test.ts | 14 ++-
.../0059_fn_9037_tasks_source_agent_index.sql | 3 +
packages/core/src/postgres/schema-applier.ts | 12 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/store.ts | 8 +-
.../core/src/task-store/async/async-persistence.ts | 40 ++++++++
packages/core/src/task-store/reads.ts | 18 +++-
packages/core/src/task-store/task-creation.ts | 10 +-
.../__tests__/task-recommendation-routes.test.ts | 38 +++++++-
.../src/routes/register-task-workflow-routes.ts | 20 ++--
14 files changed, 259 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-9037
Fusion-Task-Lineage: ea44d65c-98cc-4a5b-a116-b3c28f14c292
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 17:13:56 -07:00
gsxdsm
dad726c777
FN-9038: add Knowledge Graph tab to Memory view
...
Expose knowledge graph data in the Memory view through a localized, resilient dashboard panel.
- Add protected knowledge graph API routes and access helpers.
- Add a Memory view tab, graph panel, loading/error states, and localized labels.
- Document graph navigation and cover access, route, hook, and component behavior.
Files changed:
.changeset/fn-9038-knowledge-graph-tab.md | 7 +
docs/dashboard-guide.md | 2 +
docs/knowledge-graph.md | 10 ++
packages/dashboard/app/api/legacy.ts | 17 ++-
packages/dashboard/app/api/system/index.ts | 1 +
.../dashboard/app/api/system/knowledge-graph.ts | 23 +++
.../app/components/KnowledgeGraphPanel.css | 35 +++++
.../app/components/KnowledgeGraphPanel.tsx | 68 +++++++++
packages/dashboard/app/components/MemoryView.tsx | 15 +-
.../__tests__/KnowledgeGraphPanel.test.tsx | 49 +++++++
.../app/components/__tests__/MemoryView.test.tsx | 13 ++
.../app/hooks/__tests__/useKnowledgeGraph.test.ts | 66 +++++++++
packages/dashboard/app/hooks/useKnowledgeGraph.ts | 94 ++++++++++++
.../src/__tests__/knowledge-graph-access.test.ts | 88 ++++++++++++
packages/dashboard/src/knowledge-graph-access.ts | 160 +++++++++++++++++++++
.../register-knowledge-graph-routes.test.ts | 75 ++++++++++
.../src/routes/register-knowledge-routes.ts | 120 ++++++++++++++++
packages/i18n/locales/en/app.json | 15 +-
packages/i18n/locales/es/app.json | 15 +-
packages/i18n/locales/fr/app.json | 15 +-
packages/i18n/locales/ko/app.json | 15 +-
packages/i18n/locales/pt-BR/app.json | 15 +-
packages/i18n/locales/zh-CN/app.json | 15 +-
packages/i18n/locales/zh-TW/app.json | 15 +-
24 files changed, 939 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-9038
Fusion-Task-Lineage: 4200e214-ad22-4f92-b980-c9bcb8ffd3b9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:48:01 -07:00
gsxdsm
d1bb5f4eb0
FN-9039: fix voice runtime detection and add recheck action
...
Correct voice runtime detection for CommonJS Sherpa bindings and let operators re-check a repaired runtime.
- Resolve default and module.exports CommonJS bindings before reporting compatibility.
- Add a runtime re-check API and disabled-state Settings action.
- Localize and document the recovery flow with route, service, and UI coverage.
Files changed:
.changeset/fn-9039-voice-runtime-interop.md | 7 ++++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 11 +++--
.../settings/__tests__/VoiceInputSection.test.tsx | 47 ++++++++++++++++++++++
.../settings/sections/VoiceInputSection.tsx | 13 ++++++
packages/dashboard/src/routes/README.md | 11 +++--
.../routes/__tests__/register-voice-routes.test.ts | 30 ++++++++++++++
.../dashboard/src/routes/register-voice-routes.ts | 10 ++++-
.../dashboard/src/stt/__tests__/voice-stt.test.ts | 37 ++++++++++++++++-
packages/dashboard/src/stt/parakeet-service.ts | 30 ++++++++++++--
packages/i18n/locales/en/app.json | 4 +-
packages/i18n/locales/es/app.json | 4 +-
packages/i18n/locales/fr/app.json | 4 +-
packages/i18n/locales/ko/app.json | 4 +-
packages/i18n/locales/pt-BR/app.json | 4 +-
packages/i18n/locales/zh-CN/app.json | 4 +-
packages/i18n/locales/zh-TW/app.json | 4 +-
packages/i18n/src/resources.d.ts | 4 +-
18 files changed, 206 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-9039
Fusion-Task-Lineage: 50858063-5b0a-4fec-8c34-171d58a288b6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:39:11 -07:00
gsxdsm
7673f2e839
FN-9031: enforce snapshot consumption after computer actions
...
Computer-use actions now consume the captured app snapshot and require a fresh state capture before another element-targeted action.
- Add app-scoped, serialized snapshot-pointer consumption with stale-state diagnostics.
- Mark successful action results as consuming their snapshot and cover action/replay behavior.
- Document the enforced snapshot → act → snapshot loop and add a CLI changeset.
Files changed:
.../fn-9031-computer-use-snapshot-consumption.md | 7 ++
docs/cli-reference.md | 2 +-
docs/computer-use.md | 11 +--
.../commands/__tests__/computer-commands.test.ts | 88 ++++++++++++++++++++--
.../commands/__tests__/computer-contract.test.ts | 7 +-
.../__tests__/computer-snapshot-index.test.ts | 52 ++++++++++++-
.../commands/__tests__/computer-use-guide.test.ts | 4 +
packages/cli/src/commands/computer.ts | 37 ++++++---
.../cli/src/commands/computer/adapter-macos.ts | 4 +-
packages/cli/src/commands/computer/contract.ts | 17 ++++-
packages/cli/src/commands/computer/guide.ts | 4 +-
.../cli/src/commands/computer/snapshot-store.ts | 79 +++++++++++++++++--
12 files changed, 272 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-9031
Fusion-Task-Lineage: f196b7ca-ce3f-4a50-98d2-d6ac8bf184ac
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:31:44 -07:00
gsxdsm
d3e51f566e
FN-9030: resolve computer state at project root
...
Resolve computer-use state once per invocation at the containing Fusion project root.
- Add a state-root resolver shared by computer command adapters and snapshot storage.
- Preserve capture and replay snapshots across working directories while isolating projects.
- Cover root resolution and cross-directory state behavior, and document the storage contract.
- Add a patch changeset for the CLI fix.
Files changed:
.../fn-9030-computer-use-project-local-state.md | 7 ++
docs/computer-use.md | 2 +-
.../commands/__tests__/computer-commands.test.ts | 76 ++++++++++++++++++++++
.../__tests__/computer-snapshot-index.test.ts | 14 ++++
.../commands/__tests__/computer-state-root.test.ts | 49 ++++++++++++++
packages/cli/src/commands/computer.ts | 9 ++-
packages/cli/src/commands/computer/state-root.ts | 18 +++++
7 files changed, 171 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-9030
Fusion-Task-Lineage: a0cb48ee-fd7f-4966-9930-cde273027eca
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:08:52 -07:00
gsxdsm
cb4ab3b6da
FN-9028: guard automatic mission rollup status writers
...
Protect automatic mission and milestone status rollups with a durable writer-coverage ratchet.
- Add source-level coverage for every computed mission and milestone status writer.
- Verify core persistence and engine reconciliation preserve blocked and archived intent.
- Document shared rollup-ownership guard requirements.
Files changed:
docs/missions.md | 2 +-
.../mission-rollup-status-writer-ratchet.test.ts | 170 +++++++++++++++++++++
.../mission-status-recompute-guard.test.ts | 11 ++
.../__tests__/postgres/mission-store.pg.test.ts | 43 ++++--
packages/core/src/missions/mission-types.ts | 4 +-
.../mission-autopilot-rollup-guard.test.ts | 115 ++++++++++++++
6 files changed, 331 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-9028
Fusion-Task-Lineage: 89b72b57-fc73-4268-a639-5edac05ff8f8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:01:57 -07:00
gsxdsm
d39c0ae9eb
FN-9034: use package-local Vitest for scoped runs
...
Resolve Quality file-scoped tests against the execution worktree's package metadata.
- Run scoped tests through each package's local Vitest binary
- Omit the removed basic reporter and preserve safe path handling
- Cover worktree resolution, package grouping, and reporter behavior
Files changed:
.changeset/fn-9034-file-scoped-vitest.md | 7 +
docs/testing.md | 4 +
.../src/__tests__/command-presets.test.ts | 222 +++++++++++++++++++--
.../src/routes/create-routes.ts | 5 +
.../src/runner/command-presets.ts | 115 ++++++++++-
5 files changed, 336 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-9034
Fusion-Task-Lineage: f78159b6-2f1e-47bb-a367-e8e4324143e5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:55:37 -07:00
gsxdsm
74a0bdb25c
FN-9032: harden knowledge-graph artifact validation
...
Reject malformed or contradictory graph cache artifacts and rebuild them as a complete set.
- Require exact persisted record shapes and valid import references before cache reuse
- Detect invalid import ownership and duplicate extractor identities during consistency checks
- Cover cache recovery cases and document the all-or-nothing artifact policy
- Add a patch changeset for the published CLI package
Files changed:
.../fn-9032-knowledge-graph-artifact-validation.md | 7 +++++
docs/knowledge-graph.md | 2 +-
.../graph-artifact-not-gitignored.test.ts | 13 ++++++---
.../__tests__/graph-builder-incremental.test.ts | 29 +++++++++++++++++++-
.../__tests__/graph-serialization.test.ts | 31 +++++++++++++++++++++
.../__tests__/graph-store-recovery.test.ts | 14 ++++++++++
.../src/knowledge-graph/graph-serialization.ts | 32 ++++++++++++++--------
packages/core/src/knowledge-graph/graph-store.ts | 18 ++++++++++++
8 files changed, 129 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-9032
Fusion-Task-Lineage: d53934f6-2735-42ab-a41e-4421890277be
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:30:53 -07:00
gsxdsm
6243c2c3f2
FN-9026: move terminal display toggles to header
...
Move desktop terminal pin and pop-out controls beside the close button.
- Render shared non-mobile display-mode controls in the terminal header
- Keep footer actions focused on terminal session controls
- Update styling, documentation, regression tests, and release metadata
Files changed:
.changeset/terminal-toolbar-display-toggles.md | 7 ++
docs/dashboard-guide.md | 12 +--
.../dashboard/app/components/TerminalModal.css | 4 +-
.../dashboard/app/components/TerminalModal.tsx | 67 ++++++++-------
.../components/__tests__/TerminalModal.test.tsx | 99 ++++++++++++++++++----
5 files changed, 134 insertions(+), 55 deletions(-)
Fusion-Task-Id: FN-9026
Fusion-Task-Lineage: 5b61d4c9-a3d4-41e1-9d89-4c8189f5b8fb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 01:28:14 -07:00
gsxdsm
d9bf93a5fa
docs: correct W33 velocity baseline quarantine-count history row
...
The previous-week row showed quarantine count 1 with a -1 delta; the ledger
was already empty at that capture, so the row and the #leads snippet now read 0 (0).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-13 00:32:17 -07:00
gsxdsm
f7bf3f91d1
FN-9022: add task recommendations to Insights
...
Expose actionable task recommendations in the Insights view.
- Add recommendation list API, client hook, and Insights rendering states.
- Localize recommendation content and document the Insights workflow.
- Cover recommendation retrieval, routes, hooks, API, and view behavior.
Files changed:
.changeset/fn-9022-insights-recommendations.md | 7 ++
docs/architecture.md | 1 +
docs/dashboard-guide.md | 3 +-
.../__tests__/task-recommendations-list.test.ts | 136 +++++++++++++++++++++
packages/core/src/index.ts | 2 +-
packages/core/src/store.ts | 5 +-
packages/core/src/task-store/reads.ts | 48 +++++++-
packages/core/src/types.ts | 4 +
packages/core/src/types/task/task-core.ts | 19 +++
packages/dashboard/app/__tests__/api-tasks.test.ts | 24 ++++
packages/dashboard/app/api/legacy.ts | 3 +
packages/dashboard/app/api/tasks/tasks.ts | 22 ++++
packages/dashboard/app/components/InsightsView.css | 27 ++++
packages/dashboard/app/components/InsightsView.tsx | 47 +++++--
.../app/components/__tests__/InsightsView.test.tsx | 117 ++++++++++++++++++
.../hooks/__tests__/useTaskRecommendations.test.ts | 130 ++++++++++++++++++++
.../dashboard/app/hooks/useTaskRecommendations.ts | 116 ++++++++++++++++++
.../__tests__/task-recommendation-routes.test.ts | 26 ++++
.../src/routes/register-task-workflow-routes.ts | 33 +++++
packages/i18n/locales/en/app.json | 11 +-
packages/i18n/locales/es/app.json | 11 +-
packages/i18n/locales/fr/app.json | 11 +-
packages/i18n/locales/ko/app.json | 11 +-
packages/i18n/locales/pt-BR/app.json | 11 +-
packages/i18n/locales/zh-CN/app.json | 11 +-
packages/i18n/locales/zh-TW/app.json | 11 +-
packages/i18n/src/resources.d.ts | 9 ++
27 files changed, 835 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-9022
Fusion-Task-Lineage: b83f1074-37af-4f87-9ec0-2bd9bb9bf64d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 22:18:18 -07:00
gsxdsm
19dffe36f6
fix(engine): make the planning->plan-review handoff atomic so planned cards stop stranding in Todo
...
Triage announced specification completion before its finally block marked the
plan work item terminal, so the Plan Review seeder saw its own still-running
predecessor as an "active continuation", bailed, and the discarded result
silently stranded the card until FN-8592 self-healing re-seeded it ~10 minutes
later (529 occurrences in 18 days).
- seedStrandedPlanReviewContinuation gains retirePredecessorId: idle check
excludes the named predecessor, then retires it and installs the successor in
ONE transaction under the task lock; a bailed seed mutates nothing.
- triage threads planningWorkItemId through PlanningHandoffReport; the runtime
reaction passes it as retirePredecessorId.
- reactToSpecificationComplete consumes the seed result: typed quiet parks
(incl. new "no-pre-release-plan-review"), bounded retries with a fresh
task/IR snapshot per attempt (mid-retry pause/needs-replan honored), loud
warning naming self-healing on exhaustion.
- Tests: PG both-orderings/no-mutation-on-bail/cross-task cases, direct engine
seeder handoff cases, reaction retry/park/pause/replan cases.
- docs/solutions: new planning-handoff-race writeup; graph-entry-contract doc
reclassifies the FN-8592 sweep as backstop-only.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-12 21:24:53 -07:00
gsxdsm
ea53cbd4ff
FN-9021: send mailbox notices for task recommendations
...
Completed tasks now optionally send captured recommendations to the operator mailbox.
- Add idempotent, non-blocking mailbox notices after accepted task completion.
- Expose a project setting and localized dashboard control for recommendation notices.
- Cover notification dispatch, settings parity, and completion-path behavior with tests.
Files changed:
.../fn-9021-recommendation-mailbox-notice.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-parity.test.ts | 2 +
.../__tests__/task-recommendation-notice.test.ts | 77 +++++++++++++
packages/core/src/config/settings-schema.ts | 2 +
packages/core/src/index.ts | 9 ++
packages/core/src/task-recommendation-notice.ts | 122 +++++++++++++++++++++
packages/core/src/types/settings/settings-scope.ts | 6 +
.../__tests__/SettingsModal.general.test.tsx | 10 ++
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/GeneralSection.tsx | 15 +++
.../settings-default-descriptions.test.tsx | 1 +
.../executor-task-recommendations.test.ts | 39 ++++++-
.../executor/completion-recommendation-notice.ts | 52 +++++++++
.../engine/src/executor/create-task-done-tool.ts | 12 ++
packages/engine/src/executor/plan-review-no-op.ts | 12 ++
packages/engine/src/runtimes/in-process-runtime.ts | 14 +++
packages/i18n/locales/en/app.json | 4 +-
packages/i18n/locales/es/app.json | 4 +-
packages/i18n/locales/fr/app.json | 4 +-
packages/i18n/locales/ko/app.json | 4 +-
packages/i18n/locales/pt-BR/app.json | 4 +-
packages/i18n/locales/zh-CN/app.json | 4 +-
packages/i18n/locales/zh-TW/app.json | 4 +-
packages/i18n/src/resources.d.ts | 40 ++++++-
26 files changed, 442 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-9021
Fusion-Task-Lineage: f6c5c93c-a3b6-470b-9efb-79e6b4003985
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 21:15:53 -07:00
gsxdsm
6d2c1bf0c9
FN-9020: parallelize boot smoke preflights
...
Reduce durable boot-smoke latency while preserving its CLI, initialization, health, and shutdown assertions.
- Run independent help and init preflights concurrently with bounded async child processes.
- Add phase timing diagnostics and deterministic init failure classification.
- Cover phase scheduling and isolated environment behavior, and document the diagnostics flag.
Files changed:
docs/testing.md | 4 +-
scripts/__tests__/boot-smoke.test.mjs | 65 ++++++++++-
scripts/boot-smoke.mjs | 201 +++++++++++++++++++++++++---------
3 files changed, 214 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-9020
Fusion-Task-Lineage: 1f5d3d7f-dc0c-4d16-a4ab-fd5e3952dbdf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 19:45:40 -07:00
gsxdsm
f8f828357f
FN-9018: refresh W33 test velocity baseline
...
Refresh the weekly test-velocity report with the latest captured measurements.
- Update baseline metrics, deltas, quarantine status, and #leads summary.
- Append the W33 measurement and slowest-test metadata to the velocity history.
Files changed:
docs/test-velocity-baseline.md | 24 ++++----
scripts/test-velocity-history.json | 114 +++++++++++++++++++++++++++++++++++++
2 files changed, 126 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-9018
Fusion-Task-Lineage: b4d91cfd-2d5d-4e5a-ac9a-e62c50915f49
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 19:10:03 -07:00
gsxdsm
cc1041207c
FN-9012: hide empty task Recommendations tabs
...
Show Recommendations only for completed tasks with task-owned recommendations.
- Gate tab visibility and reconciliation on matching task-detail recommendation data.
- Cover empty, populated, stale-detail, and task-switch recommendation states.
- Document the behavior and add a patch changeset.
Files changed:
.changeset/fn-9012-recommendations-tab-visibility.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskDetailModal.tsx | 33 ++-
packages/dashboard/app/components/TaskRecommendationsTab.tsx | 2 +-
packages/dashboard/app/components/__tests__/TaskDetailModal.summary-tab.test.tsx | 305 +++++++++++++++++----
5 files changed, 289 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-9012
Fusion-Task-Lineage: 2dd3b1c6-ab08-43e3-9c9e-c8d3d9cf4692
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 16:24:54 -07:00
gsxdsm
fc56161c9d
FN-9014: add chat and mailbox message archiving
...
Add archived-message lifecycle support across chat and mailbox views.
- Persist archive state with a PostgreSQL migration and message-store APIs.
- Expose archive, restore, and permanent-delete messaging endpoints.
- Add archived-message views and archive-by-default actions with regression coverage.
- Document storage behavior and add a release changeset.
Files changed:
.changeset/fn-9014-message-archive.md | 7 ++
docs/dashboard-guide.md | 7 +-
docs/storage.md | 2 +-
.../__tests__/postgres/message-store.pg.test.ts | 34 +++++++
.../src/__tests__/postgres/schema-applier.test.ts | 9 +-
.../core/src/async-stores/async-message-store.ts | 73 +++++++++++---
.../migrations/0058_fn_9014_message_archive.sql | 13 +++
packages/core/src/postgres/schema-applier.ts | 14 ++-
packages/core/src/postgres/schema/project.ts | 2 +
packages/core/src/stores/message-store.ts | 68 ++++++++++---
packages/core/src/types/messaging/messages.ts | 9 ++
packages/dashboard/app/api/chat/messaging.ts | 37 +++++--
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/ChatView.tsx | 21 +++-
packages/dashboard/app/components/MailboxModal.tsx | 74 ++++++++++++--
packages/dashboard/app/components/MailboxView.tsx | 108 +++++++++++++++++++--
.../__tests__/ChatView.core-contracts.test.tsx | 24 +++++
.../components/__tests__/ChatView.test-harness.tsx | 3 +
.../app/components/__tests__/MailboxModal.test.tsx | 6 +-
.../app/components/__tests__/MailboxView.test.tsx | 10 +-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 35 ++++++-
packages/dashboard/app/hooks/useChat.ts | 38 +++++++-
.../__tests__/messaging-archive-routes.test.ts | 86 ++++++++++++++++
.../src/routes/register-messaging-scripts.ts | 33 ++++++-
24 files changed, 635 insertions(+), 80 deletions(-)
Fusion-Task-Id: FN-9014
Fusion-Task-Lineage: 1dbd02c3-1180-4d72-8cbc-9594e5f355dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 16:03:30 -07:00
gsxdsm
8699ff41e2
FN-9016: add manager evaluation tools
...
Enable managers to review report evaluations and record coaching follow-ups.
- Add manager-scoped evaluation read and follow-up extension tools.
- Enforce management-subtree access through action gating and regression tests.
- Document the tool surface and add a minor release changeset.
Files changed:
.changeset/fn-9016-manager-eval-tools.md | 7 +
docs/agent-tool-surface-full-loop.md | 4 +-
docs/agents.md | 8 +-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 22 ++
.../skill/fusion/references/fusion-capabilities.md | 2 +
.../__tests__/extension-manager-eval-tools.test.ts | 159 +++++++++++++++
packages/cli/src/extension.ts | 227 +++++++++++++++++++++
.../engine/src/__tests__/agent-action-gate.test.ts | 1 +
.../src/__tests__/gating-classifications.test.ts | 1 +
.../src/__tests__/permanent-agent-gating.test.ts | 1 +
.../engine/src/execution/gating-classifications.ts | 8 +
12 files changed, 438 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-9016
Fusion-Task-Lineage: 1ad7c344-0f3c-4565-aabc-acb51481431d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:51:22 -07:00
gsxdsm
508ebc3812
FN-9008: add Grok 4.6 model catalog support
...
Register Grok 4.6 across Fusion's shared Grok provider catalog.
- Add Grok 4.6 metadata and preserve it through provider merges
- Cover registration and extension model-list behavior
- Update Grok model references and publish a minor changeset
Files changed:
.changeset/fn-9008-grok-4-6.md | 7 +++
docs/grok-cli-contract.md | 4 +-
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/grok-provider.test.ts | 54 +++++++++++++++++------
packages/core/src/ai/grok-provider.ts | 21 +++++++++
5 files changed, 72 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-9008
Fusion-Task-Lineage: 5ee7688e-a1eb-4b57-8f72-1f69616ff456
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 13:29:34 -07:00
gsxdsm
b6839f4f03
FN-9004: reconcile PostgreSQL project ownership defaults
...
Reconcile PostgreSQL project ownership defaults and schema declarations.
- Add an idempotent migration restoring the GitHub check-state project default.
- Align Drizzle project ownership defaults and composite keys with PostgreSQL.
- Cover schema declarations and upgrade migration behavior.
Files changed:
.changeset/fn-9004-project-ownership-defaults.md | 7 +
docs/storage.md | 1 +
...ema-ownership-declarations-remaining.pg.test.ts | 170 +++++++++++++++++++++
.../src/__tests__/postgres/schema-applier.test.ts | 9 +-
...04_project_ownership_default_reconciliation.sql | 13 ++
packages/core/src/postgres/schema-applier.ts | 13 +-
packages/core/src/postgres/schema/project.ts | 47 ++++--
7 files changed, 248 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-9004
Fusion-Task-Lineage: 43bb14f6-01b7-42be-a47c-7da1128f465e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 09:13:04 -07:00
gsxdsm
b1dad5c9be
FN-9003: reconcile approval audit events with project schema
...
Align approval audit event declarations and reads with PostgreSQL project ownership.
- Model composite project-scoped audit event identities in the schema
- Scope public audit history reads and cover project isolation behavior
- Document the storage contract and add a patch changeset
Files changed:
.changeset/fn-9003-approval-audit-project-scope.md | 7 +
docs/storage.md | 2 +-
...oval-request-audit-project-isolation.pg.test.ts | 183 +++++++++++++++++++++
.../async-stores/async-approval-request-store.ts | 5 +-
packages/core/src/postgres/schema/project.ts | 9 +-
5 files changed, 202 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-9003
Fusion-Task-Lineage: 5a9caac3-7c2f-4584-8844-4ac711cc48bb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 08:38:35 -07:00
gsxdsm
52facd1461
FN-9000: scope runtime records to their projects
...
Scope runtime data access to the owning project while preserving explicit unbound compatibility.
- Thread optional project identifiers through project-table reads and mutations.
- Isolate chat, approvals, artifacts, secrets, audit, branch groups, plugin analytics, and verification cache records.
- Add PostgreSQL coverage and a patch changeset documenting multi-project isolation.
Files changed:
.../fn-9000-project-ownership-runtime-scope.md | 7 +
docs/storage.md | 3 +-
.../project-ownership-runtime-scope.pg.test.ts | 155 +++++++++++++++++++++
packages/core/src/agents/approval-request-store.ts | 20 ++-
.../async-stores/async-approval-request-store.ts | 30 ++--
packages/core/src/async-stores/async-chat-store.ts | 105 +++++++++++---
.../core/src/async-stores/async-secrets-store.ts | 58 +++++---
packages/core/src/chat/chat-store.ts | 22 +--
.../src/plugins/plugin-activation-analytics.ts | 12 +-
packages/core/src/secrets/secrets-store.ts | 12 +-
packages/core/src/store.ts | 6 +-
.../src/task-store/async/async-archive-lineage.ts | 16 ++-
packages/core/src/task-store/async/async-audit.ts | 18 ++-
.../src/task-store/async/async-branch-groups.ts | 50 ++++---
.../task-store/async/async-comments-attachments.ts | 35 +++--
.../core/src/task-store/branch-and-pr-entities.ts | 15 +-
packages/core/src/task-store/branch-group-ops.ts | 2 +-
packages/core/src/task-store/task-artifacts-ops.ts | 2 +-
packages/core/src/task-store/task-id-integrity.ts | 2 +-
packages/core/src/task-store/task-mutation-ops.ts | 14 +-
.../core/src/task-store/workflow-definitions.ts | 7 +
packages/dashboard/src/server.ts | 2 +-
22 files changed, 472 insertions(+), 121 deletions(-)
Fusion-Task-Id: FN-9000
Fusion-Task-Lineage: 9842e9e9-ec50-4459-8534-dfdaa2cdf35e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 07:43:29 -07:00
gsxdsm
0ed0e53d56
FN-9002: model project-owned schema identities
...
Align project schema declarations with the existing ownership partition.
- Model eight project-owned tables with project-leading identities and defaults.
- Preserve composite foreign-key and project-scoped uniqueness metadata.
- Add PostgreSQL declaration coverage and document deferred runtime predicates.
Files changed:
...n-9002-project-schema-ownership-declarations.md | 7 +
docs/storage.md | 1 +
...roject-schema-ownership-declarations.pg.test.ts | 245 +++++++++++++++++++++
.../core/src/async-stores/async-secrets-store.ts | 26 +--
packages/core/src/postgres/schema/project.ts | 44 +++-
5 files changed, 298 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-9002
Fusion-Task-Lineage: b6f45d1c-d7d9-4a96-b86e-6d120df3f756
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 07:09:55 -07:00
gsxdsm
11334b1249
FN-8998: scope workflow definitions by project
...
Keep custom workflows isolated within their owning project.
- Model workflows with a project-scoped composite key and scope definition mutations.
- Preserve globally safe ID occupancy while isolating analytics name lookups.
- Add PostgreSQL coverage and document the project partition contract.
Files changed:
.changeset/fn-8998-workflows-project-partition.md | 7 +
docs/storage.md | 1 +
.../workflows-project-isolation.pg.test.ts | 146 +++++++++++++++++++++
.../core/src/async-stores/async-workflow-store.ts | 19 ++-
packages/core/src/board/workflow-analytics.ts | 7 +-
packages/core/src/postgres/schema/project.ts | 17 ++-
.../core/src/task-store/workflow-definitions.ts | 25 ++--
packages/core/src/task-store/workflow-ops.ts | 27 +++-
8 files changed, 224 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8998
Fusion-Task-Lineage: b6e8a100-de4d-4ff9-98df-4504d9050740
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 20:25:59 -07:00