Tablet and desktop plan manager (2c, 2d) #119

Member

Task

Maestro task 4657cba1-c709-420e-8b1e-18761e9e0e27 — "Tablet and desktop plan manager (2c, 2d)" (Feature 14, Weekly Plan Builder).

Done-condition

At ≥ 768 px /plan renders mocks 2c/2d: kicker "Week 41 · Plan", title "Oct 5 – 11", prev/next round buttons and (desktop) a "This week" pill; actions "Shopping list · N", "Rebuild week" (outline, confirms when synced) and "Push to Calendar" (primary); sync status line; a 7-column grid (repeat(7, minmax(0,1fr)), gap 12) of day columns with day label and card (96–110 px washed photo, Bagel 16–17 px name, minutes, crock-pot "Start by 12:30 pm", Regular/Side quest tag, swap icon opening the swap sheet), Side-quest cards on teal-200. Desktop adds the 290 px right panel with "Quest log · N | Regulars · N" segmented control, helper "Drag a dinner onto a day to swap it in." and rows (48 px photo, name, difficulty, 6-dot grip) plus "Swipe more side quests" link; tablet shows the Quest log as a chip strip under the grid. Vitest tests at 1180 and 1440 widths cover rendering, week navigation and the swap icon. Typecheck, test and build pass.

Scope

Tablet and desktop /plan (≥ 768 px) only. Drag-and-drop and its keyboard alternative are the next task (presentational grip and helper text only here). No backend, migration, skill or API-contract change. The mobile draft board and all drafting/swapping logic are unchanged and shared.

Deliberate deviations from the mock wording, for review

  • The shopping-list action is labelled "Shopping list" with no count: Feature 17 has not been built, so no shopping-list endpoint exists, and the task text forbids inventing a number. It is disabled with a tooltip, like "Push to Calendar" (Feature 16, also not built).
  • The tablet/desktop layouts do not show the AI note (neither mock has one); mobile still does.
  • The sync status line says "Synced to Google Calendar" / "Changes not pushed to Google Calendar" / "Not pushed to Google Calendar yet" — the mock's relative "2 min ago" is omitted.
  • Minutes render as "N min" rather than the mock's "Crock pot · 6 hr".

Evidence (orchestrator-run pre-review gate at a9038845a3)

  • gofmt -l . — empty (no Go file changed)
  • cd web && npm run typecheck — PASS
  • cd web && npm test — PASS, 45 files / 718 tests (+20 new), colour-literal lint clean
  • cd web && npm run build — PASS (includes lint:colors and check:dist-fonts)

The developer also reports a headless-Chrome pass of the Vite dev server against a mocked API at 1440, 1180 and 800 px, which caught and fixed three layout problems (status-line wrapping, swap-icon overflow on narrow cards, placeholder wrapping in small photos).

Implementation commit: a9038845a3f62949f49760ced0d13a1f6cb7a3a5

