- Add local BitTorrent fixture verification through aria2 JSON-RPC to prove exactly one active torrent has all bytes available and seeder port is reachable
- Implement anonymous registry pulls and full Server runtime smoke tests on native runners before platform metadata upload
- Bind each platform record to exact version, source commit, workflow run and attempt, native runner identity, raw OCI index hash, image manifest, attestation manifest, provenance, and SPDX SBOM
- Recheck both immutable version tags immediately before finalization with recovery logic to resume identical results or repair missing registries
- Sign final index digest with protected tag-workflow identity and verify signatures anonymously before running public runtime smoke tests
- Implement ground-up desktop rebuild with Electron 43, React 19, and TypeScript 7 featuring customizable Dashboard, dark mode, cross-platform application menu, and improved task-inspector feedback
- Add host-neutral download core supporting both desktop app and Node/Web Server with SQLite session recovery, tracker management, UPnP/NAT-PMP, HTTP, FTP, BitTorrent, and magnet support
- Implement MDXP-based integration for official CLI and browser handoff including local discovery and device-code pairing for remote Server instances
- Add QuickJS plugin sandbox with capability consent, bundled builtin plugins, and in-app plugin marketplace
- Publish persistent multi-platform Server containers for NAS and home-server deployments after complete native architecture verification
- Implement strict platform-keyed validation that fails closed on missing, unexpected, multiple, ambiguous, or conflicting platform data before metadata acceptance
- Push each successful platform only by untagged content-addressed OCI digest to Docker Hub and GHCR, preventing single architecture from becoming official release independently
- Require single finalize job to proceed only after complete amd64/arm64 build set succeeds with rejection of missing, duplicate, unexpected, cross-wired, shared, or future-attempt digests
- Require Docker Hub and GHCR to expose identical final index digest, platform manifests, and attestation manifests with max-level BuildKit provenance validation
- Restrict Snap beta publication to source validation only, skipping Snap artifact builds and Store revision uploads
- Repair container checks for linux/amd64 and linux/arm64 platforms with improved validation of Docker Buildx flat image configuration and platform metadata
Motrix 2.0.0-beta.16
English | 简体中文
Motrix 2.0.0-beta.16 is the next Motrix Turbo beta intended for public
distribution only after every protected release gate passes. It repairs the
two independent fail-closed container checks observed during beta.15 without
moving or reusing the immutable v2.0.0-beta.15 tag.
The beta.15 historical record documents the successful desktop, GitHub prerelease, and R2 distribution, the two successful native container builds, and the incomplete container result.
Container inspection and smoke recovery
- Builds
linux/amd64onubuntu-22.04andlinux/arm64onubuntu-22.04-arm. Each job verifies its GitHub-hosted Linux runner and native architecture before Buildx starts. The container release path does not install or invoke QEMU. - Validates Docker Buildx's documented flat image configuration for a single-platform source and the platform-keyed form used by multi-platform inspection. Missing, unexpected, multiple, ambiguous, or conflicting platform data fails closed before metadata can be accepted.
- Makes the local BitTorrent fixture prove through aria2 JSON-RPC that exactly one active torrent has all bytes available, then proves the seeder port is reachable from the Server container before creating the real download task. Tracker mutation is exercised only after the transfer and file hash pass; bounded failures report task, tracker, peer, and byte-progress diagnostics.
- Pushes each successful platform only by its untagged, content-addressed OCI digest to Docker Hub and GHCR. A single architecture never receives the public version tag and cannot become the official release on its own.
- Anonymously pulls the exact staged digest from both registries and runs the full Server runtime smoke on its native runner. Immutable platform metadata can be uploaded only after both registry smokes succeed.
- Binds each platform record to the exact version, source commit, workflow run and attempt, native runner identity, raw OCI index hash, image manifest, attestation manifest, provenance, and SPDX SBOM.
- Allows one finalize job to proceed only after the complete amd64/arm64 build set succeeds. It rejects missing, duplicate, unexpected, cross-wired, shared, or future-attempt digests before creating either versioned index.
- Rechecks both immutable version tags immediately before finalization. A clean run creates both indexes from the verified platform digests; a rerun resumes an identical complete result or repairs one missing registry from the verified existing index. Any conflicting immutable tag fails closed.
- Requires Docker Hub and GHCR to expose the same final index digest, platform manifests, and attestation manifests. It validates max-level BuildKit provenance, the exact source revision and builder run, and a non-empty SPDX SBOM for both architectures before signing.
- Signs each final index digest with the exact protected tag-workflow identity, verifies both signatures anonymously, and then runs the full public runtime smoke on native amd64 and arm64 runners against both registries.
- Stable floating aliases are handled by the final recovery-safe job only after
every build, index, signature, provenance, SBOM, anonymous pull, and runtime
gate succeeds. Beta releases publish only their immutable version tag, so
beta.16 does not update
latest,stable, or another stable alias.
The GitHub prerelease, R2 update feed, container registries, and Snap Store remain independently gated publication channels. Their individual safety and recovery rules are strict, but this release does not claim cross-channel atomicity.
Snap beta policy
Snap is not part of the beta.16 distribution. Protected prerelease Snap runs
stop after source validation, so they do not build Snap artifacts, upload Store
revisions, or change latest/edge. Stable Snap publication retains its
complete two-architecture verification and protected Store gates.
Highlights
- A ground-up desktop rebuild with Electron 43, React 19, and TypeScript 7, including a customizable Dashboard, dark mode, a cross-platform application menu, and clearer task-inspector feedback.
- One host-neutral download core for both the desktop app and the Node/Web Server, with SQLite session recovery, tracker management, UPnP/NAT-PMP, and HTTP, FTP, BitTorrent, and magnet support.
- MDXP-based integration for the official CLI and browser handoff, including local discovery and device-code pairing for remote Server instances.
- A QuickJS plugin sandbox with capability consent, bundled builtin plugins, and an in-app plugin marketplace.
- Persistent multi-platform Server containers for NAS and home-server deployments, published only after the complete native architecture set and every public verification gate pass.
Before testing
This is prerelease software. Back up your existing Motrix application data and downloads before installing it. Migration from Motrix v1 data has not yet been validated, so do not use your only copy of v1 data with this beta.
When practical, test v2 in parallel using a separate OS account, machine, or Docker data directory. Do not rely on this beta for your only copy of important downloads.
What to test
- HTTP, FTP, BitTorrent, and magnet downloads, including pause/resume and session recovery
- Desktop integrations, browser and CLI handoff through MDXP, and sandboxed plugins
- Headless Server deployment, persistent storage, remote pairing, and native amd64 and arm64 container images
Planned downloads after release gates pass
| Distribution | Architectures | Planned output |
|---|---|---|
| macOS 12 or later | arm64 (Apple Silicon), x64 (Intel) | DMG and ZIP |
| Windows | x64 | Unsigned NSIS installer (.exe) and ZIP |
| Linux | x64, arm64 | DEB and RPM |
| Flatpak Native Host companion | linux/x64, linux/arm64 | Motrix-Native-Host-2.0.0-beta.16-linux-<arch>.tar.gz |
| Docker Hub / GHCR | linux/amd64, linux/arm64 | Immutable 2.0.0-beta.16 tag in both registries |
| Snap Store | — | Not published for this beta |
After every container gate passes, the versioned image references will be
docker.io/motrixapp/motrix-server:2.0.0-beta.16 and
ghcr.io/agalwood/motrix-server:2.0.0-beta.16. See the
Docker Server deployment guide
for storage, networking, and upgrade guidance.
Known distribution limits
- AppImage is not published for this beta.
- Flatpak is validated separately and is not published by the release tag; the GitHub prerelease includes its Native Host companion archives.
- Windows
arm64and all 32-bit packages are not available. - Windows packages are unsigned and may trigger a Windows SmartScreen warning. Download them only from the official GitHub prerelease after it is published.
- Beta container tags are immutable and do not update
latest,stable, or other stable floating tags. - Snap is not published for this beta. Prerelease Snap runs stop after source validation without building or publishing Snap artifacts.
Feedback
Please report reproducible problems through GitHub Issues. Include your operating system, architecture, package type, and the steps needed to reproduce the issue.
What's Changed
- fix(release): accept Buildx platform output and stabilize seed smoke by @agalwood in https://github.com/agalwood/Motrix/pull/1866
Full Changelog: https://github.com/agalwood/Motrix/compare/v2.0.0-beta.15...v2.0.0-beta.16