Phase 1 — Fix scope system: new scope-resolver.ts resolves global vs space-scoped docId prefixes. Server middleware sets effectiveSpace on Hono context. All 18 modules updated to use dataSpace for Automerge doc access while keeping space for display. Client runtime gets setModuleScopes() and resolveDocSpace() for local-first scope resolution. Phase 2 — Seamless cross-space navigation: TabCache now tracks panes per space:module key. OfflineRuntime maintains lazy WebSocket connections per space. Space-switcher dispatches space-switch event handled client-side with history.pushState instead of full reload. Phase 3 — Spaces as layers: Layer type extended with spaceSlug and spaceRole. Tab bar gains "Add Space Layer" picker. Canvas renders cross-space shapes with visual indicators. Space layers persisted as SpaceRefs via nesting API. Runtime provides getAllActiveSpaces() and subscribeModuleAcrossSpaces() for module-level data aggregation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| components | ||
| landing.ts | ||
| mod.ts | ||
| process-image.ts | ||
| products.ts | ||