Skip to content

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:

All live reports must show the workspace live-network policy: BindInterface=hide.me, empty P2P BindAddr, and P2P UPnP enabled.