e7f733c393
What: Replace ELK layout engine with a hand-written spine layout that topologically sorts nodes into a vertical main path with feedback edges routed to the right side. Why: ELK's layered algorithm spreads the graph too wide when handling feedback (back) edges, causing fitView to shrink nodes until text is unreadable. Our workflow graphs are predominantly linear pipelines with feedback loops — a custom layout handles this topology much better. Changes: - packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts: rewrite from async ELK to synchronous spine layout — topo-sort extracts main path, nodes stack vertically, feedback edges get right-side routing - packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx: add custom SVG path for feedback edges (right-side arc with Q curves), use typed isFeedback/isSelfLoop fields from ConditionEdgeData - packages/workflow-dashboard/src/components/workflow-graph/types.ts: rename elkLabelX/Y to labelX/Y, add isFeedback and isSelfLoop fields - packages/workflow-dashboard/src/components/workflow-graph/workflow-graph.tsx: remove ReactFlowProvider/useReactFlow/useEffect fitView workaround (no longer needed — layout is synchronous), simplify component - packages/workflow-dashboard/package.json: remove elkjs and dagre deps