A plan_changed reread answered from the service worker's cache left the old plan shown with Push and Retry open. Push now needs a plan read from the server (Plan.cached, set from cacheFallbackHeader), and the push failure's Retry reads the plan again while the plan shown is cached. Settled swaps and pushes were kept for every week ever touched. When a week is shown, the settled ones of every other week with none pending are now removed; pending ones still survive leaving the week and coming back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>