0.7.3 Controller Surface Matrix¶
This matrix defines the controller API surface that must stay green before the
current 0.7.3 RC can be tagged. It covers the release-facing API and controller
integrations only; Source Exchange protocol validation is tracked by the
search/server/Kad parity gates.
The /api/v1 surface has two contract lineages (see
API-V1-COMPATIBILITY): emulebb-mfc is stable on its
0.7.3 OpenAPI contract, while emulebb-rust owns its separate forward Rust
contract. TrackMuleBB is archived. aMuTorrent is the frozen controller
bundled with MFC 0.7.3 and remains historical compatibility proof only.
Proof Command¶
Run the focused controller-surface gate from the build orchestrator checkout:
cd $env:EMULEBB_WORKSPACE_ROOT\repos\emulebb-build
python -m emule_workspace test live-e2e --profile controller-surface --fail-fast
This profile is separate from beta-green so the short backend green run stays
fast, while controller compatibility still has a named release proof.
Surface Matrix¶
Native REST /api/v1¶
Public role:
trusted local controller API. For 0.7.3, emulebb-mfc is validated against the
frozen emulebb-mfc OpenAPI contract. emulebb-rust is validated independently
against its forward Rust OpenAPI contract.
Required proof:
rest-api passes OpenAPI/registry parity, safe route coverage, typed JSON
success/error envelopes, destructive intent checks, and smoke stress against the
relevant product contract.
qBittorrent-Compatible /api/v2¶
Public role: Arr download-client adapter. This is the Arr-needed qBit subset only, not a full qBittorrent Web API clone.
Required proof:
rest-api, Radarr, and Sonarr prove qBit login, add, info, properties, files,
category mutation, pause/resume, and delete behavior with adapter-local
text/session errors.
Torznab-Compatible API¶
Public role: Prowlarr indexer adapter consumed directly and synced into Radarr/Sonarr.
Required proof: Prowlarr, Radarr, and Sonarr prove category-aware search, API-key handling, feed behavior, synced indexers, and redacted live-wire diagnostics.
Controller consumers¶
Public role:
aMuTorrent is the frozen browser-UI controller bundled with 0.7.3. It
consumes native /api/v1 and must not drive native route aliases or adapter
quirks. TrackMuleBB is archived and has no forward validation lane.
Required proof:
amutorrent-browser-smoke proves the legacy 0.7.3 bundle path (connection
state, categories, searches, transfers, shared files/directories, uploads,
transfer detail hydration, and add/delete). There is no TrackMuleBB release
gate.
Closeout Evidence¶
After each closeout run, record the current artifact paths in:
- AMUT-001 and AMUT-002 for the legacy aMuTorrent controller path
- ARR-001 for Prowlarr/Radarr/Sonarr and qBit-compatible flows
- CI-024 for controller replay status
- CI-025 for native REST and adapter contract drift
- RELEASE-0.7.3-CHECKLIST before tagging
All live reports must show the workspace live-network policy:
BindInterface=hide.me, empty P2P BindAddr, and P2P UPnP enabled.