Promote test → main: songstats backfill backoff (#673) + measurement-jobs card gate (#671)

Merged
SW
4mo ago
+406-98

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 pending without 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 done and 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.