- Remove dead get_analysis_service() function in main.py
- Scope file deletion to UPLOAD_DIR to prevent path traversal
- Parse datetime strings back to datetime objects in repos
- Add 10-minute polling timeout in frontend analysis store
- Accept .pdf extension (not just MIME type) on drag-and-drop
- Guard localStorage access for private browsing compatibility
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wrap store.upload() calls in try-catch in both onFileSelect and onDrop
so thrown errors (e.g. file too large) don't bubble up unhandled.
Display store.error inline below the upload hint so users see why
their upload was rejected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>