Commit Graph

86 Commits

Author SHA1 Message Date
Fusion (runfusion.ai)
22c3acf2e0 test(FN-5052): complete Step 6 — cover self-healing autoMerge gating
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 08:44:20 -07:00
Fusion (runfusion.ai)
5e42c706f6 test(FN-4988): complete Step 4 — lock dedupe invariant
Fusion-Task-Id: FN-4988
Fusion-Task-Lineage: d7f60c48-4cd0-4041-9bc6-10c55b87cd5f
2026-05-18 04:55:37 -07:00
Fusion (runfusion.ai)
56eb33f7a1 feat(FN-4988): complete Step 2 — reuse centralized session-start classifier
Fusion-Task-Id: FN-4988
Fusion-Task-Lineage: d7f60c48-4cd0-4041-9bc6-10c55b87cd5f
2026-05-18 04:55:37 -07:00
Fusion (runfusion.ai)
8ecba01c76 fix(FN-4890): stabilize board-health integration and blocker release coverage
Fusion-Task-Id: FN-4890
Fusion-Task-Lineage: d1ae6585-7df0-481f-83c3-c7cdd45daf4f
2026-05-17 19:36:14 -07:00
Fusion (runfusion.ai)
1dffcb492e fix(FN-4917): harden session-start recovery assertions and cap coverage
Fusion-Task-Id: FN-4917
Fusion-Task-Lineage: 1422a545-f4b5-4e1f-a347-8be2a4202f45
2026-05-17 14:10:43 -07:00
Fusion (runfusion.ai)
4e9bfd6062 test(FN-4885): complete Step 4 — expand self-healing stall disposition coverage
Fusion-Task-Id: FN-4885
Fusion-Task-Lineage: 31110eed-5ca3-4d67-8f11-581185056dc6
2026-05-17 09:31:06 -07:00
Fusion (runfusion.ai)
6fa9aef630 feat(FN-4823): complete lease recovery central-claim reconciliation
Fusion-Task-Id: FN-4823
Fusion-Task-Lineage: 0034c04f-df82-4a1b-9f25-b93643a2c157
2026-05-16 21:26:04 -07:00
Fusion
86237c9a50 fix(FN-4811): unblock @fusion/engine typecheck so verification bootstrap can run
Symptom found while investigating 'tasks are still struggling': every
in-review task hitting pre-merge deterministic verification failed with

  [verification:bootstrap] bootstrap preamble failed (exit 2):
  [test-bootstrap] FAILED: workspace dist artifact rebuild did not complete.
  [test-bootstrap] command: pnpm --filter @fusion/engine build

Because pnpm --filter @fusion/engine build hit 17 TS errors from a prior
autonomous-agent refactor introducing a RemovalReason enum-like object
and two new audit event types. The bootstrap preamble is run by the
merger before every direct-merge verification, so a broken engine
typecheck blocked EVERY task from merging.

Fixes:

1. Duplicate RemovalReason re-export in worktree-pool.ts

   Both  and
    were present for the same identifier,
   producing TS2300 'Duplicate identifier'. RemovalReason is a const
   object with derived type (typeof-keyof pattern), so a single value
   export covers both kinds; the type-only re-export was redundant.

2. GitMutationType union missing the FN-4811 audit event types

   merger.ts and worktree-backend.ts were emitting
   'worktree:removal-refused-active-session' and
   'worktree:removal-forced-over-active-session' audit events, but the
   union in run-audit.ts didn't include them. Added both.

3. self-healing.test.ts vi.mock had wrong RemovalReason keys

   The mock only exposed 5 keys (SelfHealing*) but production code
   references HardCancel, Executor*, Merger*, PoolPrune, etc. Calls
   like removeWorktree({ reason: RemovalReason.MergerPostMerge }) were
   getting reason=undefined, producing confusing 'cannot remove
   worktree: [vitest] No RemovalReason export is defined on mock'
   error messages. Updated the mock to mirror the production const
   exactly.

4. worktree-backend.test.ts removeWorktree calls missing required reason

   The new contract makes reason: RemovalReason a required field on
   removeWorktree's input. Five existing test cases were missing it;
   added reason: RemovalReason.MergerCleanup to each.

5. integrity-warning-persisted-dedup.test.ts Settings cast

   The test's makeStore helper cast a partial settings object to
   Settings; TS rejected the narrowed type. Cast through unknown.

