Archived
Tick the background catalog refresher hourly instead of every four hours: pi stamps `checkedAt` after a fetch completes, so a tick at exactly its 4h freshness window always landed a few seconds short and only fetched on every other tick (~8h effective). Scheduled runs stay unforced, so the extra ticks are nearly free and pi's gate keeps deciding when to fetch. Auth-triggered refreshes now pass `force: true` so a re-login of a provider refreshed within the last four hours actually reaches the network. A request queued behind an in-flight run keeps the strongest mode asked for, so a forced request is never downgraded. Raise the whole-cycle timeout to 60s, since one run covers every refreshable provider and a background job has no startup budget, and give a timed-out or errored run exactly one bounded retry. Retries never earn retries, are superseded by any fresh request, and are cleared by `dispose()`.