2.92.1
Pre-release
Pre-release
2.92.1
Added
- Queue boost sizes are settings under Settings > Global Defaults > Queue priority: play-or-reprocess (default 20), new-episode (default 5), and Reprocess All (default 0).
queueManualBoost,queueFreshBoost, andqueueBulkBoostonPUT /api/v1/settings.
Fixed
- A play request or manual reprocess now always outranks backlog work. Reprocess All and segment re-renders no longer stamp every episode with the full manual boost, which once pinned a just-published episode 94th behind a 93-episode two-year-old backfill for an estimated two days. A queued episode's priority can now rise but never fall, so playing an episode that is already queued lifts it to the front instead of the boost being silently discarded.
2.92.0
Added
- Per-feed retention override on the feed settings page. A feed can follow the global retention window, keep its episodes for its own number of days, or archive so nothing is ever deleted. Archive is meant for shows that stopped publishing, where a swept episode cannot be fetched again. An archived feed is also skipped by the "Clear all processed audio" action, which otherwise overrides retention: a per-feed 0 is a deliberate "never delete this show", while a feed inheriting a globally disabled retention is still wiped.
retentionDaysOverrideonPATCH /api/v1/feeds/{slug}. - Per-feed override for keeping the pre-cut original audio, with the same inherit / on / off shape as the global toggle. Archived feeds keep their originals too, so this is how to archive a show without paying for the uncut copies. Applies from the next episode processed and does not delete originals already on disk.
keepOriginalAudioOverrideonPATCH /api/v1/feeds/{slug}. - AI Models settings fields can switch to free text for model IDs the provider catalog does not list, such as proxies, private deployments, and newly released models. Adapted from @d-portero's fork.
- Processing History shows the reason a run failed under the episode title, truncated with the full text on hover. Adapted from @d-portero's fork.
- The addressing-mode Stats card now tracks ad yield per mode alongside contract compliance: ads proposed, ads kept, and drops split by reason. Invalid segment-id references are counted, which is the signal the segment-ID experiment exists to measure. Yield is recorded from this version on; older runs carry none and are excluded from the yield numbers.
Fixed
- A permanently broken artwork URL was refetched every few hours despite the 6-hour failure cache. Every download stored a cache entry, successes included, and since eviction is oldest-first the 1024-slot cache filled with entries nothing reads and pushed the real failure entries out before their TTL. Only failures are cached now, and a forced retry that succeeds clears the entry.
Changed
- Episode lookups behind the just-in-time serve path are cached for 15 minutes. A podcast client sends a HEAD for every unprocessed episode on each refresh cycle, and each one refetched and reparsed the whole upstream RSS feed. Re-rendering a served feed drops that feed's entries, and misses are not cached, so a feed caught mid-publish does not 404 for the whole window. Adapted from @stansz's fork.