Builds on the 1.0.0 foundation with an on-disk segment cache, a live failover-savings dashboard, smarter title resolution (TMDB and anime), and paginated queue/history views, plus a round of streaming reliability and performance work.
Highlights
- On-disk segment cache. davex can now persist decoded Usenet segments to disk and serve repeat reads from the cache instead of refetching them from your provider, cutting provider load and speeding up re-reads. Enable it from the WebDAV settings, with a configurable cache path and maximum size. (876f226, fc6a2b1, 0ad8e54)
- Failover-savings dashboard. A new Overview panel quantifies how often provider failover rescued a read: articles recovered, reads saved, a per-provider rescuer ranking, peak-rescue stats, and a cumulative saves trend over time, all backed by new metrics that persist across restarts. (d4fe020, 925bffd, 2614782)
- Smarter title resolution: TMDB and anime. Search profiles now resolve TMDB IDs (rewritten to IMDb/TVDB queries) and fall back to community anime-list mappings when Kitsu's data is incomplete, with an added Wikidata fallback and a TVDB name-search last resort, so more requests find a match. (7402f76, 06e8c22, b7ae972)
- Paginated queue and history. The Queue and History tables now paginate with navigation controls instead of loading everything at once, with clearer live-update status. (3a1cfba, 7ffc6ad)
Features
- Segment cache: disk-backed cache of decoded segments in
UsenetStreamingClient, with cache status/path/size wired throughConfigManagerand new WebDAV settings (enable, path, max size) including validation. (876f226) - Failover metrics & dashboard:
FailoverSavestracking on read sessions and provider rollups, aFailoverBlockin the overview stats response, miss/edge tracking with new database migrations, and the FailoverSaves panel with rescuer ranking, peak-rescue, and a saves trend. (d4fe020, 925bffd, bf13a97, ac5dbac, c65f493, db47f36, 2614782) - TMDB resolver:
TmdbIdResolversingleton,tmdbid-prefix support in the profile manifest, and TMDB→IMDb/TVDB query building inSearchProfileService. (7402f76) - Anime list mapping:
AnimeListMappingResolverplus anExternalIdResolvertitle fallback that consults community datasets when Kitsu's mapping is incomplete, used as a last-resort search query. (06e8c22) - Resolver fallbacks & caching: Wikidata fallback in
ImdbTitleResolver, a TVDB name-search last resort, multiple fallback query variants, and in-memory caching of resolved IDs with a reduced 6s HTTP timeout. (b7ae972, 2d2a0c7)
Performance & reliability
- Drain each segment into memory in
MultiSegmentStreamso the connection returns to the pool immediately and following segments prefetch. (e52166b) - Fail fast on a definitively missing first segment, and retry transient segment failures (up to two attempts) before zero-filling, so the player surfaces a real error instead of silently corrupt playback. (88d8e16, 871843c)
- Resolve lazy RAR files in
DatabaseStoreMultipartFilewhen metadata still shows pending parts. (b1a0c61) - Use hourly rollup data for long Overview windows (7 days and up) and hide widgets that would otherwise show misleading data. (7dd8cd4)
- Rework the activity heatmap to aggregate by local days and weeks correctly and build its grid without the extra lookup map. (ebb587f)
Documentation
- Rename NzbDav to NzbDavEx across the README, setup guide, and issue templates, and switch the documented Docker image tag from
:latestto:stable. (17ee7fc)