gsxdsm
3566cf8a1d
FN-6695: block unsafe in-review branch rebinds
...
Protect in-review branch metadata repair from overriding user or checkout ownership.
- Replace the stale optional auto-mutate TODO with an explicit rebind safety gate.
- Skip and audit rebind attempts for user-paused tasks or live checked-out tasks.
- Extend reliability coverage for safe autoMerge=false repairs and existing skip outcomes.
- Document the self-healing contract for unsafe metadata repair skips.
Files changed:
docs/architecture.md | 2 +-
.../in-review-branch-rebind.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/self-healing.ts | 64 ++++++++--
3 files changed, 187 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6695
Fusion-Task-Lineage: dfed3013-3bbf-433d-bb3e-434f6a6fe0e9
2026-06-19 05:02:29 -07:00
gsxdsm
af31f7ddfa
FN-6657: embed system stats in Command Center
...
Move system telemetry out of the global header modal and into Command Center as a dedicated System area.
- add a Command Center System tab with live CPU, memory, heap, process, task, agent, and vitest controls
- remove the legacy System Stats modal entry points from desktop and mobile navigation
- update modal manager, docs, and regression coverage for the new embedded System area
- add a patch changeset for the published Fusion package
Files changed:
.../fn-6657-system-stats-into-command-center.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/App.tsx | 7 -
packages/dashboard/app/components/AppModals.tsx | 12 -
packages/dashboard/app/components/Header.tsx | 9 -
packages/dashboard/app/components/MobileNavBar.tsx | 12 -
.../dashboard/app/components/SystemStatsModal.css | 319 -------------
.../dashboard/app/components/SystemStatsModal.tsx | 523 ---------------------
.../app/components/__tests__/AppModals.test.tsx | 51 --
.../app/components/__tests__/Header.test.tsx | 12 -
.../app/components/__tests__/MobileNavBar.test.tsx | 13 -
.../components/__tests__/SystemStatsModal.test.tsx | 329 -------------
...-merge-toggle-blank.mobile-integration.test.tsx | 1 -
.../components/command-center/CommandCenter.tsx | 5 +
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 46 ++
.../__tests__/CommandCenter.test.tsx | 57 ++-
.../__tests__/SystemStatsArea.test.tsx | 229 +++++++++
.../command-center/areas/SystemStatsArea.css | 122 +++++
.../command-center/areas/SystemStatsArea.tsx | 440 +++++++++++++++++
.../app/hooks/__tests__/useModalManager.test.ts | 23 -
packages/dashboard/app/hooks/useModalManager.ts | 12 -
22 files changed, 906 insertions(+), 1327 deletions(-)
Fusion-Task-Id: FN-6657
Fusion-Task-Lineage: 7593ee86-671e-4c95-96f8-a8dc8861e7b7
2026-06-18 18:58:21 -07:00
gsxdsm
a6a3260fa3
FN-6647: preserve completed handoffs after graph aborts
...
Persist completed workflow handoffs so trailing graph aborts stay benign after executor cleanup.
- Derive finalized completion state from persisted task rows when volatile executor markers are gone.
- Keep genuine pause, global-pause, merge-seam, incomplete, and failed/error rows on their existing failure paths.
- Expand executor recovery tests for no-commit completions, terminal rows, stale marker cleanup, and durable classifier controls.
- Document the persisted completion-finalize classifier contract.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/executor-recovery.test.ts | 164 ++++++++++++++++++---
packages/engine/src/executor.ts | 18 ++-
3 files changed, 160 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6647
Fusion-Task-Lineage: 71605a4c-4077-4219-bfa9-44bba2d8372c
2026-06-18 12:36:48 -07:00
gsxdsm
3b32b535d0
FN-6644: preserve finalized graph aborts
...
Keep no-commit completion handoffs in review when teardown reclassifies their abort provenance.
- Track completed finalize-to-review handoffs with a durable executor marker.
- Suppress false operator-action graph failures after hard-cancel teardown overwrites completion-finalize provenance.
- Cover preserved user/global pause, merge-seam, hard-cancel, terminal, and redispatch cleanup behavior.
- Document the finalized completion abort exception and add a patch changeset.
Files changed:
.changeset/fn-6644-finalize-to-review-abort-overwrite.md | 5 +
docs/architecture.md | 2 +-
packages/engine/src/__tests__/executor-recovery.test.ts | 300 +++++++++++++++++++++
packages/engine/src/executor.ts | 40 ++-
4 files changed, 342 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6644
Fusion-Task-Lineage: 569fa84f-2cbe-45ae-b12c-874dd45cea73
2026-06-18 11:18:03 -07:00
gsxdsm
3d28b3b212
FN-6632: preserve reattached chat stream chunks
...
Seed streaming accumulators from durable in-flight snapshots so reattached chat bubbles keep prior chunks.
- Add initial text, thinking, and tool-call snapshots to chat stream handlers.
- Wire main chat and QuickChat reattach flows to seed handler accumulators before replayed deltas arrive.
- Cover text, thinking, and tool-call continuation across shared handler, main chat, and QuickChat tests.
- Document the reattach accumulator invariant and add a published package changeset.
Files changed:
.changeset/fn-6632-chat-stream-reattach.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../__tests__/createChatStreamHandlers.test.ts | 63 +++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 182 +++++++++++++++++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 147 +++++++++++++++++
.../app/hooks/createChatStreamHandlers.ts | 19 ++-
packages/dashboard/app/hooks/useChat.ts | 7 +
packages/dashboard/app/hooks/useQuickChat.ts | 7 +
9 files changed, 429 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6632
Fusion-Task-Lineage: e2f2eb42-08aa-4bae-a79f-60cfc9fb03d4
2026-06-18 06:36:03 -07:00
gsxdsm
4315cd01c6
FN-6598: suppress stuck detection during verification
...
Treat bounded verification subprocesses as healthy activity so progressing tasks avoid false stuck-loop recovery.
- Bracket fn_run_verification commands with stuck-detector start/end signals.
- Suppress loop and no-progress churn while verification is active, with timeout-bounded cleanup.
- Add regression coverage for verification heartbeats, compact-and-resume recovery, and no-progress churn behavior.
- Document verification suppression in reliability guidance.
Files changed:
docs/architecture.md | 5 +-
docs/testing.md | 1 +
.../src/__tests__/executor-step-session.test.ts | 10 +-
.../non-progress-churn.test.ts | 55 +++++++++
.../src/__tests__/run-verification-command.test.ts | 45 ++++++-
.../src/__tests__/stuck-task-detector.test.ts | 136 +++++++++++++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/run-verification-tool.ts | 33 +++--
packages/engine/src/stuck-task-detector.ts | 69 +++++++++++
9 files changed, 341 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6598
Fusion-Task-Lineage: 5449b413-c500-46aa-b46d-cf94c2d88710
2026-06-18 00:39:01 -07:00
gsxdsm
98ccf8a293
FN-6625: classify completion finalization aborts
...
Prevent completed no-commit executions that already advanced to review from being re-parked as pause-abort failures.
- Add completion-finalize pause-abort provenance and exclude it from genuine pause handling after review handoff.
- Mark paused-after-completion finalization paths with the new provenance before handing tasks to review.
- Cover the finalize-to-review abort recovery path with executor regression tests and document the lifecycle exception.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6625-finalize-to-review-abort.md | 5 +
docs/architecture.md | 2 +-
.../engine/src/__tests__/executor-recovery.test.ts | 158 ++++++++++++++++++++-
packages/engine/src/executor.ts | 26 +++-
4 files changed, 185 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6625
Fusion-Task-Lineage: 728f6fe5-4c27-4597-b17e-e16ff97b9277
2026-06-18 00:01:32 -07:00
gsxdsm
5b9ff047d3
FN-6599: preserve chat thread during streaming attach
...
Keep existing chat history visible when attaching to an in-flight streaming response.
- Commit attach-triggered message loads for the streaming session before active session refs settle.
- Avoid clearing cached main chat messages on attach cache misses while fetching prior thread history.
- Add regression coverage for main chat and QuickChat streaming thread visibility, plus quarantine ledger updates.
Files changed:
.changeset/fn-6599-chat-streaming-thread.md | 5 +
docs/architecture.md | 1 +
docs/dashboard-guide.md | 2 +-
packages/core/vitest.config.ts | 1 +
.../__tests__/ChatView.streaming-thread.test.tsx | 168 +++++++++++++++++++++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 51 +++++++
.../app/hooks/__tests__/useQuickChat.test.ts | 39 +++++
packages/dashboard/app/hooks/useChat.ts | 37 +++--
packages/dashboard/app/hooks/useQuickChat.ts | 27 ++--
scripts/lib/test-quarantine.json | 5 +
10 files changed, 307 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-6599
Fusion-Task-Lineage: b2c94391-6a5b-4048-836d-e4bc56e16786
2026-06-17 17:49:20 -07:00
gsxdsm
e2a3a37b26
FN-6569: make auto-merge retry cap configurable
...
Adds a project setting that controls how many auto-merge conflict retries run before recovery paths give up.
- Add maxAutoMergeRetries to project settings defaults, schema, types, and dashboard controls.
- Resolve the retry cap in engine merge handling, self-healing recovery, stall detection, and blocker fanout logic.
- Cover custom retry caps with core, dashboard, and engine regression tests.
Files changed:
.changeset/fn-6569-max-auto-merge-retries.md | 5 ++
docs/architecture.md | 2 +-
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 12 ++++
packages/core/src/in-review-stall.ts | 16 ++++-
packages/core/src/index.ts | 1 +
packages/core/src/settings-schema.ts | 6 ++
packages/core/src/task-priority.ts | 4 +-
packages/core/src/types.ts | 8 +++
.../dashboard/app/components/SettingsModal.tsx | 8 +++
.../components/settings/sections/MergeSection.tsx | 26 +++++++
.../app/hooks/__tests__/useBlockerFanout.test.ts | 5 +-
packages/dashboard/app/hooks/useBlockerFanout.ts | 3 +-
.../auto-merge-retry-cap-settings.test.ts | 79 ++++++++++++++++++++++
packages/engine/src/project-engine.ts | 77 +++++++++++++--------
packages/engine/src/self-healing.ts | 30 +++++---
16 files changed, 236 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-6569
Fusion-Task-Lineage: 42242d6a-68bc-41f1-b2d9-af2e6f168eed
2026-06-17 04:51:31 -07:00
gsxdsm
6ced5d73de
FN-6568: route merge-seam graph aborts to retry
...
Classify merge-seam abort provenance so non-paused merge graph failures retry instead of parking as pauses.
- Track paused-abort provenance separately from the legacy pause-abort bit.
- Route merge and requestMerge graph failures through bounded auto-merge retry when they are not genuine pauses.
- Preserve user/global pause parking behavior with regression coverage and document the lifecycle invariant.
Files changed:
.../fn-6568-merge-seam-abort-classification.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 122 +++++++++++++------
4 files changed, 221 insertions(+), 38 deletions(-)
Fusion-Task-Id: FN-6568
Fusion-Task-Lineage: 5d9ee4f8-0336-4fb9-aa95-beb65e6c1ed9
2026-06-17 04:16:10 -07:00
gsxdsm
bc6dfd386e
FN-6478: surface paused workflow graph failures
...
Surface stranded paused workflow exits as actionable executor failures.
- Treat paused or aborted graph exits as benign only while the live task remains in-progress.
- Preserve terminal/review lifecycle state while recording operator-actionable failure evidence for advanced columns.
- Cover user-paused, pause-aborted, existing-failure, in-progress, in-review, todo, and done column recovery paths.
- Document the workflow lifecycle invariant and add a patch changeset.
Files changed:
.changeset/fn-6478-paused-workflow-executions.md | 5 +
docs/architecture.md | 1 +
.../engine/src/__tests__/executor-recovery.test.ts | 283 +++++++++++++++++++++
packages/engine/src/executor.ts | 30 ++-
4 files changed, 315 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6478
Fusion-Task-Lineage: 219d8612-6604-4dbc-9a3a-a1c7837419c1
2026-06-15 02:30:41 -07:00
gsxdsm
fee0178b4f
FN-6461: block incomplete no-commits no-op finalization
...
Add a shared no-op finalize guard so no-commits tasks with mostly incomplete steps return to todo instead of silently completing.
- Add core step-evidence evaluation for no-commits no-op finalization.
- Apply the guard across AI empty merge, early empty-own-diff, legacy no-op classifier, direct no-op, and self-healing finalize lanes.
- Emit run-audit/log evidence and preserve progress when demoting blocked tasks.
- Cover guard behavior with core, merger, AI merge, real-git, and self-healing tests.
- Document the finalize integrity invariant and add a patch changeset.
Files changed:
.changeset/fn-6461-no-commits-finalize-guard.md | 5 +
docs/architecture.md | 2 +
.../__tests__/no-commits-finalize-guard.test.ts | 58 +++++++
packages/core/src/index.ts | 2 +
packages/core/src/no-commits-finalize-guard.ts | 42 +++++
packages/engine/src/__tests__/merger-ai.test.ts | 59 +++++++
.../merger-finalize-unproven.real-git.test.ts | 176 +++++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 125 +++++++++++++++
packages/engine/src/merger-ai.ts | 45 ++++++
packages/engine/src/merger.ts | 130 +++++++++++++++
packages/engine/src/run-audit.ts | 6 +
packages/engine/src/self-healing.ts | 41 ++++-
12 files changed, 689 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6461
Fusion-Task-Lineage: 36647768-42da-414a-9304-d8e0ed61b99c
2026-06-15 02:29:08 -07:00
gsxdsm
7b839069b5
FN-6420: run dependency sync in AI merge worktrees
...
Run configured or inferred dependency installs before AI merge verification uses the clean-room worktree.
- Add shared dependency-sync helpers with install marker caching for inferred lockfile installs.
- Run dependency sync during AI clean-room merges and audit/log the command, skip reason, and duration.
- Reuse the helper from merger paths while documenting the new behavior and covering install success/failure cases.
Files changed:
.changeset/fn-6420-ai-merge-dependency-sync.md | 5 +
docs/architecture.md | 2 +-
docs/settings-reference.md | 2 +-
.../src/__tests__/executor-step-session.test.ts | 5 +-
.../merger-ai-dependency-install.slow.test.ts | 269 +++++++++++++++++++++
packages/engine/src/merge-dependency-sync.ts | 144 +++++++++++
packages/engine/src/merger-ai.ts | 31 +++
packages/engine/src/merger.ts | 120 +++------
packages/engine/src/run-audit.ts | 1 +
9 files changed, 484 insertions(+), 95 deletions(-)
Fusion-Task-Id: FN-6420
Fusion-Task-Lineage: 49353cb6-4953-4670-b620-a90331f048dc
2026-06-13 21:09:12 -07:00
gsxdsm
f68775a5a6
FN-6376: preserve user-paused tasks during recovery
...
Ensure automated resume and recovery paths leave user-paused tasks paused.
- Skip user-paused tasks when cascading agent resume and approval-decision unpauses.
- Preserve userPaused during stuck-task recovery and log skipped recoveries for user-paused tasks.
- Add regression coverage across engine heartbeat, self-healing, and dashboard route surfaces.
- Document the invariant and add a patch changeset.
Files changed:
.changeset/fn-6376-user-paused-stays-paused.md | 5 ++++
docs/architecture.md | 1 +
.../src/__tests__/routes-agent-runs.test.ts | 4 +++
.../src/__tests__/routes-approval.test.ts | 26 +++++++++++++++--
.../src/routes/register-agent-runtime-routes.ts | 2 +-
.../src/routes/register-approval-routes.ts | 2 +-
.../src/__tests__/heartbeat-executor.test.ts | 28 ++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 33 +++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 3 +-
packages/engine/src/self-healing.ts | 12 ++++++--
10 files changed, 108 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6376
Fusion-Task-Lineage: efa00cb1-58e1-496a-919b-69867f8bff3c
2026-06-13 10:44:01 -07:00
gsxdsm
bffae81a98
FN-6277: track and reconcile legacy auto-merge stamps
...
Track legacy auto-merge stamp provenance and add safe operator cleanup.
- Add autoMergeProvenance storage and migration support so user overrides can be distinguished from legacy review-entry stamps.
- Mark existing ambiguous in-review autoMerge=true tasks as legacy stamps without changing behavior, and expose a dry-run/apply reconciliation API to clear them safely.
- Emit a non-mutating advisory when global auto-merge is disabled while legacy stamped review tasks remain.
- Cover migration, persistence, reconciliation, movement, merge resolution, and advisory behavior with regression tests and docs.
Files changed:
.../fn-6277-legacy-automerge-stamp-cleanup.md | 5 +
docs/architecture.md | 2 +-
docs/settings-reference.md | 2 +-
packages/core/src/__tests__/db-migrate.test.ts | 30 ++--
packages/core/src/__tests__/db.test.ts | 44 +++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../legacy-automerge-stamp-reconcile.test.ts | 144 +++++++++++++++++++
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/store-movement.test.ts | 14 ++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/__tests__/task-merge.test.ts | 16 ++-
packages/core/src/db.ts | 10 +-
packages/core/src/index.ts | 1 +
packages/core/src/store.ts | 157 ++++++++++++++++++++-
packages/core/src/task-merge.ts | 8 +-
packages/core/src/types.ts | 10 +-
.../automerge-toggle-legacy-advisory.test.ts | 128 +++++++++++++++++
packages/engine/src/project-engine.ts | 68 ++++++++-
22 files changed, 593 insertions(+), 70 deletions(-)
Fusion-Task-Id: FN-6277
Fusion-Task-Lineage: 22d36519-f2ba-4ca7-8a09-12fc803c9a5b
2026-06-13 05:06:05 -07:00
gsxdsm
4e6df035c1
FN-6275: allow verified no-op completions
...
Allow executors to finish already-satisfied tasks without fabricating commits while preserving existing completion guards.
- Add leading sentinel parsing for premise-stale, no-op, duplicate, and redundant completion summaries.
- Permit zero-commit fn_task_done only for recognized sentinels or existing no-commit contracts, with audit log/activity details.
- Document the verified no-op completion contract and add regression coverage for accepted and refused paths.
Files changed:
.changeset/fn-6275-no-op-completion.md | 5 ++
docs/architecture.md | 1 +
.../src/__tests__/no-op-completion-marker.test.ts | 55 ++++++++++++
packages/core/src/agent-prompts.ts | 4 +
packages/core/src/index.ts | 5 ++
packages/core/src/no-op-completion-marker.ts | 48 ++++++++++
.../__tests__/executor-task-done-invariant.test.ts | 100 +++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/executor.ts | 64 ++++++++++++-
9 files changed, 279 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6275
Fusion-Task-Lineage: 0a2ec21b-415f-411c-bfcd-4f1c19a6a136
2026-06-13 02:54:57 -07:00
gsxdsm
a9b11399d9
FN-6336: reattach orphaned assigned executions
...
Self-healing now resumes stranded assigned in-progress work when an agent has no active run or execution.
- Add a self-healing pass that groups stale assigned in-progress tasks by durable agent and calls the executor resume seam without moving tasks backward.
- Emit run-audit telemetry for reattached orphaned executions and wire the resume hook through the in-process runtime.
- Cover grace windows, pause/active-run/active-execution guards, task filtering, and registration order with engine tests.
- Document the recovery behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6336-reattach-orphaned-executions.md | 5 +
docs/agents.md | 2 +
docs/architecture.md | 2 +
...lf-healing-reattach-orphaned-executions.test.ts | 217 +++++++++++++++++++++
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/runtimes/in-process-runtime.ts | 1 +
packages/engine/src/self-healing.ts | 122 ++++++++++++
7 files changed, 350 insertions(+)
Fusion-Task-Id: FN-6336
Fusion-Task-Lineage: 6d8519b9-d8b0-4726-9b45-bfa445b7883e
2026-06-12 23:17:28 -07:00
gsxdsm
ba610a1c0e
FN-6296: fix stuck-kill force-requeue cleanup
...
Reap hung executor surfaces before requeueing stuck-kill timeout tasks.
- terminate spawned child agents and active session surfaces before clearing execution guards
- remove stale worktrees during force-requeue while preserving concurrent recovery ownership
- add regression coverage and architecture notes for the cleanup contract
Files changed:
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-recovery.test.ts | 248 ++++++++++++++++++++-
packages/engine/src/executor.ts | 61 ++++-
3 files changed, 305 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6296
Fusion-Task-Lineage: a393e2b1-a72c-4d7b-9de2-6bf7268986d4
2026-06-12 14:08:52 -07:00
gsxdsm
283adce4d0
FN-6295: move AI merge clean rooms into worktrees
...
Move AI-merge clean-room worktrees into the configured worktrees directory while preserving legacy cleanup.
- Resolve AI-merge roots through the configured worktrees directory using a hidden .ai-merge container.
- Keep local git excludes and stale cleanup compatible with legacy .fusion/ai-merge and tmpdir locations.
- Exclude the .ai-merge container from worktree pool and self-healing one-level sweeps.
- Add regression coverage for path resolution, cleanup, orphan reap, and cap enforcement behavior.
- Update architecture and agent guidance for the relocated clean-room root.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 4 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 50 +++++++++----
.../__tests__/self-healing-tempdir-sweep.test.ts | 87 +++++++++++++++++++---
.../engine/src/__tests__/worktree-paths.test.ts | 24 ++++++
.../engine/src/__tests__/worktree-pool.test.ts | 55 ++++++++++++++
packages/engine/src/merger-ai.ts | 27 +++++--
packages/engine/src/self-healing.ts | 25 +++----
packages/engine/src/worktree-paths.ts | 17 +++++
packages/engine/src/worktree-pool.ts | 10 +--
10 files changed, 247 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-6295
Fusion-Task-Lineage: d95d32c2-3253-4964-b68a-252b4cb65109
2026-06-12 12:49:34 -07:00
gsxdsm
0897b2a0bf
FN-6281: add bounded graph resume retries
...
Add a narrow persisted retry path for transient workflow-graph failures during resume after restart or unpause.
- Persist graphResumeRetryCount with schema migration, store round-tripping, manual retry reset, and task serialization coverage.
- Retry only no-progress execute-seam graph failures immediately following resume markers, then clear transient status/error and re-run within a capped budget.
- Preserve terminal graph failure handling for explicit reasons, durable task failures, completed progress, non-resume cases, and exhausted retry budgets.
- Document the resume-limbo retry contract and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-6281-graph-resume-retry.md | 5 +
docs/architecture.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 30 +--
packages/core/src/__tests__/db.test.ts | 44 ++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 1 +
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
.../core/src/__tests__/store-persistence.test.ts | 22 +++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 10 +-
packages/core/src/manual-retry-reset.ts | 1 +
packages/core/src/store.ts | 14 +-
packages/core/src/types.ts | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 201 +++++++++++++++++++++
packages/engine/src/executor.ts | 54 ++++++
19 files changed, 359 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6281
Fusion-Task-Lineage: f9061445-8624-465a-9255-c3d02eac1bdb
2026-06-12 11:10:12 -07:00
gsxdsm
36ba1b9d68
FN-6292: prevent dependency-blocking file leases
...
Prevent dependency waiters from holding file-scope leases that can block their own dependencies.
- Exclude in-progress tasks with unmet scheduling dependencies from active overlap lease maps.
- Add self-healing recovery for existing dependency/lease circular waits with triple-proof auditing.
- Cover scheduler and self-healing behavior with regression tests and document the new audit events.
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 5 +-
packages/engine/src/__tests__/scheduler.test.ts | 108 +++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 172 ++++++++++++++++++++-
packages/engine/src/scheduler.ts | 67 +++++---
packages/engine/src/self-healing.ts | 132 ++++++++++++++++
6 files changed, 462 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6292
Fusion-Task-Lineage: 7c0e852d-bdb1-4775-a6b7-2b60b7583da1
2026-06-12 10:49:02 -07:00
gsxdsm
2085610e9e
FN-6246: move AI merge clean rooms into repo storage
...
Move AI merge clean-room worktrees into a repo-local ignored root while preserving legacy temp cleanup.
- Add repo-local `.fusion/ai-merge` resolution and ignore handling for AI merge worktrees.
- Sweep both repo-local clean rooms and legacy tempdir worktrees with active-session and age safeguards.
- Prune stale git worktree metadata after cleanup and classify missing clean-room errors as transient.
- Update cleanup tests, architecture docs, and changeset coverage for the relocation.
Files changed:
.changeset/fn-6246-ai-merge-cleanroom-relocation.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 6 +-
.../merger-ai-cleanup-active-session.test.ts | 22 ++-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 48 +++++-
.../ai-merge-worktree-cleanup.test.ts | 26 ++-
.../__tests__/self-healing-tempdir-sweep.test.ts | 34 ++++
.../transient-merge-error-classifier.test.ts | 2 +
packages/engine/src/merger-ai.ts | 144 ++++++++++-------
packages/engine/src/self-healing.ts | 180 ++++++++++++---------
.../engine/src/transient-merge-error-classifier.ts | 14 +-
11 files changed, 325 insertions(+), 158 deletions(-)
Fusion-Task-Id: FN-6246
Fusion-Task-Lineage: f6fe8ef2-aa7b-4cc3-903f-b7a5cc165487
2026-06-12 06:49:29 -07:00
gsxdsm
ec4b247a86
FN-6284: refire deferred agent assignments
...
Ensure assigned agents resume task work even when their heartbeat loop is idle.
- add deferred assignment refiring when an agent is assigned work without an active heartbeat run
- track in-process runtime activity so scheduled work is not double-started
- cover idle, active, and concurrent heartbeat assignment paths with scheduler and runtime tests
- document the deferred assignment wake-up behavior and add a changeset
Files changed:
.changeset/fn-6284-deferred-assignment-refire.md | 5 +
docs/agents.md | 2 +
docs/architecture.md | 1 +
.../src/__tests__/heartbeat-scheduler.test.ts | 174 ++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 109 ++++++++++++-
.../runtimes/__tests__/in-process-runtime.test.ts | 24 +++
packages/engine/src/runtimes/in-process-runtime.ts | 3 +
7 files changed, 311 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6284
Fusion-Task-Lineage: cf8a9abe-163e-45c6-961a-095891e45ea5
2026-06-12 03:00:45 -07:00
gsxdsm
65251d2e6b
FN-6252: stop agent pauses from pausing tasks
...
Agent pause and sleep flows now leave task pause state under explicit task controls.\n\n- Remove automatic task pausing from heartbeat pauseAgent and dashboard fallback state changes.\n- Default resume task cascade to off while retaining legacy opt-in unpause cleanup.\n- Cover agent sleep, heartbeat execution, and dashboard fallback pause behavior with regression tests.\n- Document task pause ownership and add a patch changeset.\n\nFiles changed:\n .changeset/fn-6252-no-agent-task-autopause.md | 5 ++\n docs/agents.md | 2 +-\n docs/architecture.md | 4 ++\n .../src/__tests__/routes-agent-runs.test.ts | 32 +++++++++\n .../src/routes/register-agent-runtime-routes.ts | 17 -----\n .../src/__tests__/heartbeat-executor.test.ts | 75 ++++++++++++++++++++--\n packages/engine/src/agent-heartbeat.ts | 29 +++------\n 7 files changed, 121 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6252
Fusion-Task-Lineage: f7a0ef30-0c99-4f9c-b0c1-43217d613187
2026-06-11 22:03:29 -07:00
gsxdsm
7763ba5fab
FN-6278: preflight reusable merge worktree cwd
...
Stabilize reusable merge worktree cwd resolution before merge-runner git spawns.
- Add a reusable merge integration root preflight that detects missing, empty, or de-registered task worktrees before using them as cwd.
- Reacquire/repair unusable reuse-task-worktree roots before merge execution and reject unusable roots during handoff.
- Cover vanished and unregistered worktree recovery paths plus focused preflight unit cases.
- Document the FN-6278 preflight behavior alongside transient merge recovery and merge integration worktree contracts.
Files changed:
docs/architecture.md | 4 +-
.../__tests__/merger-integration-worktree.test.ts | 82 ++++++++
.../merge-runner-spawn-enoent-prevention.test.ts | 233 +++++++++++++++++++++
packages/engine/src/merger-integration-worktree.ts | 71 +++++++
packages/engine/src/merger.ts | 19 +-
5 files changed, 396 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6278
Fusion-Task-Lineage: ceecf70f-9e2d-4ffe-8c6f-a9a5b673d72d
2026-06-11 20:27:29 -07:00
gsxdsm
ac342f5012
FN-6220: harden AI merge worktree cleanup
...
Harden AI merge cleanup so temporary clean-room worktrees are removed and audited reliably.
- Canonicalize AI merge cleanup paths and prune stale git worktree metadata after removals.
- Treat already-absent or de-registered cleanup paths as idempotent success while still auditing genuine failures.
- Add regression coverage for successful, no-op, retry, thrown, orphaned, and dangling-registration cleanup paths.
- Document the inline and self-healing cleanup lifecycle for AI merge temp worktrees.
Files changed:
docs/architecture.md | 4 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 28 +-
.../ai-merge-worktree-cleanup.test.ts | 284 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 108 +++++---
4 files changed, 392 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6220
Fusion-Task-Lineage: b002313c-4349-49c2-8d0f-cd1853369d84
2026-06-11 20:02:21 -07:00
gsxdsm
9a71b1c7d1
FN-6242: recover transient spawn merge failures
...
Recover retry-exhausted in-review merge tasks when the merger failed before spawning its git command.
- Classify spawn ENOTDIR and spawn ENOENT errors as bounded transient merge failures.
- Requeue retry-exhausted in-review tasks for auto-merge while preserving the transient recovery budget.
- Cover the classifier and self-healing recovery paths for process-spawn failures.
- Document the transient merge recovery classes and bounded budget behavior.
Files changed:
docs/architecture.md | 1 +
packages/engine/src/__tests__/self-healing.test.ts | 101 +++++++++++++++++++++
.../transient-merge-error-classifier.test.ts | 40 ++++++++
.../engine/src/transient-merge-error-classifier.ts | 11 +++
4 files changed, 153 insertions(+)
Fusion-Task-Id: FN-6242
Fusion-Task-Lineage: 3ca0ab1b-7184-4808-85ad-3becc9c99329
2026-06-11 18:41:49 -07:00
gsxdsm
94c3cce7bc
FN-6257: make AI merge cleanup idempotent for absent worktrees
...
AI merge cleanup now tolerates already-removed worktrees without failing a landed merge.
- Treat ENOENT and de-registered worktree removal errors as successful idempotent cleanup.
- Register AI merge temp paths before worktree creation and keep raw/canonical paths active.
- Add cleanup regression coverage and include the cleanup suite in reliability tests.
- Document the idempotent cleanup telemetry contract.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 48 +++++++-
.../ai-merge-cleanup-enoent-idempotent.test.ts | 128 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 73 +++++++++---
packages/engine/vitest.config.ts | 5 +-
5 files changed, 239 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6257
Fusion-Task-Lineage: c669fa1e-2c92-4e2f-8726-4939a3146955
2026-06-11 18:14:45 -07:00
gsxdsm
39b2478f01
FN-6227: handle non-empty worktree removals
...
Recover native worktree cleanup when git refuses to remove a non-empty worktree.
- Detect recoverable git worktree remove errors and fall back to filesystem removal plus admin pruning.
- Add a worktree remove fallback audit event for recovery visibility.
- Cover non-empty removal recovery with unit and real-git regression tests.
- Keep flaky-test quarantine exclusions merged with current main.
Files changed:
docs/architecture.md | 4 +-
...tree-remove-non-empty-recovery.real-git.test.ts | 139 +++++++++++++++++++++
.../engine/src/__tests__/worktree-backend.test.ts | 113 ++++++++++++++++-
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/worktree-backend.ts | 57 ++++++++-
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 +
7 files changed, 311 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6227
Fusion-Task-Lineage: 98673303-8109-4fe8-8d9f-eb867fb28bdd
2026-06-11 16:15:07 -07:00
gsxdsm
3e69d3990d
FN-6244: protect active AI merge worktrees
...
Ensure AI merge cleanup only reaps stale, inactive temp worktrees.
- Register live AI merge clean-room paths in the active session registry while merges run.
- Add a minimum temp-worktree reap age and conservative lookup-error handling to sweep and prune paths.
- Expand cleanup tests and release the repaired AI merge cleanup test from quarantine.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 38 ++++++++++++++--
.../__tests__/self-healing-tempdir-sweep.test.ts | 52 +++++++++++++++++++---
packages/engine/src/active-session-registry.ts | 2 +-
packages/engine/src/merger-ai.ts | 29 +++++++++++-
packages/engine/src/self-healing.ts | 28 +++++++++---
packages/engine/vitest.config.ts | 1 -
scripts/lib/test-quarantine.json | 5 ---
8 files changed, 132 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6244
Fusion-Task-Lineage: 5c8ced12-d38f-4e45-9ea0-119b3236a2cb
2026-06-11 15:54:49 -07:00
gsxdsm
d75f861f24
FN-6199: harden AI merge worktree cleanup
...
Guarantee AI merge clean-room worktrees are pruned on merge completion and swept by task state.
- prune pre-existing same-task AI merge temp worktrees before starting a new merge and audit cleanup outcomes
- add task-aware tempdir sweep rules with a short grace period for done or archived tasks and immediate cleanup for deleted tasks
- extend merger and self-healing coverage and document the updated stale worktree policy
Files changed:
.changeset/ai-merge-cleanup-sweep.md | 5 +
docs/architecture.md | 2 +-
packages/engine/src/__tests__/merger-ai-cleanup.test.ts | 109 ++++++++++++++++++--
packages/engine/src/__tests__/self-healing-tempdir-sweep.test.ts | 112 ++++++++++++++++++++-
packages/engine/src/merger-ai.ts | 63 ++++++++++++
packages/engine/src/self-healing.ts | 26 ++++-
6 files changed, 300 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6199
Fusion-Task-Lineage: 659cc52f-0994-4315-a187-6c865bbe3983
2026-06-10 10:57:02 -07:00
gsxdsm
4032a35a2f
FN-6188: harden AI merge temp worktree cleanup
...
Improve AI merge temp worktree cleanup and add recovery coverage.
- audit AI merge clean-room cleanup success and failure paths, including stderr/code details
- sweep stale fusion-ai-merge temp directories from tmpdir() during self-healing with active-session safeguards
- document the native temp-dir sweep behavior and add merge cleanup/self-healing regression tests
Files changed:
docs/architecture.md | 1 +
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 169 +++++++++++++++++
.../__tests__/self-healing-tempdir-sweep.test.ts | 200 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 54 +++++-
packages/engine/src/run-audit.ts | 26 +++
packages/engine/src/self-healing.ts | 105 +++++++++++
6 files changed, 551 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6188
Fusion-Task-Lineage: eae9bcdc-9765-4104-85dc-81bb50445e99
2026-06-10 05:13:40 -07:00
gsxdsm
5b5cd77021
FN-6177: remove queued-concurrency scheduler audit
...
Remove the write-only queued-concurrency scheduler audit and its stale documentation.
- delete scheduler:dispatch-queued-concurrency audit emission and memo bookkeeping
- keep queued concurrency log dedupe coverage while removing audit-specific scheduler test assertions
- update architecture docs to describe queued concurrency diagnostics as log output only
Files changed:
docs/architecture.md | 4 +-
packages/engine/src/__tests__/scheduler.test.ts | 33 ----------------
packages/engine/src/scheduler.ts | 51 -------------------------
3 files changed, 2 insertions(+), 86 deletions(-)
Fusion-Task-Id: FN-6177
Fusion-Task-Lineage: e4516b41-5525-4e26-9602-772302d63f3d
2026-06-10 00:39:22 -07:00
gsxdsm
e326c5e8db
FN-6174: remove overlap priority inversion audit
...
Remove the unused scheduler overlap-priority inversion audit path.
- drop the scheduler memoization and audit emission for overlap-priority inversion blockers
- delete the reliability interaction test that only covered the removed audit behavior
- update architecture documentation to note the audit removal and keep the overlap deferral rule
Files changed:
docs/architecture.md | 3 +-
packages/engine/src/__tests__/reliability-interactions/scheduler-overlap-priority-inversion.test.ts | 212 ---------------------
packages/engine/src/scheduler.ts | 51 -----
3 files changed, 1 insertion(+), 265 deletions(-)
Fusion-Task-Id: FN-6174
Fusion-Task-Lineage: 3062b405-1f1d-473d-a02f-09a1077376c0
2026-06-09 23:37:31 -07:00
gsxdsm
2fd214b4f2
FN-5975: extend archive FTS maintenance coverage
...
Add archive-database FTS maintenance and document the expanded compaction policy.
- add archive FTS maintenance helpers for optimize, rebuild, size measurement, and row counts
- extend self-healing maintenance to compact and rebuild archived_tasks_fts on a slower archive-specific cadence
- cover archive FTS maintenance with new core and engine tests and update architecture/storage docs
Files changed:
docs/architecture.md | 2 +-
docs/storage.md | 12 +-
.../__tests__/archive-db-fts-maintenance.test.ts | 221 +++++++++++++++++++++
packages/core/src/archive-db.ts | 61 +++++-
packages/core/src/db.ts | 21 +-
packages/core/src/store.ts | 20 ++
.../src/__tests__/fts-maintenance-archive.test.ts | 207 +++++++++++++++++++
packages/engine/src/self-healing.ts | 80 ++++++++
8 files changed, 608 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-5975
Fusion-Task-Lineage: 13645c8c-3126-4d1b-af23-7cab1a8bb276
2026-06-08 10:33:16 -07:00
gsxdsm
3615b0b19d
FN-5941: stop todo/in-progress flapping
...
Prevent scheduler and self-healing churn from bouncing live tasks between todo and in-progress.
- add dispatch oscillation settings, scheduler settle-window tracking, and auto-pause audit/logging for rapid todo↔in-progress cycles
- harden self-healing against reclaiming genuinely active tasks by checking executor activity, grace windows, and heartbeat runs before requeueing
- cover the new reliability invariants with focused engine tests and document the new diagnostics/settings behavior
Files changed:
docs/architecture.md | 1 +
docs/diagnostics.md | 9 +
docs/settings-reference.md | 3 +
.../core/src/__tests__/settings-parity.test.ts | 6 +
packages/core/src/settings-schema.ts | 6 +
packages/core/src/types.ts | 9 +
.../todo-inprogress-flapping.test.ts | 556 +++++++++++++++++++++
packages/engine/src/__tests__/scheduler.test.ts | 14 +-
.../self-healing-in-progress-limbo.test.ts | 2 +-
packages/engine/src/__tests__/self-healing.test.ts | 8 +-
packages/engine/src/run-audit.ts | 8 +
packages/engine/src/scheduler.ts | 113 ++++-
packages/engine/src/self-healing.ts | 230 +++++++--
13 files changed, 928 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-5941
Fusion-Task-Lineage: babdd85e-d04c-47ca-901c-db692b2874bf
2026-06-07 18:51:47 -07:00
gsxdsm
61d687440b
FN-5770: promote workflow interpreter to guarded lifecycle driver
...
Route default coding tasks through the workflow interpreter only when parity readiness checks pass.
- add a core cutover-readiness evaluator and exports for the workflowInterpreterAuthoritative flag
- wire a WorkflowAuthoritativeDriver into runtime dispatch and reuse authoritative lifecycle seams with legacy fallback behavior
- cover the cutover with reliability tests, docs updates, and a published CLI changeset
Files changed:
.../FN-5770-workflow-interpreter-authoritative.md | 5 +
docs/architecture.md | 1 +
docs/settings-reference.md | 5 +-
docs/workflow-steps.md | 22 +-
.../core/src/__tests__/workflow-cutover.test.ts | 68 +++++
packages/core/src/index.ts | 8 +
packages/core/src/workflow-cutover.ts | 81 ++++++
.../src/__tests__/openclaw-runtime-e2e.test.ts | 1 +
.../engine/src/__tests__/pi-layers-wiring.test.ts | 2 +-
.../branch-recovery-live-zero-commits.test.ts | 2 +-
.../branch-recovery-stale-cached-base.test.ts | 2 +-
.../workflow-interpreter-cutover.test.ts | 306 +++++++++++++++++++++
.../self-healing-completion-fanout.test.ts | 2 +-
.../self-healing-ghost-branch-recovery.test.ts | 2 +-
.../self-healing-orphan-only-scope.test.ts | 2 +-
.../self-healing-reclaim-live-zero-commits.test.ts | 2 +-
.../self-healing-stale-merger-status.test.ts | 2 +-
.../src/__tests__/step-session-executor.test.ts | 2 +-
.../__tests__/worktree-admin-entry-prune.test.ts | 8 +-
packages/engine/src/executor.ts | 13 +-
packages/engine/src/index.ts | 6 +
packages/engine/src/runtimes/in-process-runtime.ts | 8 +
.../engine/src/workflow-authoritative-driver.ts | 154 +++++++++++
23 files changed, 686 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-5770
Fusion-Task-Lineage: dee668b5-10e0-4a3c-b025-9cc43a26286a
2026-06-07 18:51:46 -07:00
gsxdsm
294209f64b
FN-5943: maintain tasks FTS5 indexes automatically
...
Keep the tasks FTS5 index compact and self-healing during routine maintenance.
- add FTS5 trigger helpers, index sizing utilities, and a schema migration that skips no-op searchable-field rewrites
- run merge/optimize/rebuild maintenance from self-healing with thresholds, cadence, and run-audit logging
- add focused FTS maintenance coverage and update storage/architecture docs for the new behavior
Files changed:
docs/architecture.md | 1 +
docs/storage.md | 14 ++
packages/core/src/__tests__/db-migrate.test.ts | 50 ++--
packages/core/src/__tests__/db.test.ts | 84 +++----
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 2 +-
.../src/__tests__/store-archive-search.test.ts | 33 +++
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/archive-db.ts | 6 +-
packages/core/src/db.ts | 162 ++++++++++---
packages/core/src/store.ts | 16 ++
.../engine/src/__tests__/fts-maintenance.test.ts | 268 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 70 ++++++
.../src/store/__tests__/roadmap-store.test.ts | 4 +-
18 files changed, 622 insertions(+), 108 deletions(-)
Fusion-Task-Id: FN-5943
Fusion-Task-Lineage: 9a851ede-95ee-4b76-bc34-737912f0e3fc
2026-06-07 18:51:46 -07:00
gsxdsm
7076dd4516
feat(sdk,dashboard,docs): U9 — save-time code validation route, SDK type exports, skill doc, step-inversion docs + changeset
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 13:15:50 -07:00
gsxdsm
60605fafa9
feat(core): workflowColumns integrity pass, graduation report, server-side trait validation, plugin post-commit hooks, docs + changeset (U12)
2026-06-04 02:13:48 -07:00
gsxdsm
c82cdb281c
FN-5944: stop redundant run-audit re-emission
...
Deduplicate unchanged scheduler and self-healing audit emissions while preserving transition visibility.
- suppress repeated queued-concurrency audits until the limiting gate signature changes or clears
- suppress repeated overlap-priority inversion audits until the blocker changes or overlap returns
- suppress repeated meta auto-archive skip and integrity-warning audits until their persisted reasons change
- update reliability tests and architecture/settings docs for the new transition-only audit cadence
Files changed:
docs/architecture.md | 12 +--
docs/settings-reference.md | 2 +-
.../integrity-warning-persisted-dedup.test.ts | 12 ++-
.../scheduler-overlap-priority-inversion.test.ts | 60 +++++++++++++-
packages/engine/src/__tests__/scheduler.test.ts | 13 ++-
.../self-healing-meta-archive-guards.test.ts | 45 +++++++++++
packages/engine/src/scheduler.ts | 59 +++++++++++---
packages/engine/src/self-healing.ts | 94 +++++++++++++++++-----
8 files changed, 243 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-5944
Fusion-Task-Lineage: f8fe6adf-1501-49b7-b04c-ff38376957f0
2026-06-03 22:31:23 -07:00
gsxdsm
de3273eba3
FN-5937: clear deadlock auto-pause on retry
...
Clear deadlock auto-pauses when users retry failed in-review tasks.
- add a shared core helper to clear only the in-review stall deadlock auto-pause without overriding manual or unrelated pauses
- apply the auto-pause clear patch across dashboard, CLI, and extension retry flows while preserving existing merge retry reset behavior
- add regression coverage for core, CLI, extension, and dashboard retry paths plus a patch changeset and architecture note
Files changed:
.changeset/fn-5937-clear-auto-pause-retry.md | 5 +
docs/architecture.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 126 ++++++++++++++++++
packages/cli/src/__tests__/task-retry.test.ts | 59 +++++++++
packages/cli/src/commands/task.ts | 12 +-
packages/cli/src/extension.ts | 12 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 44 ++++++-
packages/core/src/index.ts | 7 +-
packages/core/src/manual-retry-reset.ts | 19 +++
packages/core/src/store.ts | 8 +-
.../src/__tests__/routes-tasks-ops.test.ts | 141 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 12 +-
12 files changed, 436 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-5937
Fusion-Task-Lineage: 8a15e01b-7b05-4126-ac6b-895467801f02
2026-06-03 15:32:29 -07:00
gsxdsm
cc18206bc5
FN-5902: make mission validation AI-run all criteria
...
Route every mission feature through validator-backed completion checks.
- lazily restore a managed feature assertion before validation instead of auto-passing zero-assertion features
- thread milestone acceptance criteria into validator prompts and system instructions as enforced requirements
- update MissionManager copy/tests to present criteria as AI-validated runtime gates and remove informational-only/zero-assertion warnings
- document the all-criteria AI-run contract and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5902-mission-validation-ai-run.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 2 +-
docs/missions-completion-contract.md | 198 ++++++---------------
docs/missions.md | 5 +-
packages/core/src/__tests__/mission-store.test.ts | 23 ++-
packages/core/src/mission-store.ts | 10 ++
packages/dashboard/app/components/MissionManager.css | 31 ----
packages/dashboard/app/components/MissionManager.tsx | 86 +++------
packages/dashboard/app/components/__tests__/MissionManager.test.tsx | 60 +++++--
packages/engine/src/__tests__/mission-execution-loop.test.ts | 111 +++++++++---
packages/engine/src/__tests__/reliability-interactions/mission-validation-trigger-gap.test.ts | 57 +++---
packages/engine/src/mission-execution-loop.ts | 78 ++++----
13 files changed, 318 insertions(+), 350 deletions(-)
Fusion-Task-Id: FN-5902
Fusion-Task-Lineage: 5f25caad-33c9-42ff-822b-1ea092afc29f
2026-06-02 18:11:26 -07:00
gsxdsm
3b9ff42073
FN-5901: reap stale mission validator runs
...
Add self-healing recovery for stale mission validator runs left behind after execution ownership disappears.
- add mission-store support to find and reap stale running validator runs, preserving terminal error status and resetting eligible features to needs_fix
- teach the mission execution loop and self-healing maintenance sweep to skip live validations, reap abandoned runs, record audit events, and avoid double-completing runs
- extend regression coverage, mission docs, architecture notes, and add a published-package changeset for the new recovery behavior
Files changed:
.changeset/fn-5901-validator-run-reaper.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
docs/missions.md | 26 ++-
packages/core/src/__tests__/mission-store.test.ts | 99 +++++++++
packages/core/src/mission-store.ts | 91 ++++++++
packages/engine/src/__tests__/mission-execution-loop.test.ts | 232 +++++++++++++++++++++
packages/engine/src/__tests__/reliability-interactions/mission-validator-run-reaper.test.ts | 181 ++++++++++++++++
packages/engine/src/mission-execution-loop.ts | 102 +++++++--
packages/engine/src/runtimes/in-process-runtime.ts | 8 +-
packages/engine/src/self-healing.ts | 22 ++
11 files changed, 746 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-5901
Fusion-Task-Lineage: 87eb2f3f-fc31-4e0a-b0fc-b771f6dc48a3
2026-06-02 15:33:31 -07:00
gsxdsm
8156382d76
FN-5889: suppress post-done continuation wedges
...
Keep completed post-done continuation errors from wedging review tasks in a failed state.
- route step-session non-continuable continuation errors through the executor recovery path before marking tasks failed
- add self-healing recovery and run-audit events for in-review tasks already wedged by post-done non-continuable errors
- extend reliability coverage and architecture/backstop docs for the new post-done wedge handling
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 3 +-
packages/engine/src/__tests__/reliability-interactions/post-done-continuation-no-wedge.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/run-audit.ts | 2 +
packages/engine/src/self-healing.ts | 97 ++++++++++++++-
6 files changed, 236 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-5889
Fusion-Task-Lineage: c22716f2-cddb-4c98-ac87-0282017e7c82
2026-06-02 11:03:18 -07:00
gsxdsm
e561290174
FN-5846: route shared-group member finalization to shared branch
...
Ensure shared branch-group members keep their routed shared-branch target through merge finalization and recovery.
- ignore a shared member's default-base branch when resolving branch-group merge routing
- reroute merge-confirmed fast paths and self-healing recovery flows to the branch-group integration branch
- stamp merge target metadata, record member landings, and add regression coverage plus architecture/changeset updates
Files changed:
.changeset/fn-5846-shared-group-merge-routing.md | 5 +
docs/architecture.md | 4 +-
packages/engine/src/__tests__/group-merge-coordinator.test.ts | 26 +++
packages/engine/src/__tests__/reliability-interactions/shared-branch-group-lifecycle.test.ts | 73 +++++--
packages/engine/src/group-merge-coordinator.ts | 11 +-
packages/engine/src/project-engine.ts | 49 ++++-
packages/engine/src/self-healing.ts | 212 ++++++++++++++++++++-
7 files changed, 357 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-5846
Fusion-Task-Lineage: c8fbf8b8-3cbe-4ee5-96d9-9040bd4f0df5
2026-06-01 20:19:37 -07:00
gsxdsm
3373c0beed
FN-5830: re-land shared branch promotion gate and API
...
Reintroduce shared-branch-group completion gating and promotion endpoints with reliability coverage.
- add GroupMergeCoordinator promotion gate behavior and shared branch group promotion logic updates
- expose promotion flow wiring through engine index and project engine APIs
- expand coordinator tests and add reliability interaction coverage for branch-group promotion
- document the new reliability backstop and add a changeset for @runfusion/fusion
Files changed:
.changeset/fn-5830-branch-group-promotion.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 3 +-
.../src/__tests__/group-merge-coordinator.test.ts | 170 ++++++++++++++++++-
.../branch-group-promotion.test.ts | 166 +++++++++++++++++++
packages/engine/src/group-merge-coordinator.ts | 183 ++++++++++++++++++++-
packages/engine/src/index.ts | 4 +
packages/engine/src/project-engine.ts | 37 +++++
8 files changed, 566 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5830
Fusion-Task-Lineage: e9823f51-df0e-4da8-8f51-58dfefdc293d
2026-06-01 05:39:01 -07:00
gsxdsm
35ce9bd244
FN-5819: allow shared-group members to merge into group branch with auto-merge off
...
Allow shared branch-group members to continue member→group integration even when project auto-merge is disabled.
- add core helper to detect shared branch-group member integrations and export it
- update engine in-review enqueue/handoff/startup flows to permit shared-member integration while still honoring global/engine pause gates
- keep self-healing from pulling shared-member in-review tasks backward during auto-merge-off maintenance
- expand project-engine and reliability-interaction tests for shared-member autoMerge-off behavior and add FN-5819 backstop docs updates
Files changed:
AGENTS.md | 2 +
docs/architecture.md | 3 +-
packages/core/src/__tests__/task-merge.test.ts | 37 +++++++++
packages/core/src/index.ts | 1 +
packages/core/src/task-merge.ts | 13 +++
packages/engine/src/__tests__/project-engine.test.ts | 64 ++++++++++++++
packages/engine/src/__tests__/reliability-interactions/branch-group-merge-routing.test.ts | 48 +++++++++++
packages/engine/src/__tests__/reliability-interactions/shared-group-member-integration.test.ts | 97 ++++++++++++++++++++++
packages/engine/src/project-engine.ts | 35 ++++----
packages/engine/src/self-healing.ts | 3 +-
10 files changed, 284 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-5819
Fusion-Task-Lineage: b5eeced7-7c47-4573-9ab4-ca577bec65e1
2026-06-01 02:42:36 -07:00
gsxdsm
5930c18b4d
FN-5795: send ntfy notification when agents create tasks
...
Add agent task-created ntfy notifications with configurable settings and coverage.
- add notification plumbing to emit a dedicated event when an agent creates a task
- extend ntfy provider/settings typing and dashboard settings coverage for the new event toggle
- add regression tests for notification service, notifier integration, and ntfy provider behavior
- add a changeset and documentation updates describing the new notification capability
Files changed:
.changeset/fn-5795-task-created-notification.md | 9 +++
docs/architecture.md | 4 +-
docs/settings-reference.md | 4 +-
docs/storage.md | 2 +-
packages/core/src/types.ts | 4 +-
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../components/__tests__/SettingsModal.test.tsx | 27 +++++++-
.../src/__tests__/notification-service.test.ts | 71 ++++++++++++++++++++++
packages/engine/src/__tests__/notifier.test.ts | 5 ++
.../engine/src/__tests__/ntfy-provider.test.ts | 32 ++++++++++
.../src/notification/notification-service.ts | 53 +++++++++++++++-
packages/engine/src/notification/ntfy-provider.ts | 21 +++++--
12 files changed, 220 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-5795
Fusion-Task-Lineage: 4cfa3b46-8e9c-451e-ab2d-b7d5c9bf5968
2026-05-31 19:59:32 -07:00
gsxdsm
7b70e7fb72
FN-5788: add group promotion gate to merge coordinator
...
Add lifecycle wiring so branch-group promotion respects group-level auto-merge gating.
- Extend merge coordinator/merger flow to apply group promotion precedence and pause/override reasons.
- Hook the group-promotion coordinator into engine lifecycle startup.
- Add reliability and coordinator coverage for branch group promotion gating behavior.
- Add release changeset and update architecture/AGENTS backstop notes.
Files changed:
.changeset/fn-5788-branch-group-promotion-gate.md | 5 +
AGENTS.md | 1 +
docs/architecture.md | 3 +-
.../src/__tests__/group-merge-coordinator.test.ts | 95 ++++++++++++++-
.../branch-group-promotion-gate.test.ts | 129 +++++++++++++++++++++
packages/engine/src/group-merge-coordinator.ts | 46 +++++---
packages/engine/src/index.ts | 2 +
packages/engine/src/merger.ts | 34 +++---
8 files changed, 283 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-5788
Fusion-Task-Lineage: 5930f662-908e-4cf0-a0d4-68b2f4360074
2026-05-31 15:59:59 -07:00