• feat(web): honest, state-aware summarize status with charm spinner (ADR-025)
    CI / Build & Import (push) Successful in 10s
    CI / Lint / Test / Vet (push) Successful in 12s

    mathias released this 2026-06-10 19:52:33 +00:00 | 42 commits to main since this release

    Clicking Summarize polled /status, which knew only "spinning" or "done". The web
    ProcessVideo recorded an outcome only on success, so a 429'd or caption-less
    click left transcript_status unset and the poll silently reverted to the
    Summarize button — the rate limit was invisible and the click felt broken.

    • ProcessVideo now records rate_limited / none / fetched (mirrors the runner); a
      rate-limited video keeps its requested flag so the background sweep retries it.
    • /status is state-aware: summary card (done), working spinner (in-flight),
      a calm "waiting on rate limit, will retry" card that keeps polling so the
      summary lands on its own (no re-click), and a terminal "no captions" card.
    • Charm status text (Claude-Code / Crush inspired): the spinner cycles playful
      tapir-themed gerunds via CSS only (no JS), decorative + an sr-only stable
      status line for a11y.

    Pillar A (foreground fetch priority lane) is a separate follow-up.

    Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

    Downloads