Manual search on an available movie is a silent no-op #115

Closed
opened 2026-08-23 12:16:48 +01:00 by naps62-yolo · 1 comment
Owner

MovieCommand::Search goes through search_now, which loads the movie via pending_movie — filtered to wanted, unblocked movies with no media files and no active grab (arr-daemon/src/grab.rs). A movie that is already available falls out of the filter, so the API accepts the search (202), the daemon does nothing, and the release deck is never refreshed. Observed live on The Batman.

For the §9.3 upgrade flow, a manual Search on an available movie should still sweep the searchable indexers and upsert the results into the deck (same upsert as the grab lane, refreshing scores) — but must NOT auto-grab a winner. Auto-grab remains correct only for wanted movies with nothing on disk.

So: split deck refresh from winner selection in the manual path. Search on a pending movie keeps today's behavior (search + grab). Search on an available movie refreshes the deck and stops. Blocked movies keep refusing.

Depends on: nothing. Related: the read-time rescoring issue filed alongside this one.

`MovieCommand::Search` goes through `search_now`, which loads the movie via `pending_movie` — filtered to wanted, unblocked movies with no media files and no active grab (`arr-daemon/src/grab.rs`). A movie that is already `available` falls out of the filter, so the API accepts the search (202), the daemon does nothing, and the release deck is never refreshed. Observed live on The Batman. For the §9.3 upgrade flow, a manual Search on an available movie should still sweep the searchable indexers and upsert the results into the deck (same upsert as the grab lane, refreshing scores) — but must NOT auto-grab a winner. Auto-grab remains correct only for wanted movies with nothing on disk. So: split deck refresh from winner selection in the manual path. Search on a pending movie keeps today's behavior (search + grab). Search on an available movie refreshes the deck and stops. Blocked movies keep refusing. Depends on: nothing. Related: the read-time rescoring issue filed alongside this one.
naps62-yolo added the area/daemondifficulty/moderatephase/5-uitype/bug labels 2026-08-23 12:16:59 +01:00
Author
Owner

Fixed in aa6961f (merged to main as 401afe5).

search_now no longer loads the movie through the gap filter. It loads any unblocked movie and picks a lane: a gap — wanted, nothing on disk, no grab in flight — searches and grabs as before; anything already satisfied sweeps the searchable indexers, upserts every candidate into the release deck with a fresh verdict and score, and stops without grabbing. Blocked movies are still refused.

The digital-release gate now applies only to the grab lane: a movie with a file on disk is released whatever TMDB knows, so it no longer silences the deck refresh.

Five tests in crates/arr-daemon/src/grab.rs cover the split: available movie refreshes the deck and grabs nothing, refreshes before the digital release date, does not re-grab with a grab in flight, wanted movie still grabs, blocked movie calls no indexer. just ci green.

Fixed in aa6961f (merged to main as 401afe5). `search_now` no longer loads the movie through the gap filter. It loads any unblocked movie and picks a lane: a gap — wanted, nothing on disk, no grab in flight — searches and grabs as before; anything already satisfied sweeps the searchable indexers, upserts every candidate into the release deck with a fresh verdict and score, and stops without grabbing. Blocked movies are still refused. The digital-release gate now applies only to the grab lane: a movie with a file on disk is released whatever TMDB knows, so it no longer silences the deck refresh. Five tests in `crates/arr-daemon/src/grab.rs` cover the split: available movie refreshes the deck and grabs nothing, refreshes before the digital release date, does not re-grab with a grab in flight, wanted movie still grabs, blocked movie calls no indexer. `just ci` green.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yolo/arr#115