Commit Graph

7911 Commits

Author SHA1 Message Date
Fusion (runfusion.ai)
d9a6ffd2f5 feat(FN-5098): complete Step 2 — lazy register secrets view
Fusion-Task-Id: FN-5098
Fusion-Task-Lineage: 67ff982f-f0fa-453a-9b73-32ddc3ae5b3a
2026-05-19 01:59:21 -07:00
Fusion (runfusion.ai)
033b3e7148 feat(FN-5098): complete Step 1 — add secrets view-state routing
Fusion-Task-Id: FN-5098
Fusion-Task-Lineage: 67ff982f-f0fa-453a-9b73-32ddc3ae5b3a
2026-05-19 01:59:20 -07:00
Fusion (runfusion.ai)
0b17d7915c fix(FN-5103): complete Step 8 — resolve verification regressions
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
c51d0d9d9b feat(FN-5103): complete Step 7 — update docs and changeset
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
71928aeda3 feat(FN-5103): surface landed-files attribution flags in task changes UI
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
0abb1fad2c feat(FN-5103): expose rebase landed-files capture helper for reliability tests
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
3e7073ab84 test(FN-5103): address review gaps in landed-files coverage
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
03212ce00b test(FN-5103): complete Step 6 — add landed-files attribution reliability coverage
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
20ab2f0172 feat(FN-5103): complete Step 3 — skip reconcile for restricted landed-files capture
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:55 -07:00
Fusion (runfusion.ai)
d6be8fc771 feat(FN-5103): complete Step 2 — restrict rebase landed-files capture
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:54 -07:00
Fusion (runfusion.ai)
3ac14a3605 fix(FN-5103): expose own commit shas in attribution helper
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:54 -07:00
Fusion (runfusion.ai)
4420abe6af feat(FN-5103): complete Step 1 — add merge details attribution flags
Fusion-Task-Id: FN-5103
Fusion-Task-Lineage: e4e4d9ba-4884-4feb-b18b-a30e799c3fb1
2026-05-19 01:24:54 -07:00
Fusion (runfusion.ai)
045616b39f fix(FN-5113): repair dashboard route self-healing resolver reference
Fusion-Task-Id: FN-5113
Fusion-Task-Lineage: f29c2128-79a3-4958-8039-3765b84757f5
2026-05-19 01:17:46 -07:00
Fusion (runfusion.ai)
91cb316b37 test(FN-5113): complete Step 3 — align rebind banner assertions
Fusion-Task-Id: FN-5113
Fusion-Task-Lineage: f29c2128-79a3-4958-8039-3765b84757f5
2026-05-19 01:17:46 -07:00
Fusion (runfusion.ai)
034a361d94 fix(FN-5113): complete Step 2 — narrow rebind banner trigger and copy
Fusion-Task-Id: FN-5113
Fusion-Task-Lineage: f29c2128-79a3-4958-8039-3765b84757f5
2026-05-19 01:17:46 -07:00
Fusion (runfusion.ai)
6608f2154e docs(FN-5104): complete Step 7 — document reattach contract and changeset
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:30 -07:00
Fusion (runfusion.ai)
3fdd7775a1 fix(FN-5104): stabilize quickchat selectSession refresh and lint
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:30 -07:00
Fusion (runfusion.ai)
0e30f85de7 test(FN-5104): complete Step 5 — add reattach regression coverage
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:30 -07:00
Fusion (runfusion.ai)
8540a0186d fix(FN-5104): complete Step 4 — mirror reattach recovery in useQuickChat
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:30 -07:00
Fusion (runfusion.ai)
1fa22ac1b4 fix(FN-5104): complete Step 3 — refresh stale useChat session before reattach
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:30 -07:00
Fusion (runfusion.ai)
3baef3a266 fix(FN-5104): complete Step 2 — add useChat auto-reattach dedupe
Fusion-Task-Id: FN-5104
Fusion-Task-Lineage: e92a26cb-a930-442a-98be-6ace9f376e73
2026-05-19 01:09:29 -07:00
Fusion (runfusion.ai)
c34229f499 feat(FN-5112): complete Step 5 — documentation and delivery
Fusion-Task-Id: FN-5112
Fusion-Task-Lineage: 692fba2a-5856-4256-8144-d87bda56e1aa
2026-05-19 01:02:39 -07:00
Fusion (runfusion.ai)
654e59199b feat(FN-5112): complete Step 3 — reviewer LLM defense-in-depth
Fusion-Task-Id: FN-5112
Fusion-Task-Lineage: 692fba2a-5856-4256-8144-d87bda56e1aa
2026-05-19 01:02:38 -07:00
Fusion (runfusion.ai)
574d661134 feat(FN-5112): complete Step 2 — gate fn_review_spec on dangling-ref detector
Fusion-Task-Id: FN-5112
Fusion-Task-Lineage: 692fba2a-5856-4256-8144-d87bda56e1aa
2026-05-19 01:02:38 -07:00
Fusion (runfusion.ai)
b5e257d6e3 feat(FN-5112): complete Step 1 — dangling task-doc reference detector
Fusion-Task-Id: FN-5112
Fusion-Task-Lineage: 692fba2a-5856-4256-8144-d87bda56e1aa
2026-05-19 01:02:38 -07:00
Fusion (runfusion.ai)
febd1f872c fix(FN-5108): restore recover-branch-binding route and lock failure boundary
Fusion-Task-Id: FN-5108
Fusion-Task-Lineage: 1b273c01-9f58-40ed-82f3-5706802cc2fc
2026-05-19 00:46:35 -07:00
Fusion (runfusion.ai)
c2596f882e test(FN-5108): complete Step 2 — add default model icon coverage
Fusion-Task-Id: FN-5108
Fusion-Task-Lineage: 1b273c01-9f58-40ed-82f3-5706802cc2fc
2026-05-19 00:46:35 -07:00
Fusion (runfusion.ai)
d5d978c59f feat(FN-5108): complete Step 1 — resolve effective session model provider
Fusion-Task-Id: FN-5108
Fusion-Task-Lineage: 1b273c01-9f58-40ed-82f3-5706802cc2fc
2026-05-19 00:46:35 -07:00
gsxdsm
06d1911aec fix(lint): prefix unused resolveSelfHealingManager destructuring with underscore
Resolve @typescript-eslint/no-unused-vars error in register-task-workflow-routes.ts.
The import is kept in deps for potential future use but prefixed to satisfy lint.
2026-05-19 00:33:14 -07:00
Fusion (runfusion.ai)
cc6bd1e724 feat(FN-5102): complete Step 4 and 5 — verify and document
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
a43c0cfb18 test(FN-5102): expand agent-surface github tracking regressions
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
000fa3d6bb feat(FN-5102): complete Step 2 — prefill agent github tracking
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
13977f4682 test(FN-5102): harden repro mock to keep hook deterministic
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
780cf6b3d8 test(FN-5102): add failing agent tracking flag repro
Fusion-Task-Id: FN-5102
Fusion-Task-Lineage: 13be2941-176e-4a6e-b6fc-2bb644f7444a
2026-05-18 23:50:00 -07:00
Fusion (runfusion.ai)
093ae0bac8 feat(FN-5096): fix dashboard typecheck and stabilize verification gates
- fix(FN-5096): restore dashboard typecheck and stabilize verification gates

