Promote test → main: songstats backfill backoff (#673) + measurement-jobs card gate (#671)
Merged
SW
4mo ago+406+406+012345678901234567890123456789-98-98-01234567890123456789
Promotes test to main. Contents:
- #673 — Songstats backfill: bounded exponential backoff on 429 + defer-to-pending past the bound (claimed-batch release), per-step/per-batch logging (chat#1797 bullets 1 & 3).
- #671 — measurement-jobs free-tier card gate (Stripe setup mode) + instant backfill drain.
main has no commits test lacks — clean promotion.
Summary by cubic
Promotes test → main with a smarter Songstats backfill that backs off and defers under rate limits, plus a free‑tier card gate with instant backfill start for measurement jobs. This reduces API churn and speeds up time to first data.
- New Features
- Songstats backfill: bounded exponential backoff on 408/429/502/503/504. When retries are exhausted, set the row to
pendingwithout spending quota, stop the batch, and release remaining claimed rows. - Clear status handling: 200 writes history and records one hit; 404/other terminal 4xx mark
doneand record a hit. - Measurement jobs: free‑tier card gate using Stripe Checkout
mode: "setup"(collect card, no subscription) and auto‑start of the backfill drain after enqueue.
- Songstats backfill: bounded exponential backoff on 408/429/502/503/504. When retries are exhausted, set the row to