A digit string too long for a safe integer became Infinity, which
JSON.stringify sends as null, and the API reads null as "reset to
default" -- so saving could silently replace the household's horizon.
Require a safe integer >= 1 and send nothing otherwise (F19-01).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds a typed settings client (fetchSettings / updateSettings) and a
Preferences section below Children that edits all ten household
settings. Save patches only the changed fields, says "No changes to
save." without a request when nothing changed, shows the 403 refusal
or the API's 422 detail, and shares the one-write-at-a-time lock with
the Children section.
Maestro task: cd3e0209-4575-4acd-bd87-d1595a4451de
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>