The four tests that retry a toggle after a failed first try advanced the
fake clock by RETRY_FIRST, but the wait before a second try is RETRY_FIRST
doubled once (2000 ms). The retry only fired because shouldAdvanceTime let
real time push the clock the rest of the way inside waitFor's 1000 ms
timeout, a race that CI lost once (run 3860).
retrySecondTry now waits until that 2 * RETRY_FIRST timer is set, then
advances past it, so the jump can no longer land before the timer. The
no-online-event test also asserts nothing was sent before the timer fires.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A post opened from the Supply archive is now read-only by the screen it is
opened from, not by its list's status: SupplyRunPage takes an explicit
readOnly mode, which the archive sets whenever a post is open. The current
week's post — which the archive API includes — shows the Archived tag, no
checkbox, no Send to Google Chat and no offer to make a list, so no PATCH
can be sent from the archive. On desktop with no post open, the list
beside the archive panel stays this week's editable Supply run.
The Week view renders the periods the server sends with their headings,
as Month and Year do, instead of flattening them.
Maestro task 3cf3a22a-ae31-4f5f-989d-bf09824583d1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mock 1m, and the 2f right panel on desktop: a Week | Month | Year
segmented control drives GET /api/v1/shopping/archive?by=, whose periods
are rendered as the server groups them in the household's zone, under
Bagel 18 px headings for month and year. Each post card shows the week
label kicker (capitalised in CSS), the AI title or the week label while
it is untitled, the counts and its first dinners as chips; the API's
current post is ringed grape-100 + grape-300 with "· Current". "Load
older" shows eight more posts at a time.
A post opens the archive on its week (?week=), shown by the Supply run
screen's own rendering: read-only and tagged Archived once frozen, with
no checkbox and no PATCH. On desktop the archive is a panel beside that
list; on mobile and tablet it is the archive or the open post's list.
Maestro task 3cf3a22a-ae31-4f5f-989d-bf09824583d1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>