Implements workspace-sharding.md §4's SSE contract, building on Phase A's
catalog_outbox table (schema exists, has status states pending_content →
content_durable → publishable → published, but no consumer yet) and
Phase B's real shard split.
Not in scope: lazy load/unload (Phase D), capacity benchmark (Phase E).
Done when: a Space-scoped SSE subscriber never receives an event revealing
inaccessible state, a missed event causes a revision-aware resync (not a
stale UI), and the sidebar updates live off SSE instead of only off direct
Yjs Awareness/doc observation.
Implements workspace-sharding.md §4's SSE contract, building on Phase A's
catalog_outbox table (schema exists, has status states pending_content →
content_durable → publishable → published, but no consumer yet) and
Phase B's real shard split.
authorized Workspace + set of Spaces (never revealing an
inaccessible title/hierarchy/existence signal).
cursor gap, or ambiguous replay coverage.
authoritative catalog state, never mutating its cache from the event
payload directly.
Not in scope: lazy load/unload (Phase D), capacity benchmark (Phase E).
Done when: a Space-scoped SSE subscriber never receives an event revealing
inaccessible state, a missed event causes a revision-aware resync (not a
stale UI), and the sidebar updates live off SSE instead of only off direct
Yjs Awareness/doc observation.