Verification:

  - pnpm --filter @fusion/engine build: clean
  - pnpm lint: clean
  - pnpm build (full workspace): clean
  - pnpm --filter @fusion/engine test: 5045 pass, 1 pre-existing
    aiMergeTask real-git timeout flake, 1 skipped

With this fix, the verification bootstrap can complete and the merger
can finalize tasks again.

Fusion-Task-Id: FN-4811
2026-05-16 17:23:15 -07:00
Fusion (runfusion.ai)
e2de8fed6d feat(FN-4742): complete Step 4 — migrate pool and self-healing removals
Fusion-Task-Id: FN-4742
Fusion-Task-Lineage: 59bca56e-c9d9-4066-9f5a-6d8ee252a100
2026-05-16 10:08:02 -07:00
Fusion (runfusion.ai)
b4254c2886 test(FN-4718): complete Step 3 — cover days-based auto-archive behavior
Fusion-Task-Id: FN-4718
Fusion-Task-Lineage: 4553c39c-c174-4993-a4ac-2c8b7d86bda2
2026-05-16 04:44:36 -07:00
Fusion (runfusion.ai)
99b0cf63c1 feat(FN-4628): complete Step 2 — defer layout cleanup to worktrunk backend
Fusion-Task-Id: FN-4628
Fusion-Task-Lineage: ebd36565-946b-4b4f-b8df-4d99d7a5f074
2026-05-15 23:50:12 -07:00
Fusion (runfusion.ai)
b745d8049c feat(FN-4628): complete Step 1 — backend-aware prune gate
Fusion-Task-Id: FN-4628
Fusion-Task-Lineage: ebd36565-946b-4b4f-b8df-4d99d7a5f074
2026-05-15 23:50:11 -07:00
Fusion (runfusion.ai)
9f970ff22c feat(FN-4688): complete Step 2 — use range stats in landed commit lookup
Fusion-Task-Id: FN-4688
Fusion-Task-Lineage: 49abde1d-3480-4127-beb0-5dadce30b9e1
2026-05-15 16:50:00 -07:00
Fusion
6f7ca7921f feat(FN-4656): complete Step 3 — gate unproven finalize and auto-retry
Fusion-Task-Id: FN-4656
Fusion-Task-Lineage: 81e8bd91-bc02-4bb7-a590-0e6e84e3535f
2026-05-15 14:06:28 -07:00
Fusion
b6f2e9b4d1 feat(FN-4646): complete Step 3 — reconcile landed files in self-healing
Fusion-Task-Id: FN-4646
Fusion-Task-Lineage: f921098e-3407-40fa-984d-720e0c3248c7
2026-05-15 13:22:19 -07:00
Fusion
ebd0be13d9 feat(FN-4651): complete Step 3 — recover no-progress worktree failures
Fusion-Task-Id: FN-4651
Fusion-Task-Lineage: 14d15555-468d-4690-8efd-a09b31b5d407
2026-05-15 12:51:41 -07:00
Fusion
7bca991375 test(FN-4648): address regression review gaps
Fusion-Task-Id: FN-4648
Fusion-Task-Lineage: 82289e69-7e72-40e4-acaf-b98ad82ad354
2026-05-15 11:41:35 -07:00
Fusion
d53110cd04 test(FN-4648): complete Step 4 — regression coverage updates
Fusion-Task-Id: FN-4648
Fusion-Task-Lineage: 82289e69-7e72-40e4-acaf-b98ad82ad354
2026-05-15 11:41:35 -07:00
Fusion
bae1cfb54b feat(FN-4563): complete Step 2 — broaden self-healing rationale
Fusion-Task-Id: FN-4563
Fusion-Task-Lineage: a0caaa7b-8e87-4ae1-8c51-b46e4ac61d59
2026-05-14 23:24:18 -07:00
Fusion
2483b93727 test(FN-4538): cover reconcile and churn overlap scenarios
Fusion-Task-Id: FN-4538
Fusion-Task-Lineage: 332b4c78-b67f-45d0-9181-0bb539b662c1
2026-05-14 22:24:50 -07:00
Fusion
37aad43f15 test(FN-4538): add overlap-blocked regression coverage
Fusion-Task-Id: FN-4538
Fusion-Task-Lineage: 332b4c78-b67f-45d0-9181-0bb539b662c1
2026-05-14 22:24:50 -07:00
Fusion
cdb25d0359 feat(FN-4538): complete Step 3 — preserve overlap block in self-healing
Fusion-Task-Id: FN-4538
Fusion-Task-Lineage: 332b4c78-b67f-45d0-9181-0bb539b662c1
2026-05-14 22:24:50 -07:00
Fusion
84f68497a1 test(FN-4546): complete Step 3 — add stale-active-branch reclaim regression tests
Fusion-Task-Id: FN-4546
Fusion-Task-Lineage: f10f8fcb-b26d-4ee8-b83e-b741de01983b
2026-05-14 22:16:44 -07:00
Fusion
4fbc3be27d feat(FN-4452): complete Step 3 — surface stale paused reviews in self-healing
Fusion-Task-Id: FN-4452
Fusion-Task-Lineage: 7d8b1c13-883b-4815-94ee-fdf18ad24e5f
2026-05-14 18:35:30 -07:00
Fusion
d9f81099fb feat(FN-4518): complete Step 4 — carry rebase base through self-healing
Fusion-Task-Id: FN-4518
Fusion-Task-Lineage: 48749dec-b2c9-484b-a13e-ffacc1fa9014
2026-05-14 17:04:17 -07:00
Fusion
211fd0817e feat(FN-4523): complete Step 6 — docs, audit type, and verification fixes
Fusion-Task-Id: FN-4523
Fusion-Task-Lineage: c7a02071-f911-4c42-a174-cdcf2453fd23
2026-05-14 14:09:57 -07:00
Fusion
2d9badbc1f test(FN-4500): cover fast-path guards and align legacy reclaim assertions
Fusion-Task-Id: FN-4500
Fusion-Task-Lineage: 81d33759-70f6-4958-abf8-3db20f918c01
2026-05-14 12:44:10 -07:00
Fusion
3f435bed9d fix(FN-4485): address orphan rescue review regressions
Fusion-Task-Id: FN-4485
Fusion-Task-Lineage: 034088dc-ebc4-4e12-8314-39419d41b23f
2026-05-14 11:23:44 -07:00
Fusion
b72bd0575d feat(FN-4485): complete Step 4-5 orphan rescue and audit paths
Fusion-Task-Id: FN-4485
Fusion-Task-Lineage: 034088dc-ebc4-4e12-8314-39419d41b23f
2026-05-14 11:23:44 -07:00
Fusion
b76eb7373e feat(FN-4485): extend reclaim sweep to paused review conflicts
Fusion-Task-Id: FN-4485
Fusion-Task-Lineage: 034088dc-ebc4-4e12-8314-39419d41b23f
2026-05-14 11:23:44 -07:00
Fusion
a673718b50 feat(FN-4371): complete remaining decision-only task handling
Fusion-Task-Id: FN-4371
Fusion-Task-Lineage: 4175ba4c-b7cb-4f3a-87c5-75e51f06c0ff
2026-05-14 09:59:15 -07:00
Fusion
e5c0fbd78c test(FN-4476): add subsumed conflict and patch preservation coverage
Fusion-Task-Id: FN-4476
Fusion-Task-Lineage: 8673c1d9-f47e-4d02-89e6-646040b9be32
2026-05-14 08:49:37 -07:00
Fusion
a8e05b5757 feat(FN-4368): complete Step 3 — advisory workflow failures never block
Fusion-Task-Id: FN-4368
Fusion-Task-Lineage: ac9b12e6-2101-4b51-89a0-6422fd7850ed
2026-05-14 07:21:45 -07:00
Fusion
574a06b222 test(FN-4086): add stranded-todo recovery regression coverage
Fusion-Task-Id: FN-4086
Fusion-Task-Lineage: b2338fbc-960c-4540-9c19-216462525f0c
2026-05-14 04:54:25 -07:00
Fusion
50aa9823d5 test(FN-4410): complete Step 4 — cross-task escalation coverage
Fusion-Task-Id: FN-4410
Fusion-Task-Lineage: 306d4fe0-d024-49dd-86b4-fb98d4ceff59
2026-05-14 03:41:20 -07:00
Fusion
1008e20fe1 feat(FN-4410): complete Step 3 — self-healing reclaim guards
Fusion-Task-Id: FN-4410
Fusion-Task-Lineage: 306d4fe0-d024-49dd-86b4-fb98d4ceff59
2026-05-14 03:41:20 -07:00
gsxdsm
86f8caf14e chore(FN-4428): import dependency content from fusion/fn-4410
Squash-imported the working tree of fusion/fn-4410 as a single commit so this branch carries the dep's content without inheriting its individual commits. If the dep is later squash-merged to main, this commit's patch-id should match the merge and rebase cleanly.

