mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
chore(release): v1.4.18
Per-chart overlay toggles, expanded achievements roster (incl. hidden Easter-eggs), BD-Zielbereich 7T/30T sub-values wired, chart visual revert to clean lines, and the AdminShell mobile section-strip scrollbar fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
c072ad8416
commit
0243e20853
2 files changed
+73
-1
No files matched your search
@@ -1,5 +1,77 @@
|
||||
# Changelog
|
||||
|
||||
## [1.4.18] — 2026-05-10
|
||||
|
||||
### Added
|
||||
|
||||
- **Per-chart overlay toggles.** Every chart on the dashboard now has a
|
||||
cog menu (44 × 44 tap target) with three independent switches: trend
|
||||
indicator, trend arrow, and target-range overlay. Defaults are off so
|
||||
the default look is a clean line. State is persisted per user per
|
||||
chart in `User.dashboardWidgetsJson.chartOverlayPrefs` (no migration)
|
||||
and round-tripped through a new `PUT /api/dashboard/chart-overlay-prefs`
|
||||
in a Serializable transaction.
|
||||
- **Expanded achievements roster.** 21 new achievements bring the total
|
||||
to 59. Adds streak, milestone, consistency, improvement, and discovery
|
||||
categories on top of the existing security / engagement / vitals /
|
||||
medication groups. Locked public badges only render once the user has
|
||||
data for the underlying metric so the page isn't a wall of grey on
|
||||
day one.
|
||||
- **Hidden Easter-egg achievements.** Six hidden badges that paint as
|
||||
opaque "Hidden achievement" placeholders until unlocked. The real
|
||||
strings, descriptions, and icons never reach the DOM (or the API
|
||||
response) for locked-and-hidden entries, so peeking the bundle or the
|
||||
network tab doesn't spoil them. Unlock toast adds a longer Sparkles
|
||||
celebration with a "you unlocked a hidden achievement!" headline.
|
||||
- **BD-Zielbereich tile 7T / 30T sub-values.** The two sub-values on
|
||||
the blood-pressure-in-target tile now show real measurement data.
|
||||
Backed by a new `computeBpInTargetWindows()` helper that re-uses the
|
||||
v1.4.16 ceiling predicate but filters input by `measuredAt`.
|
||||
`/api/analytics` surfaces `bpInTargetPct7d` / `bpInTargetPct30d`.
|
||||
|
||||
### Changed
|
||||
|
||||
- **Charts use clean lines without gradient fills.** The v1.4.16
|
||||
Apple-Health-style gradient backgrounds are gone. Lines stay smooth-
|
||||
interpolated, tooltips stay rich, animation-on-render still respects
|
||||
`prefers-reduced-motion` — only the gradient fill area is removed.
|
||||
- **Mood chart shows simple dots at data points.** The emoji glyphs
|
||||
introduced in v1.4.16 are replaced with plain coloured dots; the
|
||||
emoji still appears in the tooltip.
|
||||
- **Personal-baseline / mean overlays are opt-in.** The 90-day-median
|
||||
reference line on health and mood charts is no longer always-on; it
|
||||
only renders when the per-chart Trend toggle is enabled.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **`/admin/api-tokens` mobile horizontal scrollbar.** Third attempt,
|
||||
this time pinned to the actual offender via Playwright probe of the
|
||||
prod page at Pixel-5 viewport. The scrollbar was painted by the
|
||||
AdminShell mobile section strip (13 entries, scrollWidth ≈ 1700 px),
|
||||
not the api-tokens table. Added a `.no-scrollbar` utility and applied
|
||||
it to both AdminShell and SettingsShell mobile strips. Swipe and
|
||||
keyboard-arrow scrolling preserved.
|
||||
- **`/insights` legacy-payload crash.** Already shipped in the v1.4.17
|
||||
hotfix; documented here for completeness. Cached pre-strict insights
|
||||
in the v1.4.14 `{changed, stable, drivers, …}` shape now render a
|
||||
"Regenerate insights" card instead of throwing
|
||||
`Cannot read properties of undefined (reading 'replace')`.
|
||||
- **BD-Zielbereich 7T / 30T sub-values.** Were always rendering "—"
|
||||
because `/api/analytics` only computed a single 30-day window and
|
||||
the tile passed `avg7={null}, avg30={null}`. Wired correctly — see
|
||||
Added.
|
||||
|
||||
### Deferred to v1.4.19 / v1.5
|
||||
|
||||
- **i18n bundle leak (security HIGH).** The hidden-achievement
|
||||
redaction landed at the API layer, but `messages/en.json` and
|
||||
`messages/de.json` are still statically imported into the client
|
||||
bundle, so a determined user can `Cmd-F` for the hidden strings in
|
||||
`_next/static/chunks/*.js`. Needs a build-time strip or reversible
|
||||
obfuscation. Tracked in `.planning/v1419-backlog.md`.
|
||||
- See `.planning/v1419-backlog.md` for the short-list and
|
||||
`.planning/v15-backlog.md` for the strategic v1.5 items.
|
||||
|
||||
## [1.4.17] — 2026-05-10
|
||||
|
||||
### Fixed
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "healthlog",
|
||||
"version": "1.4.17",
|
||||
"version": "1.4.18",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@10.31.0",
|
||||
"scripts": {
|
||||
|
||||
Reference in new issue
Block a user