Tidy the leftovers from the Jellyfin client move #242

Open
opened 2026-08-25 10:30:19 +01:00 by naps62-yolo · 0 comments
Owner

Three leftovers from moving JellyfinClient out of arr-daemon into arr-api,
found in the integration review. None is urgent; all are cheap.

  • crates/arr-api/src/jellyfin.rs:1-2 and crates/arr-api/src/state.rs:163-164
    both cite "DESIGN.md §15" and describe "a manual subtitle grab or
    translation". DESIGN.md ends at §14, and arr-api holds no subtitle code.
    The sole consumer of AppState::jellyfin() is relocate.rs. The stated
    motivation for the move is not the code that landed. (§15 belongs to the
    subtitles branch, which is where that text came from.)
  • crates/arr-daemon/src/import.rs:30 now does
    use arr_api::jellyfin::JellyfinClient, so the daemon's import lane depends
    on the axum/OpenAPI crate to get an HTTP client. Every other outbound client
    has its own crate — arr-meta, arr-indexer, arr-dl. This was the
    cheapest place to put it, not the right one; arr-jellyfin would match the
    layout CLAUDE.md describes.
  • crates/arr-daemon/src/main.rs:126 and :299 build two independent
    reqwest::Clients, so two connection pools for one Jellyfin instance. The
    doc comment acknowledges it. Sharing one Clone is free.

Coordinate the crate move with the subtitles branch before doing it — both
branches touch main.rs and state.rs and the merge is already hand-resolved
there. See #237.

Three leftovers from moving `JellyfinClient` out of `arr-daemon` into `arr-api`, found in the integration review. None is urgent; all are cheap. - `crates/arr-api/src/jellyfin.rs:1-2` and `crates/arr-api/src/state.rs:163-164` both cite **"DESIGN.md §15"** and describe "a manual subtitle grab or translation". `DESIGN.md` ends at §14, and `arr-api` holds no subtitle code. The sole consumer of `AppState::jellyfin()` is `relocate.rs`. The stated motivation for the move is not the code that landed. (§15 belongs to the subtitles branch, which is where that text came from.) - `crates/arr-daemon/src/import.rs:30` now does `use arr_api::jellyfin::JellyfinClient`, so the daemon's import lane depends on the axum/OpenAPI crate to get an HTTP client. Every other outbound client has its own crate — `arr-meta`, `arr-indexer`, `arr-dl`. This was the cheapest place to put it, not the right one; `arr-jellyfin` would match the layout CLAUDE.md describes. - `crates/arr-daemon/src/main.rs:126` and `:299` build two independent `reqwest::Client`s, so two connection pools for one Jellyfin instance. The doc comment acknowledges it. Sharing one `Clone` is free. Coordinate the crate move with the subtitles branch before doing it — both branches touch `main.rs` and `state.rs` and the merge is already hand-resolved there. See #237.
naps62-yolo added this to the Feedback pass 2 milestone 2026-08-25 10:30:19 +01:00
naps62-yolo added the difficulty/moderatetype/chore labels 2026-08-25 10:30:19 +01:00
naps62-yolo modified the milestone from Feedback pass 2 to Feedback pass 2 follow-ups 2026-08-25 12:16:49 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yolo/arr#242