Docs: update workflow engine documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-03-27 12:28:56 +02:00
parent 95357ffbb9
commit 07f8d1d0e4

View File

@@ -920,7 +920,7 @@ The engine can render workflow definitions as visual diagrams.
| Engine | Description |
|--------|-------------|
| **ElkSharp** | Port of Eclipse Layout Kernel (default). In `Best` effort mode it runs a deterministic iterative multi-strategy orthogonal router after base routing, scoring candidate layouts across crossings, proximity, labels, target-approach joins, detours, target-approach backtracking, and entry geometry before selecting the best valid result. Attempt 1 remains the only full-strategy reroute; later attempts repair only the penalized lanes or edge clusters, with shortest-path detours prioritized first, a direct orthogonal shortcut tried before broader rerouting, and corridor-like overshoots only eligible when a clean orthogonal shortcut actually exists. Small or protected graphs keep the baseline route to preserve established sink-corridor, backward-edge, and port-anchor contracts, while larger congested graphs use the iterative sweep. Final strategy acceptance re-validates post-processed output so remaining broken short highways and non-applicable target-side approach joins are retried instead of being selected, while other soft-rule regressions get bounded multi-attempt retries and a wider but finite strategy sweep before fallback selection. A final cheap geometry-repair pass cleans node-side entry/exit angles, target-slot spacing, repeat-collector return lanes, and target-side backtracking without re-running whole-graph A*. The document-processing artifact test emits both a live progress log and per-attempt phase timings/route-pass counts alongside the SVG/PNG/JSON diagnostics so long-running strategy searches can be inspected while they are still running and profiled after completion. `Draft` and `Balanced` keep the base route unless library callers opt in through ElkSharp layout options. |
| **ElkSharp** | Port of Eclipse Layout Kernel (default). In `Best` effort mode it runs a deterministic iterative multi-strategy orthogonal router after base routing, scoring candidate layouts across crossings, proximity, labels, target-approach joins, detours, target-approach backtracking, and entry geometry before selecting the best valid result. Attempt 1 remains the only full-strategy reroute; later attempts repair only the currently penalized lanes or exact conflict peers, with shortest-path detours prioritized first, a direct orthogonal shortcut tried before broader rerouting, and corridor-like overshoots only eligible when a clean orthogonal shortcut actually exists. Local-repair candidate building may run in parallel inside an attempt, but builds that touch the same source/target neighborhood are lock-serialized and the final apply order remains deterministic. Small or protected graphs keep the baseline route to preserve established sink-corridor, backward-edge, and port-anchor contracts, while larger congested graphs use the iterative sweep. Final strategy acceptance re-validates post-processed output so remaining broken short highways and non-applicable target-side approach joins are retried instead of being selected, while other soft-rule regressions get bounded multi-attempt retries and a wider but finite strategy sweep before fallback selection. The current A* pathfinder precomputes node-obstacle blocked step masks per route and uses lighter soft-obstacle rejection checks before exact geometry tests, materially reducing route-all-edges time without changing selected-path semantics. A final cheap geometry-repair pass cleans node-side entry/exit angles, target-slot spacing, repeat-collector return lanes, and target-side backtracking without re-running whole-graph A*. Rectangular boundary joins are constrained to a discrete slot lattice so one edge cannot silently concentrate on top of another: `left`/`right` faces may use at most `3` evenly spread side slots, `top`/`bottom` faces may use at most `5`, and the realized slot span matches the same safe boundary inset used by rectangle entry/exit normalization. Gateway faces are limited to `1` centered slot or `2` centered slots, singleton entries and preserved repeat/corridor exits are scored against the same centered lattice instead of being exempt, and the final slot snap can relax the generic shared-lane validator when the centered repair is still obstacle-safe and boundary-valid. Winner refinement now ends with a boundary-slot restabilization pass as well, so late shared-lane or under-node cleanup cannot drift decision/branch source exits back off the assigned lattice. Shortest-path local repair now also reuses interior axes from the current path and tries a raw-clearance obstacle-skirt fallback before accepting a wider preserved overshoot, which lets detour cleanup collapse onto an honest existing lane when the expanded-clearance candidates stay unnecessarily high. Decision/Fork/Join gateway nodes use a gateway-specific boundary algorithm instead of rectangular side snapping: off-axis lanes land on the actual polygon boundary, gateway target slots are derived from polygon-face intersections instead of rectangular side slots, gateway faces use only `1` or `2` centered face slots, short 45-degree diagonal stubs are allowed only on gateway side faces, corner-vertex diagonals are rejected, gateway-target arrival repair now also forbids tiny orthogonal last-moment hooks that change direction within less than one node depth of the boundary, and any retained 45-degree segment longer than one average node-shape length is rejected during scoring and artifact verification. Gateway-source dominant-axis detour checks are opportunity-gated, so obstacle-blocked gateway exits may keep a short local dogleg when there is no clean downstream-facing repair, while the artifact tests still enforce blocker clearance and keep those local exits out of unrelated node clearance bands. Repeat-collector lanes that preserve an outer corridor can still locally reroute their pre-corridor prefix when that prefix crosses a node, so node-safety no longer depends on skipping the edge outright. The document-processing artifact test emits both a live progress log and per-attempt phase timings/route-pass counts alongside the SVG/PNG/JSON diagnostics so long-running strategy searches can be inspected while they are still running and profiled after completion. `Draft` and `Balanced` keep the base route unless library callers opt in through ElkSharp layout options. |
| **ElkJS** | JavaScript-based ELK via Node.js |
| **MSAGL** | Microsoft Automatic Graph Layout |