Second collaboration increment on the wasm side:
- a 409 version conflict during an Active session now auto-resolves by
accepting the sequenced daemon document (rejected local edits stay
recoverable via the discarded-edit projection); every other phase
keeps the explicit-resolve latch, with the decision pinned by tests
- the collab tick subscribes to /api/mcp/events via EventSource and
feeds the same version/collabSeq latch as the poll, with exponential
backoff down to polling when the stream drops
- Cmd+Z during a session routes through a synchronous RequestUndo wire
command (claimed => session undo, else local); redo raises the M1
Unsupported notice
- the session wire carries the peer id namespace and the web host gains
a collab id allocator (canvas create wired; remaining creation sites
stay behind the PR4 push gate until converted)