Release deck shows empty state while indexer search is in flight #101

Closed
opened 2026-08-23 07:52:05 +01:00 by naps62-yolo · 1 comment
Owner

Found on the first cutover test. POST /api/movies/{id}/search returns 202 and runs async; the release deck immediately re-fetches /releases, gets an empty list, and renders the same empty state as a finished search with no results. The operator reads "no releases found" while indexers are still answering.

An in-flight search must be visibly different from an empty result: show a searching state until the sweep completes, then the buckets or a real empty verdict. Whatever signal the API needs to expose for "search in flight" (a field on the movie, a status endpoint, or the 202 body) is in scope; polling cadence stays modest.

DESIGN.md §9.3 is the contract for this view.

Depends on: (nothing open)

Labels: phase/5-ui, area/web, difficulty/easy, type/bug

Found on the first cutover test. `POST /api/movies/{id}/search` returns 202 and runs async; the release deck immediately re-fetches `/releases`, gets an empty list, and renders the same empty state as a finished search with no results. The operator reads "no releases found" while indexers are still answering. An in-flight search must be visibly different from an empty result: show a searching state until the sweep completes, then the buckets or a real empty verdict. Whatever signal the API needs to expose for "search in flight" (a field on the movie, a status endpoint, or the 202 body) is in scope; polling cadence stays modest. DESIGN.md §9.3 is the contract for this view. Depends on: (nothing open) Labels: `phase/5-ui`, `area/web`, `difficulty/easy`, `type/bug`
naps62-yolo added the area/webdifficulty/easyphase/5-uitype/bug labels 2026-08-23 07:52:20 +01:00
Author
Owner

Fixed on main in 6d78cac (merged directly, per operator instruction — no PR). The release deck now shows a distinct sweeping state: it polls the movie's last_searched_at (5 s cadence, 150 s budget) and only renders the empty verdict — with the sweep's age — once a sweep has actually landed. A sweep held by the §6.2 backoff times out to a message saying so.

Fixed on main in 6d78cac (merged directly, per operator instruction — no PR). The release deck now shows a distinct sweeping state: it polls the movie's last_searched_at (5 s cadence, 150 s budget) and only renders the empty verdict — with the sweep's age — once a sweep has actually landed. A sweep held by the §6.2 backoff times out to a message saying so.
naps62-yolo added a new dependency 2026-08-23 16:36:55 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yolo/arr#101