Skip to content

v2.31.0

Latest

Choose a tag to compare

@Viren070 Viren070 released this 14 Jul 20:08
1ef423a

2.31.0 (2026-07-14)

Features

  • add newznab/torznab indexer endpoints (5e5ee1c)
  • add option to enable failover during pre-caching (#1038) (bc42579)
  • altmount: use native /api/nzb/streams API instead of SABnzbd+WebDAV (#1023) (8886054)
  • builtins/easynews-search: attach probed media info and support v3 api (df1539e)
  • builtins/nab: add configurable season pack search strategy for auto-mode series search (#1061) (46eb329)
  • builtins: adjust for aiostreams service (7dabf46)
  • config: alias renamed setting keys to preserve DB-stored values (9b60a13)
  • config: support multiple env names (6a2c31d)
  • config: usenet configuration schema & env metadata (163198f)
  • core: add full-pipeline stream result cache (#1075) (a0a82c9)
  • core: consolidate env vars, user-agent & proxy settings (eecfdbe)
  • core: shared utils for usenet (xml, disk-backed cache, caches) (6e191f0)
  • dashboard/usenet: move actions into dropdown menu, add requeue action, allow bulk requeue and block (4910054)
  • dashboard/usenet: show hostname and full nzb url on hover (aa2eec5)
  • dashboard/usenet: show nzb url in entry info modal (8802e6f)
  • dashboard: add action menu to usenet settings page (47cbf20)
  • dashboard: add command palette (#1095) (55b1412)
  • dashboard: add confirmation dialog to clear all overrides (41e20a2)
  • db: usenet persistence (migrations & repositories) (d2a490f)
  • debrid: usenet streaming & aiostreams provider (25d33c9)
  • deduplicator merging, allow adding duplicates to failover list, allow external debrid addons for failover targets. fix proxying for failover targets (dafbd53)
  • formatter: add stream.preloading variable for preload streams transparency (79c6e28)
  • frontend: add logo and link to some compatible clients in install page (fce8d42)
  • frontend: simplify provider ordering/grouping (d978aaa)
  • frontend: UI primitives & dashboard wiring (a72e945)
  • frontend: usenet dashboard (c0c3ae9)
  • main: make failover generic, parallel and cross-type (8aa62d7)
  • make log level and format runtime settings (f4240df)
  • move result limiting after SEL (b4d513c)
  • presets: add davex preset (a7596d8)
  • proxy: serve nzbs from download manager (3a5258e)
  • release-blocklists: add publishing page with gist provider (e052cad)
  • release-blocklists: move public export settings to publishing page (31fc06a)
  • release-blocklists: shareable verdicts for dead and fake releases (#1086) (41e20a2)
  • remove unused nzb proxy (5c14d71)
  • server: usenet & dashboard API routes (203ae49)
  • usenet/archive: 7-Zip reader (LZMA) (03ad62a)
  • usenet/archive: archive core (random-access fs, volumes, streams) (8973ff0)
  • usenet/archive: crypto (AES, RAR/7z KDF) (c3472aa)
  • usenet/archive: opener & set resolution (3081055)
  • usenet/archive: RAR reader (rar4 & rar5) (818c878)
  • usenet/inspect: availability inspection & probing (6faefe9)
  • usenet/integration: integration layer (engine, library, sessions, dashboard adapters) (28e2aa4)
  • usenet/nntp: NNTP protocol & connection pool (b5157be)
  • usenet/nzb: NZB parsing module (74b3c48)
  • usenet/par2: PAR2 decoding (f211d17)
  • usenet/pool: improve affinity handling (d81acdd)
  • usenet/pool: segment pool & streaming primitives (cce9175)
  • usenet/pool: yEnc decoding (bd4efd5)
  • usenet/sabnzbd: SABnzbd-compatible API (8345a7b)
  • usenet/stats: stats accumulation (ca70c59)
  • usenet: add configurable pre-playback verify mode (stat/body) (873208f)
  • usenet: add delete all button to library (#1034) (d88a774)
  • usenet: add inspect scheduler with max concurrent imports (187e4aa)
  • usenet: add stream stop button and idle-timeout setting (bffcd97)
  • usenet: census verifier and zero-fill hole padding (57c6444)
  • usenet: remove default pipeline depth setting (e6eaeba)
  • usenet: remove fail archive options (d60a9ce)
  • usenet: store library aliases and key purely by content hash (187e4aa)
  • usenet: stream dashboard live stats and ease between frames (713abaa)

Bug Fixes

  • adjust header handling (b7f8623)
  • anime-database: resolve season 1 to the first cour for TV-less shows (10f4f38)
  • api/user: dont allow encrypted password for user API (2852d01)
  • builtins/easynews-search: default to 3.0 and add search concurrency of 2 to 2.0 (1b0c05b)
  • builtins: convert parsedMediaInfo duration from seconds to ms when applying to streams (df61254)
  • command-palette: scroll to the selected setting on mobile with accordions (8de1582)
  • dashboard/usenet: show toast on non .nzb file upload (b24fc13)
  • dashboard: adjust usenet library layout (e3856e6)
  • disk-backed-cache: await disk ready on get (134156a)
  • disk-backed-cache: periodically flush index and on server shutdown (843f926)
  • failover: improve external target probing heuristics (351560a)
  • filterer: handle 0 in season/episode matching (efca9a6)
  • frontend: description adjustments (cc552af)
  • main: mutate original stream when marking preloading (f64cfe1)
  • media-info: derive resolution from both dimensions and map more real-world codec aliases (1daca60)
  • media-info: ensure duration is in seconds (aeb2898)
  • presets/easynewsSearch: valdiate easynews service credentials (5a98930)
  • presets/newznab: move Season Pack Strategy option next to Search Mode (#1093) (20100f6)
  • presets/usenetStreamer: parse smart play into stream.message (2237165)
  • proxy: pass nzb_grabs context to shouldProxy and resolveOverrideHeaders for nzb type (#1046) (26d9601)
  • sel: update service list in whitelist and error message for service() (#1043) (231a8cb)
  • server: add unhandled exception/rejection net (9ee6afc)
  • update link to docs (c077dd1)
  • use special header for ip forwarding (8fa6cad)
  • usenet/archive: group obfuscated multi-volume archives with per-volume random base names (d19e90a)
  • usenet/archive: order RAR volumes by RAR5 header volume number, not filename (f4919c2)
  • usenet/nzb: harden subject parsing (06513a2)
  • usenet: attribute archive-set missing-article failures to the actual failing volume (82226ae)
  • usenet: check plausibilty of yenc size (892e25a)
  • usenet: destroy live readers and drop warm sessions on engine close (47ef36e)
  • usenet: fetch by message-id only, never send GROUP (e5e1f82)
  • usenet: improve connection handling and connection/download stat display (089aa47)
  • usenet: include password hmac in fingerprint (bcf36cc)
  • usenet: invalidate warm engines on config change (bcf36cc)
  • usenet: make archive crypt errors generic and use in sevenzip (30e82d8)
  • usenet: make error classification more robust (bcf36cc)
  • usenet: measure latency separately (958777f)
  • usenet: measure only DATE command latency (#1035) (37ff5f0)
  • usenet: mint extension-less stream urls for cloudflare compatibility (#1070) (d0cf369)
  • usenet: prefer to size archive volumes by par2/part-grid (b0f2473)
  • usenet: prevent crashes from unhandled rejections and post-EOF stream errors (9fe2b68)
  • usenet: recover from transient provider failures (bcf36cc)
  • usenet: redesign provider speed test (daddc7a)
  • usenet: share the archive boundary-segment memo per VolumeSet (4fd2e8f)
  • usenet: stop obfuscated split-7z inference from absorbing par2 sidecars (1e98a8e)
  • usenet: stream RAR5 -p encrypted splits with non-16-aligned volume fragments (39464b2)
  • usenet: throw on externally-aborted inspect (705d66c)
  • usenet: truncate rar passwords to 127 chars, cap archive passwords at 512 (23d9f0c)
  • usenet: use name from meta (f809046)

Performance Improvements

  • docker: preload mimalloc (cbee416)
  • usenet/nzb: byte-level segment scanning and chunked hashing (e546e8b)
  • usenet: lean yEnc decode with pooled output buffers (7aacb4b)
  • usenet: rework connection budget and make the segment cache disk-only (cab8322)
  • usenet: scale archive windows with read-ahead and cancel stale queued downloads (2735fb2)
  • usenet: suffix-anchor near-EOF reads for lazy split-RAR streams (1a0c1b7)
  • usenet: zero-alloc onread NNTP read path (01e3332)
  • usenet: zero-alloc serve path with a pinned segment arena (d9f6b9c)