Resolved conflicts by combining features from both branches:
- Kept AI summarization features (ai package, SummarizeButton/Modal, summaries table)
- Added document ID mapping and SHA-256 based IDs from main
- Added resolveDocumentId and router navigation for URL redirects
- Combined PDFViewer document state tracking with highlight timeout helpers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>