Fusion Agent
926dda6fc7
FN-078: repair multi-repository workspace merge coordination
Keep long-running workspace land operations live and enforce repository-local scope isolation.
- Renew workspace land leases throughout dependency sync, AI merge, push, and intent resolution.
- Abort stale land bodies before durable or remote commit points and fence lease-dependent writes.
- Centralize repository File Scope resolution across squash, completion, and checkout guards.
- Add regression coverage, architecture documentation, and a patch changeset.
Files changed:
.changeset/fn-078-workspace-lease-and-scope.md | 7 +
docs/architecture.md | 3 +-
.../executor-workspace-main-checkout-guard.test.ts | 13 ++
.../__tests__/executor-workspace-taskdone.test.ts | 21 +++
.../src/__tests__/workspace-merger-lease.test.ts | 195 ++++++++++++++++++++-
.../src/executor/workspace-main-checkout-guard.ts | 4 +-
.../src/executor/worktree-task-done-scope-leak.ts | 4 +-
.../engine/src/merge/merger-ai-squash-gates.ts | 9 +-
packages/engine/src/merge/merger-ai.ts | 55 +++++-
packages/engine/src/worktree/workspace-paths.ts | 26 +++
10 files changed, 321 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-078
Fusion-Task-Lineage: 8ddfa438-d6c0-4d3a-972a-3594bfc05ffb
Co-authored-by: Fusion <noreply@runfusion.ai>
2026-08-21 04:32:53 +00:00
..
2026-08-10 10:33:35 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 19:40:01 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-10 10:11:11 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-03 00:20:53 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-14 23:14:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-12 21:15:53 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:57:23 +00:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-21 04:32:52 +00:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-10 10:11:11 -07:00
2026-08-19 19:59:04 -07:00
2026-08-09 15:46:09 -10:00
2026-08-10 10:33:35 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 22:37:12 -07:00
2026-08-19 20:35:19 -07:00
2026-08-20 03:56:41 +00:00
2026-08-20 03:56:41 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 18:16:49 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:57:23 +00:00
2026-08-20 03:57:23 +00:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-14 14:24:26 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-19 20:35:19 -07:00
2026-08-19 20:35:19 -07:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-07-29 20:59:06 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-11 17:53:40 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-12 21:15:53 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-07-15 13:34:30 -07:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-10 11:28:32 -07:00
2026-08-19 20:35:19 -07:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-10 13:39:55 -07:00
2026-07-15 13:34:30 -07:00
2026-08-19 20:35:19 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:56:41 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 19:34:53 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-10 11:28:32 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:57:23 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-15 15:52:52 -07:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-19 18:16:49 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-10 13:27:10 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 19:34:53 -07:00
2026-08-15 15:52:52 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-11 13:34:27 -07:00
2026-07-15 13:34:30 -07:00
2026-08-09 15:46:09 -10:00
2026-08-11 15:01:52 -07:00
2026-08-20 03:56:41 +00:00
2026-08-21 04:32:53 +00:00
2026-08-20 03:56:41 +00:00
2026-08-14 22:16:44 -07:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-20 03:56:41 +00:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-09 15:46:09 -10:00
2026-08-19 21:42:29 -07:00
2026-08-09 15:46:09 -10:00
2026-08-21 04:32:53 +00:00
2026-08-15 00:41:44 -07:00