Edges follow ELK's routes: layoutGraph returns each edge's start, bends, end and chip point, LiveEdge draws them square with rounded corners, moved onto the drawn handles, and keeps the curve for an edge whose node moved since; a feedback edge clears the nodes it passes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WgBfkm4rCmtd1T4vHWjEPx
This commit is contained in:
2026-10-15 18:24:38 +02:00
co-authored by Claude Opus 5.5
parent 25b38c9720
commit bcd2173a65
6 changed files with 432 additions and 68 deletions
@@ -1,6 +1,7 @@
import type { Edge } from "@xyflow/react"
import type { MessageSpec, NodeDef_Input } from "@/client"
import type { Route } from "./layout"
/** Resolve a message name against its flow: bare names belong to this flow. */
export function qualify(flow: string, name: string): string {
@@ -44,6 +45,8 @@ export type FlowEdgeData = {
producerId: string
/** The producing port publishes repeatedly during one run, not once at its end. */
stream?: boolean
/** How the layout routed it, once it has. */
route?: Route
[key: string]: unknown
}