Onboarding steps 1 and 2 (mock 1h) with first-run redirect #91

Member

Maestro task: 5a43f813-c940-4f79-a2be-027644ae9e6c (Feature 12 - Regular Dinners and Onboarding).

Done-condition

While household_settings.onboarding_completed_at is null, every app route redirects to /onboarding. Step 1 welcomes the household (Bagel title, short explanation of Regulars, Side quests and the Quest log, "Let's start" button). Step 2 matches mock 1h: three 6px progress pills (filled grape up to the current step), "Step 2 of 3" kicker, title "What's on your usual rotation?", helper copy, 48px input pill with a 36px grape "+" button (Enter also adds), "Your regulars · N" teal-200/teal-900 chips with ×, "Common picks" dashed chips that add on tap, and a fixed 52px "Next: notifications" button enabled once at least 3 Regulars exist. Adding/removing calls the dinners API optimistically. Vitest tests cover redirect, add by Enter and by "+", common pick add, remove and the 3-Regular gate. Typecheck, test and build pass.

Evidence

  • New first-run redirect gated on onboarding_completed_at plus the step 1 welcome and step 2 (1h) Regulars entry; add/remove call POST/DELETE /api/v1/dinners optimistically with rollback; docs/ARCHITECTURE.md updated.
  • lint:colors, typecheck, test, build pass; gofmt -l . empty; the real Enter key checked in Chrome (jsdom can't simulate real Enter, so tests submit the form directly).

Notes: offline the onboarding status can't be read (settings are never cached), so saved pages open as-is; the 3-Regular gate counts adds still awaiting the server and turns off if one is refused.

Maestro task: 5a43f813-c940-4f79-a2be-027644ae9e6c (Feature 12 - Regular Dinners and Onboarding). ## Done-condition While household_settings.onboarding_completed_at is null, every app route redirects to /onboarding. Step 1 welcomes the household (Bagel title, short explanation of Regulars, Side quests and the Quest log, "Let's start" button). Step 2 matches mock 1h: three 6px progress pills (filled grape up to the current step), "Step 2 of 3" kicker, title "What's on your usual rotation?", helper copy, 48px input pill with a 36px grape "+" button (Enter also adds), "Your regulars · N" teal-200/teal-900 chips with ×, "Common picks" dashed chips that add on tap, and a fixed 52px "Next: notifications" button enabled once at least 3 Regulars exist. Adding/removing calls the dinners API optimistically. Vitest tests cover redirect, add by Enter and by "+", common pick add, remove and the 3-Regular gate. Typecheck, test and build pass. ## Evidence - New first-run redirect gated on onboarding_completed_at plus the step 1 welcome and step 2 (1h) Regulars entry; add/remove call POST/DELETE /api/v1/dinners optimistically with rollback; docs/ARCHITECTURE.md updated. - lint:colors, typecheck, test, build pass; gofmt -l . empty; the real Enter key checked in Chrome (jsdom can't simulate real Enter, so tests submit the form directly). Notes: offline the onboarding status can't be read (settings are never cached), so saved pages open as-is; the 3-Regular gate counts adds still awaiting the server and turns off if one is refused.
dev_agent added 1 commit 2026-10-06 16:55:24 -04:00
Add onboarding steps 1 and 2 with the first-run redirect
CI / ci (push) Successful in 2m20s
CI / ci (pull_request) Successful in 2m21s
b568558875
While household_settings.onboarding_completed_at is null, OnboardingGate
sends every app route to /onboarding, a full screen outside the shell.
The household settings parser now reads onboarding_completed_at from the
existing GET /api/v1/settings/household.

Step 1 welcomes the household and explains Regulars, Side quests and the
Quest log. Step 2 follows mock 1h: progress pills, the add pill with its
grape "+" (Enter also adds), Regulars chips with remove, dashed Common
picks, and "Next: notifications" enabled at 3 Regulars. Adds and removes
go through new dinners API hooks (POST /api/v1/dinners, DELETE
/api/v1/dinners/{id}) optimistically, rolled back if the server refuses.
Step 3 is a placeholder until its task lands.

Maestro task 5a43f813-c940-4f79-a2be-027644ae9e6c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
overseer added 1 commit 2026-10-06 16:55:24 -04:00
Add onboarding steps 1 and 2 with the first-run redirect
CI / ci (push) Successful in 2m20s
CI / ci (pull_request) Successful in 2m21s
b568558875
While household_settings.onboarding_completed_at is null, OnboardingGate
sends every app route to /onboarding, a full screen outside the shell.
The household settings parser now reads onboarding_completed_at from the
existing GET /api/v1/settings/household.

Step 1 welcomes the household and explains Regulars, Side quests and the
Quest log. Step 2 follows mock 1h: progress pills, the add pill with its
grape "+" (Enter also adds), Regulars chips with remove, dashed Common
picks, and "Next: notifications" enabled at 3 Regulars. Adds and removes
go through new dinners API hooks (POST /api/v1/dinners, DELETE
/api/v1/dinners/{id}) optimistically, rolled back if the server refuses.
Step 3 is a placeholder until its task lands.

Maestro task 5a43f813-c940-4f79-a2be-027644ae9e6c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-06 16:57:48 -04:00
Dismissed
review_agent left a comment
Member

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.
overseer added 1 commit 2026-10-06 17:06:36 -04:00
Gate onboarding Next on three saved Regulars
CI / ci (push) Successful in 2m22s
CI / ci (pull_request) Successful in 2m21s
760ad9c421
Next: notifications counted optimistic chips, so a household with two
saved Regulars could tap a third and leave step 2 before the server
refused it. Next now waits until no add is pending and three Regulars
have server ids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-06 17:08:32 -04:00
Dismissed
review_agent left a comment
Member

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.
overseer added 1 commit 2026-10-06 17:17:25 -04:00
Keep each onboarding add and removal refusal on screen
CI / ci (push) Successful in 2m18s
CI / ci (pull_request) Successful in 2m19s
4e9b1ea2f9
Step 2 read the refusal from the mutation hooks, which only report their
latest change: an add refused while another add was in flight was rolled
back with no message, and the same for removals. Each change now records
its own refusal, keyed by the change, so it stays shown whatever the
other changes in flight do; trying the same change again replaces it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-06 17:19:08 -04:00
Dismissed
review_agent left a comment
Member

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.
overseer added 1 commit 2026-10-06 17:28:58 -04:00
Keep same-name add refusals and refused removal order in onboarding
CI / ci (push) Successful in 2m20s
CI / ci (pull_request) Successful in 2m17s
568a6ddfb8
Step 2 keyed each refusal by the dinner's name, so a second add of the
same name still in flight replaced the first add's refusal when it was
refused too. Each attempt now keys its refusal uniquely; trying a change
again once it has been refused still clears that earlier refusal.

A refused removal was put back at the index it had in the list as it
stood when it was removed, so refusing two overlapping removals of A and
B restored B, A, C until a reread corrected it. A removal now only marks
its Regular in the cache and the list hides it; a refusal clears the
mark, so the Regular returns to its own place whatever else changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent Codex gpt-6-sol review: APPROVED for this exact commit.

Independent Codex gpt-6-sol review: APPROVED for this exact commit.
approver_agent merged commit 0a5db6a9e6 into feature/2066f34b-5804-410a-859b-f87021a8ae6c-regular-dinners-onboarding 2026-10-06 17:34:53 -04:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/MealQuest#91