Summary
Break the offline storage layer into smaller modules with shared types and remove duplicated responsibilities.
Scope
- split bootstrap persistence and talk status persistence into separate files
- add a shared offline types module
- remove duplicate audio-clear logic from the offline store layer
- keep lib/offlineStore.ts as a compatibility facade during migration
Target Files
- lib/offlineStore.ts
- new lib/offlineBootstrapStore.ts
- new lib/offlineTalkStatusStore.ts
- new lib/offlineTypes.ts
- lib/audioStore.ts
- hooks/useOfflineBoot.tsx
- hooks/useOfflineLibrarySync.ts
Acceptance Criteria
- offline storage responsibilities are clearly separated
- no duplicate audio-clear implementation remains
- existing imports continue to work through the compatibility facade
- npm run build passes
- npm run lint passes
Summary
Break the offline storage layer into smaller modules with shared types and remove duplicated responsibilities.
Scope
Target Files
Acceptance Criteria