gsxdsm
1372218b1f
FN-9047: invalidate stale workspace landing proof after revert
Preserve workspace landing attribution while allowing cleanly reverted work to land again.
- Record a per-repository revert boundary after clean git-mode workspace reverts.
- Reject recorded and trailer landing proof at or behind that boundary, then clear it on a fresh landing.
- Persist boundaries through the revert route and cover re-land behavior with git tests.
Files changed:
.changeset/fn-9047-workspace-revert-landed-sha.md | 7 +++
docs/architecture.md | 2 +
packages/core/src/types/task/task-core.ts | 7 ++-
.../src/routes/register-session-diff-routes.ts | 2 +-
.../src/routes/register-task-workflow-routes.ts | 11 ++++
.../task-revert.workspace.real-git.test.ts | 27 ++++++++++
...orkspace-land-predicate.revert-boundary.test.ts | 60 ++++++++++++++++++++++
packages/engine/src/execution/task-revert.ts | 42 +++++++++++++--
packages/engine/src/index.ts | 1 +
packages/engine/src/merge/merger-ai.ts | 5 +-
.../engine/src/merge/workspace-land-predicate.ts | 25 +++++++--
packages/engine/src/self-healing.ts | 9 +++-
12 files changed, 185 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-9047
Fusion-Task-Lineage: 8ac41347-3c76-4f54-8d69-f16f82084305
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-15 00:02:52 -07:00
..
2026-08-15 00:02:52 -07:00
2026-08-11 05:45:36 -07:00
2026-08-12 14:07:30 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-07 21:43:28 -07:00
2026-08-10 12:01:25 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 00:02:52 -07:00
2026-08-14 23:33:36 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 03:31:50 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 17:50:27 -07:00
2026-08-11 05:45:36 -07:00
2026-08-15 00:02:52 -07:00
2026-08-11 17:53:40 -07:00
2026-08-11 12:34:47 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 04:50:30 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 15:23:59 -10:00
2026-08-11 05:45:36 -07:00
2026-08-10 15:19:43 -10:00
2026-08-14 23:33:36 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 11:29:30 -10:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-14 23:42:52 -07:00
2026-08-07 20:27:04 -07:00
2026-08-14 22:16:44 -07:00
2026-08-14 22:03:16 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-11 05:45:36 -07:00
2026-07-30 21:50:37 -07:00
2026-08-01 08:20:29 -07:00
2026-08-04 10:52:12 -07:00
2026-08-02 17:06:38 -07:00
2026-08-09 15:46:09 -10:00
2026-08-15 00:02:52 -07:00
2026-07-23 10:31:22 -07:00
2026-08-11 04:57:14 -07:00
2026-08-12 14:07:30 -07:00
2026-07-25 20:46:07 -07:00
2026-08-12 21:24:53 -07:00
2026-08-04 00:20:08 -07:00
2026-07-30 00:00:46 -07:00
2026-08-11 21:44:22 -07:00
2026-08-09 04:50:30 -07:00
2026-08-14 22:32:00 -07:00
2026-07-27 17:37:20 -07:00
2026-07-24 23:57:49 -07:00
2026-08-12 15:14:32 -07:00
2026-08-14 22:10:35 -07:00
2026-08-15 00:02:52 -07:00
2026-08-10 16:44:19 -07:00
2026-07-30 23:13:34 -07:00
2026-08-12 21:24:53 -07:00
2026-08-03 00:20:53 -07:00
2026-07-27 13:30:13 -07:00
2026-08-09 17:04:55 -07:00