chore(release): v1.18.11

This commit is contained in:
Marc-André Bombeck committed 2026-06-21 09:40:53 +02:00
1 parent c17f2abd7b
commit 3e578836cc
4 files changed
+43 -3

No files matched your search

+40
View File
@@ -2,6 +2,46 @@
## [Unreleased]
## [1.18.11] — 2026-06-21 — Coach context, leaner AI cadence, new device signals, and a code-size pass
A follow-on correctness-and-feature release. The Coach gains the lab values and a direct way in; the daily AI work is restructured to do less and reuse more; two new device signals are captured; and several oversized modules are split for clarity. No migration; no breaking changes.
### Added
- The Coach can answer about lab results — the most recent value per biomarker (last twelve months) is provided as grounded context, with reference range, in/out-of-range status, and date. Qualitative results are included. The Coach quotes these verbatim and never invents a value.
- The Coach entry points open directly into the most recent conversation, the same thread across devices, rather than always starting blank. A `?c=<id>` deep-link opens a specific conversation, and the new-chat start is still available.
- The daily briefing is surfaced on the dashboard as a short spotlight strip, lifting its key signals above the fold for a fresh briefing.
- Withings ECG records the device's atrial-fibrillation screening result.
- Oura cardiovascular age is recorded.
- A configured multimodal model now reads a scanned lab document directly. Where the model is text-only (including the code-specialist chat models), the on-device OCR path from the previous release still applies.
### Changed
- The comprehensive briefing reads a bounded recent window instead of the full history; all-time figures remain accurate.
- Per-domain status summaries are generated once on the nightly pass rather than re-run per metric through the day; reproducibility and the consent and grounding checks are unchanged.
- Slow-moving summaries (weight, BMI) are skipped when the underlying inputs have not changed since the last run, avoiding a redundant regeneration.
- The illness and cycle state are folded into the briefing context for users tracking them, at no token cost for users who are not.
- Sleep-night minute values are returned rounded.
- The Coach composer keeps a consistent width between the new-chat start and an open conversation.
### Fixed
- Medication remaining-supply can no longer display a nonsensical negative figure: the canonical readout is floored at the single compute point, and a would-be underflow is recorded for diagnosis rather than shown.
### Performance
- Achievements and the dashboard summary serve from a stale-while-revalidate cache, and the achievements builder precomputes day boundaries instead of per-row; three charts defer their library to load.
- The analytics aggregate folds its canonical self-join into a single shared expression.
### Refactor
- Oversized modules are split into focused modules behind a barrel with no change in behaviour: the OpenAPI medication and insights registries, medication validations, the import panel, and the account settings section.
### Deferred
- Oura resilience capture (a categorical level) is deferred — it needs a new measurement type and column.
- A go-forward aggregated wire shape for high-frequency heart rate is left to the client contract; this release reconciles the already-stored raw samples server-side on the nightly pass.
## [1.18.10] — 2026-06-20 — data-loss fix, measurement consolidation, grounding, and the full-page Coach
A correctness-and-polish release. It closes a silent data-loss path and a stalled measurement-consolidation job, hardens AI output grounding, and acts on a broad round of UI feedback. Two additive migrations (a covering index and a labs setting); no breaking changes.
+1 -1
View File
@@ -1,7 +1,7 @@
openapi: 3.1.0
info:
title: HealthLog API
version: 1.18.10
version: 1.18.11
description: >-
Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "healthlog",
"version": "1.18.10",
"version": "1.18.11",
"description": "Self-hosted personal-health-tracking PWA with Withings integration, AI insights, and doctor-report PDF export.",
"license": "PolyForm-Noncommercial-1.0.0",
"homepage": "https://healthlog.dev",
+1 -1
View File
@@ -36,7 +36,7 @@ try {
// v1.4.38.4 → v1.4.42. Do not hand-edit; bump `package.json` and rebuild.
const CACHE_VERSION =
(typeof self !== "undefined" && self.__APP_VERSION__) ||
/* @sw-version-fallback */ "v1.18.10";
/* @sw-version-fallback */ "v1.18.11";
const STATIC_CACHE = `healthlog-static-${CACHE_VERSION}`;
const PAGE_CACHE = `healthlog-pages-${CACHE_VERSION}`;
// v1.18.6 — read-only data cache for a curated allowlist of safe GET `/api/*`