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 follows the one capability-gated contract model (see API-V1-COMPATIBILITY): the frozen eMuleBB MFC client advertises the core.* subset and answers GET /api/v1/capabilities (FEAT-122); emulebb-rust is the forward superset. The forward controller is TrackMuleBB, which drives any core by advertised capability; aMuTorrent is the frozen controller bundled with 0.7.3 (legacy 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. The MFC advertises the core.* subset of the one capability-gated contract (plus GET /api/v1/capabilities for discovery); TrackMuleBB negotiates capabilities and calls only advertised operations.

Required proof: rest-api passes OpenAPI/registry parity, safe route coverage, typed JSON success/error envelopes, destructive intent checks, smoke stress, and the /capabilities discovery response.

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: TrackMuleBB is the forward cross-network controller — a generic /api/v1 + /capabilities consumer that never special-cases a product. aMuTorrent is the browser-UI controller bundled with 0.7.3 (actively maintained until 0.7.3 final, then frozen and replaced by TrackMuleBB in the 0.8.* program); it consumes native /api/v1 and must not drive native route aliases or adapter quirks.

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). TrackMuleBB capability negotiation is validated as it lands (forward, not a 0.7.3 release blocker).

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.