From 48b00acc7bc5f542bb3e60c092143c3d84621a79 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Fri, 31 Jul 2026 17:50:33 -0700 Subject: [PATCH] =?UTF-8?q?fix(core):=20legacy=20adoption=20preserves=20re?= =?UTF-8?q?viewing/landing=20=E2=80=94=20restart=20no=20longer=20pauses=20?= =?UTF-8?q?a=20live=20AI=20merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .changeset/legacy-adoption-live-merge-statuses.md | 7 +++++++ packages/core/src/__tests__/legacy-adoption.test.ts | 5 ++++- packages/core/src/legacy-adoption.ts | 12 ++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 .changeset/legacy-adoption-live-merge-statuses.md diff --git a/.changeset/legacy-adoption-live-merge-statuses.md b/.changeset/legacy-adoption-live-merge-statuses.md new file mode 100644 index 0000000000..652da18413 --- /dev/null +++ b/.changeset/legacy-adoption-live-merge-statuses.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: A restart during an AI merge no longer auto-pauses the task — reviewing/landing are recognized as live statuses. +category: fix +dev: The KTD-8 legacy-adoption table preserved merging/-pr/-fix but missed the family's other two live members, so startup adoption parked a mid-landing task paused ("legacy-adoption-unmappable: landing"). Both now preserve; self-healing's stale-merge sweeps remain the recovery owner. diff --git a/packages/core/src/__tests__/legacy-adoption.test.ts b/packages/core/src/__tests__/legacy-adoption.test.ts index 2ca6542ec8..53784cb141 100644 --- a/packages/core/src/__tests__/legacy-adoption.test.ts +++ b/packages/core/src/__tests__/legacy-adoption.test.ts @@ -135,7 +135,10 @@ describe("resolveLegacyStatusAdoption — every legacy (status) resumes owned", its own crash-recovery owner; adoption must never touch them. */ it("live-writer statuses are preserved — planning/queued/merge pipeline/stuck-killed (FN-8504)", () => { - for (const s of ["planning", "queued", "merging", "merging-pr", "merging-fix", "stuck-killed", "needs-replan"]) { + for (const s of ["planning", "queued", "merging", "merging-pr", "merging-fix", + // FNXC:LegacyAdoption 2026-08-01-00:55: reviewing/landing are the same live merge family — + // missing them parked a healthy landing task paused at restart (FN-8635). + "reviewing", "landing", "stuck-killed", "needs-replan"]) { expect(resolveLegacyStatusAdoption(s)?.kind, s).toBe("preserve"); } }); diff --git a/packages/core/src/legacy-adoption.ts b/packages/core/src/legacy-adoption.ts index 73220884b5..6b096bdba0 100644 --- a/packages/core/src/legacy-adoption.ts +++ b/packages/core/src/legacy-adoption.ts @@ -94,6 +94,18 @@ export const LEGACY_STATUS_ADOPTION: Readonly