• feat(discovery): per-channel caption-availability memory (ADR-024)
    CI / Lint / Test / Vet (push) Successful in 30s
    CI / Build & Import (push) Successful in 11s

    mathias released this 2026-06-10 18:27:25 +00:00 | 43 commits to main since this release

    After transcript caching (ADR-021) and the Shorts filter (ADR-023), the remaining
    caption waste is the first fetch on every new video of a channel that never has
    English captions — each costs one rate-limited fetch to resolve to "none", and on
    a throttled IP churns the backoff machinery first.

    Remember, per (user, channel), a streak of consecutive no-caption outcomes
    (channel_caption_state, migration 016, RLS-scoped). Once it reaches
    TAPIR_CHANNEL_CAPTIONLESS_THRESHOLD (default 5) the channel is suppressed — videos
    discovered/listed but not caption-fetched — for TAPIR_CHANNEL_CAPTIONLESS_WINDOW
    (default 14d), then one is re-probed (auto-recovery). A successful fetch resets
    the streak; a 429 does not count; an explicit manual request bypasses suppression.
    threshold=0 disables.

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

    Downloads