diff --git a/CHANGELOG.md b/CHANGELOG.md index 90ca2058e..8f4a86455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,55 @@ ## [Unreleased] +## [1.34.4] — 2026-07-31 + +A release about two places in the code answering one question differently. + +### Added + +- An inferred nap is now shown as its own band in the sleep stage view instead of + being blended into that night. A nap used to be counted into the night's stages, + so a day with a long afternoon sleep read as a longer and shallower night than + it was. Nights without a nap look exactly as they did, with no empty band and no + legend entry for something that is not there. + +### Fixed + +- A checkup that is due tomorrow says tomorrow. The dashboard card worked its due + line out in rolling 24-hour steps while the checkups page used calendar days, so + the same appointment could read as due tomorrow on one screen and in two days on + the other. Both now read one shared rule. +- The due line and the date printed beside it are worked out on the same clock. + One used the device's timezone and the other the profile's, which disagree by a + day for anyone travelling or on a machine set to another zone. +- Recording something no longer takes minutes to appear on the home page. The page + render and the API were each holding their own copy of the server cache, so a + write emptied one and left the other serving the state from before it. They now + share one. +- Returning to the dashboard no longer answers a refresh with a reading fetched + before your last entry. +- The onboarding profile step says when the server could not accept a field. + Valid answers are kept, rejected ones are named, and if nothing could be saved + the message says which field blocked it. +- A cycle symptom's intensity survives a backup and restore. It was recorded and + shown, and every export quietly dropped it. Older backup files still restore, + with the intensity honestly absent rather than filled in with a zero. + +### Removed + +- The Health-Score explainer switch in the operator settings. It promised a control + that was deliberately removed two releases ago, so it had been switching nothing + for months. + +### Internal + +- The sleep composition and the single-night view now agree about which session is + the night, because they ask the same function rather than each deciding. +- A test that was meant to prove a dose taken before midnight stops reminding could + not fail: the stand-in for the database ignored the time window it was asked for. + It now honours it, and both directions are pinned, so a genuinely missed dose + still escalates. + ## [1.34.3] — 2026-07-31 A release about surfaces that knew something and did not say it. diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 25fb37174..a9721d741 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.34.3 + version: 1.34.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 c993e4965..a77845fcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.34.3", + "version": "1.34.4", "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 3f1789a63..1fe34fe52 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.34.3"; + /* @sw-version-fallback */ "v1.34.4"; 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/*`