the 'chat is the wrong interface' framing is interesting but i think the real friction is context fragility, not linearity. long chats break because models lose the thread, not because you can't branch. the canvas fixes that by making context explicit and persistent — you can see what the agents are actually holding.
curious how the orchestrator handles conflicts when parallel agents produce contradictory outputs. does the downstream synthesizer just pick, or does it surface the divergence to the user?
Great framing. You're right that context fragility is a big part of it. The canvas helps because each block maintains its own context explicitly, and connected blocks pass context between blocks without polluting the agents' context windows.
On conflict resolution, the synthesizer block can see all upstream outputs, so it has full visibility into any divergence. It does surface contradictions to the user, though this is something we're constantly improving.