Fusion-Task-Id: FN-4428
Fusion-Task-Lineage: ea174f50-49ac-4105-b6cf-db3bab0984fd
2026-05-14 02:28:56 -07:00
Fusion
0c8e233d40 test(FN-4434): complete Step 3 — cover recovery audit emission
Fusion-Task-Id: FN-4434
Fusion-Task-Lineage: 547a5663-114c-49c8-bd0c-dddfb280c4ef
2026-05-13 22:52:53 -07:00
Fusion
ffb31a4af6 test(FN-4307): add recovery-notification integration coverage
Fusion-Task-Id: FN-4307
Fusion-Task-Lineage: 00140a5a-af93-4905-8570-32d7ecb8a874
2026-05-13 15:58:48 -07:00
Fusion
52b2c6a96e test(FN-4259): add exhaustion recovery regressions
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
f9505b67b3 feat(FN-4259): complete Step 2 — deterministic exhausted contract
Fusion-Task-Id: FN-4259
Fusion-Task-Lineage: 7a7ca17b-93ce-4319-8461-7d1462a2c0e1
2026-05-13 06:29:36 -07:00
Fusion
988420325b feat(FN-4217): complete Step 4 — surface in-review stalls in self-healing
Fusion-Task-Id: FN-4217
Fusion-Task-Lineage: f5434e90-ad0c-41c5-bee9-1244cb69622b
2026-05-13 06:29:34 -07:00
Fusion
24e964274e feat(FN-4241): close stale merging fanout recovery gap in self-healing
Closes a gap in the stale merging fanout recovery path by adding recovery logic in the self-healing module, backed by unit tests covering the new behavior.

