diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cac6b968..be514cca2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ ## [Unreleased] +## [1.35.2] — 2026-08-01 + +### Added + +- The cycle ring now reads its verdict from the server: which day of the cycle + you are on, how many days until the next one is expected, and whether a period + is late, with the number of days. Both clients read the same answer instead of + each working one out. + +### Changed + +- The Health Score turns green at 70, the same threshold the readiness and sleep + scores already used. A weak pillar still holds the band down no matter how good + the average is, so a single poor area cannot be averaged out of sight. +- The score settings page was rebuilt to match the other settings cards: one + reading edge, no separator lines, the save button where the other cards keep it. +- The Fitness pillar is gone. It could never produce a value, because the record + cannot tell a measured fitness test from a device estimate, so it was offering a + choice that did nothing. +- The arrival line under the greeting is gone. It never said what had arrived. + +### Fixed + +- A saved score selection now comes back exactly as it was sent. One pillar was + quietly stripped on the way to the server, so the page could never agree with + what it had saved and the save button stayed lit for good. +- The cycle wheel follows the timezone on your profile rather than the one your + browser happens to be in. + +### Contract + +- Two share-link fields that were agreed for retirement are no longer served. +- A conflict on a repeated request now returns its error the way every other + route does. One place in the whole codebase answered with a different shape. +- Five gaps in the published specification are closed, including a route that + shipped with the score settings and was never described at all, and one that + had been promised for months. + ## [1.35.1] — 2026-08-01 ### Fixed diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 76aa5f00f..4ae490966 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.1 + version: 1.35.2 description: >- Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest. @@ -13911,7 +13911,7 @@ components: type: object properties: pillars: - maxItems: 8 + maxItems: 7 type: array items: $ref: "#/components/schemas/ScorePillarId" @@ -13942,7 +13942,6 @@ components: - SLEEP - ADIPOSITY - WELLBEING - - FITNESS - LIPIDS description: A Health Score pillar id. ModulePrefsPatchRequest: diff --git a/package.json b/package.json index 00a5fcbaf..328052eaf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.35.1", + "version": "1.35.2", "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 0f50573f3..7bc9df343 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.1"; + /* @sw-version-fallback */ "v1.35.2"; 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/*`