mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-12 22:26:13 +00:00
chore(release): v1.28.39 — sync data-loss hardening
Four verified HIGH data-integrity fixes, each in-place per-provider (no shared helper), from the campaign's data-integrity audit + adversarial verification: F1 — drain-per-sample-cumulative buildScanWhere was the only one of four sibling drains missing deletedAt: null; the nightly cumulative fold re-summed soft-deleted Apple samples and hard-deleted the legacy-steps audit tombstones. Added the filter (mirrors consolidate-daily-mean, dense-intraday-retention, consolidate-legacy-steps). F2 — the additive late-fold merge had no single-flight guard, so two overlapping runs (deploy overlap, or the admin endpoint racing the cron) produced a permanent 2x daily total. Added a pg_advisory_xact_lock per (user, externalId) plus an in-transaction re-read of the live contributors so the serialised-second fold contributes zero (a bare lock alone would still re-add its stale scanned sum). Mirrors the documents quota advisory-lock pattern. F3 — Withings sleep externalId keyed on segment START while measuredAt + the natural key use END; a re-scored segment missed the externalId probe, the sweep tombstoned the old row, and the re-keyed insert collided on the natural key and wedged. Added the natural-key rescue (re-key in place), mirroring the same-file measure path. F4 — Withings measure sync stamped lastSyncedAt + recordSyncSuccess unconditionally after a warn-only per-row loop; a transient write failure stranded the reading behind the 10-min overlap forever. Now holds the watermark and records failure on a hard row error (mirrors google-health/fitbit), while a benign P2002 still advances. Regression test per finding (reverting the three source files fails exactly four tests). Integration suite green against real Postgres.
This commit is contained in:
1 parent
51d42f9422
commit
7386630962
10 files changed
+530
-19
No files matched your search
@@ -1,7 +1,7 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: HealthLog API
|
||||
version: 1.28.38
|
||||
version: 1.28.39
|
||||
description: >-
|
||||
Self-hosted personal-health-tracking PWA — public API surface for the iOS native client and external ingest.
|
||||
|
||||
|
||||
Reference in new issue
Block a user