chore(release): v1.39.9 — log a workout by hand, a page for body fat, and the AI response time everywhere

This commit is contained in:
Marc-André Bombeck committed 2026-10-03 00:35:27 +02:00
1 parent a14ae57283
commit e42b3f331f
4 files changed
+40 -3

No files matched your search

+37
View File
@@ -1,5 +1,42 @@
# Changelog
## [1.39.9] — 2026-10-03
Workouts can be logged by hand, the body fat tile opens its own page, and
every AI call honours the response-timeout setting.
### Added
- **Manual workouts (#1085).** A short form (sport, start, duration, optional
distance and energy) from the dashboard "+ Add" menu, the capture picker and
the workouts page, saved through `POST /api/workouts/batch` with
`source: "MANUAL"` and a per-form `externalId`. New
`DELETE /api/workouts/{id}` for manual workouts only (409
`workout.delete.synced_source` for synced ones).
- **Body fat page (#1084).** `/insights/body-fat`; insights layout id
`body-fat`. Tile destinations live in one table gated on the module surface
map.
- **Wide lab scan review (#1059).** The review stage uses a 72 rem dialog on
large screens, with a container-query row layout.
### Fixed
- **AI response timeout (#1090).** Document reading, summaries, extraction,
lab OCR, filing suggestions, medication extraction, the About-me questions,
the document chat and the provider test run under the user's setting
instead of a fixed 60 s; browser aborts derive from
`ai.provider.responseTimeoutMs` on `/api/auth/me`. The lab OCR text mode no
longer hits the 15 s client default. The settings placeholder shows the
real defaults.
- **Dashboard "+ Add" menu.** Mood and medication intake follow their
modules, like the capture picker.
### Checks
- Tile destination guard, AI call timeout guard, menu and picker parity.
- node-forge advisory GHSA-86w9-cpqp-85rv ignored until a patched release
exists; only the unused APNs certificate path depends on it.
## [1.39.8] — 2026-10-02
New ECGs from the iPhone get through, a resting heart rate can be logged by
+1 -1
View File
@@ -1,7 +1,7 @@
openapi: 3.1.0
info:
title: HealthLog API
version: 1.39.8
version: 1.39.9
description: >-
Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest.
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "healthlog",
"version": "1.39.8",
"version": "1.39.9",
"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",
+1 -1
View File
@@ -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.39.8";
/* @sw-version-fallback */ "v1.39.9";
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/*`