Skip to content

Highlight all join arrival edges and show Fork/Join badges in WorkflowViewer (#227) - #228

Merged
EricWittmann merged 1 commit into
mainfrom
fix/viewer-fork-join-227
Oct 22, 2026
Merged

EricWittmann merged 1 commit into
mainfrom
fix/viewer-fork-join-227

Conversation

@EricWittmann

Copy link
Copy Markdown
Contributor

Fixes #227.

  • History entries record a single arrival edge, so at an AND-join only the last-arriving branch's edge was highlighted. New traversedEdgeIds (utils/parallelView.ts) adds every incoming edge of a join that has fired, plus edges of branches waiting in instance.joinArrivals.
  • The Viewer now runs analyzeParallelRegions and passes parallelRole to nodes, so Fork/Join badges render as in the Editor.

Assumes the Axiom runtime uses the same AND-join semantics as analyzeParallelRegions.

@EricWittmann

Copy link
Copy Markdown
Contributor Author

Verified the AND-join assumption against the runtime: Axiom executes via apitomy-flow-engine, whose ParallelRegions.java is mirrored line-for-line by parallelRegions.ts (same fork rule, same priority-ordered BFS join selection, same required incoming-edge set), and WorkflowEngine.moveBranch fires the join only when all incoming edges have arrived, recording a single history entry. So inferring all incoming join edges from a fired join is exact.

Caveat: Axiom does not currently pass joinArrivals to the viewer (hard-coded {}), so waiting-branch edges in live runs won't highlight there until Apitomy/apitomy-axiom#513 is done. Completed/past-join runs are fully fixed by this PR.

@EricWittmann
EricWittmann merged commit 5d6c0ea into main Oct 22, 2026
3 checks passed
@EricWittmann
EricWittmann deleted the fix/viewer-fork-join-227 branch October 22, 2026 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Viewer component does not highlight all followed edged when Fork->Join is used

1 participant