chore(planning): bootstrap v1.4.16 marathon

Pivots STATE.md + ROADMAP.md from the closed v1.4.15 marathon
(live in prod, /api/version=1.4.15, image digest sha256:ace7d441f47b…)
to the v1.4.16 scaffold.

Wave A (A1-A8 quick fixes): sidebar admin-expand bug, BD-Zielbereich
real-fix, /admin/api-tokens responsive, 7-Tage-Trend on all charts,
top-tile-selector real-fix, medication-chart 7d-trend, AI-generator
rate-limit + cache-invalidate, Umlaute encoding bug.

Wave B (B1-B7 quality leap): Apple-Health-style insights/charts,
AI-provider settings cleanup, admin host-load chart, admin logs
visibility, AI hallucination-hardening v2 (medical grounding +
multi-provider), settings naming-audit, /settings/export menu.

Wave C catch-up: 8 deferred HIGH from v1.4.15 phase D + 5 mobile
MEDs + Coolify image-digest auto-deploy + docker-publish main hang.

Wave D: 5 reviewers + Product-Lead + reconcile.
Phase E: release v1.4.16.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marc-André BombeckandClaude Opus 4.7 committed 2026-05-09 23:16:28 +02:00
1 parent 0985c93afc
commit b3d0fb450b
3 files changed
+232 -1044

No files matched your search

