Home screen (1g) with empty states (Feature 21) #174

Member

Maestro task 5170be5d-4787-4ea8-8530-c19e98e591bc — Home screen (1g) with empty states, second task of Feature 21.

Replaces the / placeholder with the real Home screen rendering mock 1g from GET /api/v1/home (real endpoint, no sample data): date line + "Tonight's quest", unread bell, Tonight card (photo, name, meta, dark Recipe pill -> /dinner/:id), Quick dinner (grape) -> /quick and Cook from what I have (teal) -> /cook-from-pantry tiles, side-quests and shopping status rows, and the no-plan empty state. Zero-suggestions and not-ready shopping rows hide.

Head: d572ee192dc98f9f31ee596e7108c876e6e135a9.

Remediation of review finding H1 (HIGH, web/src/home/api.ts), two rounds: parseTonight requires the minutes_total key to be present (explicit null valid; 0, negative, fractional, NaN and omission all error), and parseShoppingList validates a non-empty label matching weekStart whenever a list is reported, ready or unready. Eleven new tests assert every malformed case reaches the ErrorBanner with Retry.

Tests: web suite 1161/1161; npm run typecheck, npm test, npm run build pass; Go floor unchanged (gofmt/vet/build clean).

Maestro task `5170be5d-4787-4ea8-8530-c19e98e591bc` — Home screen (1g) with empty states, second task of Feature 21. Replaces the `/` placeholder with the real Home screen rendering mock 1g from `GET /api/v1/home` (real endpoint, no sample data): date line + "Tonight's quest", unread bell, Tonight card (photo, name, meta, dark Recipe pill -> /dinner/:id), Quick dinner (grape) -> /quick and Cook from what I have (teal) -> /cook-from-pantry tiles, side-quests and shopping status rows, and the no-plan empty state. Zero-suggestions and not-ready shopping rows hide. Head: `d572ee192dc98f9f31ee596e7108c876e6e135a9`. Remediation of review finding H1 (HIGH, web/src/home/api.ts), two rounds: `parseTonight` requires the `minutes_total` key to be present (explicit null valid; 0, negative, fractional, NaN and omission all error), and `parseShoppingList` validates a non-empty `label` matching `weekStart` whenever a list is reported, ready or unready. Eleven new tests assert every malformed case reaches the ErrorBanner with Retry. Tests: web suite 1161/1161; `npm run typecheck`, `npm test`, `npm run build` pass; Go floor unchanged (gofmt/vet/build clean).
orchestrator-agent added 1 commit 2026-10-09 21:10:24 -04:00
Build the Home screen (mock 1g) from GET /api/v1/home
CI / ci (push) Successful in 8m7s
CI / ci (pull_request) Successful in 7m47s
3a0459cce3
Replace the / placeholder with HomePage: the household-local date over
"Tonight's quest", the Recent updates bell with its grape unread dot, the
Tonight card (washed photo, name, "Regular · 40 min" / "Side quest · 30
min", dark Recipe pill to /dinner/:id), the Quick dinner and Cook from what
I have tiles, and the status rows to /discover and the week's Supply run.
With no plan the card is "No quest planned tonight" with "Plan this week";
rows that do not apply are hidden. Loading shows skeletons; a failure
shows an ErrorBanner with Retry.

The offline bootstrap tests now emit their online reset before cleanup:
TanStack's online manager only listens while a query client is mounted,
so the reset was lost and Home's query stayed paused in later tests.

Maestro task 5170be5d-4787-4ea8-8530-c19e98e591bc (Feature 21).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-09 21:11:42 -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-09 21:15:15 -04:00
Reject malformed Home minutes and Supply run labels (review H1)
CI / ci (pull_request) Successful in 7m59s
CI / ci (push) Successful in 7m42s
8e18c0b37c
parseHome now fails fast into the query error instead of rendering bad
values: tonight's minutes_total must be a positive whole number or null,
and a ready shoppingList must carry a non-empty label that is the label
of its weekStart.

Task: 5170be5d-4787-4ea8-8530-c19e98e591bc

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-09 21:19:33 -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-09 21:21:36 -04:00
Require Home minutes_total and Supply run label for every list (review H1)
CI / ci (push) Successful in 8m2s
CI / ci (pull_request) Successful in 7m55s
d572ee192d
parseTonight now rejects a tonight dinner without the minutes_total key
instead of reading it as null; an explicit null is still valid. The Home
API always emits the key. parseShoppingList checks the label against
weekStart for unready lists too, since the API supplies it regardless of
readiness.

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 ea5399098d into feature/446472d5-2a84-4aa2-bb37-fdc80815615c-home-dashboard 2026-10-10 08:53:07 -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#174