Releases: TheDancingDeveloper-org/rustnzb
Release list
rustnzb v1.3.9
Highlights
- Reuses bounded per-connection buffers for NNTP article bodies to reduce allocation overhead and improve sustained throughput.
- Defaults NNTP pipelining to four requests for better throughput.
- Improves CI cache startup handling when Redis is still becoming ready.
Downloads
The release includes Linux amd64 and arm64 packages, Linux amd64 and arm64 archives, a Windows installer, and SHA256 checksums.
Full Changelog: v1.3.8...v1.3.9
rustnzb v1.3.8
What's Changed
- docs: clean public repository documentation by @thedancingdeveloper in #35
- docs: make public documentation GitHub-first by @thedancingdeveloper in #36
- fix: restore dispatch fairness and provider status by @thedancingdeveloper in #37
- test: uplift coverage and CI quality gates by @thedancingdeveloper in #38
- release: v1.3.8 by @thedancingdeveloper in #39
- fix: remove global NNTP connection startup cap by @thedancingdeveloper in #41
Full Changelog: v1.3.7...v1.3.8
rustnzb v1.3.7
What's Changed
- ci: skip validation builds for Dependabot PRs by @AusAgentSmith in #15
- ci: detect all bot-authored dependency PRs by @AusAgentSmith in #16
- chore: remove Forgejo Cargo dependency by @thedancingdeveloper in #19
- chore: remove legacy Woodpecker config by @thedancingdeveloper in #20
- fix: make direct unpack and terminal cleanup reliable by @thedancingdeveloper in #25
- fix: extract nested archives safely by @thedancingdeveloper in #26
- fix: reject completed jobs without usable output by @thedancingdeveloper in #27
- fix: make benchmark evidence reproducible by @thedancingdeveloper in #28
- chore(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #13
- feat: add verified benchmark report by @thedancingdeveloper in #29
- release: v1.3.7 by @thedancingdeveloper in #32
New Contributors
- @AusAgentSmith made their first contribution in #15
- @dependabot[bot] made their first contribution in #13
Full Changelog: v1.3.6...v1.3.7
rustnzb v1.3.6
v1.3.6
This release fixes Docker RAR post-processing and download lifecycle reporting.
Fixed
- Docker runtime images now build and bundle a SHA256-pinned
unrar7.2.3 binary, with the required runtime libraries. RAR extraction no longer falls back to Alpine7zbuilds that lack RAR support. - The release smoke test validates
unraragainst a real RAR archive. - NNTP connection-pool usage now reports active article transfers; idle authenticated worker sockets no longer appear as 100% used.
- Transient provider circuit-breaker cooldowns no longer strand downloads in a paused state near completion; jobs remain retryable.
- Download dispatch is consolidated in the canonical
nzb-dispatchengine with CI boundary enforcement.
Verification
rustnzb v1.3.5
What's Changed
- ci: configure Forgejo Cargo registry by @thedancingdeveloper in #1
- ci: add protected image and release delivery by @thedancingdeveloper in #2
- ci: isolate quality jobs and authenticate image builds by @thedancingdeveloper in #4
- ci: preserve GHCR auth during runtime smoke by @thedancingdeveloper in #5
- ci: smoke images through the remote Docker network by @thedancingdeveloper in #6
- release: prepare v1.3.5 by @thedancingdeveloper in #11
- ci: keep website automation self-hosted by @thedancingdeveloper in #12
New Contributors
- @thedancingdeveloper made their first contribution in #1
Full Changelog: v1.3.4...v1.3.5
rustnzb v1.3.4
rustnzb v1.3.4
Summary
rustnzb 1.3.4 is a patch release that improves PAR2 compatibility and repair
diagnostics while making active-download and NNTP connection health visible in
the queue interface.
Fixes
- PAR2 recovery volumes using the common
volNN-NN.par2spelling are now
recognized alongside traditionalvolNN+NN.par2files during NZB parsing,
recovery-capacity calculation, verification, and post-processing. - Native PAR2 repair now reports insufficient recovery data before attempting
a repair that cannot cover the verified damage. - Failed extraction history includes a concise excerpt from the extractor's
error output, making archive and password failures easier to diagnose. - Active downloads now display their failed article counts directly in the
queue. - The server status endpoint now reports established NNTP sockets per provider,
and the queue displays live connection usage instead of an estimate. - Short-lived NNTP connections remain visible as a clearly marked recent value
for five seconds, so fast backup-provider cascades are not missed between UI
polling intervals.
Validation
- Regression tests cover hyphenated PAR2 filenames, recovery-volume ordering,
insufficient recovery capacity, established-socket accounting, recent
connection display, and failed-article queue rendering. - The locked Rust workspace, WebDAV release build, strict Clippy checks,
frontend unit suite, and deterministic browser tests are validated by the
release workflow.
Breaking changes and upgrade notes
- There are no intentional configuration, SQLite schema, or compatibility
changes. - The
/api/statusresponse adds annntp_connectionsfield; existing clients
can ignore it. - Existing container mounts and configuration remain compatible. Operators
should upgrade normally by pullingv1.3.4orlatestafter publication.
Bundled shared-crate versions
nzb-core 0.2.16nzb-decode 0.1.2nzb-dispatch 0.2.6nzb-news 0.1.12nzb-nntp 0.2.22nzb-postproc 0.2.6nzb-web 0.4.20
Downloads
- Linux x86_64:
rustnzb-v1.3.4-linux-x86_64.tar.gz - Linux aarch64:
rustnzb-v1.3.4-linux-aarch64.tar.gz - Windows x86_64 installer:
rustnzb-v1.3.4-windows-x86_64-setup.exe - Debian/Ubuntu amd64:
rustnzb-v1.3.4-amd64.deb - Debian/Ubuntu arm64:
rustnzb-v1.3.4-arm64.deb - Checksums:
SHA256SUMS-v1.3.4.txt - Docker:
ghcr.io/ausagentsmith-org/rustnzb:v1.3.4
All downloadable files are attached to both the Forgejo and GitHub releases
and are also published at https://dl.rustnzb.dev/v1.3.4/.
rustnzb v1.3.3
rustnzb v1.3.3
Summary
rustnzb 1.3.3 is a correctness-focused patch release for download completion,
provider-failure classification, PAR2 recovery accounting, and terminal job
handling. It prevents temporary provider or connection failures from being
reported as missing content and ensures incomplete downloads cannot enter
post-processing as successful jobs.
Fixes
- Article absence is now definitive only after every enabled provider returns
an explicit NNTP 430 response. Authentication, permission, timeout,
connection, protocol, and unavailable-provider failures remain transient. - Stale pipelined NNTP sessions reconnect after idle timeouts instead of
converting the affected articles into permanent failures. - Completion and hopeless-download decisions now account for usable PAR2
recovery blocks, unavailable recovery data, the configured safety reserve,
and the correct PAR2 set. - Jobs with failed content and no usable PAR2 data now finish as failures
instead of skipping verification and continuing through extraction. - Abort and completion paths have a single terminal owner, wait for in-flight
work to settle, and prevent post-processing from racing assembler writes. - Terminal queue removal and history persistence are idempotent, preventing
duplicate history rows and protecting active post-processing from removal. - Permission-denied NNTP responses receive the same provider cooldown as
authentication failures and retain their original failure classification. - The desktop release lockfile and placeholder frontend handling are refreshed
for reproducible CI builds.
Website and demo
- The project website has a new NNTP-transcript visual design and updated
product-focused documentation. - The interactive browser demo has richer sample data, a documented standalone
entry point, and an explicit exit control when served under/demo.
Validation
- Regression coverage exercises explicit provider absence, unavailable and
permission-denied providers, stale-session recovery, PAR2 capacity and safety
margins, single-owner aborts, post-processing removal, and idempotent history. - The locked Rust workspace, WebDAV feature build, strict Clippy checks,
frontend unit suite, dependency audit, and deterministic Playwright suite
pass for this release candidate.
Breaking changes and upgrade notes
- There are no intentional HTTP API, configuration, or SQLite schema changes.
- Existing container mounts and configuration remain compatible. Operators
should upgrade normally by pullingv1.3.3orlatestafter publication.
Bundled shared-crate versions
nzb-core 0.2.16nzb-decode 0.1.2nzb-dispatch 0.2.6nzb-news 0.1.12nzb-nntp 0.2.22nzb-postproc 0.2.6nzb-web 0.4.20
Downloads
- Linux x86_64:
rustnzb-v1.3.3-linux-x86_64.tar.gz - Linux aarch64:
rustnzb-v1.3.3-linux-aarch64.tar.gz - Windows x86_64 installer:
rustnzb-v1.3.3-windows-x86_64-setup.exe - Debian/Ubuntu amd64:
rustnzb-v1.3.3-amd64.deb - Debian/Ubuntu arm64:
rustnzb-v1.3.3-arm64.deb - Checksums:
SHA256SUMS-v1.3.3.txt - Docker:
ghcr.io/ausagentsmith-org/rustnzb:v1.3.3
All downloadable files are attached to both the Forgejo and GitHub releases
and are also published at https://dl.rustnzb.dev/v1.3.3/.
rustnzb v1.3.2
rustnzb v1.3.2
Summary
rustnzb 1.3.2 adds persistent download statistics, richer per-download
history insights, and selectable application themes. It also keeps long
failure details contained within the History view.
Features
- A new Statistics view reports download counts, transferred bytes, average
and fastest speeds, news-server hits, and article availability for the last
24 hours, 7 days, 30 days, and the lifetime of the installation. - Per-server statistics show transferred bytes, served and missing articles,
availability, and the most recent activity time. - History rows now expand into detailed download summaries with average speed,
article availability, per-server usage, processing stages, and recorded
errors. - History CSV exports now include average download speed.
- Settings now offers Rust dark, Midnight, and Daylight themes. The selected
theme is stored in the browser and restored on the next visit.
Fixes
- Long download names and failed-download error messages no longer widen or
wrap the History table unexpectedly; full values remain available through
tooltips and the expanded details panel.
Validation
- Unit coverage verifies theme persistence and the calculations and loading
behavior used by History details. - End-to-end coverage exercises the Statistics view, theme selection, History
details, average-speed display, and long failed-download messages.
Breaking changes and upgrade notes
- There are no intentional breaking HTTP API or configuration changes.
- The SQLite schema advances to version 7 with a compact, permanent download
statistics ledger. Migration is automatic, and retained history is imported
so existing installations begin with the statistics already available in
their database. - Existing container mounts and configuration remain compatible. Operators
should upgrade normally by pullingv1.3.2orlatestafter publication.
Bundled shared-crate versions
nzb-core 0.2.16nzb-decode 0.1.2nzb-dispatch 0.2.6nzb-news 0.1.12nzb-nntp 0.2.22nzb-postproc 0.2.6nzb-web 0.4.20
Downloads
- Linux x86_64:
rustnzb-v1.3.2-linux-x86_64.tar.gz - Linux aarch64:
rustnzb-v1.3.2-linux-aarch64.tar.gz - Windows x86_64 installer:
rustnzb-v1.3.2-windows-x86_64-setup.exe - Debian/Ubuntu amd64:
rustnzb-v1.3.2-amd64.deb - Debian/Ubuntu arm64:
rustnzb-v1.3.2-arm64.deb - Checksums:
SHA256SUMS-v1.3.2.txt - Docker:
ghcr.io/ausagentsmith-org/rustnzb:v1.3.2
All downloadable files are attached to both the Forgejo and GitHub releases
and are also published at https://dl.rustnzb.dev/v1.3.2/.
rustnzb v1.3.1
rustnzb v1.3.1
Summary
rustnzb 1.3.1 is a patch release that closes output file descriptors as soon
as a download finishes and corrects row-divider alignment in the History
table. It also includes release-pipeline reliability improvements made since
1.3.0.
Fixes
- Completed downloads now unregister their worker-pool job context and clear
assembler state before post-processing. This prevents output file
descriptors from accumulating across completed jobs and eventually
exhausting the process limit. - History-table action buttons now live in an inner flex container, preserving
the final cell's native table layout so row dividers remain aligned through
the last column. - Shared frontend build artefacts are serialized in CI to prevent concurrent
release jobs from overwriting one another. - Release recovery now uses immutable artefacts and no longer retains the
temporary recovery path used for the completed 1.3.0 publication.
Validation
- Regression coverage verifies that repeated completed jobs release all file
descriptors opened beneath their work directories. - The frontend component suite covers the History view and passes with the
corrected table structure.
Breaking changes and upgrade notes
- There are no intentional HTTP API, configuration, or SQLite schema changes.
- Existing container mounts and configuration remain compatible. Operators
should upgrade normally by pullingv1.3.1orlatestafter publication.
Bundled shared-crate versions
nzb-core 0.2.16nzb-decode 0.1.2nzb-dispatch 0.2.6nzb-news 0.1.12nzb-nntp 0.2.22nzb-postproc 0.2.6nzb-web 0.4.20
Downloads
- Linux x86_64:
rustnzb-v1.3.1-linux-x86_64.tar.gz - Linux aarch64:
rustnzb-v1.3.1-linux-aarch64.tar.gz - Windows x86_64 installer:
rustnzb-v1.3.1-windows-x86_64-setup.exe - Debian/Ubuntu amd64:
rustnzb-v1.3.1-amd64.deb - Debian/Ubuntu arm64:
rustnzb-v1.3.1-arm64.deb - Checksums:
SHA256SUMS-v1.3.1.txt - Docker:
ghcr.io/ausagentsmith-org/rustnzb:v1.3.1
All downloadable files are attached to both the Forgejo and GitHub releases
and are also published at https://dl.rustnzb.dev/v1.3.1/.
rustnzb v1.3.0
rustnzb v1.3.0
Summary
rustnzb 1.3.0 brings the application and its shared NZB crates into one
reproducible monorepo, substantially improves queue and history workflows, and
replaces the previous best-effort build path with pinned, containerized release
gates. The release includes native server packages for Linux x86_64, Linux
aarch64, and Windows x86_64, plus multi-architecture Docker images.
Highlights
Queue, history, and SABnzbd compatibility
- The Downloads view now combines active queue management with recent history,
clearer connection-pool information, responsive layout modes, and consistent
pause/resume state. - Queue entries can be reordered, and queue filters now remain aligned with the
global pause state. - Removing a failed or stalled job preserves its history record instead of
silently losing the failure context. - Post-processing state is reported through the SABnzbd-compatible API so
Sonarr, Radarr, and other clients receive an accurate status. - Duplicate row actions are guarded while requests are pending, and destructive
actions use a shared confirmation dialog.
Server and status controls
- NNTP connection timeout is configurable per server from the API and Settings
UI. Existing configurations continue to use the default when the field is
absent. /api/statusnow reports total disk capacity alongside available space.- Settings, history, RSS, groups, media, login, and first-run screens now share
the same icon, dialog, loading, feedback, and design-token behavior.
Telemetry, WebDAV, and desktop behavior
- OTLP logs and metrics can be enabled and routed independently while retaining
the sharedOTEL_ENABLEDand endpoint fallbacks. - Docker and standalone builds report their source ref through
RUSTNZB_BUILD_REF, making the running revision visible at runtime. - Media Library/WebDAV controls and queue layout behavior have been tightened.
- The Tauri desktop application now starts and uses the same application HTTP
server as the standalone build, avoiding a divergent desktop-only backend.
Reproducible build and release pipeline
- The application, frontend, mock NNTP server, and
nzb-*crates now live in a
single Cargo workspace underapps/rustnzb/andcrates/. - CI tasks run in digest-pinned toolchain images through the checked-in
./ci/runinterface. - Release gates cover formatting, compile checks, workspace tests, Clippy,
frontend tests and audit, desktop compilation, and the complete 85-test
Playwright suite. - The release matrix cross-builds Linux x86_64, Linux aarch64, and Windows
x86_64, packages both Debian architectures and a Windows installer, and
verifies the packages before publication. - Docker publishing now builds immutable candidates, smoke-tests the exact
pulled image (binary, health endpoint, embedded UI, build ref, 7-Zip, and
graceful shutdown), then promotes that digest to Forgejo and GHCR. - Tagged releases publish and verify amd64/arm64 manifests. Ordinary
main
pushes updatedev; only a tag advanceslatest.
Bundled shared-crate versions
nzb-core 0.2.16nzb-decode 0.1.2nzb-dispatch 0.2.6nzb-news 0.1.12nzb-nntp 0.2.22nzb-postproc 0.2.6nzb-web 0.4.20
Breaking changes and upgrade notes
- There is no intentional breaking HTTP API or SQLite schema change in this
release, and existing runtime configuration remains valid. - Source builds must now target the workspace package from the repository root,
for examplecargo build -p rustnzb --release --features webdav. The
application source and configuration example moved toapps/rustnzb/, and
shared crates moved tocrates/. - The root
[patch.crates-io]entries are intentional. Keep them when building
with WebDAV so externalnzbdav-*dependencies use the workspacenzb-*
implementations. - Container deployments should retain the existing
/config,/data, and
/downloadsmounts. Back up configuration and data before upgrading as with
any production release. - Operators pinning immutable development images may keep their current SHA.
v1.3.0andlatestrefer to the verified multi-architecture release image.
Downloads
- Linux x86_64:
rustnzb-v1.3.0-linux-x86_64.tar.gz - Linux aarch64:
rustnzb-v1.3.0-linux-aarch64.tar.gz - Windows x86_64 installer:
rustnzb-v1.3.0-windows-x86_64-setup.exe - Debian/Ubuntu amd64:
rustnzb-v1.3.0-amd64.deb - Debian/Ubuntu arm64:
rustnzb-v1.3.0-arm64.deb - Checksums:
SHA256SUMS-v1.3.0.txt - Docker:
ghcr.io/ausagentsmith-org/rustnzb:v1.3.0
All downloadable files are attached to both the Forgejo and GitHub releases
and are also published at https://dl.rustnzb.dev/v1.3.0/.