Summary
Expose real-time processing updates from the backend so users see live progress instead of a static spinner.
Why
- Long-running jobs feel unresponsive today
- Detailed status helps debug stalled or failed runs
- Unlocks richer UX elements like per-page progress bars
Proposal
- Establish a WebSocket channel (or Server-Sent Events) that streams processing milestones
- Emit granular events: upload complete, parsing, interleaving, writing output, success/failure
- Update the frontend modal/progress indicator as events arrive
Acceptance Criteria
Summary
Expose real-time processing updates from the backend so users see live progress instead of a static spinner.
Why
Proposal
Acceptance Criteria