Migration Status - Quick Summary¶
✅ Completed (Working)¶
Backend¶
- ✅ FastAPI with all endpoints
- ✅ SQLite storage
- ✅ EPUB file serving
- ✅ Logging middleware
Frontend Services¶
- ✅
apiClient.ts- HTTP client - ✅
bookApiService.ts- Book operations - ✅
annotationApiService.ts- Annotation operations - ✅
settingsApiService.ts- Settings operations - ✅
epubService.ts- EPUB loading (uses API) - ✅
annotationService.ts- Wrapper (uses API) - ✅
logger.ts&diagnostics.ts- Debugging tools
Components¶
- ✅
BookGrid.tsx- Library view - ✅
BookCard.tsx- Book display - ✅
ImportButton.tsx- Book import - ✅
BookViewer.tsx- Book reading (partially - needs field name fixes)
Types¶
- ✅ Shared types in
/types/index.ts
🚧 In Progress¶
BookViewer Field Names¶
Need to update all references from camelCase to snake_case:
- cfiRange → cfi_range
- noteContent → note_content
- bookId → book_id (in some places)
This affects: - Highlight rendering - Note operations - Chat context operations - Context menu interactions
⏳ Remaining¶
Components Still Using Old Types¶
ReaderSettings.tsx- Uses old dbChatOverlay.tsx- Uses old dbchatService.ts- Uses old db for settings- Various annotation components - Need type updates
Cleanup¶
- Remove
lib/db.ts - Remove
dexieanddexie-react-hooksfrom package.json - Remove old crypto utilities
🎯 Next Steps¶
- Fix BookViewer field names (10 min)
- Replace
.cfiRangewith.cfi_range -
Replace
.noteContentwith.note_content -
Migrate ReaderSettings (5 min)
-
Use
settingsApiService -
Update remaining components (15 min)
- Fix type imports
-
Update field names
-
Test everything (20 min)
- Import book
- Read book
- Create annotations
-
Test settings
-
Cleanup (10 min)
- Remove old files
- Update package.json
Total remaining: ~1 hour
Current Blockers¶
None! Just need to do the field name replacements in BookViewer.