mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 04:50:59 +00:00
chore(release): v1.4.38.5
Analytics fast-path restored. The boot-time rollup-backfill discovery query was only matching users with ZERO rollup rows; long-running accounts silently stranded the moment a brand-new measurement type landed because their existing rollup buckets kept them invisible to discovery while the new type's empty partition kept `isFullyCovered(coverage)` at `false`. Every `/api/analytics`, dashboard summary, and mood-analytics read then fanned out to the live aggregator across the full measurement table — 30-75 s on power-user accounts after every container restart. v1.4.38.5 widens discovery to per-type missing coverage so the boot-backfill queue picks up these accounts on the next deploy and folds them. See CHANGELOG.md.
This commit is contained in:
1 parent
93d639c746
commit
ca96fb94a3
2 files changed
+38
-1
No files matched your search
@@ -1,5 +1,42 @@
|
||||
# Changelog
|
||||
|
||||
## [1.4.38.5] — 2026-05-18 — Analytics fast-path restored on long-running accounts
|
||||
|
||||
Hotfix on top of v1.4.38.4. `/api/analytics` and the dashboard
|
||||
summary route were timing out at 30-75 s on power-user accounts
|
||||
after every container restart — the cold-cache miss fanned out to
|
||||
the live SQL aggregator across the full measurement table instead
|
||||
of riding the rollup-fast-path that v1.4.36 / v1.4.37 had landed.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Boot-backfill discovery now widens to per-type missing
|
||||
coverage.** v1.4.35.1 introduced
|
||||
`enqueueBootTimeRollupBackfill` with a discovery query that only
|
||||
matched users with ZERO rollup rows. Any account that had ever
|
||||
been folded (every long-running user) silently stranded once a
|
||||
brand-new measurement type landed: the existing rollup buckets
|
||||
kept the user invisible to discovery, but the new type's empty
|
||||
DAY partition kept `isFullyCovered(coverage)` at `false` forever.
|
||||
Every analytics / dashboard read then fanned out to the live
|
||||
aggregator across the full measurement table.
|
||||
|
||||
Discovery now joins `(user, distinct measurement type)` against
|
||||
`measurement_rollups` on the DAY granularity and surfaces users
|
||||
where any partition is unmatched. The v1.4.35.1 zero-rollup case
|
||||
is still covered (the LEFT JOIN of an empty rollup table emits a
|
||||
row for every type the user has logged). Integration test pins
|
||||
the regression: a user with WEIGHT rolled up + a brand-new PULSE
|
||||
row now lands on the queue.
|
||||
|
||||
### Operator notes
|
||||
|
||||
- On first boot after deploy, the rollup-full-backfill queue picks
|
||||
up users with any missing type-coverage and folds them. Power-
|
||||
user accounts may see one slow `/api/analytics` cold-mount
|
||||
before the next request lands on the restored fast path.
|
||||
- No new migration. No env-var change.
|
||||
|
||||
## [1.4.38.4] — 2026-05-18 — Self-healing stale-shell after every deploy
|
||||
|
||||
v1.4.38.3 closed the stale-shell case where the user trips
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "healthlog",
|
||||
"version": "1.4.38.4",
|
||||
"version": "1.4.38.5",
|
||||
"description": "Self-hosted personal-health-tracking PWA with Withings integration, AI insights, and doctor-report PDF export.",
|
||||
"license": "AGPL-3.0-only",
|
||||
"homepage": "https://healthlog.dev",
|
||||
|
||||
Reference in new issue
Block a user