rspace-online/modules
Jeff Emmett 4cc420d0f6 feat: wire offline-first Automerge sync to all 13 rSpace modules
Add shared RSpaceOfflineRuntime singleton that coordinates IndexedDB
persistence (EncryptedDocStore), WebSocket sync (DocSyncManager), and
in-memory Automerge docs (DocumentManager) for all module web components.

- Phase 0: runtime.ts singleton, shell integration, beforeunload flush
- Phase 1: rstack-offline-indicator status dot in shell header
- Phase 2: service worker stale-while-revalidate for API GETs + offline fallback
- Phase 3: storage-quota.ts with LRU eviction (30d) and quota warnings (70%)
- Phase 4: Tier 1 single-doc modules (rFlows, rCal, rBooks, rSplat)
- Phase 5: Tier 2 multi-doc modules (rNotes, rWork, rInbox, rVote, rTrips, rFiles)
  with doc-list-request/response wire protocol for document discovery
- Phase 6: Tier 3 special cases (rCart hybrid, rForum global doc, rSchedule)

Data now loads instantly from IndexedDB, syncs via WebSocket when online,
and remains browsable offline. rNotes migrated from inline Automerge WS
to shared runtime. All modules fall back to REST when runtime unavailable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 19:07:59 -08:00
..
rbooks feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rcal feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rcart feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rchoices feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
rdata refactor: complete rfunds → rflows rename across configs and references 2026-03-03 19:13:14 -08:00
rdesign feat: add feeds/acceptsFeeds to rsplat, rdesign, rdocs, rschedule 2026-03-03 14:41:55 -08:00
rdocs feat: add feeds/acceptsFeeds to rsplat, rdesign, rdocs, rschedule 2026-03-03 14:41:55 -08:00
rfiles feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rflows feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rforum feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rinbox feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rmaps fix: getApiBase() across all 16 rApp modules for subdomain routing 2026-03-02 21:01:06 -08:00
rnetwork fix: migrate rNetwork components to theme variables for dark/light mode 2026-03-04 15:12:58 -08:00
rnotes feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rphotos feat: bare-domain sub-pages show info/marketing pages + save-gate 2026-03-04 12:16:17 -08:00
rpubs feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
rschedule feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rsocials feat: show rSocials landing page on space subdomains 2026-03-04 18:14:14 -08:00
rspace fix: layer flows drag-to-connect, notification 401 spam, /api/meta 404 2026-03-04 11:12:19 -08:00
rsplat feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rswag feat: workflow template, choice components, space settings, EncryptID vault, UI polish 2026-03-03 13:15:13 -08:00
rtrips feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rtube feat: unified space lifecycle & module scoping contract (Phase 0+1) 2026-03-02 13:35:41 -08:00
rvote feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00
rwallet refactor: complete rfunds → rflows rename across configs and references 2026-03-03 19:13:14 -08:00
rwork feat: wire offline-first Automerge sync to all 13 rSpace modules 2026-03-04 19:07:59 -08:00