Symptom

Not a bug — a discoverability gap. connect-nodes-wizard made wiring teachable, but the only way to reach it was from inside a node’s editor: open a node, find “Connect Nodes”, then pick the other node from a list you can’t see on the canvas. Users reason about their swarm spatially on ClientScreen — the nodes and their source/input arcs already live there — yet there was no way to associate two nodes you can both see.

Root cause

The connect flow’s entry point was bound to the editor surface. The relationship semantics (ConnectNodesWiring.applyConnect) and the relationship UI (RelationshipStep) were already general and reusable, but nothing exercised them from the canvas. The gap was an entry surface, not new wiring behavior.

Fix

A canvas “edit mode” that funnels into the existing relationship prompt — composeApp-only, no new wiring logic:

Prevention