Bug Fixes
The contents progress bar could get stuck indefinitely at a certain percentage (e.g., "178 of 290") even though the backend was still analyzing photos. This happened when the live-state poll encountered a temporary network failure — it would give up entirely and stop retrying, leaving the display frozen.
The fix ensures the polling continues when facing transient errors with a slower retry cadence, allowing it to automatically recover. The progress bar also keeps refreshing even when the tab is backgrounded during long uploads, so you'll never return to a frozen indicator.