Commit Graph
3 Commits
Author SHA1 Message Date
dev_agentandClaude Opus 5.5 2164e24d9d Keep a week's swaps in the mutation cache, across remounts
CI / ci (push) Successful in 3m10s
CI / ci (pull_request) Successful in 3m13s
The Draft board's swap guard was its mounted useMutation observer, so
leaving the week and coming back let a second swap start while the first
PUT was still pending, and Rebuild week's reset() detached a pending swap,
hiding its failure.

The week's swaps now live in the mutation cache, keyed by week: the guard,
the failure shown and the success handler all read them from there. Only
the latest swap of the week writes the plan it is answered with, and only
its failure is the week's. Rebuild week waits for a pending swap (its tile
is disabled meanwhile), and dismissing settled swaps is refused while one
is pending. A failed swap puts its day back only while the day is still,
field for field, the day it wrote, so a newer plan read survives.

Maestro task f231813c-992e-4a3b-a1a4-868cbad47415.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 13:13:12 -04:00
dev_agentandClaude Opus 5.5 cd3771f9ec Add the mobile swap sheet to the Draft board
CI / ci (push) Successful in 3m14s
CI / ci (pull_request) Successful in 3m15s
Tapping a day tile puts it in the swapping state and opens a bottom sheet
segmented "Quest log · N | Regulars · N". Choosing a dinner swaps the day
optimistically with PUT /api/v1/plans/{weekStart}/days/{date}, landing the
server's plan on success and rolling the day back with an ErrorBanner and
Retry on failure. Dinners already this week are marked and not selectable.

Maestro task f231813c-992e-4a3b-a1a4-868cbad47415.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 12:48:39 -04:00
orchestrator-agent 9b9421bb58 Mobile draft board (1f) (#117)
CI / ci (push) Successful in 3m21s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com>
2026-10-07 12:42:54 -04:00