From 3751762c6904ab766690637dbd07a84ab93636dd Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Fri, 27 Mar 2026 21:53:36 +0100 Subject: [PATCH] fix: use correct ELK root for handler node coordinate extraction Handler section nodes were positioned relative to rootNode, but they live under separate handlerRoot ELK graphs. Using getElkRoot() to find each node's actual root ensures correct absolute coordinates. This combined with the POLYLINE edge routing should eliminate the Y-offset misalignment between main flow nodes. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/cameleer3/server/app/diagram/ElkDiagramRenderer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java index 42fae5a2..1c695763 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/diagram/ElkDiagramRenderer.java @@ -302,8 +302,11 @@ public class ElkDiagramRenderer implements DiagramRenderer { ElkNode elkNode = elkNodeMap.get(rn.getId()); if (elkNode == null) continue; + // Use the correct root for coordinate calculation: + // handler nodes use their handler root, main flow uses rootNode + ElkNode coordRoot = getElkRoot(elkNode); positionedNodes.add(extractPositionedNode(rn, elkNode, elkNodeMap, - compoundNodeIds, compoundInfos, rootNode)); + compoundNodeIds, compoundInfos, coordRoot)); } }