From 2618a7ae711ddda3331ce39d5a0ad2293055ff8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 2 Aug 2026 00:38:01 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.35.4=20=E2=80=94=20the=20c?= =?UTF-8?q?hecks=20tell=20the=20truth=20about=20the=20calendar=20and=20abo?= =?UTF-8?q?ut=20themselves?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ docs/api/openapi.yaml | 2 +- package.json | 2 +- public/sw.js | 2 +- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 469b3b706..4aeedec14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,36 @@ ## [Unreleased] +## [1.35.4] — 2026-08-02 + +### Fixed + +- A checkup due later today is no longer described as overdue. Two places + counted the distance to a checkup in hours and rounded, which is a different + question from how many calendar days away it is. On a Friday evening, + something due Saturday morning is fourteen hours away and something due Sunday + morning is thirty-eight, and rounding turned both into tomorrow. Both now + count calendar days in the timezone on your profile. +- The assistant and the screen beside it now agree about when a checkup is due. + The list the assistant reads flipped to overdue the moment the clock time + passed, while the page still said today until midnight. One appointment could + produce two different answers depending on which one you asked. + +### Internal + +- The set of places that can work out who is calling is now frozen by a check. + It covers surfaces that read a session and surfaces that authenticate by a + credential in the address rather than a session, which no earlier check + watched at all. Adding one now fails the check until it is listed with a + reason. +- One place that turns an access token into an account was outside the previous + check's reach, because the check looked for a phrase the file happens to write + across two lines. It matched nothing and reported success. It now tolerates + the formatting and fails when it finds nothing to match, so an empty result + can no longer read as a pass. +- Test fixtures that stated the score version by hand now read it from the same + place the application does, so a future change to it cannot leave them behind. + ## [1.35.3] — 2026-08-01 ### Added diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 01bb4b8d6..cd5d39b81 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.35.3 + version: 1.35.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 96e4eeb1f..21819c8f7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.35.3", + "version": "1.35.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 23a1b22c7..e902efa2a 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.35.3"; + /* @sw-version-fallback */ "v1.35.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/*`