Skip to content

Changelog1.x

1.2.1

Bug Fixes

  • api: suppress EF Core per-query command logs (#1095) (8b63233)
  • api: suppress EF Core per-query command logs (#1095) (405a22f)
  • auth: keep UI sessions working after upgrades (#1092) (dae1b29)
  • db: remove EF Core startup warnings (#1096) (616c71d)
  • ui: provider cards show warm connection counts (#1093) (79f34d0)

1.2.0

Features

  • api: add opt-in interactive admin API reference (#1010) (1925e8c)
  • api: admin errors return ProblemDetails operators can match to logs (#1067) (e252f12)
  • api: versioned admin API contract keeps the UI in sync with backend routes (#1069) (abc4c0c)
  • arr: show Sonarr/Radarr import health on the Overview dashboard (#1054) (3e7cb83)
  • db: optional PostgreSQL support for the main database (#1013) (5099666)
  • health: add on-demand GC memory diagnostics (#1005) (5f52db8)
  • health: expose Prometheus metrics for streaming and providers (#1009) (d38b04f)
  • health: health checks skip non-media files (images, subtitles, NFOs) (#1001) (039eab9)
  • health: keep known degraded gaps off Usenet providers (#1055) (be76ffc)
  • health: keep slightly damaged videos playable instead of replacing the whole release (#1035) (914a5d8)
  • health: re-check library health after changing Usenet providers (#1015) (11d14dc)
  • health: repair missing articles in the background using PAR2 recovery data (#1032) (a125fe2)
  • health: replace releases with unplayable corrupt data instead of serving silent gaps (#1050) (45d8a9f)
  • health: show deleted and repaired NZBs in the health UI (#1004) (c7606de)
  • queue: audio-only NZBs now import instead of being rejected (#1002) (4449bb2)
  • queue: keep NZB uploads accessible while queue is active (#1008) (6daf2d7)
  • queue: recover missing articles using equivalent segments from other copies of the same release (#1039) (4b36207)
  • queue: reorder waiting jobs with up/down controls (#1007) (f3359ba)
  • ui: choose the category when uploading NZBs from the queue page (#1049) (5430cd1)
  • ui: search, filter, and sort queue and history (#1006) (6683b9f)
  • usenet: concurrent readers of the same file share one Usenet stream (#1046) (df945d9)
  • usenet: preserve confirmed article misses across restarts (#1028) (5689c90)
  • usenet: separate queue pipelining from streaming playback controls and add a configurable batch width (#1030) (c1bf58c)

Bug Fixes

  • api: HTTP clients time out and the process shuts down within 5 seconds (#1066) (c02c689)
  • arr: parse string event types in history responses (#1056) (49a4e7a)
  • db: repair lowercase GUIDs so cleanup and file lookup stop missing rows (#1076) (f70d191)
  • deps: Bump github/codeql-action in the github-actions group (#1079) (a62a9e8)
  • deps: Bump the npm-minor-and-patch group (#1078) (e840ae6)
  • deps: Bump the nuget-minor-and-patch group with 6 updates (#1080) (52a2272)
  • deps: Bump zensical from 0.0.53 to 0.0.54 in the docs-python group (#1077) (1f9f45b)
  • docker: fail startup when the config directory is missing or unwritable (#1058) (702565f)
  • health: background health scans start correctly on dev and rc (#1044) (be770a2)
  • health: Health page no longer shows a stuck initial scan pending banner (#1085) (5c4a0ac)
  • health: PAR2 repair reconstructs files when source articles are corrupt (#1060) (dc892bc)
  • nntp: providers no longer benched for minutes by brief network hiccups (#1018) (a3867e3)
  • queue: stop grinding remaining RAR volumes after a header timeout (#1059) (ef17d38)
  • resolve medium-severity CodeQL quality warnings (#1081) (66f99d1)
  • sab: queue and history panels no longer fail with server errors on PostgreSQL (#1088) (678d429)
  • streams: seeking and article retries no longer stall when Article RAM is full (#1053) (d53ba5e)
  • ui: play files from the web UI over plain HTTP (#1037) (86a4468)
  • ui: queue provider labels no longer flicker during download progress (#1016) (f062a04)
  • usenet: log a single warning when a Usenet article is missing on every provider (#1061) (9458ae5)
  • webdav: paused or trickling clients no longer wedge all streaming (#1052) (ad2a7ee)
  • webdav: repair files that cannot seek through missing tail articles (#1014) (9f544eb)
  • webdav: serve tail seeks from lazy RAR volumes (#1087) (a529699)
  • webdav: serve the WebDAV README through the UI port and freeze HTTP contracts (#1072) (8c16695)

Performance Improvements

  • nntp: decode yEnc body data in buffered batches (#1082) (104beec)
  • queue: keep playback smooth during import bursts by parsing RAR/7z archive headers asynchronously (#1040) (48013a2)
  • streams: lower streaming memory use with bounded 256 KB segment buffers (#1042) (fb498be)
  • usenet: accelerate playback starts and sustained streaming (#1029) (84274ca)

Refactors

  • api: keep queue and WebDAV independent of admin API controllers (#1070) (54c6afd)

1.1.2

Bug Fixes

  • auth: reset admin password via RESET_ADMIN_PASSWORD environment variable (#998) (d39d7e2)
  • deps: Bump the npm-minor-and-patch group (#994) (589e6bf)
  • repair: streaming failure repair now shows when Background Repairs must be enabled (#999) (394d85d)
  • ui: delete Explore items whose names contain percent sequences (#995) (ac7af97)

1.1.1

Bug Fixes

  • default NZB retrieve User-Agent to SABnzbd/5.1.0 (#986) (c932811)
  • deps: Bump the npm-minor-and-patch group (#993) (22c5d46)
  • deps: Bump zensical from 0.0.52 to 0.0.53 in the docs-python group (#992) (8680e6f)
  • health: orphan cleanup no longer treats imported files as missing when Library Directory is the mount (#991) (49b58e1)
  • queue: stalled downloads now fail so Sonarr can re-grab them (#989) (a10a45f)
  • ui: maintenance task status no longer bleeds between Remove Orphaned Files and Prune Completed History (#983) (e89d6ca)
  • webdav: /ready no longer returns 4XX instead of the readiness status (#982) (3650c60)

1.1.0

Features

  • ci: add rolling dev release with archives to Refresh :dev workflow (#945) (c30aa25)
  • db: limit metrics database growth on high-throughput hosts (#932) (0167bb2)
  • indexers: Prowlarr-managed indexers (pull) (#944) (de7fb55)
  • queue: automatically recover queue items that stop making progress (#934) (2989216)
  • queue: bulk pause, retry, category, and clear actions on queue and history (#939) (de09c02)
  • queue: normalize obfuscated video filenames so Radarr/Sonarr can import them (#937) (e5e4ee4)
  • sab: show remaining time and speed for Sonarr/Radarr downloads (#981) (ff725b1)
  • sab: support server_stats and warnings so mobile SAB clients can connect (#935) (63bcf6f)
  • ui: play media in-app from Files with auto-resume and playback diagnostics (#947) (c82bcfb)
  • webdav: allow clearing completed-symlinks via WebDAV delete and a new maintenance task (#930) (b6211eb)

Bug Fixes

  • api: let request-abort cancellation escape play handler and pre-verify (f63fd03)
  • api: resolve CodeQL path-injection and user-controlled-bypass findings (#917) (0a469d6)
  • arr: reliably trigger Sonarr/Radarr replacement searches after repairing unplayable files (#925) (4631184)
  • ci: attach only stable-named archives to the rolling dev release (#959) (a24f78b)
  • db: all-time bandwidth totals no longer shrink when old metrics are pruned (#928) (3b9d271)
  • db: corrupt database now gets clear recovery guidance instead of endless stack traces (#943) (87cd91b)
  • db: log a clear ownership error instead of crash-looping with exit 134 when config files are unreadable (#958) (f9f2ca6)
  • deps: Bump daisyui in /frontend in the npm-minor-and-patch group (#904) (7d20c7d)
  • deps: Bump github/codeql-action in the github-actions group (#962) (ae4bbea)
  • deps: Bump the npm-minor-and-patch group (#960) (90903c7)
  • dispose HttpRequestMessage instances in Arr and Rclone clients (2b9fea5)
  • explore: deleting files from Explore now keeps history, caches, and symlinks consistent (#940) (afdfc35)
  • guard nullable dereferences flagged by code quality analysis (fee498a)
  • let shutdown cancellation escape per-item service loops (855d842)
  • par2: propagate cancellation instead of returning partial parse (8e42832)
  • prevent integer overflow before double conversion in sampling math (dcb95b2)
  • prevent Path.Combine from silently dropping base directories (4490098)
  • queue: mount every episode from season packs of split video files (#977) (7f7f0ad)
  • queue: queue items no longer stall and cancel at 50% on obfuscated releases (#974) (4c2657f)
  • queue: season packs with per-episode par2 files now get correct episode filenames (#941) (4c1a605)
  • rclone: mounts no longer show stale files after a temporary rclone outage (#923) (ecd06ab)
  • resolve code-quality findings — resource leaks, null safety, and cancellation handling (32ba80e)
  • sab: queue and history no longer return empty when clients send limit=0 (#924) (d4b90cc)
  • sab: return 400 for malformed nzo_ids in history requests (#921) (21df339)
  • sharpcompress: resolve CodeQL findings in zstd unsafe code and buffer pool tests (#920) (2ad35b6)
  • sharpcompress: stop 7z archives with empty files crashing processing (#952) (4c4a3d9), closes #948
  • simplify constant conditions and redundant LINQ in queue and Arr clients (91f4b6f)
  • support: support pack fields now use consistent camelCase names (#903) (4a39e11)
  • ui: accept empty-string dropdown values and normalize empty categories (#972) (9d187ee), closes #970
  • ui: plain HTTP requests to /ws now get a clean 426 and a proxy hint instead of a stack trace (#957) (cab5f4c)
  • ui: player checks the source before reporting a file as unplayable; missing payloads no longer 500 or trigger repair (#963) (1102737)
  • ui: player now says which codec your browser is missing instead of blaming the file type (#955) (3f7a0f2)
  • ui: show the real error instead of looping “Connecting to InfiniDysk” when a page fails to load (#975) (663b6f1)
  • usenet: providers stop flapping at 60-second cooldowns when health checks run (#885) (e779551), closes #881
  • usenet: stop 502 connection-limit retry loops by learning the provider’s real connection cap (#916) (e0c8a1b)
  • usenet: stop prefetch batch size from flapping during bursty reads (#933) (c353999)
  • watchtower: propagate caller cancellation in episode enumeration (24f2d07)
  • webdav: directory listings no longer appear empty in rclone v1.74+ (#927) (e2e744e)
  • webdav: return valid HTTP-date timestamps for virtual .ids directories (#967) (e9014aa), closes #965
  • webdav: Sonarr/Radarr imports no longer fail with “Permission denied” on default settings (#961) (f2ab8f0)
  • webdav: stop duplicate missing-article warnings for filenames with accented characters (#926) (6c4d998)
  • webdav: streams that end early no longer trigger unhandled Kestrel errors (#968) (d76189a)
  • webdav: write-stall watchdog timeouts no longer mislabeled as backend read deadlines in logs (#951) (49e2a8a)

1.0.1

Features

  • queue: allow up to 10 concurrent queue downloads (#879) (46cf29d)

Bug Fixes

  • build: attach legacy nzbdav-named release archives for DUMB compat (#877) (b8c3ba0)
  • deps: Bump the npm-minor-and-patch group (#875) (2e1ea34)
  • streaming: Article RAM no longer stays pinned at the cap after scrubbing (#876) (b2617d2)
  • ui: normalize provider usage join keys to MetricsKey form (#871) (a45f622)
  • usenet: fetch errors now show their real cause instead of “Other (unclassified)” (#878) (45d27cf)

Chores

1.0.0

⚠ BREAKING CHANGES

  • build: GitHub release asset filenames and rolling rc download URLs now use the infinidysk- prefix instead of nzbdav-.
  • the canonical container image moved to ghcr.io/infinidysk/infinidysk (mirror: docker.io/infinidysk/infinidysk). The old ghcr.io/nzbdav/nzbdav path keeps receiving releases during a transition period and old tags stay pullable, but operators should switch the image name; /config and all settings carry over unchanged.

Features

  • docker: dual-publish images to the legacy ghcr.io/nzbdav/nzbdav namespace (#826) (f0f6d75)
  • rename project to InfiniDysk (#828) (a932924)

Bug Fixes

  • build: keep dev images on the dev update track (#845) (5554750)
  • build: rename release archives to infinidysk (#833) (7025741)
  • deps: Bump the github-actions group with 3 updates (#838) (a53e4e6)
  • deps: Bump the npm-minor-and-patch group (#837) (dc14fc2)
  • deps: Bump the npm-minor-and-patch group (#867) (07a8eac)
  • deps: Bump zensical from 0.0.51 to 0.0.52 in the docs-python group (#866) (94eb76d)
  • docker: publish dev images with release candidates (#834) (26a449e)
  • health: stalled library checks release provider resources (#844) (53fe5f6)
  • nntp: slow providers stay sidelined for their full cooldown (#842) (42aefdd)
  • sab: prevent unsafe backup paths and play redirects (#847) (731c31e)
  • streaming: reserve article memory before download admission (#843) (03d5378)
  • ui: explain unavailable stale explore links (#846) (5f13efa)
  • ui: join provider usage stats by identity during cascade reorder (#869) (ed8de9d)