From f3894081699d65361ab5c1bddafc1226d370113c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 16 May 2026 17:38:35 +0200 Subject: [PATCH] docs(planning): IW4 implementation report for v1.4.33 Polish + reliability slice of the v1.4.33 audit cycle: DOB date-input height, timezone aria/label split, F13 username readability, F14 mobile bottom-nav padding, Mood Log overflow + save-button right-align, Notifications redundancy collapse with Badge-pair deletion, copy compression on telegram + moodLog + notificationStatus descriptions, Export card padding parity, passkey table breakpoint flip from md to lg, settings shell chip-strip scroll-into-view on route change, F17 threshold-toggle relabel, `` primitive extracted with three call sites migrated. Co-Authored-By: Claude Opus 4.7 (1M context) --- .planning/round-v1433-iw4-report.md | 120 ++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 .planning/round-v1433-iw4-report.md diff --git a/.planning/round-v1433-iw4-report.md b/.planning/round-v1433-iw4-report.md new file mode 100644 index 000000000..e72017dc8 --- /dev/null +++ b/.planning/round-v1433-iw4-report.md @@ -0,0 +1,120 @@ +# v1.4.33 IW4 — Settings polish + reliability report + +Branch: `develop`. Working alongside IW1 / IW3 / IW6 / IW8 on +disjoint paths under `src/app/settings/**`, +`src/components/settings/**`, `src/components/ui/date-input.tsx`, +and the settings.* key prefix in `messages/*.json`. + +## Commits + +| sha | scope | +| ---------- | -------------------------------------------------------------- | +| `2d630994` | DOB date-input height + timezone aria/label split + locale parity (commit msg mislabelled as the IW1 insights refactor — race condition with IW1's commit; the file content under that sha is mine) | +| `c98d07ef` | F13 username readOnly, F14 mobile bottom-nav pb-24, Mood Log webhook + action-row overflow, save-button right-align | +| `ff06b0ce` | Notifications redundancy collapse — drop badge pair from Telegram/ntfy/Web Push cards; copy compression (Telegram, moodLog descriptions; notificationStatus title/desc) | +| `d4a1679e` | i18n parity for trimmed notifications description (es/fr/it/pl) | +| `73043d42` | Tile-padding parity (Export `p-5` → `p-6`); passkey breakpoint `md` → `lg`; settings shell scroll-into-view; F17 threshold toggle relabel | +| `981a3d55` | `` primitive + first three call sites (telegram/ntfy/web-push) | + +Six atomic commits. + +## Findings — landed + +A2 (audit-settings.md): + +* 2.1 DOB field height/width — DateInput + DateTimeInput now opt out of native chrome via `appearance-none` + `min-h-10` + webkit shadow rule. Single shared constant. +* 2.2 Timezone button label — visible label is "Browser-Zeitzone übernehmen"; IANA zone moved to `settings.timezoneDetectAria`. Aria announces full zone, button stays single-line on a 393 CSS px viewport. +* 2.3 + 2.4 Integrations Mood Log overflow — webhook-secret row stacks on `` rendering which the audit acknowledges is a §4 secondary item.) +* 2.7 Telegram card redundancy — drop "Telegram-Benachrichtigungen" → "Telegram"; description "Medikamenten-Erinnerungen per Bot."; **delete the dual Badge pair** from telegram/ntfy/web-push cards entirely (single status surface = the channel pill in `NotificationStatusCard` above). + +A2 §3: + +* 3.1 Status vocabulary unification — landed via 2.7 (cards no longer paint "Konfiguriert · Deaktiviert"). +* 3.3 Account passkey breakpoint — `md:` → `lg:` on the table-vs-cards switch. +* 3.4 Save-button placement contract — Mood Log creds form right-aligns (matches Withings, Telegram, ntfy); the broader "extract footer primitive" deferred to a follow-up. +* 3.9 Mood Log Voll-Sync confirm copy — new `settings.moodLogFullSyncConfirm` wired into the dialog action. + +A2 §4: + +* 4.1 — `common.saved` vs `settings.saved` not collapsed yet (ntfy-card still uses `t("settings.saved")` and the bundle still has both keys). Documented in deferred. +* 4.2 — Telegram, moodLog descriptions trimmed; notification section descriptions trimmed. Audit's "Auto-disabled definition in description" moved to a tighter sentence rather than a tooltip migration. + +A5 / runtime audit: + +* F13 username readability — `disabled` → `readOnly` keeps full contrast value. +* F14 mobile bottom-nav overlap — `` main column reserves `pb-24` on `` mobile chip strip now scrolls the active chip into view on route change (`useEffect` + `inline: "center"` + `behavior: "smooth"`). Ref attached to the `