emulebb-rust API And UI Policy¶
This task-routed annex applies only to /api/v1, REST routes, DTOs, OpenAPI,
controllers, or the embedded SPA WebUI.
- The forward
/api/v1contract underdocs\products\emulebb-rust\apiis authoritative. The frozen MFC REST contract is not a forward-compatibility constraint. /api/v1is explicitly unstable through the Client, Indexer, and Arr phases. Its compatibility promise begins only at the deliberate post-Arr contract freeze; do not preserve an inferior beta shape merely because it shipped.- Route or DTO changes evolve daemon code, OpenAPI, validators, embedded SPA models, and tests together. Do not add speculative aliases or legacy shapes.
- Organize the first-party contract around durable system/settings, network, unified search/result, transfer, library/sharing, and index domains. Live, indexed, and hybrid results share one provenance-bearing canonical model.
- Future Torznab and qBittorrent routes use their native paths on the same HTTP listener but translate through canonical services. They do not own parallel transfer or index state. The qBittorrent adapter implements only the subset required by supported Arr workflows.
- The embedded SPA is an operations console. Do not grow a desktop-GUI mirror or an internal automation-rule engine; external controllers own selection, scheduling, and post-processing.
- The supported listener default is LAN-reachable with authentication. Every first-party and compatibility route family requires explicit authentication and bounded request handling appropriate to that protocol.
- Do not bump
apiVersionor RESTcontractVersionwithout a deliberate contract-freeze or release-boundary decision.