Fusion-Task-Id: FN-4241
2026-05-13 06:29:34 -07:00
Fusion
b536d92d9c fix(FN-4249): align running-agent reconciliation with taskId linkage
Fusion-Task-Id: FN-4249
Fusion-Task-Lineage: e0052fae-38e1-4d66-8240-43d26f5790bb
2026-05-13 06:29:33 -07:00
Fusion
09637bee8f feat(FN-4249): complete Step 3 — add running-agent mismatch self-healing
Fusion-Task-Id: FN-4249
Fusion-Task-Lineage: e0052fae-38e1-4d66-8240-43d26f5790bb
2026-05-13 06:29:33 -07:00
Fusion
ab66e5b60a feat(FN-4091): fix stale blocker in WorkflowResultsTab
The branch delivers a fix for stale blockers in the WorkflowResultsTab component, with the primary logic change in the component file and comprehensive test coverage added in the companion test suite.

Fusion-Task-Id: FN-4091
2026-05-12 17:24:44 -07:00
Fusion
4850fcb51f feat(FN-4084): recover tasks blocked by stalled merger self-healing
Merge starvation recovery was hardened across the engine: self-healing now detects and clears blocked-in-review tasks that starve the merger, the project engine gains defensive recovery hooks for stalled merges, and tests cover the new recovery paths.

Fusion-Task-Id: FN-4084
2026-05-12 07:47:11 -07:00
Fusion
d7093dedac feat(FN-4031): recover stale review sessions and unblock dependent tasks on
Adds defensive recovery logic for stale review sessions: the executor now guards against resuming in an invalid worktree context, the self-healing manager recovers stale session paths and unblocks dependent tasks, and the restart recovery coordinator is updated to classify these cases correctly. Inc

Fusion-Task-Id: FN-4031
2026-05-12 07:47:10 -07:00
Fusion
14e020f791 feat(FN-4019): prevent merge-confirmed finalization loops via self-healing
Added self-healing logic to prevent merge-confirmed tasks from re-entering the executor, with test coverage for both merge error recovery and self-healing behavior, plus corresponding architecture and task-management docs.

Fusion-Task-Id: FN-4019
2026-05-11 15:29:34 -07:00
Fusion
45ec544c77 test(FN-3908): add multi-dependency and queued-recovery regressions 2026-05-11 13:13:20 -07:00