diff --git a/backlog/tasks/task-001 - offline-local-storage.md b/backlog/tasks/task-001 - offline-local-storage.md index 5e84880..ae06a27 100644 --- a/backlog/tasks/task-001 - offline-local-storage.md +++ b/backlog/tasks/task-001 - offline-local-storage.md @@ -4,9 +4,36 @@ title: offline local storage status: To Do assignee: [] created_date: '2025-12-03 23:42' -updated_date: '2025-12-04 12:13' -labels: [] +updated_date: '2025-12-04 20:25' +labels: + - feature + - offline + - persistence + - indexeddb dependencies: [] +priority: 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 +