+59 -27
View File
@@ -1,42 +1,74 @@
# HealthLog v1.4.15 — roadmap
# HealthLog v1.4.16 — roadmap
Milestone: **v1.4.15** (kicked off 2026-05-09)
Latest tag at start: v1.4.14 (live in prod, image digest `0ced46004a54…`)
Milestone: **v1.4.16** (kicked off 2026-05-09)
Latest tag at start: v1.4.15 (live in prod, image digest `sha256:ace7d441f47b…`)
| Phase | Goal | State |
| ----- | --------------------------------------------------------------------------------------------- | ------- |
| 0 | Bootstrap — STATE+ROADMAP for v1.4.15, git/CI sanity, single chore commit | done |
| A1 | Nav conditionals + sidebar context-awareness (bug-report toggle, skip-link, admin sub-items) | pending |
| A2 | `/admin` overview redesign + `/admin/api-tokens` responsive table | pending |
| A3 | Quick-add labels disambiguation + Stimmung-Card mobile fix + onboarding flicker | pending |
| A4 | Dashboard analytics fixes (BD-Zielbereich 0%, Medikamente graph, Stimmung agg, 7-Tage-Trend) | pending |
| A5 | Mobile UX audit + chart scroll-lockup fix | pending |
| B1 | Backup completeness — restore, download, upload, audit, docs | pending |
| B2 | Withings + moodLog sync robustness — status UI, refresh rotation, telegram on fail, audit | pending |
| B3 | Notification reliability — auto-disable on 410, exp backoff, status visible | pending |
| B4 | Achievements UI — surface in dashboard or dedicated page, unlocked-at timestamp | pending |
| B5 | Onboarding tour first-run — welcome flow after passkey registration, skippable | pending |
| B6 | Doctor-report v2 — configurable date range, practice-name on cover | pending |
| C1 | AI/Codex hardening — provider abstraction, JSON-schema, citations, scope, slug-drift defense | pending |
| C2 | Auto-deployment — Coolify webhook on GHCR push, failure-notify, self-tested via next release | pending |
| C3 | CI/e2e reliability audit — root-cause flaky specs, ensure docker-publish always builds | pending |
| C4 | i18n coverage audit — `admin.section.<slug>.*` EN+DE parity AND non-empty test guards | pending |
| C5 | Empty-states audit — `/admin/users`, `/admin/backups`, dashboard for very-new users | pending |
| D | Multi-agent QA (parallel, write-only) — code-review, security, design, senior-dev, simplify | pending |
| E | Release v1.4.15 — bump, CHANGELOG, tag, GHCR, auto-deploy via C2, /api/version=1.4.15, smoke | pending |
| Phase | Goal | State |
| ----- | ----------------------------------------------------------------------------------------------------------------- | ------- |
| 0 | Bootstrap — STATE+ROADMAP for v1.4.16, git/CI sanity, single chore commit | done |
| A1 | Sidebar admin-expand bug — Admin nav from non-admin route + Gravatar dropdown side-effects | pending |
| A2 | BD-Zielbereich real-fix (regression from v1.4.15 A4) — root-cause + E2E | pending |
| A3 | `/admin/api-tokens` table responsive (still scrolling) — card-list mobile fallback | pending |
| A4 | "7-Tage-Schnitt" → "7-Tage-Trend" DE + indicator on ALL charts incl. mood + medication + insights | pending |
| A5 | Top-tile-selector real-fix (regression from v1.4.15 A4) — investigate stale-read or missing wire | pending |
| A6 | Medication-chart 7d-trend + target-range — match other charts | pending |
| A7 | AI Generator rate-limit 10/h + cache-invalidate-on-new | pending |
| A8 | Umlaute encoding bug ("Nrnberg" → "Nürnberg") + login-overview UTF-8 audit | pending |
| B1 | Insights/Charts Apple-Health-style visual leap — gradients, animation, slide-to-compare | pending |
| B2 | AI provider settings UX cleanup — single pulldown-driven form, no top/bottom split | pending |
| B3 | Admin System-Status host-load chart — CPU/memory/disk-io graph last 2h | pending |
| B4 | Admin logs visibility deepening — filterable audit log + structured wide-event tail | pending |
| B5 | AI hallucination-hardening v2 — medical-reference grounding + multi-provider + explainability | pending |
| B6 | Settings naming-audit — stringency, consistency, no double naming | pending |
| B7 | Settings → Export menu (Arztbrief consolidated) — new `/settings/export` route | pending |
| C | Catch-up — 8 deferred HIGH + 5 mobile MED + Coolify image-digest trigger + docker-publish hang | pending |
| D | Multi-agent QA + Product-Lead — code-review, security, design (Apple-Health lens), senior, simplify, product-lead | pending |
| E | Release v1.4.16 — bump, CHANGELOG, tag, GHCR, deploy, /api/version=1.4.16, smoke, docs+landing sync | pending |
Stop conditions: production red, large un-spec'd issue, context cutoff,
or budget short of polish — write status doc, do not auto-rollback.
Time-runs-short minimum to ship v1.4.15: Phase A (any subset) + Phase D
+ Phase E. Phases B1-B6 + C1-C5 are deferrable to v1.4.16 if context
budget tightens.
Time-runs-short minimum to ship v1.4.16: Wave A (any subset) + Wave D
- Phase E. Wave B (B1-B7) and Wave C catch-up are deferrable to v1.4.17
if context budget tightens.
Phase 0 spec for this marathon: orchestrator user message in this
session (not stored to disk).
---
## Previous milestone — v1.4.15 (completed 2026-05-09T22:50+02:00)
| Phase | Goal | State |
| -------- | ------------------------------------------------------------------------------------------------------------ | ----- |
| 0 | Bootstrap — STATE+ROADMAP for v1.4.15 | done |
| A1 | Nav conditionals + sidebar context-awareness | done |
| A2 | `/admin` overview redesign + `/admin/api-tokens` responsive | done |
| A3 | Quick-add labels + Stimmung-Card mobile + onboarding flicker | done |
| A4 | Dashboard analytics fixes (BD-Zielbereich, Medikamente graph, Stimmung agg, 7-Tage-Trend, top-tile selector) | done |
| A5 | Mobile UX audit + chart scroll-lockup fix | done |
| B-mobile | Mobile audit fix-application (5 commits, 2/2 CRITICAL, 6/8 HIGH) | done |
| B1 | Backup completeness — restore, download, upload, audit, docs | done |
| B2 | Withings + moodLog sync robustness — status UI, refresh rotation, telegram on fail | done |
| B3 | Notification reliability — auto-disable on 410, exp backoff, status visible | done |
| B4 | Achievements UI — `/achievements` page + dashboard card | done |
| B5 | Onboarding tour first-run — spotlight, Esc/arrows, restart from Settings | done |
| B6 | Doctor-report v2 — configurable date range, practice-name on cover | done |
| C1 | AI/Codex hardening — provider abstraction, JSON schema, citations, scope, slug-drift defense | done |
| C2 | Auto-deployment — Coolify webhook on GHCR push, failure-notify | done |
| C3 | CI/e2e reliability audit — root-cause flaky specs, docker-publish cache fix | done |
| C4 | i18n coverage audit — EN+DE parity, non-empty test guards | done |
| C5 | Empty-states audit — 13 surfaces upgraded | done |
| D | Multi-agent QA (5 reviewers + reconcile) | done |
| E1–E3 | Release v1.4.15 — bump, tag, GHCR, host-side retag deploy, docs+landing sync, Marc-Brief | done |
Marathon completed 2026-05-09T22:50+02:00 — v1.4.15 LIVE in prod.
Full report: `docs/audit/v1415-summary.md`. v1.4.16 backlog seeded at
`.planning/v1416-backlog.md`.
---
## Previous milestone — v1.5 (relabelled v1.4.14, completed 2026-05-09)
| Phase | Goal | State |
+135 -979
View File
File diff suppressed because it is too large. Load diff
+38 -38
View File
@@ -1,51 +1,51 @@
# Phase 0 — v1.4.15 marathon bootstrap
# Phase 0 — v1.4.16 marathon bootstrap
Status: **done**
Timestamp: 2026-05-09T20:06:00+02:00
Commit: see `chore(planning): bootstrap v1.4.15 marathon` on origin/main.
Timestamp: 2026-05-09T23:12:52+02:00
Commit: `chore(planning): bootstrap v1.4.16 marathon` on origin/main.
## What this phase did
Pivoted `.planning/STATE.md` and `.planning/ROADMAP.md` from the
completed v1.4.14 marathon (which shipped at 18:35+02:00 today and is
LIVE on https://healthlog.bombeck.io with `/api/version=1.4.14`, image
digest `sha256:0ced46004a54…`) to the v1.4.15 marathon scaffold.
completed v1.4.15 marathon (which shipped today at 22:50+02:00 — see
`docs/audit/v1415-summary.md` for the Marc-Brief, commit table, image
digest `sha256:ace7d441f47b…`, deferred items) to the v1.4.16 scaffold.
The v1.4.14 entries were archived in-place: STATE.md keeps a one-line
"previous milestone" reference plus a phase-summary block; ROADMAP.md
keeps the full v1.4.14 phase table below the active v1.4.15 table. No
information lost — `docs/audit/v1414-summary.md` remains the canonical
release record.
STATE.md now lists Wave A (A1–A8 quick fixes), Wave B (B1–B7 quality-leap
features), Wave C (catch-up of 8 deferred HIGH from Phase D + 5 mobile
MEDs + Coolify image-digest auto-deploy + docker-publish main-branch
hang root-cause), Wave D (5 reviewers + Product-Lead + reconcile), Phase
E (release). ROADMAP.md mirrors the heading-level structure with one-
line Goal cells; v1.4.15 + v1.4.14 entries archived below the active
table.
Phases scaffolded for v1.4.15: A1-A5 (5 quick-fix buckets), B1-B6 (6
bigger features), C1-C5 (hardening — including AI/Codex
hallucination-resistance C1 and Coolify auto-deploy C2), D (multi-agent
QA, write-only), and E (release).
## Working-tree sanity
## Pre-flight checks
`git status` showed 22 modified `.planning/*.md` files at session start
— a stray re-run of `prettier --write .planning/` had corrupted the
v1.4.15-shipped reports (markdown list-marker `+` flipped to `-`,
breaking semantic content like "+1 e2e" → "-1 e2e" and "command +
flag" lists). Discarded via `git checkout -- .planning/`. Tracked
working tree now matches `origin/main`. Untracked phase reports from
v1.4.14 + v1.4.15 (15 files) left in place — they belong to previous
milestones and are explicitly out-of-scope for v1.4.16 Phase 0.
- Codex protocol spec at `docs/codex-protocol-spec.md` confirmed
present (741 LOC) — canonical reference for Phase C1 AI hardening.
- Backlog at `.planning/v1415-backlog.md` confirmed present (HIGH /
MEDIUM / LOW findings from the v1.4.14 phase-6 multi-agent QA).
- Summary at `docs/audit/v1414-summary.md` confirmed present (Marc-Brief
+ 53-commit table).
## Spec re-read
## Working tree
Re-read `docs/codex-protocol-spec.md` as required (canonical reference
for any v1.4.16 AI work — Wave-A A7 rate-limit + cache, Wave-B B5
hallucination-hardening v2 medical-grounding + multi-provider). §7b
slug-drift defence already shipped in v1.4.15 C1; v1.4.16 builds on
top.
`git status` shows `main` up to date with `origin/main`. 10 untracked
files from the v1.4.14 marathon (phase-4-visual-verify, phase-6-{code-
review, design, reconcile, security, simplify}-findings, phase-8 / 9 /
10, v1414-rebrand-report) were intentionally left untracked — they
belong to the previous milestone, not this one. Folding them into the
Phase 0 commit would muddy v1.4.15 history. The Phase 0 commit
contains ONLY `.planning/STATE.md`, `.planning/ROADMAP.md`,
## Backlog inventoried
`.planning/v1416-backlog.md` confirmed present (8 deferred HIGH + 39
MED/LOW + 4 simplify-no + 3 process items, severity-grouped, with
file:line references). Wave C catch-up references this file.
## Marc-status
Speed mattered. Working-tree corruption tax was 30 seconds. Phase 0
commit contains only `.planning/STATE.md` + `.planning/ROADMAP.md` +
`.planning/phase-0-report.md`.
## Constraints honoured
- Single chore commit `chore(planning): bootstrap v1.4.15 marathon`
with `Co-Authored-By: Claude Opus 4.7 (1M context)`.
- No `--no-verify`, no `--no-gpg-sign`.
- Only `.planning/` files touched. No source files modified.
- Pushed to `origin/main`.