Fusion-Task-Id: FN-5096
2026-05-18 23:14:48 -07:00
Fusion (runfusion.ai)
76790c424f feat(FN-5053): fix verification gate registration for workspace test stabil
Fix FN-5053 restores workspace test stability for the verification gate by adjusting the duplicate guard and task workflow route registration, with updated coverage in the branch-conflicts and diff-volume-gate test suites.

Fusion-Task-Id: FN-5053

Fusion-Task-Lineage: cc8a561a-fd56-4275-b06c-0966c80c2868
2026-05-18 23:14:27 -07:00
Fusion (runfusion.ai)
070ad28151 feat(FN-5060): complete Step 7 — testing and verification
Fusion-Task-Id: FN-5060
Fusion-Task-Lineage: 35434cc4-583f-4e50-9ca3-c12546d220c1
2026-05-18 22:47:51 -07:00
Fusion (runfusion.ai)
d5438ebc11 feat(FN-5060): complete Step 2 — stabilize shared dedup guard exports
Fusion-Task-Id: FN-5060
Fusion-Task-Lineage: 35434cc4-583f-4e50-9ca3-c12546d220c1
2026-05-18 22:47:51 -07:00
Fusion (runfusion.ai)
65f9995b26 test(FN-5090): align attribution test shape with commit metadata
Fusion-Task-Id: FN-5090
Fusion-Task-Lineage: 9d74fe7a-d54c-460f-9db9-1c90475ec832
2026-05-18 22:44:49 -07:00
Fusion (runfusion.ai)
45fa52d735 feat(FN-5090): complete Step 1 — add shared commit attribution helper
Fusion-Task-Id: FN-5090
Fusion-Task-Lineage: 9d74fe7a-d54c-460f-9db9-1c90475ec832
2026-05-18 22:44:41 -07:00
Fusion (runfusion.ai)
d8a04ff5a7 feat(FN-5099): complete Step 4 — pass verification gates
Fusion-Task-Id: FN-5099
Fusion-Task-Lineage: 26353f25-da61-4b61-8fd2-69915a984cc4
2026-05-18 22:34:21 -07:00
Fusion (runfusion.ai)
39fee83654 test(FN-5099): add failing footer-alignment case for retry badge
Fusion-Task-Id: FN-5099
Fusion-Task-Lineage: 26353f25-da61-4b61-8fd2-69915a984cc4
2026-05-18 22:34:21 -07:00
Fusion (runfusion.ai)
0820b64d1a fix(FN-5095): restore workspace verification gates
Fusion-Task-Id: FN-5095
Fusion-Task-Lineage: dff589e4-5142-429d-8ca2-53352eaeaac6
2026-05-18 22:02:54 -07:00
Fusion (runfusion.ai)
aff9bdcb3c feat(FN-5095): complete Step 3 — update qualityAppTests basenames
Fusion-Task-Id: FN-5095
Fusion-Task-Lineage: dff589e4-5142-429d-8ca2-53352eaeaac6
2026-05-18 22:02:53 -07:00
Fusion (runfusion.ai)
12adde0ab9 feat(FN-5052): complete Step 8 — documentation and delivery
Fusion-Task-Id: FN-5052
Fusion-Task-Lineage: 607cd9e6-e4d0-4572-b183-8253d127209f
2026-05-18 21:55:51 -07:00
Fusion (runfusion.ai)
a0b75579b8 feat(FN-5094): merge fusion/fn-5094
Commits merged:
- merge fusion/fn-5094

