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
9ba6a67695
fix: create CLI GitHub tracking issues synchronously before process exit
...
The task-created hook (GitHub tracking issue creation) was deferred behind
the fire-and-forget auto-title-summarize chain whenever autoSummarizeTitles
is on and the task has a long description and no title — i.e. for every
'fn task create'. The short-lived CLI process closed the store and exited
before the deferred chain ran, so tasks ended up with
githubTracking.enabled=true but no issue (observed on FN-9045..FN-9061).
fn task create now suppresses the deferred hook and calls
createTrackingIssueForTask directly after create, printing the linked
issue; exports that helper from @fusion/dashboard.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-14 21:55:49 -07:00
gsxdsm
41d415fe70
FN-9051: report blocked workspace finalization
...
Prevent workspace merge entry points from treating an unfinalized task as a successful merge.
- Add a typed blocked-finalization result and engine handling that avoids retries, failure parking, and branch promotion.
- Return blocked outcomes through dashboard and CLI merge surfaces.
- Cover blocked finalization behavior and publish a patch changeset.
Files changed:
.changeset/fn-9051-workspace-blocked-finalize.md | 7 ++
packages/cli/src/commands/__tests__/task.test.ts | 38 ++++++++
packages/cli/src/commands/dashboard.ts | 22 +++--
packages/cli/src/commands/task.ts | 19 ++--
.../engine/src/__tests__/project-engine.test.ts | 105 ++++++++++++++++++++-
.../engine/src/__tests__/workspace-merger.test.ts | 1 +
packages/engine/src/index.ts | 1 +
packages/engine/src/merge/merger-ai.ts | 28 +++++-
packages/engine/src/project-engine.ts | 42 ++++++++-
9 files changed, 240 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-9051
Fusion-Task-Lineage: 89d5fcbb-1a00-4429-87ea-fc3e34db2706
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 21:51:45 -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
d6da58d89a
FN-9054: reclaim archived workspace land leases
...
Reclaim stale workspace land leases when their owners are terminal.
- Treat archived and soft-deleted workspace task owners as terminal after the existing staleness floor.
- Preserve active and merge-pending lease protections while recording terminal reclaim reasons.
- Cover archived, renamed archive lane, deleted, missing, and protected-owner lease cases.
Files changed:
AGENTS.md | 2 +-
.../src/__tests__/self-healing-workspace.test.ts | 150 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 50 ++++---
packages/engine/src/util/run-audit.ts | 2 +-
4 files changed, 185 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-9054
Fusion-Task-Lineage: 747e62f2-732a-4640-8d49-c08869a47964
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 21:39:30 -07:00
gsxdsm
010e619628
FN-9046: fix scoped pnpm dependent selector
...
Correct workspace merge verification to test changed packages with their dependents.
- Use pnpm's valid leading dependents selector for scoped merge tests.
- Cover single, multiple, and shell-metacharacter package selectors.
- Add a patch changeset for the verification fix.
Files changed:
.changeset/fn-9046-pnpm-filter-selector.md | 7 +++++
.../src/__tests__/merger-verification.test.ts | 33 +++++++++++++++++++---
.../src/merge/merger-workspace-test-commands.ts | 11 ++++++--
3 files changed, 45 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-9046
Fusion-Task-Lineage: 07186296-36b7-42bb-aaa8-739dbf5e00d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 21:32:58 -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
66b1c046c5
test: assert Memory Keeper in fresh-project built-in agent listings
...
Fusion-Task-Id: automation
FN-8932 seeds the durable Memory Keeper alongside the four routed workflow principals, so fn_list_agents and fn_agent_org_chart now enumerate five built-in agents on a fresh project. Update the two extension.test.ts assertions from count 4 to 5 and assert Memory Keeper is present.
2026-08-14 17:04:07 -07:00
gsxdsm
25b03d6e70
FN-9043: fix workspace completion commit detection
...
Resolve workspace configuration consistently so task completion observes commits across acquired repositories.
- Add a host-scoped, memoized workspace configuration resolver and preserve live configuration through executor dependency bags.
- Resolve workspace configuration before planning, worktree, graph, cleanup, and task-done paths.
- Aggregate workspace commit observations and cover partial-repository completion cases.
Files changed:
.changeset/fn-9043-workspace-no-commits.md | 7 ++
.../executor-workspace-config-propagation.test.ts | 116 +++++++++++++++++++++
.../engine/src/executor/cleanup-task-worktree.ts | 6 +-
.../create-authoritative-workflow-seams.ts | 6 +-
packages/engine/src/executor/deps-bags.ts | 74 ++++++++++---
.../executor/ensure-graph-custom-node-worktree.ts | 14 ++-
.../executor/ensure-task-worktree-for-planning.ts | 8 +-
packages/engine/src/executor/get-worktree-path.ts | 3 +
packages/engine/src/executor/mark-stuck-aborted.ts | 6 +-
.../engine/src/executor/run-graph-custom-node.ts | 8 +-
packages/engine/src/executor/run-implementation.ts | 6 +-
.../src/executor/workspace-config-resolver.ts | 40 +++++++
.../src/executor/worktree-task-done-scope-leak.ts | 8 +-
.../src/executor/worktree-verify-invariants.ts | 44 ++++----
14 files changed, 287 insertions(+), 59 deletions(-)
Fusion-Task-Id: FN-9043
Fusion-Task-Lineage: fc012b8e-c9cb-47e8-81a7-c9590a63a980
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-14 14:24:26 -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
9c83812351
fix(ci): unblock check:lane-wiring for the task-recommendations read
...
check:lane-wiring runs in CI's Lint gate and has been failing on main since FN-9037 landed
`listTaskRecommendations`, so it blocks every PR in the repo, not just the one that hit it.
Recorded rather than rewired, because this is the false-positive shape the escape hatch exists
for. The guard catches a callee silently falling back to a LEGACY COLUMN LITERAL when a caller
omits the lane; `listTaskRecommendationsImpl` falls back to
`resolveProjectColumnsForRoles(store, ["complete"])`, which reads the board's own lanes. Real
callers already pass a resolved set — the dashboard route resolves `completeColumns` before
calling — so the fallback only serves the pass-through wrapper. Resolving again in the wrapper
would duplicate that query on every call for no behavioural difference.
The reason lives at the call site as well as in the baseline, since a bare count in a JSON file
is exactly the kind of entry that later reads as unexplained debt.
Baseline diff verified to be a single added entry (store.ts: 1) — nothing else raised or lowered.
Verified: check:lane-wiring exits 0, core typecheck clean, eslint clean, FNXC date check clean.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-13 23:46:57 -07:00
gsxdsm
9d31396f7a
FN-9031: strengthen computer snapshot action fencing
...
Serialize computer snapshots and actions through a durable app-scoped fence.
- Hold the fence from snapshot acquisition or element resolution through OS action consumption.
- Report snapshot consumption only when the expected latest pointer was invalidated.
- Heartbeat and token-check directory locks for safe crash recovery and add command-fence coverage.
Files changed:
.../commands/__tests__/computer-commands.test.ts | 26 +++++++++-
.../__tests__/computer-snapshot-index.test.ts | 2 +-
packages/cli/src/commands/computer.ts | 37 ++++++++-----
.../cli/src/commands/computer/snapshot-store.ts | 60 ++++++++++++++++------
4 files changed, 93 insertions(+), 32 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 17:44:02 -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
2dcead4c8f
FN-9035: prevent static computer commands in shipped skills
...
Keep bundled computer-use guidance limited to runtime discovery so command syntax cannot drift.
- Scan all shipped skill markdown files, including plugin skills
- Reject static `fn computer` commands outside the computer-use discovery stub
- Assert the discovery stub exposes only its supported JSON probes
Files changed:
packages/cli/src/commands/__tests__/computer-use-skill.test.ts | 50 ++++++++++++++++++++--
1 file changed, 47 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-9035
Fusion-Task-Lineage: 5049fd29-1b3b-4968-b09e-1bb7be9d52ff
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 17:01:39 -07:00
gsxdsm
1788dc0506
FN-9033: harden macOS computer-use permission handling
...
Treat missing osascript as an explicit automation denial while preserving replay failures.
- Track missing osascript separately from indeterminate permission probes.
- Block all macOS automation paths before execution when osascript is unavailable.
- Preserve replay permission and timeout errors, mapping only stale locators to element errors.
- Add coverage for replay failures and missing-binary enforcement.
Files changed:
.../__tests__/computer-adapter-registry.test.ts | 87 +++++++++++++++++++++-
.../commands/__tests__/computer-commands.test.ts | 29 +++++++-
.../cli/src/commands/computer/adapter-macos.ts | 52 +++++++------
3 files changed, 142 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-9033
Fusion-Task-Lineage: 48e77cc5-cd71-49f1-a163-13d68a81d1d4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 16:55:23 -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
f6518b4275
FN-9029: keep release-gate verdicts transient
...
Keep release-gate verdicts restricted to fresh task-list responses.
- Strip release-gate data from SSE and non-board task paths.
- Reject stale initial verdicts before rendering promote controls.
- Cover server persistence, SSE payload, and client freshness boundaries.
Files changed:
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 115 +++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 80 +++++++++-----
.../app/utils/__tests__/releaseGate.test.ts | 9 ++
.../routes-tasks-release-gate-transient.test.ts | 103 ++++++++++++++++++
.../src/__tests__/sse-task-deleted-payload.test.ts | 10 +-
packages/dashboard/src/sse.ts | 26 +++--
6 files changed, 305 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-9029
Fusion-Task-Lineage: cf764f3e-c6f5-4fa1-b608-ebb8d547cfdd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:43:16 -07:00
gsxdsm
f88031172e
FN-9036: restore i18n parity coverage for native auto-merge
...
Ensure configured translation catalogs retain GitHub native auto-merge settings keys.
- Derive supported locales from the i18next configuration
- Assert native auto-merge labels and help text in every secondary locale
- Remove the core locale-list dependency from the parity test
Files changed:
packages/i18n/src/__tests__/parity.test.ts | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-9036
Fusion-Task-Lineage: aba3a8d8-8f4e-43b9-9fe9-6c2a80cde666
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:33:26 -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
958b08e237
FN-9027: sort insights newest first
...
Present Insights in newest-first order without changing store ordering.
- Sort each visible category by creation time descending with deterministic ID tie-breaking
- Keep malformed timestamps last and preserve their source order
- Cover network, cached, archive, and rendered ordering behavior
- Add a patch changeset for the published CLI package
Files changed:
.changeset/insights-newest-first.md | 7 ++
.../app/components/__tests__/InsightsView.test.tsx | 41 ++++++++
.../app/hooks/__tests__/useInsights.test.ts | 106 ++++++++++++++++++++-
packages/dashboard/app/hooks/useInsights.ts | 26 ++++-
4 files changed, 178 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-9027
Fusion-Task-Lineage: b9fecbeb-b8b8-49b1-b7db-c4dfda81fcbe
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 15:12:08 -07:00
gsxdsm
8b00bab0b0
chore(release): v0.76.0
...
Version bump via changesets.
2026-08-13 01:41:54 -07:00
gsxdsm
a1ea7fe562
chore(release): v0.76.0-beta.3
...
Version bump via changesets.
2026-08-13 01:34:18 -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
401b057965
FN-9025: align Quick Add tablet actions edge-to-edge
...
Make Quick Add action controls use the mobile edge-to-edge layout at tablet widths.
- Add a tablet-specific responsive action-row layout.
- Preserve centered desktop controls and existing mobile behavior.
- Cover tablet spacing declarations and add a patch changeset.
Files changed:
.changeset/fn-9025-quick-add-tablet-spacing.md | 7 ++++
.../quick-entry-action-row-centering.css.test.ts | 35 +++++++++++++++---
.../dashboard/app/components/QuickEntryBox.css | 41 ++++++++++++++++++++--
3 files changed, 75 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-9025
Fusion-Task-Lineage: 8850dd57-c99e-4f18-98d5-576c0bc7e665
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-13 00:50:50 -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
0e98d9b213
FN-9024: center Quick Add action row on tablet
...
Center Quick Add actions as a single desktop and tablet cluster while preserving the mobile layout.
- Center the base action row and remove greedy split alignment.
- Retain the <=768px edge-to-edge mobile layout.
- Add a regression test and a patch changeset.
Files changed:
.changeset/fn-9024-quick-add-center-action-row.md | 7 ++
.../quick-entry-action-row-centering.css.test.ts | 138 +++++++++++++++++++++
.../dashboard/app/components/QuickEntryBox.css | 28 +++--
3 files changed, 166 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-9024
Fusion-Task-Lineage: e6c6d9b5-e9cf-4d37-9d62-fedd1986d7cc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 22:40:12 -07:00
gsxdsm
c791c0b199
FN-9023: restore non-English catalog key parity
...
Restore localized settings and task recommendation copy across secondary catalogs.
- Add missing GitHub auto-merge and terminal-wedge notification translations.
- Complete Portuguese recommendation and merge-setting translations.
- Remove the stale Portuguese ephemeral-worker setting key.
Files changed:
.changeset/fn-9023-i18n-parity.md | 7 +++++++
packages/i18n/locales/es/app.json | 8 ++++++--
packages/i18n/locales/fr/app.json | 8 ++++++--
packages/i18n/locales/ko/app.json | 8 ++++++--
packages/i18n/locales/pt-BR/app.json | 30 ++++++++++++++++++++++++------
packages/i18n/locales/zh-CN/app.json | 8 ++++++--
packages/i18n/locales/zh-TW/app.json | 8 ++++++--
7 files changed, 61 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-9023
Fusion-Task-Lineage: a348310e-02d3-4aed-a0c3-2882cd54f5b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 22:25:49 -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
c7451ec6b2
chore(release): v0.76.0-beta.2
...
Version bump via changesets.
2026-08-12 17:37:09 -07:00
gsxdsm
e7d0c37c4e
test(sse): drive agent-activity durable poll via env seam instead of 2.1s real sleep
...
Replace the fixed ~2.1s real time-wait in the agent-activity SSE durable
integration test with a bounded FUSION_AGENT_ACTIVITY_POLL_MS env test-seam
(default 2000ms unchanged in production) and poll for the delivered frame.
Removes an FN-5048 real time-wait anti-pattern; production behavior unchanged.
2026-08-12 17:03:11 -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
366dfe123e
FN-9015: refresh Grok runtime model example
...
Refresh the Grok runtime README with the current flagship model invocation.
- Update the optional Grok ACP command to use grok-4.6.
- Document why the illustrative model identifier tracks the provider default.
Files changed:
plugins/fusion-plugin-grok-runtime/README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9015
Fusion-Task-Lineage: 6dd04810-fe06-4462-82b9-5abb38e229c0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:40:14 -07:00
gsxdsm
e144e8c195
FN-9009: align Quick Add merger model row
...
Make the Quick Add merger model row consistent with the other role selectors.
- Label the top-level merger selector as Merger
- Align the merger icon spacing with other model menu rows
- Cover role labels, spacing, and override navigation
Files changed:
.changeset/fn-9009-quick-add-merger-label.md | 7 ++++
.../dashboard/app/components/QuickEntryBox.tsx | 25 ++++++++++---
.../components/__tests__/QuickEntryBox.test.tsx | 41 +++++++++++++++++++---
3 files changed, 65 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-9009
Fusion-Task-Lineage: bfc915d6-7a8d-4f08-86e8-c270b5783458
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:19:49 -07:00
gsxdsm
b0f623b100
FN-9013: fix mission feature reconciliation
...
Preserve mission-store method receivers so active mission reconciliation completes reliably.
- Invoke optional listFeatures with its mission-store receiver.
- Contain reconciliation failures to individual slices and continue remaining work.
- Cover synchronous, asynchronous, fallback, and failing-slice behavior.
Files changed:
.changeset/fn-9013-scheduler-listfeatures-receiver.md | 7 ++
.../mission-stranded-feature-retriage.test.ts | 109 +++++++++++++++++++++
packages/engine/src/scheduler.ts | 51 ++++++----
3 files changed, 146 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-9013
Fusion-Task-Lineage: 2745383a-3780-4fa4-bf07-bc75419d3384
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:14:32 -07:00
gsxdsm
02f7b589e2
FN-9011: fix model dropdown provider toggles
...
Keep portaled model-provider toggles interactive when hosts use document-level outside-close handlers.
- Stop pointer and mouse events at the portaled dropdown boundary.
- Cover outside-close, multiple-instance, modal, desktop, and mobile toggle interactions.
- Add a patch changeset for the dropdown fix.
Files changed:
.changeset/fn-9011-model-dropdown-toggle.md | 7 ++
.../app/components/CustomModelDropdown.tsx | 17 ++++
.../__tests__/CustomModelDropdown.test.tsx | 95 +++++++++++++++++++++-
3 files changed, 118 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9011
Fusion-Task-Lineage: 37559d4e-27df-4ad5-8b3e-4ec28d55e2e6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:08:09 -07:00
gsxdsm
6e04b31579
FN-9010: fix Quick Add model filtering
...
Keep the Quick Add model filter focused and functional within its portaled menu.
- Exempt form controls and the nested model dropdown from the composer focus guard.
- Add desktop and mobile regression coverage for filtering model choices.
- Add a patch changeset for the Quick Add filter fix.
Files changed:
.changeset/fix-quick-add-model-filter.md | 7 ++
.../dashboard/app/components/QuickEntryBox.tsx | 14 ++-
.../__tests__/QuickEntryBox-model-filter.test.tsx | 113 +++++++++++++++++++++
3 files changed, 133 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-9010
Fusion-Task-Lineage: da86e2d8-8722-4598-b25e-786b5850971c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-12 15:02:18 -07:00