Add the Regular dinners settings screen
CI / ci (push) Successful in 2m22s
CI / ci (pull_request) Successful in 2m17s

/settings/regulars lists the household's Regulars with photo, name,
"method · minutes", the favorite heart and a grounding badge ("Finding
recipe…", "Recipe found", "Needs a recipe"). The add field takes a name
or a pasted recipe link. Tapping a Regular opens an edit sheet (rename,
method, minutes, difficulty, remove with confirmation); a Regular that
needs a recipe opens "Fix recipe": pick one of up to three candidates,
paste a link, or type the ingredients and steps in. The list is read
again every 3 seconds while any Regular is still finding its recipe.

The dinners client now parses the full dinner and adds edit, favorite,
ground and recipe-candidate calls; onboarding shares its refusal
tracking through useRefusals.

Maestro task: fa8f88ae-5ade-430e-a069-274aec112f26

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-06 18:10:53 -04:00
co-authored by Claude Opus 5.5
parent 6a3f1f3936
commit e3332aba35
11 changed files with 1762 additions and 59 deletions
+13
View File
@@ -500,6 +500,19 @@ wires Web Push, "Turn on notifications" asks for nothing. Offline on the saved p
settings cannot be read (the service worker never caches `/api/v1/settings`),
so the saved pages open as they are.
Regular dinners (`/settings/regulars`) lists the Regulars from
`GET /api/v1/dinners?status=regular`, each with its photo, "method ·
minutes", favorite heart and grounding badge ("Finding recipe…" while
`pending`, "Recipe found" when `grounded` or `manual`, "Needs a recipe" when
`failed`). The add field takes a name or a pasted `https://` recipe link.
Tapping a Regular opens an edit sheet (name, method, minutes, difficulty;
remove archives it after a confirmation); tapping one that needs a recipe
opens "Fix recipe" (pick one of the recipe candidates, paste a link or type
the ingredients and steps in). Adds, removals and the heart show at once and
are undone if the server refuses them. While any Regular is `pending`, the
list is read again every 3 seconds (not while a change is in flight), and
polling stops once none is.
## Boundaries and gotchas
- **Secrets never reach the client** — API keys, OAuth tokens and the Chat