chore(release): v1.32.18 — a dead Fitbit token no longer stamps a successful sync

Hold the Fitbit sync verdict when the token is dead or a write fails, and
verdict-gate the history backfill so a partial first-time import retries
instead of marking itself complete. No schema or contract change; the OpenAPI
version string tracks the bump.
This commit is contained in:
Marc-André Bombeck committed 2026-07-24 13:00:27 +02:00
1 parent da8dfe4256
commit 115c3e3dcd
4 files changed
+31 -3

No files matched your search

+28
View File
@@ -2,6 +2,34 @@
## [Unreleased]
## [1.32.18] — 2026-07-24
When a Fitbit token was revoked or expired, the hourly sync noticed the failure
but then stamped the same cycle as a success. The connection flipped back to
connected, the sync position moved forward, and after you reconnected the
catch-up window could no longer reach the days that were missed. So the data
was skipped for good, and in the meantime the failing token was retried every
hour.
- **A revoked Fitbit token no longer reports a successful sync.** A failed token
refresh now fails the whole cycle. The connection stays parked until you
reconnect, the sync position holds instead of advancing past real data, and
the once-per-failure alert stops repeating every hour.
- **Data after a reconnect is no longer skipped.** Because the position is held
back on a failed cycle, the next successful sync still covers the days that
were missed rather than starting after them.
- **A write failure during a sync holds its place too.** If rows were fetched
but could not be saved, the cycle keeps its position so the next run fetches
them again instead of letting them fall outside the catch-up window.
- **An interrupted history backfill no longer marks itself complete.** A partial
first-time import is retried until a full pass finishes, so the one-year
history walk fills in rather than freezing halfway.
If your Fitbit history already has a gap from before this release: reconnect
Fitbit if prompted, then open Settings, Integrations, Fitbit and run a full
sync. It re-walks the last year and fills the gap in place. Gaps older than a
year are outside the backfill window and cannot be recovered.
## [1.32.17] — 2026-07-24
The mood correlations on the Insights page could line up a day off. Your mood
+1 -1
View File
@@ -1,7 +1,7 @@
openapi: 3.1.0
info:
title: HealthLog API
version: 1.32.17
version: 1.32.18
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.32.17",
"version": "1.32.18",
"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.32.17";
/* @sw-version-fallback */ "v1.32.18";
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/*`