The deck reported only a pending or running batch, so a Discover page
opened after a batch failed (or was interrupted by a restart) had no job
to follow and showed "All caught up" or the remaining cards with no
error. GET /api/v1/suggestions/deck now also returns failed_batch: the
newest batch when it failed, read in the same snapshot after orphaned
batches are failed, so at most one of active_batch and failed_batch is
set and a later batch supersedes the failure. The page follows the
failed batch's job like the active one, so its failure shows with the
existing Retry, which asks for a new batch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes the Feature 13 review findings on the Discover deck (Maestro task
4fc551f0-3c11-4c15-b638-f2c08a28eb29):
- F13-01: a batch failure (start, poll or job) is shown with its Retry
whatever the deck has, so a replenish that fails while cards remain is
no longer silent until the deck runs out.
- F13-02: GET /api/v1/suggestions/deck reports the batch pending or
running (active_batch, read in the deck's snapshot), and a decision
that calls for a replenish returns the job of the batch it started or
joined. The page follows a newly reported active batch, so a reopened
page or a second session shows skeleton cards while the batch runs
instead of "All caught up".
- F13-03: ← / → leave the deck alone while it is inert behind a modal
(the Quest log sheet or its confirmation).
- F13-04: a one- or two-card deck keeps all three depths: skeleton cards
stand in for the missing ones while a batch finds more Side quests,
blank stack-edge cards while none is coming.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>