Commit Graph

5 Commits

Author SHA1 Message Date
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
Jeff Emmett 9c6c8c8dab fix: migrate all rApp components to theme variables for dark/light mode
Replace hardcoded dark-specific colors with CSS custom properties across
rcal, rflows, rbooks, rschedule, rtrips, and rwork modules. Adds
[data-theme="light"] overrides for rFlows node type buttons, danger
buttons, and overlay elements. SVG fills switched to style attributes
for theme variable support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 12:55:07 -08:00
Jeff Emmett bb052c49d3 feat: add universal reminders system with calendar integration & cross-module drag
Add a Reminders subsystem to rSchedule that lets users create date-based
reminders (free-form or linked to cross-module items), receive email
notifications via the existing tick loop, and sync bidirectionally with
rCal calendar events. Includes drag-and-drop from rWork task cards onto
calendar day cells to create reminders.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:37:54 -08:00
Jeff Emmett a5d4c22177 fix: rename schedule module ID to rschedule + update hero banner
Route is now /:space/rschedule (consistent with other rApp naming).
Hero: "Automate (you)rSpace, on (you)rSchedule."

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 15:16:45 -08:00
Jeff Emmett 59b1ae2d05 feat: add rSchedule module — persistent cron-based job scheduling
New module providing in-process, Automerge-backed job scheduling to
replace system-level crontabs. Includes email, webhook, calendar-event,
broadcast, and backlog-briefing action types with a 60-second tick loop.

- modules/rschedule/ — schemas, mod, landing page, web component UI
- Seed jobs: morning/weekly/monthly backlog briefings
- SMTP env vars added to docker-compose for email actions
- ONTOLOGY.md updated (26+ modules, rSchedule in Planning & Spatial)
- Also: Twenty CRM docker-compose aligned to rspace-internal network

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:34:53 -08:00