73f521ee17348bd2d0979c4838add520c5eb6885
The reconcile loop extracts only while it is already translating a gap, so on a file where nothing is missing no sidecar is ever written and the panel's translate lane reports "nothing to translate from" about a file carrying an English text track. §15 treats a manual action as bypassing the wanted set, not as depending on it. The status endpoint now joins the codec in from `media_files.probed` and lists the extractable text tracks; the panel offers them in the source picker and writes one out when it is picked. Refs #260 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
arr
One service that replaces Radarr and Sonarr, and later Bazarr, for a single household.
Five .NET services idle at 600-900 MB to run a loop with four steps in it: decide what you want, find it, fetch it, put it where Jellyfin can read it. Each has a configuration surface an order of magnitude larger than the subset anyone uses, and none of them share a model.
This is that loop, once, in Rust.
- Prowlarr stays — it owns tracker auth, Cloudflare bypass and the indexer definitions, and replacing it buys nothing.
- Transmission stays.
- Jellyseerr stays, talking to a thin Radarr-compatible shim.
Status
Design complete, implementation not started. See DESIGN.md for the contract
and the issue tracker for the work.
Documents
DESIGN.md— the contract. Domain model, policy engine, sourcing, import, crate layout, build order.CLAUDE.md— repository conventions, label taxonomy, and how an autonomous driver session should sequence the work.
Languages
Rust
83.4%
TypeScript
11.5%
CSS
1.9%
Python
1.4%
HTML
1%
Other
0.8%