diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a863b6a1..682facbcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,92 @@ # Changelog -## [Unreleased] +## [1.45.0] — 2026-10-23 ### Added +- **Brazilian Portuguese.** The whole app, the Coach and the reports are + available in pt-BR, with Brazil's crisis lines (CVV 188, SAMU 192) next + to the international ones. Portuguese readers outside Brazil see 112 and + Portugal's SNS 24 and SOS Voz Amiga as well. +- **Translate in the browser.** Translators can edit any language on the + web with their GitHub account and send the change as a pull request; the + contributing guide links the editor and explains what reviewers check. - **Dengue and tuberculosis in the vaccine catalogue.** Dengue is listed with the travel vaccines (two doses three months apart) and tuberculosis with the childhood ones (one dose at birth); neither has a booster. Each cites its WHO position paper, and searching "bcg" finds tuberculosis. +- **The Coach knows your whole lab history.** Asked about a marker such as + LDL or PSA, it now sees your recent values and a yearly summary going + back ten years, instead of stopping at twelve months. Other readings keep + the one-year window. (#1263) + +### Changed + +- **Faster.** On an account with ten years of data the dashboard loads in + well under half the time, a ten-year chart about five times faster and a + one-year chart about three times faster. The values are the same: the + new reads are checked against the old ones across time zones, daylight + saving changes and multiple sources. +- **Steadier start and less memory.** The app no longer freezes for most of + a second while it starts, holds only the language you use in memory, and + pauses heavy background work when the container gets close to its memory + limit instead of being restarted. Stopping the container lets running + jobs finish. +- **The questionnaires follow the validated originals.** PHQ-9, GAD-7, + WHO-5 and the sleep questionnaire now share one flow: the question's time + frame is always shown, answers are a proper choice list you can use with + the keyboard, and a review step lets you check every answer before it is + saved. The result explains the score in plain words and whether it moved + meaningfully since last time. The German, Spanish, Italian, Polish and + French wording now matches the published validated versions word for + word; where no validated translation exists, the original English is + shown rather than an unvalidated one. +- **Re-sent Apple Health data no longer counts as new.** When the iPhone + sends values the server already has, nothing is rewritten and the Apple + Health card no longer claims fresh data arrived; it says when data was + last re-sent without anything new. (#1259) +- Fonts are now part of the app instead of being fetched from Google when + an image is built. + +### Fixed + +- A workout synced by two services counts once everywhere, including when + the two copies fall on either side of a five-minute mark, and opening + either copy shows the same session. +- A backup restored for disaster recovery keeps the original creation + dates of medications, courses, ingredients, nutrient days and mood and + symptom links, and keeps sealed labels and notes sealed. Deleted family + history entries are part of that backup too. +- The Coach refuses more ways of telling you to change a dose, such as + halving it or taking "the same as before" when that is not your plan, in + every language. Several of its safety checks never matched words with + accents; they do now. +- A Strava connection whose refresh token expired now asks you to + reconnect instead of failing quietly. +- Ending a session from the session list records correctly whether it was + your own. +- Values that round to zero no longer show as "-0". +- Sheets on a phone open without a slide when your device asks for reduced + motion, and every control's accessible name now matches its visible + label. +- A large import from Apple Health, Health Connect, Withings or Oura + refreshes the charts that depend on it straight away. + +### Upgrade notes + +- Migration 0471 adds one column for Apple Health bookkeeping. +- Single-container installs need nothing else. If you run the web and + worker roles in separate containers, start the worker first: the job + queue updates its schema on start, and a web-only process waits for it. + See `docs/ops/deploy.md`. +- The supported memory floor stays at 1536 MB for the app container. + +### Thanks + +Thanks to @dareoon for the Brazilian Portuguese translation (#1251), to +@asmala for adding dengue and tuberculosis to the vaccine catalogue +(#1266) and for asking the Coach to look further back in the lab history +(#1263). ## [1.44.2] — 2026-10-22 diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index bba317fee..42491d862 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.44.2 + version: 1.45.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 4b938b34a..752b8f3f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.44.2", + "version": "1.45.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 159bf2e99..70b4ee62e 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.44.2"; + /* @sw-version-fallback */ "v1.45.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/*`