From 778725834f4ec4b502188bb0ce6c045baf364195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Fri, 31 Jul 2026 20:32:25 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.35.0=20=E2=80=94=20the=20s?= =?UTF-8?q?core=20you=20decide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Health Score stops being a by-product of switches meant for something else. It gets its own page, its own recorded history with the recipe that made each day, and a comparison that refuses to draw a line across two different definitions. An account that upgrades keeps the composition it already had, so the number does not move on its own. What changes is that the composition is now visible and yours. --- CHANGELOG.md | 48 +++++++++++++++++++++++++++++++++++++++++++ docs/api/openapi.yaml | 2 +- package.json | 2 +- public/sw.js | 2 +- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47baaf25d..ac579edee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,54 @@ ## [Unreleased] +## [1.35.0] — 2026-07-31 + +The Health Score becomes something you decide rather than something that happens +to you. + +### Added + +- You choose what counts toward your Health Score. A settings page of its own + lists the pillars, each one on or off. It starts with everything that can be + scored, so a narrower score is a decision you make rather than a default you + inherit. +- Each day's score is now recorded with the recipe that produced it: the value, + the method, which pillars took part, what each of them scored, and a + fingerprint of the inputs it depended on. Until now nothing was kept, and every + comparison was recomputed under today's rules. +- The score says when its composition was authored, so a number built from a + chosen set never looks like one built from everything available. + +### Changed + +- The module switches no longer decide what the score is made of. Turning off + Sleep or Labs used to remove that pillar from the score with nothing on screen + saying so. Those switches now govern what you see, and the score's own page + governs what it counts. An existing account keeps exactly the composition it + has today, so no number moves on upgrade. +- Changing what counts no longer reads as a change in your health. The comparison + stops at the point the recipe changed and says so, rather than drawing a line + across two different definitions. The per-pillar figures continue, because those + stay comparable. + +### Fixed + +- A settings change can no longer produce a message telling you your score + dropped. +- The score's own coverage figure now describes the pillars it actually counts + rather than every pillar that exists. + +### Removed + +- Two refusals that could not refuse anything, and a boundary condition no input + could ever reach. + +### Operations + +- Two migrations: one for the per-account composition, one for the recorded + scores. The recorded days travel through backup, restore and delete-all-data + like every other table. + ## [1.34.5] — 2026-07-31 A release about the score explaining itself, and about sentences arriving in the diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 0e779b136..7a36fc111 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.5 + version: 1.35.0 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 483df3683..6c736290e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.34.5", + "version": "1.35.0", "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 cb99cf294..43d40a7be 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.5"; + /* @sw-version-fallback */ "v1.35.0"; 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/*`