The frontend status poller measured elapsed time from `started` (set once at the beginning of the run) and declared a stall at 300s. Three articles take ~6 minutes total, so the poller always false-alarmed on article 3. Now every stage broadcast writes `last_updated` into the transient, and the stall check compares idle time since the last update — not since the run started. This lets N-article runs complete without false timeout as long as each individual article finishes within 5 minutes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 KiB
10 KiB