diff --git a/CHANGELOG.md b/CHANGELOG.md index 31dee42ef..a3547ac37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [1.43.2] — 2026-10-16 + +### Fixed + +- **AI consent is only ever given by the person.** Opening the AI settings in + the web app, and the iOS app's launch sync, minted an `ai_full` consent + receipt without anyone agreeing, so background AI work could reach the + operator's shared key without consent. `POST /api/consent/ai` and + `POST /api/consent/ai/web` now write a receipt only with + `"confirm": true` and answer 400 `consent.ai.confirmRequired` otherwise. + Where AI is blocked only by missing consent, the web shows a consent card + that names the service and the data, with an explicit Agree button. + Existing receipts stay valid; the AI settings show since when consent is + given and how to withdraw it. `/api/auth/me` publishes `ai.consent` + (`status`, `since`, `recipients`). + ## [1.43.1] — 2026-10-16 ### Fixed diff --git a/docs/api/openapi.yaml b/docs/api/openapi.yaml index 1da7029ef..85801ca8e 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.43.1 + version: 1.43.2 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 3d2c7e236..2eff96e80 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "healthlog", - "version": "1.43.1", + "version": "1.43.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 026aad604..ec11eed34 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.43.1"; + /* @sw-version-fallback */ "v1.43.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/*`