Skip to content

Releases: TheDancingDeveloper-org/rustnzb

rustnzb v1.3.9

Choose a tag to compare

@thedancingdeveloper thedancingdeveloper released this 28 Jul 22:40
1fbe36a

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

Choose a tag to compare

@thedancingdeveloper thedancingdeveloper released this 27 Jul 10:54
0033308

What's Changed

Full Changelog: v1.3.7...v1.3.8

rustnzb v1.3.7

Choose a tag to compare

@thedancingdeveloper thedancingdeveloper released this 27 Jul 00:51
72ac042

What's Changed

New Contributors

Full Changelog: v1.3.6...v1.3.7

rustnzb v1.3.6

Choose a tag to compare

@thedancingdeveloper thedancingdeveloper released this 23 Jul 03:18
66d27a8

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 unrar 7.2.3 binary, with the required runtime libraries. RAR extraction no longer falls back to Alpine 7z builds that lack RAR support.
  • The release smoke test validates unrar against 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-dispatch engine with CI boundary enforcement.

Verification

  • Merged fix: 66d27a8
  • Source issue: #12
  • Full workspace Rust tests, Clippy, formatting, and frontend tests passed before release.
  • Multi-architecture GHCR image published and verified for Linux amd64 and arm64.

rustnzb v1.3.5

Choose a tag to compare

@thedancingdeveloper thedancingdeveloper released this 22 Jul 12:18

What's Changed

New Contributors

Full Changelog: v1.3.4...v1.3.5

rustnzb v1.3.4

Choose a tag to compare

@AusAgentSmith AusAgentSmith released this 18 Jul 23:31

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.par2 spelling are now
    recognized alongside traditional volNN+NN.par2 files 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/status response adds an nntp_connections field; existing clients
    can ignore it.
  • Existing container mounts and configuration remain compatible. Operators
    should upgrade normally by pulling v1.3.4 or latest after publication.

Bundled shared-crate versions

  • nzb-core 0.2.16
  • nzb-decode 0.1.2
  • nzb-dispatch 0.2.6
  • nzb-news 0.1.12
  • nzb-nntp 0.2.22
  • nzb-postproc 0.2.6
  • nzb-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

Choose a tag to compare

@AusAgentSmith AusAgentSmith released this 12 Jul 09:49

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 pulling v1.3.3 or latest after publication.

Bundled shared-crate versions

  • nzb-core 0.2.16
  • nzb-decode 0.1.2
  • nzb-dispatch 0.2.6
  • nzb-news 0.1.12
  • nzb-nntp 0.2.22
  • nzb-postproc 0.2.6
  • nzb-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

Choose a tag to compare

@AusAgentSmith AusAgentSmith released this 11 Jul 22:53

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 pulling v1.3.2 or latest after publication.

Bundled shared-crate versions

  • nzb-core 0.2.16
  • nzb-decode 0.1.2
  • nzb-dispatch 0.2.6
  • nzb-news 0.1.12
  • nzb-nntp 0.2.22
  • nzb-postproc 0.2.6
  • nzb-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

Choose a tag to compare

@AusAgentSmith AusAgentSmith released this 11 Jul 04:11

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 pulling v1.3.1 or latest after publication.

Bundled shared-crate versions

  • nzb-core 0.2.16
  • nzb-decode 0.1.2
  • nzb-dispatch 0.2.6
  • nzb-news 0.1.12
  • nzb-nntp 0.2.22
  • nzb-postproc 0.2.6
  • nzb-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

Choose a tag to compare

@AusAgentSmith AusAgentSmith released this 10 Jul 21:51

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/status now 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 shared OTEL_ENABLED and 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 under apps/rustnzb/ and crates/.
  • CI tasks run in digest-pinned toolchain images through the checked-in
    ./ci/run interface.
  • 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 update dev; only a tag advances latest.

Bundled shared-crate versions

  • nzb-core 0.2.16
  • nzb-decode 0.1.2
  • nzb-dispatch 0.2.6
  • nzb-news 0.1.12
  • nzb-nntp 0.2.22
  • nzb-postproc 0.2.6
  • nzb-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 example cargo build -p rustnzb --release --features webdav. The
    application source and configuration example moved to apps/rustnzb/, and
    shared crates moved to crates/.
  • The root [patch.crates-io] entries are intentional. Keep them when building
    with WebDAV so external nzbdav-* dependencies use the workspace nzb-*
    implementations.
  • Container deployments should retain the existing /config, /data, and
    /downloads mounts. Back up configuration and data before upgrading as with
    any production release.
  • Operators pinning immutable development images may keep their current SHA.
    v1.3.0 and latest refer 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/.