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
gsxdsm
9c5176f55e
FN-8997: enforce project ownership for project tables
...
Enforce project-scoped ownership for chat and workflow records.
- Add project ownership columns, migration backfill, and schema validation.
- Scope chat-room and workflow CRUD operations to the active project.
- Add PostgreSQL regression coverage, storage documentation, and a release changeset.
Files changed: .../fn-8997-project-ownership-declaration-drift.md | 7 ++
docs/storage.md | 1 +
.../project-ownership-declaration-drift.pg.test.ts | 42 +++++++++
.../src/__tests__/postgres/schema-applier.test.ts | 9 +-
packages/core/src/async-stores/async-chat-store.ts | 100 ++++++++++++---------
packages/core/src/chat/chat-store.ts | 38 ++++----
...fn_8997_project_ownership_declaration_drift.sql | 17 ++++
packages/core/src/postgres/schema-applier.ts | 12 ++-
packages/core/src/postgres/schema/project.ts | 43 +++++++--
packages/core/src/task-store/project-store-ops.ts | 7 +-
.../core/src/task-store/workflow-definitions.ts | 4 +-
packages/core/src/task-store/workflow-ops.ts | 13 +--
.../src/task-store/workflow-task-create-ops.ts | 2 +-
13 files changed, 210 insertions(+), 85 deletions(-)
Fusion-Task-Id: FN-8997
Fusion-Task-Lineage: 01cd71b1-8f86-41e5-abdb-5ab00ff91c83
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 19:34:01 -07:00
gsxdsm
5ce3a973e6
FN-8902: bound and cache model registry refreshes
...
Bound model-catalog refreshes so requests retain available models when providers stall.
- Add timeout-bounded, single-flight engine registry refreshes with fallback model retention.
- Cache refresh outcomes per registry and invalidate them after all credential mutations, including default-instance changes.
- Cover refresh cache and route behavior, and document the resilience contract.
Files changed:
.changeset/fn-8902-models-refresh-bounding.md | 7 +
docs/dashboard-guide.md | 6 +
.../__tests__/model-registry-refresh-cache.test.ts | 77 +++++++
.../register-model-routes-refresh-bounding.test.ts | 246 +++++++++++++++++++++
.../dashboard/src/model-registry-refresh-cache.ts | 153 +++++++++++++
packages/dashboard/src/routes.ts | 5 +
.../dashboard/src/routes/register-auth-routes.ts | 24 +-
.../dashboard/src/routes/register-model-routes.ts | 12 +-
.../src/__tests__/model-registry-refresh.test.ts | 33 +++
packages/engine/src/auth/model-registry-refresh.ts | 125 +++++++----
packages/engine/src/index.ts | 3 +
11 files changed, 642 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-8902
Fusion-Task-Lineage: 9f0eaf34-6d28-49aa-b065-274be14ea500
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 19:00:44 -07:00
gsxdsm
7b4b2b547b
FN-8996: guard engine test module specifiers
...
Ensure engine test dependencies remain valid after module moves.
- Expand the engine test specifier guard to validate Vitest APIs and imports.
- Repair moved worktree, branch-conflict, and lifecycle module references in tests.
- Preserve worktree recovery coverage and document the harness contract.
Files changed:
docs/testing.md | 21 ++-
.../worktrunk-self-healing.test.ts | 14 +-
.../__tests__/vi-mock-specifiers-resolve.test.ts | 149 ++++++++++++++++-----
.../__tests__/workflow-graph-step-rerun.test.ts | 14 +-
...-sync-role-conversion-inert-live-e2e.pg.test.ts | 2 +-
.../__tests__/worktree-acquisition-pinned.test.ts | 52 ++++++-
.../__tests__/worktree-admin-entry-prune.test.ts | 12 +-
7 files changed, 212 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8996
Fusion-Task-Lineage: dd93b4a8-cf45-42e2-9823-e5c2e6f84f82
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 18:46:48 -07:00
gsxdsm
3b1c7881a8
FN-8988: partition agent ratings by project
...
Isolate PostgreSQL agent ratings within each project while preserving compatibility behavior.
- Add migration 0055 to enforce the (project_id, id) rating identity key and repair drifted composite keys.
- Scope rating CRUD operations to bound projects and document the storage contract.
- Cover cross-project rating isolation and drifted-key migration repair.
Files changed:
.changeset/fn-8988-agent-ratings-project-partition.md | 7 ++
docs/storage.md | 1 +
packages/core/src/__tests__/postgres/agent-ratings-project-isolation.pg.test.ts | 105 +++++++++++++++++++++
packages/core/src/__tests__/postgres/schema-applier.test.ts | 66 ++++++++++++-
packages/core/src/agents/agent-store.ts | 18 +++-
packages/core/src/async-stores/async-agent-store.ts | 11 ++-
packages/core/src/postgres/migrations/0055_fn_8988_agent_ratings_project_partition.sql | 74 +++++++++++++++
packages/core/src/postgres/schema-applier.ts | 12 ++-
packages/core/src/postgres/schema/project.ts | 5 +
9 files changed, 293 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8988
Fusion-Task-Lineage: 5d3e5e60-1589-4641-8695-1786f1c15c5d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 18:35:43 -07:00
gsxdsm
0e4c0c713e
FN-8995: reconcile durable-write inventory drift
...
Keep the durable-write inventory synchronized while preserving reviewed lifecycle verdicts.
- Add fail-closed manifest regeneration and regression coverage.
- Reconcile current call-site structure while retaining equivalent verdicts through module moves.
- Clarify durable wedge-notification writer classification and regeneration guidance.
Files changed:
.../merge-orphan-body-durable-write-fences.md | 18 +-
.../__tests__/_merge-durable-write-callsites.ts | 84 +-
.../merge-orphan-durable-write-inventory.json | 15414 +++++++++----------
...ge-orphan-durable-write-inventory-drift.test.ts | 88 +-
4 files changed, 7836 insertions(+), 7768 deletions(-)
Fusion-Task-Id: FN-8995
Fusion-Task-Lineage: df3d27ca-6614-418d-b09f-e1dd9f49f910
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 15:29:44 -07:00
gsxdsm
5134a55b77
FN-8958: fence orphaned merge-body writes
...
Prevent cancelled merge generations from writing stale task state.
- Add a signal-aware merge write fence with orphan audit reporting.
- Fence merge finalization, post-push metadata, and recovery-branch task logs.
- Cover durable write callsites and cancellation behavior with tests and guidance.
Files changed:
.changeset/fn-8958-orphan-merge-write-fence.md | 7 +
AGENTS.md | 1 +
.../reliability/orphan-merge-body-write-fence.md | 68 ++
.../__tests__/_merge-durable-write-callsites.ts | 4 +
.../merge-orphan-durable-write-inventory.json | 982 +++++++++++----------
.../merge-orphan-body-durable-writes.test.ts | 38 +-
.../engine/src/__tests__/merge-write-fence.test.ts | 39 +
.../engine/src/merge/auto-merge-finalization.ts | 9 +
packages/engine/src/merge/merge-write-fence.ts | 92 ++
packages/engine/src/merge/merger-ai.ts | 173 ++--
10 files changed, 875 insertions(+), 538 deletions(-)
Fusion-Task-Id: FN-8958
Fusion-Task-Lineage: 5f398c44-4320-4f0c-be15-707184f66aa8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 15:20:19 -07:00
gsxdsm
43141467fb
FN-8955: harden reviewer verdict extraction
...
Recover structured reviewer verdicts from prose containing malformed brace or quote characters.
- Scan and recover JSON verdict candidates after parser desynchronization.
- Prevent unreadable structured verdicts from being treated as prose approvals.
- Cover malformed prose and multi-finding verdict recovery across review gates.
Files changed:
.changeset/fn-8955-verdict-extractor.md | 7 ++
docs/workflow-steps.md | 4 +-
packages/engine/src/__tests__/reviewer.test.ts | 65 +++++++++++++++
.../workflow-malformed-verdict-gate.test.ts | 14 ++++
.../workflow-step-verdict-parsing.test.ts | 86 ++++++++++++++++++--
packages/engine/src/execution/reviewer.ts | 92 ++++++++++++++++++++--
.../engine/src/executor/workflow-step-verdict.ts | 16 ++--
7 files changed, 267 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-8955
Fusion-Task-Lineage: 84107fd2-b7f3-4162-9e8c-2ec24600d9d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 15:01:52 -07:00
gsxdsm
f2c729bf77
FN-8994: add workspace package graph validation
...
Prevent cold workspace installs from failing on missing or unglobbed local packages.
- Validate workspace-protocol dependencies and overrides against glob-covered packages.
- Add static-gate coverage and regression tests for missing plugin packages.
- Document the workspace package graph check.
Files changed:
docs/testing.md | 4 +-
package.json | 9 +-
scripts/__tests__/check-workspace-package-graph.test.mjs | 103 +++++++++++++++
scripts/check-workspace-package-graph.mjs | 138 +++++++++++++++++++++
4 files changed, 249 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8994
Fusion-Task-Lineage: 17dbe062-79aa-4417-ae38-43df881e9fa4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 14:56:14 -07:00
ischindl
d4db29f3e6
fix(dashboard): surface mergeTaskSnapshot on useTasks mocks to fix task-detail tests ( #3409 )
...
## Problem
`app/components/__tests__/navigation-history.test.tsx`,
`TaskDetail.swipe-back.test.tsx`, and
`TaskDetail.mobile-transition.board-panel.test.tsx` fail to load.
FN-8796 (`132026545`, "stabilize task-detail lifecycle snapshots") added
`mergeTaskSnapshot` to `hooks/useTasks.ts`, which
`App.tsx`/`MainContent.tsx` now import. The curated test suites that
`vi.mock("../../hooks/useTasks")` still only expose `useTasks`, so the
fixture throws at import time:
```
No "mergeTaskSnapshot" export is defined on the useTasks mock
```
Confirmed on `origin/main`: `mergeTaskSnapshot` is present in
`useTasks.ts` and imported by `App.tsx`, while these tests' `vi.mock`
shims don't surface it.
## Fix
Update the mocks to surface every export the rendered components import,
using a partial `importOriginal` mock so `mergeTaskSnapshot` keeps its
real implementation (a `vi.fn()` returning `undefined` would make
`App.tsx:2179` `liveTask.id` throw):
```ts
vi.mock("../../hooks/useTasks", async (importOriginal) => {
const actual = await importOriginal();
return { ...actual, useTasks: (_options?: any) => mockUseTasks() };
});
```
## Verification
- `FUSION_DASHBOARD_DEEP=1 vitest run navigation-history swipe-back
board-panel` → **14 files, 116 tests passed**
- Pre-existing on `origin/main`, fixes a regression introduced by
FN-8796.
## Scope
Tests + a one-line docs note only. No production behavior change.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Documentation**
- Documented improved worktree recovery behavior, including safer
handling of incomplete, inactive, and unregistered directories.
- Added guidance for recovery across different storage locations and
bounded cleanup of recognized entries.
- Clarified protections that prevent internal recovery containers from
being treated as worktrees.
- **Tests**
- Improved dashboard test coverage and reliability for task detail
rendering, mobile transitions, swipe-back navigation, and navigation
history.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Fusion <noreply@runfusion.ai >
Co-authored-by: gsxdsm <gsxdsm@users.noreply.github.com >
2026-08-11 11:28:50 -10:00
gsxdsm
a6ce7f89ef
FN-8987: expose release-gate verdicts for Promote visibility
...
Expose server-evaluated release-gate state so Promote controls accurately reflect approval readiness.
- Attach transient release-gate verdicts to task API responses.
- Preserve only fresh REST verdicts across task snapshots and render them in task cards.
- Align hold-release gating and document the Promote-state contract.
Files changed:
.changeset/fn-8987-release-gate-verdict.md | 7 +
docs/dashboard-guide.md | 4 +
docs/solutions/workflow-learnings/project-union-versus-per-task-lanes.md | 1 +
docs/workflow-steps.md | 4 +
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 2 +
packages/core/src/types/task/task-core.ts | 20 +++
packages/dashboard/app/components/TaskCard.tsx | 3 +-
packages/dashboard/app/components/__tests__/TaskCard.test.tsx | 31 ++++
packages/dashboard/app/hooks/__tests__/useTasks.test.ts | 26 ++++
packages/dashboard/app/hooks/useTasks.ts | 135 +++++++++++++++--
packages/dashboard/app/utils/__tests__/releaseGate.contract.test.ts | 29 ++++
packages/dashboard/app/utils/__tests__/releaseGate.test.ts | 49 ++++++
packages/dashboard/app/utils/releaseGate.ts | 26 ++++
packages/dashboard/app/utils/reviewBudgetApproval.ts | 9 ++
packages/dashboard/src/routes/register-task-workflow-routes.ts | 20 ++-
packages/engine/src/__tests__/release-gate-verdict.test.ts | 40 +++++
packages/engine/src/execution/hold-release.ts | 166 +++++++++------------
packages/engine/src/index.ts | 3 +
20 files changed, 469 insertions(+), 110 deletions(-)
Fusion-Task-Id: FN-8987
Fusion-Task-Lineage: 6f1742bc-2b2b-4a32-9be5-92160335d90d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 14:22:14 -07:00
gsxdsm
9f24a517cf
FN-8956: track resolved review findings
...
Add durable, scoped resolution states for workflow review findings.
- Persist reviewer-applied and superseded finding receipts without making them actionable.
- Scope supersession claims to a named prior workflow result, preserving duplicate IDs in other review lanes.
- Render informational resolution badges and reject resolved items from revision requests.
Files changed: .changeset/fn-8956-review-finding-resolution.md | 7 +
docs/dashboard-guide.md | 2 +-
docs/workflow-steps.md | 8 +-
.../src/__tests__/review-severity-gate.test.ts | 25 ++++
.../src/__tests__/workflow-step-results.test.ts | 45 +++++-
packages/core/src/index.gate.ts | 6 +
packages/core/src/index.ts | 6 +
packages/core/src/types.ts | 2 +
packages/core/src/types/task/task-review.ts | 4 +
packages/core/src/types/workflow/workflow-steps.ts | 15 +-
.../src/workflows/builtin-code-review-group.ts | 2 +-
.../src/workflows/builtin-plan-review-group.ts | 2 +-
.../core/src/workflows/review-severity-gate.ts | 37 ++++-
.../core/src/workflows/workflow-step-results.ts | 54 ++++++-
packages/dashboard/app/api/agents/run-audit.ts | 1 +
.../dashboard/app/components/TaskReviewTab.css | 22 +++
.../dashboard/app/components/TaskReviewTab.tsx | 36 +++--
.../components/__tests__/TaskReviewTab.test.tsx | 46 ++++++
.../dashboard/src/__tests__/routes-tasks.test.ts | 48 ++++++
.../src/routes/register-task-workflow-routes.ts | 14 +-
.../__tests__/review-finding-supersession.test.ts | 163 +++++++++++++++++++++
.../__tests__/review-findings-injection.test.ts | 22 +++
.../workflow-step-verdict-parsing.test.ts | 16 +-
.../engine/src/executor/execute-workflow-graph.ts | 129 ++++++++--------
.../engine/src/executor/execute-workflow-step.ts | 25 +++-
.../engine/src/executor/run-graph-custom-node.ts | 7 +
.../executor/workflow-step-failure-injection.ts | 8 +-
.../engine/src/executor/workflow-step-verdict.ts | 17 ++-
.../src/workflows/workflow-graph-executor.ts | 15 ++
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 +-
36 files changed, 703 insertions(+), 109 deletions(-)
Fusion-Task-Id: FN-8956
Fusion-Task-Lineage: 80568280-85aa-4a49-a60a-99b75f88f486
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 13:34:27 -07:00
gsxdsm
6ae9299576
FN-8953: defer terminal wedge alerts during recovery
...
Hold terminal wedge alerts until their recovery window has elapsed.
- Persist and settle pending wedge notifications across restarts.
- Clear pending alerts on task progress and reconcile expired holds during self-healing.
- Expose the settle window in notification settings with coverage for store and notification flows.
Files changed:
.changeset/fn-8953-wedge-settle-window.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 3 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/store-wedge-pending.test.ts | 56 +++++
packages/core/src/config/settings-schema.ts | 1 +
packages/core/src/store.ts | 46 ++++
packages/core/src/types/settings/settings-scope.ts | 2 +
packages/core/src/types/task/task-core.ts | 15 ++
.../app/components/settings/save-split.ts | 1 +
.../sections/NotificationsSection.search.ts | 9 +
.../settings/sections/NotificationsSection.tsx | 15 ++
.../settings-default-descriptions.test.tsx | 1 +
...self-healing-pending-wedge-notification.test.ts | 148 ++++++++++++
.../__tests__/notification-service.test.ts | 7 +-
.../__tests__/task-wedge-notification.test.ts | 258 ++++++++++++++++++++-
.../src/notification/notification-service.ts | 260 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 38 +++
packages/i18n/locales/en/app.json | 2 +
19 files changed, 850 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8953
Fusion-Task-Lineage: fd5b5827-c69d-409f-86d5-01ff23405ee3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 12:34:47 -07:00
gsxdsm
eef68fe0b9
FN-8933: capture semantic memory from completed work
...
Add inferred graph relationships and detached recall capture across completed-work memory surfaces.
- Validate and persist deterministic inferred semantic edges with audit outcomes.
- Capture completed tasks, research findings, and insights as bounded recall entries.
- Wire memory semantics through engine, research APIs, and coverage tests.
Files changed:
.changeset/fn-8933-memory-semantics-capture.md | 7 +
AGENTS.md | 1 +
docs/knowledge-graph.md | 10 +-
.../src/__tests__/memory/recall-capture.test.ts | 111 +++++++++++++
.../__tests__/postgres/insight-store.pg.test.ts | 25 +++
.../postgres/research-execution.pg.test.ts | 38 +++++
.../__tests__/research-feature-promotion.test.ts | 39 +++++
.../core/src/async-stores/async-insight-store.ts | 23 ++-
packages/core/src/index.ts | 1 +
.../__tests__/graph-builder-incremental.test.ts | 28 ++++
.../__tests__/inferred-edge-writer.test.ts | 74 +++++++++
packages/core/src/knowledge-graph/graph-builder.ts | 27 ++-
.../src/knowledge-graph/graph-serialization.ts | 2 +-
packages/core/src/knowledge-graph/graph-store.ts | 12 ++
packages/core/src/knowledge-graph/graph-types.ts | 2 +-
packages/core/src/knowledge-graph/index.ts | 1 +
.../src/knowledge-graph/inferred-edge-writer.ts | 96 +++++++++++
packages/core/src/memory/index.ts | 1 +
packages/core/src/memory/recall-capture.ts | 184 +++++++++++++++++++++
.../src/research/research-feature-promotion.ts | 23 ++-
packages/core/src/task-store/task-store-helpers.ts | 13 +-
.../src/__tests__/research-routes.test.ts | 80 ++++++++-
packages/dashboard/src/research-routes.ts | 27 ++-
.../src/__tests__/agent-mission-tools.test.ts | 60 ++++++-
.../src/__tests__/in-process-runtime.pg.test.ts | 28 +++-
.../memory-consolidation-heartbeat-hook.test.ts | 8 +-
.../__tests__/memory-consolidation-ports.test.ts | 17 +-
.../src/__tests__/memory-semantics-pass.test.ts | 115 +++++++++++++
.../engine/src/__tests__/project-engine.test.ts | 65 +++++++-
packages/engine/src/agent-heartbeat.ts | 14 +-
packages/engine/src/agent-tools.ts | 12 +-
packages/engine/src/agents/agent-reflection.ts | 9 +-
packages/engine/src/memory/index.ts | 1 +
.../src/memory/memory-consolidation-adapters.ts | 18 +-
packages/engine/src/memory/memory-consolidation.ts | 13 +-
packages/engine/src/memory/memory-semantics.ts | 67 ++++++++
packages/engine/src/project-engine.ts | 3 +
.../engine/src/research/research-orchestrator.ts | 20 ++-
packages/engine/src/runtimes/in-process-runtime.ts | 12 ++
packages/engine/src/util/run-audit.ts | 11 ++
40 files changed, 1250 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-8933
Fusion-Task-Lineage: b75a6b23-906f-4255-92f1-7684beb742b8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 05:45:36 -07:00
gsxdsm
f1fe399184
FN-8991: add runtime skill-loader drift gate
...
Enforce the intentional Claude-to-Grok runtime skill-loader clone relationship across verification lanes.
- Add an exact rename-diff validator with fixture and live-loader coverage.
- Run the validator in pretest, fast verification, and static merge-gate checks.
- Document the loader duplication contract and expanded static-validator inventory.
Files changed:
AGENTS.md | 2 +
docs/testing.md | 4 +-
package.json | 7 +-
.../check-runtime-skill-loader-drift.test.mjs | 113 +++++++++++++++++++++
scripts/__tests__/run-static-gate-checks.test.mjs | 1 +
scripts/__tests__/verify-fast.test.mjs | 1 +
scripts/check-runtime-skill-loader-drift.mjs | 113 +++++++++++++++++++++
7 files changed, 236 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8991
Fusion-Task-Lineage: a3b67752-0043-4336-9a2a-ff391672b31f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 05:23:02 -07:00
gsxdsm
5a1853cac6
FN-8934: add memory pre-steering across agent prompts
...
Add bounded memory-first guidance and consolidation observability across agent workflows.
- Apply mode-aware memory pre-steering to execution, triage, reviewer, heartbeat, and merger prompts.
- Export and test shared memory nudges while documenting memory inclusion settings.
- Expose agent memory consolidation history through dashboard API and detail UI.
Files changed:
.changeset/fn-8934-memory-pre-steering.md | 7 ++
docs/agents.md | 4 +
docs/settings-reference.md | 2 +
.../core/src/__tests__/memory-pre-steering.test.ts | 28 +++++++
packages/core/src/__tests__/project-memory.test.ts | 22 ++++++
packages/core/src/index.gate.ts | 7 ++
packages/core/src/index.ts | 7 ++
packages/core/src/memory/index.ts | 1 +
packages/core/src/memory/memory-pre-steering.ts | 41 ++++++++++
packages/core/src/memory/project-memory.ts | 19 +++++
packages/dashboard/app/api/agents/agents.ts | 12 +++
packages/dashboard/app/api/legacy.ts | 2 +
.../dashboard/app/components/AgentDetailView.css | 41 ++++++++++
.../dashboard/app/components/AgentDetailView.tsx | 56 +++++++++++++-
...etailView.memory-consolidation-history.test.tsx | 58 +++++++++++++++
.../__tests__/AgentDetailView.test-helpers.ts | 3 +
.../register-agent-memory-consolidations.test.ts | 87 ++++++++++++++++++++++
.../register-agent-reflection-rating-routes.ts | 36 +++++++++
.../memory-pre-steering-injection.test.ts | 50 +++++++++++++
packages/engine/src/__tests__/reviewer.test.ts | 18 +++++
packages/engine/src/__tests__/triage.test.ts | 18 ++++-
packages/engine/src/agent-heartbeat.ts | 14 +++-
.../engine/src/agents/agent-heartbeat-prompts.ts | 2 +
packages/engine/src/agents/agent-instructions.ts | 16 ++--
packages/engine/src/execution/reviewer.ts | 31 +++++---
packages/engine/src/executor/execution-prompt.ts | 6 +-
packages/engine/src/merger.ts | 9 ++-
packages/engine/src/triage.ts | 12 ++-
28 files changed, 577 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-8934
Fusion-Task-Lineage: a062cc6b-1277-4d36-9926-b3ecba4945eb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 04:57:14 -07:00
gsxdsm
25e292d0e6
FN-8954: preserve CLI liveness during startup
...
Ensure CLI startup operations settle before process exit on supported Node runtimes.
- Keep awaited QMD probes and ephemeral port selection ref'd until completion.
- Add CLI process regressions for init persistence and exit code 13.
- Declare the Node 22.4 runtime floor and extend boot smoke coverage.
Files changed:
.changeset/fn-8954-cli-exit-13.md | 7 ++
docs/testing.md | 4 +-
package.json | 3 +
packages/cli/agent-browser.mjs | 6 ++
packages/cli/bin.mjs | 7 ++
packages/cli/package.json | 3 +
packages/cli/src/__tests__/ci-workflow.test.ts | 9 +++
packages/cli/src/__tests__/cli-exit-code.test.ts | 82 ++++++++++++++++++++++
packages/cli/src/__tests__/package-config.test.ts | 12 ++++
packages/cli/src/bin.ts | 6 ++
.../__tests__/postgres/embedded-free-port.test.ts | 37 ++++++++++
packages/core/src/memory/memory-backend.ts | 17 +++--
packages/core/src/postgres/embedded-lifecycle.ts | 16 +++--
scripts/boot-smoke.mjs | 62 +++++++++++-----
14 files changed, 244 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8954
Fusion-Task-Lineage: 05303d07-2662-48d5-a442-6d43fa0a4493
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 04:20:33 -07:00
gsxdsm
f038d04dc5
FN-8986: stage computer-use skill only on Darwin
...
Stage the bundled computer-use discovery skill exclusively for supported macOS runtimes.
- Gate Claude and Grok session skill resolution and staging by platform.
- Install the Hermes discovery skill on Darwin while preserving user overrides and non-Darwin suppression.
- Document runtime discovery behavior, add coverage, and add a minor release changeset.
Files changed:
.../darwin-only-computer-use-skill-staging.md | 7 +
docs/computer-use.md | 10 +-
.../custom-provider-routes-hermes-additive.test.ts | 2 +-
.../src/__tests__/skill-loader.test.ts | 197 +++++++++++++++++++++
.../src/skill-loader.ts | 145 ++++++++++-----
.../src/__tests__/skill-loader.test.ts | 51 +++++-
.../fusion-plugin-grok-runtime/src/skill-loader.ts | 145 ++++++++++-----
.../src/__tests__/fusion-skill-install.test.ts | 62 ++++++-
.../src/__tests__/index.test.ts | 37 +++-
.../src/fusion-skill-install.ts | 151 ++++++++--------
plugins/fusion-plugin-hermes-runtime/src/index.ts | 21 ++-
11 files changed, 649 insertions(+), 179 deletions(-)
Fusion-Task-Id: FN-8986
Fusion-Task-Lineage: 373d558a-1d0a-4737-99be-f53189a9aeaf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 04:13:35 -07:00
gsxdsm
637854ad36
FN-8932: add durable memory consolidation agent
...
Add a provisioned memory agent that consolidates durable recall material through idempotent heartbeat ticks.
- Provision and configure the durable memory agent with an enabled workflow setting.
- Add consolidation adapters, material collection, recall graph references, and run-audit metadata.
- Expose the setting in the dashboard and document the memory-agent behavior.
- Cover provisioning, heartbeat, consolidation, audit, and recall graph behavior with tests.
Files changed:
.changeset/fn-8932-memory-agent.md | 7 ++
AGENTS.md | 1 +
docs/agents.md | 10 ++
docs/settings-reference.md | 1 +
docs/storage.md | 2 +-
.../memoryConsolidationEnabled-default.test.ts | 22 ++++
.../memory-recall-graph-cross-reference.pg.test.ts | 115 +++++++++++++++++++++
.../__tests__/memory-agent-provisioning.test.ts | 31 ++++++
packages/core/src/agents/agent-store.ts | 85 +++++++++++++++
packages/core/src/agents/memory-agent-defaults.ts | 30 ++++++
packages/core/src/index.gate.ts | 2 +
packages/core/src/index.ts | 9 ++
packages/core/src/memory/recall/index.ts | 1 +
packages/core/src/memory/recall/recall-dedup.ts | 3 +
packages/core/src/memory/recall/recall-store.ts | 35 ++++++-
.../src/workflows/builtin-workflow-settings.ts | 14 +++
.../src/workflows/workflow-settings-resolver.ts | 12 ++-
.../__tests__/WorkflowSettingsPanel.test.tsx | 8 ++
.../__tests__/workflow-setting-display.test.ts | 6 ++
.../app/components/workflow-setting-display.ts | 5 +
.../memory-consolidation-heartbeat-hook.test.ts | 92 +++++++++++++++++
.../__tests__/memory-consolidation-ports.test.ts | 34 ++++++
...memory-consolidation-run-audit-metadata.test.ts | 19 ++++
.../__tests__/memory-consolidation-tick.test.ts | 62 +++++++++++
packages/engine/src/agent-heartbeat.ts | 55 ++++++++++
packages/engine/src/index.ts | 1 +
packages/engine/src/memory/index.ts | 3 +
.../src/memory/memory-consolidation-adapters.ts | 29 ++++++
.../src/memory/memory-consolidation-material.ts | 22 ++++
packages/engine/src/memory/memory-consolidation.ts | 41 ++++++++
packages/engine/src/util/run-audit.ts | 10 ++
31 files changed, 764 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8932
Fusion-Task-Lineage: b4fdec50-1f42-4120-af17-0b6f3a94586e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 03:53:11 -07:00
gsxdsm
41bb94ba77
FN-8957: isolate PostgreSQL agents by project
...
Keep durable PostgreSQL agent records and analytics isolated to their bound project.
- Scope agent reads, mutations, satellite records, ratings, reassignment links, and analytics task data by project.
- Add a project-local agent-ratings migration and schema coverage.
- Exercise duplicate agent IDs, ratings, and token analytics across shared PostgreSQL projects.
Files changed:
.changeset/fn-8957-agent-project-isolation.md | 7 +
docs/multi-project.md | 9 +
.../postgres/agent-project-isolation.pg.test.ts | 207 +++++++++++++++++++++
.../src/__tests__/postgres/schema-applier.test.ts | 13 +-
packages/core/src/agents/agent-store.ts | 52 +++---
.../core/src/async-stores/async-agent-store.ts | 118 ++++++++++--
packages/core/src/board/team-analytics.ts | 20 +-
...0054_fn_8957_agent_rating_project_isolation.sql | 32 ++++
packages/core/src/postgres/schema-applier.ts | 13 +-
packages/core/src/postgres/schema/project.ts | 6 +-
packages/core/src/task-store/task-artifacts-ops.ts | 19 +-
11 files changed, 443 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-8957
Fusion-Task-Lineage: 02cb3f13-e5d1-4cea-8afb-72bcd9fae890
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 03:32:16 -07:00
gsxdsm
8f6190910d
FN-8971: add mission blocked-status clearing tool
...
Add an operator-only CLI tool for repairing stale mission blocked badges.
- Register and document fn_mission_clear_blocked with PostgreSQL and status-error handling.
- Withhold the repair action from agent principals and deny it in readonly workflow steps.
- Classify the tool consistently across engine permission gates and add coverage.
- Add a minor CLI changeset for the new operator capability.
Files changed:
.changeset/fn-8971-mission-clear-blocked-tool.md | 7 +++
docs/missions.md | 7 ++-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 9 ++++
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../__tests__/extension-permission-gates.test.ts | 26 ++++++++++
packages/cli/src/__tests__/extension.test.ts | 56 +++++++++++++++++++++-
packages/cli/src/extension.ts | 54 +++++++++++++++++++++
.../src/__tests__/agent-mission-tools.test.ts | 5 +-
.../src/__tests__/gating-classifications.test.ts | 8 ++++
.../workflow-step-readonly-allowlist.test.ts | 5 +-
.../engine/src/execution/gating-classifications.ts | 7 +++
12 files changed, 182 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8971
Fusion-Task-Lineage: 650c13b3-c6c4-4dc5-a0b5-9c71d3b94fc5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 01:45:08 -07:00
gsxdsm
7ddcf7e2a6
FN-8979: remove legacy mission resume blockers
...
Retire the deprecated v0 mission-resume blocker payload in favor of canonical descriptors.
- Remove legacy blocker types, conversions, exports, and HTTP payload mirrors.
- Deduplicate canonical blocker descriptors and update clients, tests, and documentation.
- Add a major changeset for the breaking API removal.
Files changed:
.changeset/fn-8979-removal.md | 7 +++++
docs/missions.md | 4 +--
.../suite-only-flakes-observed-register.md | 14 +++++++++
.../src/__tests__/mission-blocked-clear.test.ts | 23 ++++++++++++++-
.../core/src/__tests__/mission-blockers.test.ts | 26 +++++++++++------
.../__tests__/postgres/mission-store.pg.test.ts | 5 +---
.../core/src/async-stores/async-mission-store.ts | 7 +----
packages/core/src/index.gate.ts | 3 +-
packages/core/src/index.ts | 3 +-
packages/core/src/missions/mission-blockers.ts | 34 +++++++++++++---------
packages/core/src/missions/mission-types.ts | 9 ++----
packages/core/src/types.ts | 2 +-
packages/dashboard/app/api/missions/missions.ts | 25 +++++-----------
.../MissionManager.blocked-repair.test.tsx | 17 +++++++----
.../MissionManager.resume-conflict.test.tsx | 9 ++++--
.../src/__tests__/mission-resume-conflict.test.ts | 11 ++++---
packages/dashboard/src/mission-routes.ts | 10 +++----
17 files changed, 127 insertions(+), 82 deletions(-)
Fusion-Task-Id: FN-8979
Fusion-Task-Lineage: 2a0dd0b6-43ca-44ad-b992-79f4ef8eda67
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 01:30:04 -07:00
gsxdsm
eacd6687bc
FN-8961: add computer-use skill and version-matched guide
...
Ship the computer-use skill across bundled clients and surface its matching guide through the CLI.
- add the computer-use skill, computer command descriptor, and `fn skills get computer-use` guide
- reconcile all shipped Claude skills at project and startup entry points
- cover both skills' reconciliation outcomes and every required call site
Files changed:
.changeset/fn-8961-computer-use-skill.md | 7 +
docs/cli-reference.md | 6 +-
docs/computer-use.md | 8 +
packages/cli/skill/computer-use/SKILL.md | 31 +++
packages/cli/src/__tests__/package-config.test.ts | 20 ++
packages/cli/src/bin.ts | 14 +-
.../__tests__/claude-skills-callsites.test.ts | 64 ++++++
.../src/commands/__tests__/claude-skills.test.ts | 221 ++++++++-------------
.../__tests__/computer-surface-descriptor.test.ts | 108 ++++++++++
.../commands/__tests__/computer-use-guide.test.ts | 36 ++++
.../commands/__tests__/computer-use-skill.test.ts | 20 ++
packages/cli/src/commands/__tests__/daemon.test.ts | 36 +++-
.../__tests__/dashboard-claude-skills.test.ts | 19 ++
packages/cli/src/commands/__tests__/init.test.ts | 48 ++++-
.../cli/src/commands/__tests__/project.test.ts | 38 ++++
packages/cli/src/commands/__tests__/serve.test.ts | 36 +++-
.../commands/__tests__/skill-installation.test.ts | 12 ++
.../cli/src/commands/__tests__/skills-get.test.ts | 67 ++++++
packages/cli/src/commands/claude-skills-runner.ts | 55 ++---
packages/cli/src/commands/claude-skills.ts | 47 +++--
packages/cli/src/commands/computer.ts | 6 +-
packages/cli/src/commands/computer/contract.ts | 52 +++++
packages/cli/src/commands/computer/guide.ts | 62 ++++++
packages/cli/src/commands/init.ts | 4 +-
packages/cli/src/commands/skill-installation.ts | 45 +++--
packages/cli/src/commands/skills.ts | 24 +++
26 files changed, 853 insertions(+), 233 deletions(-)
Fusion-Task-Id: FN-8961
Fusion-Task-Lineage: b6baaebb-bf72-4991-8239-eb9bcf9cbcf1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 01:16:59 -07:00
gsxdsm
3eec1338c5
FN-8970: add mission reconcile controls
...
Add a dry-run mission reconciliation control with explicit apply feedback.
- Add the dashboard reconcile API client and exported result type.
- Present preview, apply, empty, and archived reconciliation states in Mission Manager.
- Guard reconcile requests across direct selection and target-mission deep-link changes.
- Cover reconcile interactions, stale requests, and deep-link intent updates.
Files changed:
.changeset/fn-8970-mission-reconcile-control.md | 7 +
docs/missions.md | 6 +
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/api/missions/missions.ts | 31 +++
packages/dashboard/app/components/MissionManager.css | 48 +++++
packages/dashboard/app/components/MissionManager.tsx | 184 +++++++++++++-
packages/dashboard/app/components/__tests__/MissionManager.mobile-css.test.ts | 8 +
packages/dashboard/app/components/__tests__/MissionManager.reconcile.test.tsx | 277 +++++++++++++++++++++
8 files changed, 557 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8970
Fusion-Task-Lineage: 62802129-a7ea-43cb-8068-5ce2c2c21b77
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-11 00:23:10 -07:00
gsxdsm
844512ed3e
FN-8976: prevent concurrent automatic validator runs
...
Prevent automatic validation from running alongside a fresh manual or non-memoized validator.
- Serialize validator admission around a feature-scoped fresh-running check.
- Report feature-versus-fingerprint blocking scope and preserve memoization semantics.
- Add regression coverage, documentation, and a patch changeset.
Files changed:
.changeset/fn-8976-validator-admission.md | 7 ++
docs/missions.md | 4 +-
.../__tests__/postgres/mission-store.pg.test.ts | 110 +++++++++++++++++++--
.../core/src/async-stores/async-mission-store.ts | 61 ++++++++++--
packages/core/src/missions/mission-types.ts | 2 +
.../src/__tests__/mission-execution-loop.test.ts | 10 +-
6 files changed, 171 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-8976
Fusion-Task-Lineage: 61b487e8-5542-4cce-94f7-58d5295fe177
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 22:57:21 -07:00
gsxdsm
918a4c4bfa
FN-8973: add versioned mission resume blockers
...
Expose versioned mission resume blockers across API and UI.
- Add versioned blocker descriptors with fail-closed legacy normalization and v0 compatibility projections.
- Return typed resume-conflict envelopes and render root stop details in Mission Manager.
- Cover descriptor behavior, route conflicts, UI handling, and PostgreSQL persistence.
Files changed:
.changeset/fn-8973-mission-blocker-descriptor.md | 7 ++
docs/missions.md | 2 +-
.../src/__tests__/mission-blocked-clear.test.ts | 18 ++---
.../core/src/__tests__/mission-blockers.test.ts | 43 ++++++++++++
.../__tests__/postgres/mission-store.pg.test.ts | 22 ++++--
.../core/src/async-stores/async-mission-store.ts | 23 +++---
packages/core/src/index.gate.ts | 4 ++
packages/core/src/index.ts | 4 ++
packages/core/src/missions/mission-blockers.ts | 43 ++++++++++++
packages/core/src/missions/mission-types.ts | 81 ++++++++++------------
packages/core/src/types.ts | 4 +-
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/api/missions/missions.ts | 46 +++++++-----
.../dashboard/app/components/MissionManager.tsx | 11 +--
.../MissionManager.blocked-repair.test.tsx | 10 +--
.../MissionManager.resume-conflict.test.tsx | 24 +++++++
.../__tests__/mission-blocked-clear-routes.test.ts | 2 +-
.../src/__tests__/mission-resume-conflict.test.ts | 42 +++++++++++
packages/dashboard/src/mission-routes.ts | 12 +++-
19 files changed, 297 insertions(+), 102 deletions(-)
Fusion-Task-Id: FN-8973
Fusion-Task-Lineage: 5d36c9c9-dc0f-4cb0-bd0c-ad41c8dde5c0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 22:36:01 -07:00
gsxdsm
79206c3f31
FN-8977: unify CLI Vitest mock resolution
...
Route CLI test mocks through dashboard and engine runtime imports.
- Anchor pi-coding-agent resolution to the CLI package instance
- Preserve real session exports while overriding runtime dependencies
- Add a regression test and document cross-package mock scoping
Files changed:
docs/testing.md | 6 ++
.../__tests__/extension-permission-gates.test.ts | 10 ++-
.../vitest-cross-package-mock-scope.test.ts | 75 ++++++++++++++++++++++
packages/cli/vitest.config.ts | 12 ++++
4 files changed, 101 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8977
Fusion-Task-Lineage: a652cdf4-463e-4603-8d71-87db91d0b846
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 22:12:15 -07:00
gsxdsm
9571f73666
FN-8972: preserve blocked mission status during rollups
...
Protect explicitly blocked or archived hierarchy statuses from automatic recomputation.
- Restrict mission and milestone rollups to statuses they own.
- Make asynchronous recomputations transactional and preserve status events.
- Cover guarded rollups in SQLite and PostgreSQL tests.
Files changed:
.../fn-8972-mission-recompute-blocked-guard.md | 7 ++
docs/missions.md | 2 +
.../mission-status-recompute-guard.test.ts | 85 +++++++++++++++++
.../__tests__/postgres/mission-store.pg.test.ts | 105 +++++++++++++++++++++
.../core/src/async-stores/async-mission-store.ts | 67 +++++++++++--
packages/core/src/missions/mission-store.ts | 12 ++-
packages/core/src/missions/mission-types.ts | 21 +++++
7 files changed, 286 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8972
Fusion-Task-Lineage: 07ede656-dec0-4d3e-b35c-06e0f6304b74
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 22:03:57 -07:00
gsxdsm
1da61f35f7
FN-8960: add macOS computer automation CLI
...
Add a snapshot-backed macOS computer-use surface to the Fusion CLI.
- Register fn computer commands for app state, permission, capability, and UI actions.
- Implement macOS JXA automation with locator replay and persisted snapshot safety checks.
- Document the CLI surface, add contract coverage, and include a release changeset.
Files changed:
.changeset/fn-8960-computer-use-cli.md | 7 +
docs/README.md | 1 +
docs/cli-reference.md | 21 ++
docs/computer-use.md | 156 +++++++++++++
packages/cli/src/bin.ts | 11 +
.../__tests__/computer-adapter-registry.test.ts | 154 ++++++++++++
.../commands/__tests__/computer-commands.test.ts | 71 ++++++
.../commands/__tests__/computer-contract.test.ts | 34 +++
.../__tests__/computer-snapshot-index.test.ts | 87 +++++++
packages/cli/src/commands/computer.ts | 182 +++++++++++++++
.../cli/src/commands/computer/adapter-macos.ts | 211 +++++++++++++++++
.../cli/src/commands/computer/adapter-registry.ts | 42 ++++
.../src/commands/computer/adapter-unsupported.ts | 44 ++++
packages/cli/src/commands/computer/adapter.ts | 97 ++++++++
packages/cli/src/commands/computer/contract.ts | 83 +++++++
packages/cli/src/commands/computer/exec-seam.ts | 61 +++++
.../cli/src/commands/computer/scripts/macos-jxa.ts | 37 +++
.../cli/src/commands/computer/snapshot-store.ts | 257 +++++++++++++++++++++
18 files changed, 1556 insertions(+)
Fusion-Task-Id: FN-8960
Fusion-Task-Lineage: 5870bf69-b751-4879-bf9d-5f5396cc0f55
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-10 21:56:18 -07:00