Files changed:
.../self-healing-stale-merger-status.test.ts       | 200 +++++++++++++++++++++
 packages/engine/src/branch-conflicts.ts            |   6 +-
 packages/engine/src/run-audit.ts                   |   2 +
 packages/engine/src/self-healing.ts                |  67 ++++++-
 4 files changed, 271 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-5094

Fusion-Task-Lineage: c6c9710c-51fe-40e9-bfad-bfb6d589c7f4
2026-05-18 21:54:39 -07:00
Fusion (runfusion.ai)
0c35e6db6f fix(FN-5094): resolve workspace typecheck regressions before delivery
Fusion-Task-Id: FN-5094
Fusion-Task-Lineage: c6c9710c-51fe-40e9-bfad-bfb6d589c7f4
2026-05-18 21:44:36 -07:00
Fusion (runfusion.ai)
39db6157e4 test(FN-5094): stabilize dashboard API tests for current route exports
Fusion-Task-Id: FN-5094
Fusion-Task-Lineage: c6c9710c-51fe-40e9-bfad-bfb6d589c7f4
2026-05-18 21:44:35 -07:00
Fusion (runfusion.ai)
12d718166c test(FN-5094): complete Step 4 — add inline attribution coverage
Fusion-Task-Id: FN-5094
Fusion-Task-Lineage: c6c9710c-51fe-40e9-bfad-bfb6d589c7f4
2026-05-18 21:44:35 -07:00
gsxdsm
a25ef82e13 fix(FN-5092): clear transient "merging" status on self-healing auto-finalize paths
The merger maintains a single mergeActive slot per project; while a task
holds it, no other in-review task can be picked up. When the merger
sets task.status="merging" but the task is then completed via a
self-healing recovery path instead of the merger's own completeTask(),
the status field is never cleared. The mergeActive slot stays leaked
indefinitely, and the entire merger queue stalls.

Concrete failure: FN-5052 landed via FN-4499 auto-recover-branch-misbound
on 2026-05-18 15:48 with mergeConfirmed=true. Status field stayed at
"merging". 12.5 hours later, FN-5083, FN-5060, FN-5053, FN-5092, and
every other in-review task were waiting on the merger queue with no
merger activity at all.

Two self-healing → done paths were missing the status clear:

- recoverBranchMisboundInReviewTasks() (self-healing.ts ~5031):
  branch-tip-misbound recovery moves an in-review task to done after
  detecting its work landed on main via a different commit. The merger's
  completeTask() correctly clears status before moveTask(); this path
  did not.

- proven-no-op finalize in recoverNoOpReviewTasks() (self-healing.ts
  ~3460): for tasks proven already on main (FN-4500 classifier), the
  updateTask({ mergeDetails, modifiedFiles }) patch did not include
  status: null. Same leak class.

Both now follow the pattern from merger.ts completeTask() and
project-engine.ts auto-merge already-confirmed:
  updateTask({ status: null, error: null, paused: false }) before
  moveTask("done").

FN-5052 task.json patched to clear the existing stale status as part
of this commit so the running engine releases its mergeActive slot
on next sweep.

Fusion-Task-Id: FN-5092
2026-05-18 21:24:02 -07:00