1.3 KiB
1.3 KiB
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| task-001 | offline local storage | To Do | 2025-12-03 23:42 | 2025-12-04 20:25 |
|
high |
Description
Add IndexedDB persistence layer to the existing Automerge sync system. Board data should be cached locally for offline access, with graceful online/offline transitions.
Key requirements:
- Store board state in IndexedDB (not localStorage - 5MB limit insufficient)
- Integrate with existing useAutomergeSync hook
- Detect online/offline status and show connection indicator
- Sync local changes when connection restores
- Handle Safari's 7-day eviction with service worker touch
Acceptance Criteria
- #1 IndexedDB schema for board documents and assets
- #2 Persist Automerge document to IndexedDB on changes
- #3 Load from IndexedDB on initial page load (before WebSocket connects)
- #4 Online/offline status detection with UI indicator
- #5 Queue local changes during offline and sync on reconnect
- #6 Handle storage quota limits gracefully
- #7 Safari 7-day eviction mitigation via service worker