From f88546dc2b3efcf4086a96f6bd66c2003fedaa9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Fri, 24 Jul 2026 07:54:26 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.32.13=20=E2=80=94=20withho?= =?UTF-8?q?ld=20malformed=20status=20assessment=20output?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bump to 1.32.13, regenerate the OpenAPI version stamp, and record the CHANGELOG entry for the truncated-assessment fix. Refs #608 --- CHANGELOG.md | 23 +++++++++++++++++++++++ docs/api/openapi.yaml | 2 +- package.json | 2 +- public/sw.js | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21e9d0264..40a29b5c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ ## [Unreleased] +## [1.32.13] — 2026-07-24 + +An Insights assessment card no longer shows the raw model output when a response +comes back incomplete. If the underlying text was cut off, the card now falls +back to its computed summary instead of printing the unfinished data. + +- **A cut-off assessment stays hidden.** The per-metric assessment cards, like + the one for resting pulse, ask the model for a small structured reply and then + read the summary out of it. When that reply arrived truncated, the reader + could see the whole envelope on the card, including the property name, the + braces, the quotes, and the escaped line breaks. The card now recognises an + incomplete or malformed reply and serves the deterministic summary it already + falls back to when no model text is available, so the raw output never reaches + you. +- **Plain-text assessments are untouched.** A model that answers in an ordinary + sentence rather than the structured shape is still shown as written, so this + change only affects broken replies and leaves normal ones exactly as before. +- **The same guard covers the other cards.** Medication compliance and the + derived-score assessments read their summary the same way, so they now hold + back a broken reply too rather than persisting it as the day's text. + +Thanks to @lutzkind for reporting this one. + ## [1.32.12] — 2026-07-24 A mood you log late in the evening now lands on the day you logged it, in your diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 6d294958d..e676736b2 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.32.12 + version: 1.32.13 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 7263d8e93..19832faca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.32.12", + "version": "1.32.13", "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", diff --git a/public/sw.js b/public/sw.js index 64fa96d62..9ac7db314 100644 --- a/public/sw.js +++ b/public/sw.js @@ -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.32.12"; + /* @sw-version-fallback */ "v1.32.13"; 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/*`