gsxdsm
7b55a02e51
FN-9157: fix workflow merge boundary proof and retry routing
Make workflow merge admission accept valid foreach completion and terminate retries when proof is unavailable.
- Treat fully terminal live foreach steps as implementation proof for Review Level 0 workflows.
- Preserve merge-boundary-unproven as a terminal graph failure and park blocked retries visibly.
- Add unit, graph-boundary, and PostgreSQL regression coverage plus operator documentation and a patch changeset.
Files changed:
.changeset/fn-9157-merge-boundary.md | 7 +++
docs/architecture.md | 4 ++
docs/workflow-steps.md | 6 ++
.../src/__tests__/workflow-merge-proof.test.ts | 11 +++-
packages/core/src/workflow-merge-proof.ts | 20 +++++--
.../src/__tests__/executor-graph-boundary.test.ts | 64 +++++++++++++++++++++-
...xecutor-merge-boundary-foreach-proof.pg.test.ts | 10 ++++
.../__tests__/merge-boundary-unproven-park.test.ts | 48 ++++++++++++++++
.../create-authoritative-workflow-primitives.ts | 13 ++++-
.../create-authoritative-workflow-seams.ts | 6 +-
.../executor/evaluate-workflow-merge-boundary.ts | 18 +++++-
.../executor/route-graph-merge-failure-to-retry.ts | 26 ++++++++-
packages/engine/src/executor/task-predicates.ts | 2 +
.../engine/src/executor/workflow-merge-boundary.ts | 29 +++++++---
.../engine/src/workflows/workflow-merge-nodes.ts | 13 +++++
15 files changed, 253 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-9157
Fusion-Task-Lineage: 7c68dfe2-28fb-4353-9ae6-df0ddbaf799a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-19 18:16:49 -07:00
..
2026-08-19 10:10:39 -07:00
2026-08-19 18:16:49 -07:00
2026-08-16 16:19:42 -07:00
2026-08-15 14:19:23 -07:00
2026-08-16 17:07:40 -07:00
2026-08-13 17:22:46 -07:00
2026-08-18 21:09:03 -07:00
2026-08-11 20:25:59 -07:00
2026-08-03 00:20:53 -07:00
2026-08-04 08:57:30 -07:00
2026-08-12 07:43:29 -07:00
2026-08-08 18:56:43 -07:00
2026-08-15 22:42:39 -07:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-08 19:58:43 -07:00
2026-08-03 00:20:53 -07:00
2026-08-14 23:33:36 -07:00
2026-08-03 00:20:53 -07:00
2026-08-09 13:33:16 -10:00
2026-08-03 00:20:53 -07:00
2026-08-03 00:20:53 -07:00
2026-08-13 15:30:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-09 15:16:12 -07:00
2026-08-15 15:22:33 -07:00
2026-08-13 16:01:57 -07:00
2026-08-03 00:20:53 -07:00
2026-08-10 11:50:56 -07:00
2026-08-12 07:43:29 -07:00
2026-08-15 03:22:13 -07:00
2026-08-03 00:20:53 -07:00
2026-08-11 05:45:36 -07:00
2026-08-03 00:20:53 -07:00
2026-08-12 07:43:29 -07:00
2026-08-12 16:03:30 -07:00
2026-08-18 22:11:47 -07:00
2026-08-15 15:31:58 -07:00
2026-08-15 22:42:39 -07:00
2026-08-18 00:10:46 -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-03 00:20:53 -07:00
2026-08-15 03:22:13 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 14:19:23 -07:00
2026-08-15 14:19:23 -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-07-31 21:56:30 -07:00
2026-07-31 21:56:30 -07:00
2026-08-05 16:46:53 -07:00
2026-08-15 03:22:13 -07:00
2026-08-01 02:47:25 -07:00
2026-08-03 00:20:53 -07:00
2026-07-22 08:30:12 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 17:36:32 -07:00
2026-08-03 00:20:53 -07:00
2026-08-15 01:14:43 -07:00
2026-08-03 00:20:53 -07:00
2026-08-19 18:16:49 -07:00