Symptom

Source arcs and interaction arcs never drew for a second observer of a swarm. The editing client looked correct; any other connected client (or MCP client like the kraken demo pipeline) showed empty wiring even though get_node returned the correct sources server-side.

Root cause

set_node_wiring posts the node with state = USER_EDIT. The server fans this out as a STATE_CHANGE SSE event whose payload (StateChangeEventPayload) carries only the new state — not the node’s updated sources/inputs/formula. In EventClient, the STATE_CHANGE arm copied the new state onto the stored node but left the old meta intact. The editing client never noticed because it already held the new meta locally from its own edit; only secondary clients were affected.

Fix

Prevention