8c3e1c4a924c63ed1b099395f76110c7b963e954
A size band is now a rate: floor and target scale by the series' minutes per episode against a 45-minute reference, so a short-form show is no longer judged against an hour of video. Shipped band values are unchanged — the reference runtime is chosen so they keep their meaning. A missing runtime scales by one, and movies are never scaled. A size rejection can also be waived. The override relaxes the floor for one title into a waiver rather than lifting it, so the release stays out of automatic grabbing and imports on the record (§5.7). The runtime migration is numbered 0026 to leave 0024 and 0025 to the concurrent subtitles milestone; two files claiming one version do not conflict in git and would have reached main unnoticed. Closes #208, #209, #210
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.9%
TypeScript
13.2%
Python
1.4%
CSS
0.5%
Shell
0.2%
Other
0.7%