Maestro task: 48f8b8c3-7d5c-415d-9a61-980dc065bb90 (Feature 11 - Settings Home and Admin AI Assistant).
Done-condition
/settings/household lets the household view and edit: timezone (searchable IANA list with the current offset shown), dinner time, day-of reminder time, rotation check time ("When we ask whether to keep a new dinner", default 9:00 am the day after), plan-draft day/time, suggestions day/time and Chat autosend day/time, with plain-word copy and the note "Changes apply to everyone". Saving PATCHes /api/v1/settings/household and shows validation errors inline. Vitest covers load, edit + save payload, validation error display and the unsaved-changes guard. Typecheck, test and build pass.
Evidence
New /settings/household screen wired to GET/PATCH /api/v1/settings/household; PATCH sends only changed fields; API errors render inline and as whole-form errors; unsaved-changes guard; searchable IANA timezone list with current offset.
Headless Chrome at 390px with a mock API: changing Chicago + plan-draft day + dinner 18:15 sent exactly {"timezone":"America/Chicago","dinner_time":"18:15","plan_draft_dow":4}; clearing a time showed the inline error; the leave guard appeared.
Not tested against the real Go server (needs sign-in).
Maestro task: 48f8b8c3-7d5c-415d-9a61-980dc065bb90 (Feature 11 - Settings Home and Admin AI Assistant).
## Done-condition
/settings/household lets the household view and edit: timezone (searchable IANA list with the current offset shown), dinner time, day-of reminder time, rotation check time ("When we ask whether to keep a new dinner", default 9:00 am the day after), plan-draft day/time, suggestions day/time and Chat autosend day/time, with plain-word copy and the note "Changes apply to everyone". Saving PATCHes /api/v1/settings/household and shows validation errors inline. Vitest covers load, edit + save payload, validation error display and the unsaved-changes guard. Typecheck, test and build pass.
## Evidence
- New /settings/household screen wired to GET/PATCH /api/v1/settings/household; PATCH sends only changed fields; API errors render inline and as whole-form errors; unsaved-changes guard; searchable IANA timezone list with current offset.
- lint:colors, typecheck, test, build pass; gofmt -l . empty; route test added.
- Headless Chrome at 390px with a mock API: changing Chicago + plan-draft day + dinner 18:15 sent exactly {"timezone":"America/Chicago","dinner_time":"18:15","plan_draft_dow":4}; clearing a time showed the inline error; the leave guard appeared.
Not tested against the real Go server (needs sign-in).
/settings/household edits the time zone (a searchable IANA list with each
zone's current UTC offset), dinner time, day-of reminder, rotation check,
and the plan draft, new suggestions and Google Chat Supply run day and
time, with plain-word copy for each and "Changes apply to everyone in the
household." Save PATCHes only the changed fields; the API's
invalid_settings problems show under their fields. The leave guard and
confirm sheet move out of the AI settings page so both screens share them.
Maestro task 48f8b8c3-7d5c-415d-9a61-980dc065bb90.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/settings/household edits the time zone (a searchable IANA list with each
zone's current UTC offset), dinner time, day-of reminder, rotation check,
and the plan draft, new suggestions and Google Chat Supply run day and
time, with plain-word copy for each and "Changes apply to everyone in the
household." Save PATCHes only the changed fields; the API's
invalid_settings problems show under their fields. The leave guard and
confirm sheet move out of the AI settings page so both screens share them.
Maestro task 48f8b8c3-7d5c-415d-9a61-980dc065bb90.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Intl.supportedValuesOf('timeZone') lists only canonical zones, so UTC,
Etc/UTC, GMT and Etc/GMT, which the server accepts, could not be chosen.
Merge them into the list, and keep the saved zone listed after another
is chosen so an alias such as US/Eastern can be chosen back.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Maestro task: 48f8b8c3-7d5c-415d-9a61-980dc065bb90 (Feature 11 - Settings Home and Admin AI Assistant).
Done-condition
/settings/household lets the household view and edit: timezone (searchable IANA list with the current offset shown), dinner time, day-of reminder time, rotation check time ("When we ask whether to keep a new dinner", default 9:00 am the day after), plan-draft day/time, suggestions day/time and Chat autosend day/time, with plain-word copy and the note "Changes apply to everyone". Saving PATCHes /api/v1/settings/household and shows validation errors inline. Vitest covers load, edit + save payload, validation error display and the unsaved-changes guard. Typecheck, test and build pass.
Evidence
Not tested against the real Go server (needs sign-in).
Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.
Intl.supportedValuesOf('timeZone') lists only canonical zones, so UTC, Etc/UTC, GMT and Etc/GMT, which the server accepts, could not be chosen. Merge them into the list, and keep the saved zone listed after another is chosen so an alias such as US/Eastern can be chosen back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Independent Codex gpt-6-sol review: APPROVED for this exact commit.