## Task Maestro task `4657cba1-c709-420e-8b1e-18761e9e0e27` — "Tablet and desktop plan manager (2c, 2d)" (Feature 14, Weekly Plan Builder). ## Done-condition At ≥ 768 px `/plan` renders mocks 2c/2d: kicker "Week 41 · Plan", title "Oct 5 – 11", prev/next round buttons and (desktop) a "This week" pill; actions "Shopping list · N", "Rebuild week" (outline, confirms when synced) and "Push to Calendar" (primary); sync status line; a 7-column grid (`repeat(7, minmax(0,1fr))`, gap 12) of day columns with day label and card (96–110 px washed photo, Bagel 16–17 px name, minutes, crock-pot "Start by 12:30 pm", Regular/Side quest tag, swap icon opening the swap sheet), Side-quest cards on teal-200. Desktop adds the 290 px right panel with "Quest log · N | Regulars · N" segmented control, helper "Drag a dinner onto a day to swap it in." and rows (48 px photo, name, difficulty, 6-dot grip) plus "Swipe more side quests" link; tablet shows the Quest log as a chip strip under the grid. Vitest tests at 1180 and 1440 widths cover rendering, week navigation and the swap icon. Typecheck, test and build pass. ## Scope Tablet and desktop `/plan` (≥ 768 px) only. Drag-and-drop and its keyboard alternative are the next task (presentational grip and helper text only here). No backend, migration, skill or API-contract change. The mobile draft board and all drafting/swapping logic are unchanged and shared. ## Deliberate deviations from the mock wording, for review - The shopping-list action is labelled **"Shopping list"** with **no count**: Feature 17 has not been built, so no shopping-list endpoint exists, and the task text forbids inventing a number. It is disabled with a tooltip, like "Push to Calendar" (Feature 16, also not built). - The tablet/desktop layouts do not show the AI note (neither mock has one); mobile still does. - The sync status line says "Synced to Google Calendar" / "Changes not pushed to Google Calendar" / "Not pushed to Google Calendar yet" — the mock's relative "2 min ago" is omitted. - Minutes render as "N min" rather than the mock's "Crock pot · 6 hr". ## Evidence (orchestrator-run pre-review gate at a9038845a3f62949f49760ced0d13a1f6cb7a3a5) - `gofmt -l .` — empty (no Go file changed) - `cd web && npm run typecheck` — PASS - `cd web && npm test` — PASS, 45 files / 718 tests (+20 new), colour-literal lint clean - `cd web && npm run build` — PASS (includes `lint:colors` and `check:dist-fonts`) The developer also reports a headless-Chrome pass of the Vite dev server against a mocked API at 1440, 1180 and 800 px, which caught and fixed three layout problems (status-line wrapping, swap-icon overflow on narrow cards, placeholder wrapping in small photos). Implementation commit: `a9038845a3f62949f49760ced0d13a1f6cb7a3a5`
orchestrator-agent added 1 commit 2026-10-07 13:50:07 -04:00
Add tablet and desktop plan manager (mocks 2c, 2d)
CI / ci (push) Successful in 3m12s
CI / ci (pull_request) Successful in 3m8s
a9038845a3
From 768 px up /plan renders the plan manager: "Week N · Plan" kicker,
the week's dates, previous/next buttons and, on desktop, a "This week"
pill; the sync status line; "Shopping list" and "Push to Calendar"
unavailable with tooltips saying why (Features 17 and 16), and a working
outlined "Rebuild week" that confirms over a plan pushed to Calendar; and
a 7-column grid of day cards with washed photo, name, minutes, crock-pot
start-by time, Regular / Side quest tag (Side quests on teal-200) and a
swap icon that opens the existing swap sheet.

Desktop adds the 290 px right panel: "Quest log · N | Regulars · N",
the drag helper, rows with photo, name, difficulty and a 6-dot grip, and
"Swipe more side quests". Tablet shows the Quest log as a chip strip under
the grid. Dragging is presentational here; it lands in task 5c2842a8.

The plan day now reads the photo and minutes the plan API already sends,
and an optimistic swap carries them from the chosen dinner. Tag gains a
neutral tone for "Regular".

Maestro task 4657cba1-c709-420e-8b1e-18761e9e0e27.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-07 13:52:07 -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-07 14:08:02 -04:00
Keep plan manager columns usable from 768 px; show method and sync time
CI / ci (push) Successful in 3m11s
CI / ci (pull_request) Successful in 3m14s
8d46b58f11
The week's columns are never narrower than 112 px, which holds a
dinner's words whole and the tag beside the swap icon. Where seven do not
fit (768-1100 px tablets, desktop up to about 1430 px beside the panel)
the week scrolls sideways inside the content area; at 1180 and 1440 px
the grid is unchanged. Names no longer hyphenate or break mid-word, and
the card footer no longer wraps the swap icon under the tag.

Each card now says how the dinner is cooked as well as how long:
"Crock pot · 6 hr", "Stovetop · 45 min", or the method alone when the
minutes are unknown. The plan API's method is parsed (and carried by a
swap from the Quest log or Regulars), and an unknown method is refused.

The synced status line says how long ago the plan was pushed, from
calendar_synced_at ("Synced to Google Calendar 2 min ago"), kept current
minute by minute.

Maestro task 4657cba1-c709-420e-8b1e-18761e9e0e27.

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 dba4b93280 into feature/ca2a118d-0beb-49f9-b2ef-d5ed0ac1fa2a-weekly-plan-builder 2026-10-07 14:22:49 -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#119