From 16fdc75513c13fa2e35b0ae7695b25e7695d359e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Mon, 1 Jun 2026 17:37:11 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.8.4=20=E2=80=94=20medicati?= =?UTF-8?q?on=20card=20accuracy=20+=20Insights=20polish?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The medication card reads the schedule engine's next-due (fixes interval/one-time schedules that never advanced after a dose), logging a dose confirms itself, Insights status polling is bounded, each Insights category explains itself inline, medication history shows each dose's origin, and an idempotent migration adds the app_settings columns that were only ever applied ad-hoc. --- CHANGELOG.md | 14 ++++++++++++++ docs/api/openapi.yaml | 2 +- package.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62b16a8bd..92abd02d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [1.8.4] — 2026-06-01 — Medication card accuracy + Insights polish + +### Fixed + +- **The medication card shows the correct next intake for every schedule.** Flexible "interval after the last dose" and one-time medications previously showed a next-intake derived from a simplified day-of-week rule that ignored the interval and the last logged dose — so a medication taken every few weeks proposed tomorrow and never moved after a dose was logged. Both the standard and the injection card now read the schedule engine's computed next-due, so the next intake is right on creation and advances the moment a dose is recorded. +- **Insights status polling is bounded.** When a model is configured but generation stalls, the per-category assessment card no longer polls indefinitely on an open page — it stops after a fixed ceiling and shows its static state. +- **Clean deploys no longer hit a missing settings column.** Four `app_settings` columns existed in the schema but had only ever been applied ad-hoc, so a migrations-only deploy could fail on first read; an idempotent migration now adds them (a no-op on instances that already have them). + +### Changed + +- **Logging a dose confirms itself.** Marking a medication taken or skipped now shows a brief confirmation, and the card's next-intake updates immediately. +- **Each Insights category explains itself inline.** The short metric definition now also appears as a caption under the category heading, alongside the existing question-mark tooltip. +- **Medication history shows where each dose was logged** — web, the iOS app, a reminder, or an import — as a small origin label on each entry. + ## [1.8.3] — 2026-06-01 — Insights no longer block the interface Opening an Insights category and switching between them could freeze the whole interface for several seconds while the per-category assessment was generated. The interface now stays responsive throughout. diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index e6c4bab8a..5e72f31ea 100644 --- a/docs/api/openapi.yaml +++ b/docs/api/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: HealthLog API - version: 1.8.3 + version: 1.8.4 description: >- Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest. diff --git a/package.json b/package.json index 988c1b81c..ed9603af0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.8.3", + "version": "1.8.4", "description": "Self-hosted personal-health-tracking PWA with Withings integration, AI insights, and doctor-report PDF export.", "license": "AGPL-3.0-only", "homepage": "https://healthlog.dev",