From 019d8c1ee96ec6d019066d45e8bb6ec2f5b66e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E6=9C=88?= Date: Thu, 14 May 2026 15:54:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20explicit=20handle=20IDs=20=E2=80=94=20fo?= =?UTF-8?q?rward=20edges=20use=20top/bottom,=20feedback=20uses=20sides?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prevent React Flow from auto-routing forward edges to side handles. All handles now have explicit IDs and all edges specify sourceHandle/targetHandle. --- .../src/components/workflow-graph/role-node.tsx | 4 ++-- .../src/components/workflow-graph/terminal-node.tsx | 3 ++- .../src/components/workflow-graph/use-layout.ts | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/workflow-dashboard/src/components/workflow-graph/role-node.tsx b/packages/workflow-dashboard/src/components/workflow-graph/role-node.tsx index 1f221ae..a737877 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/role-node.tsx +++ b/packages/workflow-dashboard/src/components/workflow-graph/role-node.tsx @@ -45,7 +45,7 @@ export function RoleNode(props: NodeProps) { }} title={data.description} > - + @@ -67,7 +67,7 @@ export function RoleNode(props: NodeProps) { {data.description} )} - + ); } diff --git a/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx b/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx index 4adea67..8a1685c 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx +++ b/packages/workflow-dashboard/src/components/workflow-graph/terminal-node.tsx @@ -45,11 +45,12 @@ export function TerminalNode(props: NodeProps) { ) : ( - + )} {isStart ? "▶" : "■"} diff --git a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts index 2d235c3..aacbeb9 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts +++ b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts @@ -216,8 +216,8 @@ function computeLayout(input: LayoutInput): LayoutResult { id: edgeKey(e), source: e.from, target: e.to, - sourceHandle: isFeedback ? (feedbackSide === "left" ? "left-out" : "right-out") : undefined, - targetHandle: isFeedback ? (feedbackSide === "left" ? "left-in" : "right-in") : undefined, + sourceHandle: isFeedback ? (feedbackSide === "left" ? "left-out" : "right-out") : "bottom-out", + targetHandle: isFeedback ? (feedbackSide === "left" ? "left-in" : "right-in") : "top-in", type: "condition", data: { condition: e.condition,