Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9.4 KiB
HealthLog v1.4.19 — Release Summary
Release brief
Live: v1.4.19 (image digest sha256:b48f93874cdb…, /api/version=1.4.19)
Fixed
- BD im Zielbereich now shows independent values for 7T / 30T / total (was identical because the headline aliased the 30-day percentage)
/admin/api-tokenstable — no horizontal scrollbar at any viewport (4th attempt — truncate-with-tooltip)- Charts on mobile no longer break the layout when the period chip + range tabs combine
/insightsrawmetric: blood_pressure_sweettemplate leak fixed
Polish
- Settings/Integrations: single status pill top-right (Withings + Mood Log) — no more redundant containers
/insightssingle page-level refresh button- Comparison toggle removed from dashboard, kept only on
/insights - AI prompt: no default "data foundation is strong" opener
- Settings input heights, spacing, action-button positions consistent across all sub-routes mobile + desktop
- Zielwerte status labels in German
- 6 CRITICAL + 21 HIGH copy / consistency / a11y fixes from a comprehensive audit
Hard-Reload (Cmd+Shift+R) for SW reset.
v1.4.20 next — full /insights redesign with AI Coach (plan in
.planning/phase-D-v1419-product-lead-review.md).
v1.5 reserved for iOS app + Apple Health.
What landed (commit highlights per cleanup)
Cleanup A — bugs + polish
| Bucket | Headline commit | Subject |
|---|---|---|
| A1 | a856272 |
fix(analytics): BD-Zielbereich headline routes through new allTime window in computeBpInTargetWindows() |
| A2 | 77a3ad3 + a739085 |
fix(charts): mobile-first header stack + universal x-axis tick density helper |
| A3 | 60a91af / 98a3d10 / 335f288 / fa91a73 |
feat(insights): comparison toggle relocated to hero, single page refresh, BP/Weight tile strip removed, lowercase template-token leak fixed |
| A4 | b5e9a95 |
fix(ai): GROUND RULE 7 — no default-positivity opener; PROMPT_VERSION 4.16.1 → 4.19.0 |
| A5 | ba0d6b8 / 0dcc91a / 47a8fc7 |
feat(settings): <IntegrationStatusPill> consolidates Withings + Mood Log status UI |
| A6 | 957f8e9 / 9fda634 / 1075784 / 737b533 / 78f1f3f |
fix(settings): mobile consistency sweep — input heights, action button placement, language select row |
| A7 | 088832a / dd8212e / 7a70db6 / 6507646 / 90a109d |
fix(admin): feedback tab strip, api-tokens scrollbar 4th attempt, Einklappen removal, Zielwerte spacing + DE labels |
Cleanup B — A8 quality findings applied
16 atomic commits — 6/6 CRITICAL + 21/25 HIGH — covering time-window
locale, login-overview auth filter, achievement title humanisation,
date-input lang, sidebar copy, raw enum badges, audit-action labels,
mobile Sys/Dia badge enum, telegram badge collapse, token name ISO
suffix, recent-activity row links.
Cleanup D — multi-pass QA + reconcile
Six atomic commits cleared the post-Cleanup-B CRITICAL (mobile Sys/Dia
badge enum mismatch, ef74241), 5 simplify-yes consolidations
(6b35cad), and four HIGH fixes (1258b24, 5a8ad3d, 977f124,
1f0d9ad).
What was deferred
Full backlog: .planning/v1420-backlog.md.
- 3 HIGH from QA rolled into v1.4.20: D-CR-H-05
(
/insightsdata?.narrowing — large refactor), D-DSGN-H-01 (api-tokens touch tooltip — needs Popover swap), D-DSGN-H-02 (insights hero density — folded into the v1.4.20 redesign). - 1 HIGH to v1.5: D-SR-H-3 Withings / Mood Log card-chrome dedup —
parked as Apple-Health-card-prep work in
.planning/v15-backlog.md. - 31 MED + 16 LOW from the quality-of-life audit — short-list at
.planning/v1420-backlog.md. /insightsredesign with AI Coach — separate v1.4.20 roadmap; design handoff at~/Downloads/design_handoff_insights_redesign.- iOS app + Apple Health — reserved for v1.5
(
.planning/v15-backlog.md).
CI / Test status
pnpm typecheck— 0 errors.pnpm lint— 0 errors / 12 pre-existing baseline warnings (no new).pnpm test— 1672 / 1672 unit tests green (was 1605 at v1.4.18; +67 net across A1, A2, A3, A4, A5, A6, A7, B, and Cleanup D reconcile TDD additions).pnpm test:integration— 67 / 67 green (was 66 at v1.4.18; +1 for A1's BD-ZielbereichallTimewindow guard).pnpm format:check— only pre-existing.planning/*+docs/audit/*baseline noise dirty (same call as v1.4.18 / v1.4.16; no source-tree drift).pnpm build+pnpm e2e— deferred to CI Docker (Node 22) per project convention; CI runs green on tag and main.
Production deploy
| Field | Value |
|---|---|
| URL | https://healthlog.bombeck.io |
/api/version |
1.4.19 (flipped at 2026-05-10T12:39:59Z) |
| Image digest BEFORE | sha256:c636fca7db66479b3413a7df82117316c042641f9bc7c0fe7d6e2be6811dfcca (v1.4.18) |
| Image digest AFTER | sha256:b48f93874cdbcd6c2d729f1b8eeb63a6d1bbb90d56f629846ef6eab6cf272aa9 (v1.4.19) |
| Release commit | 89f00cf chore(release): v1.4.19 |
| Tag | v1.4.19 (annotated) |
| GHCR — tag run | 25628853202 success |
| Coolify auto-deploy | NO — main-branch deploy hung and was canceled; host-side retag-on-host fallback used |
| Smoke (curl, live session) | / 200 · /insights 200 · /admin/api-tokens 200 · /settings/integrations 200 · /achievements 200 · /dashboard 404 (expected — root is dashboard, no /dashboard route in App Router) |
| GH release | https://github.com/MBombeck/HealthLog/releases/tag/v1.4.19 |
| Docs site | 6e8840e on healthlog-docs/main (six pages refreshed) |
| Landing site | dd5892f on healthlog-landing/main (softwareVersion JSON-LD bumped) |
The tag-build pipeline succeeded; the main-branch deploy stalled and was canceled, so v1.4.19 was promoted via the documented host-side fallback path:
docker pull ghcr.io/mbombeck/healthlog:1.4.19
docker tag ghcr.io/mbombeck/healthlog:1.4.19 ghcr.io/mbombeck/healthlog:latest
docker compose up -d --force-recreate app
/api/version flipped to 1.4.19 on the first poll cycle after
recreate, well inside the 5-minute cap.
v1.4.20 strategic preview
v1.4.20 is the full /insights redesign with an AI Coach surface —
strategic plan at .planning/phase-D-v1419-product-lead-review.md
(redesign brief, layout principles, 3 deferred HIGH items folded into
the new layout). v1.5 stays reserved for the iOS app + Apple Health
integration; design handoff at
~/Downloads/design_handoff_insights_redesign.
Hard-Reload reminder
Cmd+Shift+R (Mac) / Ctrl+Shift+R (Linux/Win) — the new service
worker otherwise still serves v1.4.18 chunks from cache. One-shot is
enough.