Skip to content

2.97.7

Latest

Choose a tag to compare

@ttlequals0 ttlequals0 released this 18 Sep 21:04
· 8 commits to main since this release
860b1c3

New features

  • Operators can exclude the first 0 to 600 seconds of an episode from ad detection, with feed-level overrides. PR #753
  • An opt-in remote Whisper pool can process multiple episodes concurrently. PR #722
  • Ad chapters can publish kept and held segments as Podcasting 2.0 chapters. The feature is off by default and is configured under Transcripts & Chapters. PR #722
  • A Recents feed can combine newly processed episodes from subscribed and local feeds. It is opt-in and created from Add Feed. PR #722 and issue #721
  • Detection, verification, chapters, and review can use independent primary or secondary provider slots. Secondary routing is off by default and is not automatic failover. PR #748
  • The LLM usage ledger now records per-call provider, model, token, and cost data. Stats adds sortable, paginated cost views and episode phase breakdowns. PR #748
  • Per-episode pass-through overrides, grouped dashboard episode views, and a system health panel are available. PR #748
  • Provider admission can reserve daily budget, concurrency, and uncertain charges before work starts. PR #729
  • Feed authentication can issue separate revocable subscriber keys, and Recents subscribers can access only eligible source assets. PR #729

Fixes

  • Ad-free transcripts regain coverage that was lost when Whisper repeated the initial prompt. PR #722
  • Reviewer boundary corrections that conflict with protected merged evidence go to manual review instead of cutting the full merged span, and compatible pass-1 and pass-2 cuts render once from the original. PR #730 and issue #458
  • Provider budget reconciliation retains actual completed-call costs after run history is written. PR #733 and issue #732
  • Feed refreshes, search indexing, and SQLite writes use shorter transactions and recovery paths, reducing lock contention and restoring work after worker failure. PR #722 and PR #729
  • Provider rate limits, authentication failures, quota exhaustion, reasoning-budget exhaustion, and custom-setting rejections now retry or hold according to their status instead of silently losing work. PR #722 and PR #748
  • Prompt and description inputs are scrubbed before LLM calls, including HTML, URLs, timestamps, comments, and excess text. PR #749
  • The dashboard, queue, spend views, episode controls, and settings now fit narrow screens better, preserve loading state, expose errors, and use accessible touch targets. PR #748, PR #756, and PR #757
  • Reviewer boundary handling protects measured evidence, tolerates small measured disagreements, and avoids holding an entire merged ad for an estimated pattern tail. PR #748
  • Feed refreshes are staggered, malformed bodies back off, invalid gzip responses retry without compression, and shared-outage detection reports only feeds actually attempted. PR #756
  • OpenAI-compatible transcription word timestamps are read from the top-level response, restoring boundary refinement for compliant remote servers. PR #756
  • Editing an LLM provider endpoint or type no longer crashes Settings, and spend date fields and provider names no longer collide on phones. PR #761
  • anyio was updated to 4.14.2 to address CVE-2026-63374 and CVE-2026-64847. PR #760

Upgrade notes

  • This promotion includes releases 2.96.0 through 2.97.7 after stable 2.95.3.
  • Existing installations run additive migrations for processing ownership and recovery, subscriber keys, provider admission, uploads, backups, and correction scoping. Legacy corrections without a podcast scope remain unresolved until assigned or deleted. See PR #729.
  • Compose now requires initial password setup and blocks unauthenticated feed requests from starting processing. Compatibility overrides are available for operators who need the previous behavior. PR #729
  • Rate-limit holds now return episodes to the normal queue and remove the older deferred-episode expiry fields. Existing deferred holds are migrated. PR #722
  • Encrypted backups use the MPBK02 streaming format. Use the documented cold-restore and offline passphrase-rotation commands, and ensure workers are stopped for passphrase rotation. PR #729
  • This release predates the search-rebuild and provider-recovery fixes in 2.97.14 (PR #782).