Added task recovery system that allows users to recover and save
analysis results even if they accidentally close the page:
1. New pending-task.ts utility:
- Saves task info to localStorage when analysis starts
- Clears after task completes/fails
- 24-hour expiry for old tasks
2. PendingTaskRecovery component:
- Shows on history page if pending task found
- Polls API for task status
- Saves result to IndexedDB + cloud upon completion
3. Updated useAnalysis hook:
- Tracks pending tasks in localStorage
- Clears on completion/failure
Now users visiting /history after closing the page during analysis
will see a prompt to recover and save their completed report.