gsxdsm
2c3a777bca
FN-8132: recover bare worktree branch collisions
...
Recover safe worktree creation when a dangling task branch already exists.
- Classify bare branch collisions and preserve foreign or mixed commit history.
- Reuse task-owned branches or recreate merged branches from the pinned start point.
- Audit recovery outcomes and cover native, fallback, and workspace acquisition paths.
Files changed:
.../fn-8132-worktree-branch-collision-recovery.md | 7 ++
docs/architecture.md | 1 +
.../__tests__/worktree-acquisition-backend.test.ts | 69 +++++++++++
.../worktree-acquisition-workspace.test.ts | 21 ++++
.../worktree-backend-branch-collision.test.ts | 132 +++++++++++++++++++++
packages/engine/src/branch-conflicts.ts | 121 +++++++++++++++++++
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/worktree-acquisition.ts | 3 +-
packages/engine/src/worktree-backend.ts | 94 +++++++++++++++-
9 files changed, 447 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8132
Fusion-Task-Lineage: f09d140f-4fcd-48a6-99b1-a351630f37bd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 13:48:00 -07:00
..
2026-07-14 17:02:47 -07:00
2026-07-15 13:57:15 -07:00
2026-07-14 14:05:39 -07:00
2026-07-15 18:07:37 -07:00
2026-07-14 12:41:10 -07:00
2026-07-14 18:20:31 -07:00
2026-07-14 13:36:08 -07:00
2026-07-14 08:21:19 -07:00
2026-04-25 09:09:31 -07:00
2026-07-15 21:11:40 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 20:07:25 -07:00
2026-07-13 23:16:36 -07:00
2026-07-15 08:44:11 -07:00
2026-07-15 14:01:08 -07:00
2026-07-15 00:27:59 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 14:40:38 -07:00
2026-07-14 20:27:35 -07:00
2026-07-14 21:34:45 -07:00
2026-07-15 23:45:53 -07:00
2026-07-14 09:37:20 -07:00
2026-07-14 08:15:09 -07:00
2026-07-14 08:15:57 -07:00
2026-07-15 02:16:58 -07:00
2026-07-15 22:53:49 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 00:12:22 -07:00
2026-07-14 20:47:21 -07:00
2026-07-15 20:24:49 -07:00
2026-07-15 19:07:51 -07:00
2026-07-15 13:07:59 -07:00
2026-07-13 13:10:53 -07:00
2026-07-15 10:38:04 -07:00
2026-07-14 17:29:16 -07:00
2026-07-15 12:09:29 -07:00
2026-07-15 10:28:38 -07:00
2026-07-15 10:32:48 -07:00
2026-07-15 12:15:37 -07:00
2026-07-15 12:27:15 -07:00
2026-07-15 12:33:06 -07:00
2026-07-15 16:21:03 -07:00
2026-07-15 16:32:17 -07:00
2026-07-15 14:43:55 -07:00
2026-07-15 12:44:30 -07:00
2026-07-15 16:47:01 -07:00
2026-07-15 16:24:23 -07:00
2026-07-15 12:47:14 -07:00
2026-07-15 14:10:28 -07:00
2026-07-15 14:12:43 -07:00
2026-07-15 14:15:50 -07:00
2026-07-15 12:41:05 -07:00
2026-07-15 15:30:55 -07:00
2026-07-15 16:29:10 -07:00
2026-07-15 15:16:19 -07:00
2026-07-15 12:22:33 -07:00
2026-07-15 15:21:16 -07:00
2026-07-15 12:38:02 -07:00
2026-07-16 01:32:23 -07:00
2026-07-15 19:57:34 -07:00
2026-07-15 15:25:39 -07:00
2026-07-15 15:34:43 -07:00
2026-07-15 15:51:54 -07:00
2026-07-15 16:17:37 -07:00
2026-07-16 13:41:14 -07:00
2026-07-15 16:35:26 -07:00
2026-07-15 20:14:25 -07:00
2026-07-15 22:43:24 -07:00
2026-07-15 21:00:45 -07:00
2026-07-15 21:25:51 -07:00
2026-07-15 20:53:05 -07:00
2026-07-15 20:37:31 -07:00
2026-07-15 18:43:37 -07:00
2026-07-15 21:33:11 -07:00
2026-07-15 19:03:44 -07:00
2026-07-15 19:27:00 -07:00
2026-07-16 01:38:49 -07:00
2026-07-15 22:25:09 -07:00
2026-07-16 04:58:03 -07:00
2026-07-16 04:29:17 -07:00
2026-07-16 04:15:18 -07:00
2026-07-16 01:26:13 -07:00
2026-07-16 02:35:29 -07:00
2026-07-16 01:52:10 -07:00
2026-07-16 02:07:43 -07:00
2026-07-16 04:03:43 -07:00
2026-07-16 02:41:27 -07:00
2026-07-16 02:47:59 -07:00
2026-07-16 02:54:33 -07:00
2026-07-16 03:00:59 -07:00
2026-07-16 05:18:30 -07:00
2026-07-16 03:17:35 -07:00
2026-07-16 03:23:25 -07:00
2026-07-16 05:42:04 -07:00
2026-07-16 03:28:07 -07:00
2026-07-16 08:41:34 -07:00
2026-07-16 06:00:12 -07:00
2026-07-16 05:52:17 -07:00
2026-07-16 08:33:57 -07:00
2026-07-16 08:23:19 -07:00
2026-07-16 11:07:57 -07:00
2026-07-16 11:16:06 -07:00
2026-07-16 11:30:17 -07:00
2026-07-16 12:54:00 -07:00
2026-07-16 13:09:48 -07:00
2026-07-16 13:22:56 -07:00
2026-07-16 13:03:20 -07:00
2026-07-16 13:48:00 -07:00
2026-07-16 13:29:25 -07:00
2026-07-16 13:34:54 -07:00
2026-07-15 15:49:18 -07:00
2026-07-15 17:12:32 -07:00
2026-07-15 23:39:12 -07:00
2026-07-16 12:48:51 -07:00
2026-07-13 21:49:33 -07:00
2026-07-14 15:54:44 -07:00
2026-07-15 20:28:11 -07:00
2026-07-16 10:28:11 -07:00
2026-07-15 18:08:32 -07:00
2026-07-15 23:48:47 -07:00
2026-07-15 23:22:33 -07:00
2026-07-15 21:58:46 -07:00
2026-07-15 02:18:43 -07:00
2026-07-16 10:28:11 -07:00
2026-07-13 13:58:35 -07:00
2026-07-15 00:27:59 -07:00
2026-07-15 13:17:24 -07:00
2026-07-14 22:58:59 -07:00
2026-07-15 19:43:08 -07:00
2026-07-15 13:32:33 -07:00
2026-07-15 02:19:19 -07:00
2026-07-14 20:27:35 -07:00
2026-07-16 00:30:59 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 20:30:41 -07:00
2026-07-13 19:52:20 -07:00
2026-07-13 20:01:04 -07:00
2026-07-13 21:26:09 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 21:05:57 -07:00
2026-07-13 20:43:52 -07:00
2026-07-13 23:42:16 -07:00
2026-07-14 13:04:40 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 18:47:53 -07:00
2026-07-14 18:47:53 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 23:18:55 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-14 08:16:42 -07:00
2026-07-14 08:17:36 -07:00
2026-07-15 14:45:06 -07:00
2026-07-13 19:07:58 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 20:28:11 -07:00
2026-07-16 00:48:23 -07:00
2026-07-14 10:50:59 -07:00
2026-07-15 12:49:43 -07:00
2026-06-24 19:25:51 -07:00
2026-07-15 13:22:22 -07:00
2026-07-15 12:54:16 -07:00
2026-07-16 00:01:17 -07:00
2026-07-15 20:28:11 -07:00
2026-07-14 20:27:35 -07:00
2026-07-16 01:06:43 -07:00
2026-07-15 22:00:27 -07:00
2026-07-14 12:41:10 -07:00
2026-07-13 19:07:58 -07:00
2026-07-15 00:15:10 -07:00
2026-07-13 21:49:33 -07:00