From 959afb6d21188351bce6bdf179bc9973a515734a Mon Sep 17 00:00:00 2001 From: master <> Date: Thu, 2 Apr 2026 13:58:03 +0300 Subject: [PATCH] Fix EndSink highway: skip group when no horizontal overlap exists DetectEndSinkGroups was forming highways for edges at different Y levels with NO shared corridor. The fallback (line 1585) used min-MaxX as collector when overlap detection failed, creating a false highway that truncated individual edge paths. Fix: skip the group entirely when TryResolveHorizontalOverlapInterval returns false. Edges at different Y levels render independently. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../WorkflowRenderSvgRenderer.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs b/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs index a160b7b41..90f8f5088 100644 --- a/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs +++ b/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs @@ -1582,8 +1582,9 @@ public sealed class WorkflowRenderSvgRenderer out var corridorStartX, out var collectorX)) { - collectorX = corridorIntervals.Min(interval => interval.MaxX); - corridorStartX = corridorIntervals.Max(interval => interval.MinX); + // No shared horizontal overlap — don't form a highway. + // Edges at different Y levels should render independently. + continue; } if (collectorX <= corridorStartX + 18d)