Restore the self-healing DB corruption test to the default engine suite.
- remove the engine vitest exclude for self-healing-db-corruption.test.ts
- clear the quarantine ledger entry for the restored test
Files changed:
packages/engine/vitest.config.ts | 1 -
scripts/lib/test-quarantine.json | 8 +-------
2 files changed, 1 insertion(+), 8 deletions(-)
Fusion-Task-Id: FN-6198
Fusion-Task-Lineage: 2466b040-956d-4138-89d5-137d1721081c
Stop the self-healing DB corruption test from leaking into unrelated tmpdir state while quarantining the known flake.
- mock node:os tmpdir usage so the test runs inside a per-test sandbox and cleans it up after each case
- add the flaky self-healing DB corruption test to the engine default exclude list
- record the quarantine entry and failure context in scripts/lib/test-quarantine.json
Files changed:
.../__tests__/self-healing-db-corruption.test.ts | 22 ++++++++++++++++++++++
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 8 +++++++-
3 files changed, 30 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6195
Fusion-Task-Lineage: 60f7f6ca-d14d-42b4-b47e-0644a25e64ae
Keep AI merge commit finalization running when the task disappears during settings resolution.
- fall back to a synthetic task stub before merging effective settings in runAiAgentForCommit
- add an engine regression test covering deleted-task settings degradation
- add a patch changeset for the published CLI package
Files changed:
.changeset/fn-6193-merger-deleted-task.md | 5 +++
.../src/__tests__/merger-settings-degrade.test.ts | 43 ++++++++++++++++++++++
packages/engine/src/merger.ts | 3 +-
3 files changed, 50 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6193
Fusion-Task-Lineage: 1d63d24e-1321-450c-95c9-ffc058fd8387
Prevent rebuilt dashboard tabs from reusing stale cached assets after a deploy.
- revalidate service-worker asset requests against the network before falling back to cache and bump the cache version
- suppress repeated version-change reloads for the same remote build and cover the new behavior with dashboard tests
- update engine heartbeat test expectations for summarized task creation metadata and add the published package changeset
Files changed:
.changeset/fn-blank-page-service-worker-assets.md | 3 ++
packages/dashboard/app/__tests__/pwa.test.ts | 11 ++++++
packages/dashboard/app/__tests__/versionCheck.test.ts | 28 ++++++++++++++
packages/dashboard/app/public/sw.js | 37 +++++++++++++++++-
packages/dashboard/app/versionCheck.ts | 45 ++++++++++++++++++++++
packages/engine/src/__tests__/heartbeat-executor.test.ts | 3 +-
packages/engine/src/__tests__/heartbeat-session-prompt.test.ts | 7 +++-
7 files changed, 131 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6180
Fusion-Task-Lineage: 4f07e5f0-56c7-4241-8719-f576dfd8613e
Update the skill diagnostics test to assert against the structured logger surface that now emits the diagnostics output.
- spy on [1mpiLog.log[22m instead of [1mpiLog.warn[22m in the structured logger diagnostics test
- keep the existing [skills] and [executor] assertions while matching the current logging path
Files changed:
packages/engine/src/__tests__/pi-create-fn-agent.test.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6172
Fusion-Task-Lineage: e52023f7-6c18-435d-b2c6-bd7f7024b75f
Treat already-finalized or paused workflow-graph exits as benign instead of failure-worthy.
- log info-level benign messages when workflow graph runs end after a task is paused or has already advanced out of in-progress
- keep true in-progress graph failures on the existing failed-and-handoff path with failure logging
- add executor recovery coverage for todo, in-review, done, paused, and genuine failure cases
- add a patch changeset for the published CLI package
Files changed:
.changeset/fn-6141-benign-graph-exit.md | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 137 ++++++++++++++++++++-
packages/engine/src/executor.ts | 23 ++--
3 files changed, 150 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6141
Fusion-Task-Lineage: 8d29159a-8d7a-4e84-b05a-fe83f6ccbb78
Fix the branch authority helper and caller so the squash merge stays lint-clean.
- drop the unused `baseSha` parameter from `isBranchAuthoritativeForTask`
- update the merger authority probe to call the helper with the remaining arguments
Files changed:
packages/engine/src/branch-conflicts.ts | 1 -
packages/engine/src/merger.ts | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
Fusion-Task-Id: FN-6132
Fusion-Task-Lineage: c8d8352d-67f7-498b-8b6d-254375d42417
Treat foreign task-attributed commits in branch ranges as informational instead of blocking worktree acquisition or branch authority checks.
Fusion-Task-Id: FN-6131
Ensure agent-created untitled tasks still request AI-generated titles even when project auto-summarization is disabled.
- force summarize=true for agent-created tasks that do not provide an explicit title
- add engine tests covering untitled, titled, and title-generation behavior with autoSummarizeTitles disabled
- document the agent-task summarization behavior in settings docs
- add a patch changeset for the published CLI package
Files changed:
.changeset/agent-task-title-summaries.md | 5 ++
docs/settings-reference.md | 2 +-
packages/engine/src/__tests__/agent-tools.test.ts | 63 +++++++++++++++++++++++
packages/engine/src/agent-tools.ts | 1 +
4 files changed, 70 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6107
Fusion-Task-Lineage: d0c25981-a5cb-48ca-b835-9267817b4edd
Suppress legacy stalledReview hydration for tasks already owned by the merge queue and avoid repeated mergeable-review re-enqueue churn for queued tasks.
Fusion-Task-Id: FN-6088
Treat persisted merge queue ownership as an active merge-lane owner when hydrating in-review stall state and when self-healing scans for ghost, stalled, or completion-handoff-limbo tasks.
Also clear false completion-handoff exhaustion for tasks that are still owned by the merge queue so previously poisoned review tasks can continue merging.
Fusion-Task-Id: FN-6086
Workflow-column hold releases now participate in active file-scope leases before moving tasks into in-progress, preserving overlapBlockedBy card badges and scheduler blocking.
Fusion-Task-Id: FN-6082
Workflow-column hold releases now reserve against the active worktree count before moving tasks into in-progress, preventing restart bursts from exceeding maxWorktrees.
Fusion-Task-Id: FN-6084
Treat previously recorded unlinked-mission advisories as authoritative across insight states.
- remove the generated-only insight filter when checking for an existing unlinked mission advisory
- suppress duplicate advisories even when the existing insight is dismissed, archived, or confirmed
- expand reporter coverage to assert the broader duplicate-detection behavior and insight query shape
Files changed:
.../unlinked-missions-advisory-reporter.test.ts | 49 +++++++++++++---------
.../src/unlinked-missions-advisory-reporter.ts | 1 -
2 files changed, 29 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-6050
Fusion-Task-Lineage: 5b9274f7-baf6-40c1-8a88-2fcc86c7ef14
Ensure limbo recovery attempts count only when auto-merge requeue is actually accepted.
- require completion-handoff recovery to enqueue merge work and confirm the requeue callback accepted the handoff before incrementing recovery counters
- return a boolean from the in-process runtime auto-merge requeue hook so self-healing can distinguish accepted versus rejected handoffs
- add coverage for rejected requeues, accepted retries, exhaustion behavior, and stalled in-review tasks that should not be deadlocked by rejected limbo recoveries
Files changed:
.../completion-handoff-limbo.test.ts | 126 ++++++++++++++++-----
.../in-review-stall-deadlock-disposition.test.ts | 43 +++++++
packages/engine/src/runtimes/in-process-runtime.ts | 2 +-
packages/engine/src/self-healing.ts | 42 ++++---
4 files changed, 170 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6070
Fusion-Task-Lineage: 9634dc24-6045-4ee2-baec-d6e1d71a46b1
Adjust the reliability test to match the queued advisory retry path.
- update the plan-review UNAVAILABLE assertion to expect the task to requeue instead of fail
- assert the advisory path clears the error while incrementing the retry counter
- keep coverage that pending review should not record the executor review-pending failure
Files changed:
packages/engine/src/__tests__/reliability-interactions/executor-pending-review-skip-retry.test.ts | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6065
Fusion-Task-Lineage: 1ef13146-f19b-4735-9ec5-3f00eff6e575
Keep scheduler capacity checks aligned with fresh task state during workflow dispatch.
- bypass the startup slim-list memo when scheduling and after workflow hold release sweeps
- clear the startup slim-list memo when task.json writes move tasks between columns
- treat capacity-exhausted moveTask rejections as queued dispatches, log the reason, and cover the behavior with scheduler/store tests
- add a patch changeset for the published CLI package
Files changed:
.changeset/workflow-capacity-scheduler.md | 5 +++
packages/core/src/__tests__/store-movement.test.ts | 15 ++++++++
packages/core/src/store.ts | 1 +
packages/engine/src/__tests__/scheduler.test.ts | 40 ++++++++++++++++++++--
packages/engine/src/scheduler.ts | 25 ++++++++++----
5 files changed, 77 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6063
Fusion-Task-Lineage: 80ddc0e7-f78d-483c-886a-27c4c07bde7a