Marc-André Bombeck
|
90b1a4eaee
|
fix(insights): improve narrative contrast and spacing
|
2026-07-29 21:28:29 +02:00 |
|
Marc-André Bombeck
|
ab450bbfd1
|
fix(dashboard): keep hero headline when score lead is removed
|
2026-07-29 21:20:16 +02:00 |
|
Marc-André Bombeck
|
e1c351e2b7
|
docs: polish release notes and remove planning artifacts
|
2026-07-29 19:19:18 +02:00 |
|
Marc-André Bombeck
|
7c79b1a472
|
ci: acknowledge intentional release scanner exports
|
2026-07-29 17:39:42 +02:00 |
|
Marc-André Bombeck
|
b1e20f59dc
|
release: prepare v1.34.1
|
2026-07-29 17:31:31 +02:00 |
|
Marc-André Bombeck
|
bdca4f5724
|
fix(dashboard): compact score-only hero
|
2026-07-29 17:05:53 +02:00 |
|
Marc-André Bombeck
|
8a19699a59
|
docs(security): record v1.34.1 dependency audit
|
2026-07-29 16:51:05 +02:00 |
|
Marc-André Bombeck
|
1682c3b54d
|
fix(web): render public pages under nonce CSP
|
2026-07-29 16:46:19 +02:00 |
|
Marc-André Bombeck
|
aaa51fb494
|
docs: capture v1.34.2 dependency remediation
|
2026-07-29 16:45:39 +02:00 |
|
Marc-André Bombeck
|
ee2c93a67b
|
test(medications): assert bounded replay details
|
2026-07-29 16:43:22 +02:00 |
|
Marc-André Bombeck
|
92218ccc00
|
test(dashboard): isolate arrival reaction browser coverage
|
2026-07-29 16:34:58 +02:00 |
|
Marc-André Bombeck
|
f54555d187
|
fix(build): stabilize release bundle gates
|
2026-07-29 16:19:30 +02:00 |
|
Marc-André Bombeck
|
271f0ed28a
|
fix(medications): make import replay results honest
|
2026-07-29 16:11:45 +02:00 |
|
Marc-André Bombeck
|
5b695f43ea
|
fix(analytics): restore device-priority sleep selection
|
2026-07-29 16:08:41 +02:00 |
|
Marc-André Bombeck
|
fb02cf89b1
|
fix(jobs): reconcile durable fact inventory
|
2026-07-29 15:59:27 +02:00 |
|
Marc-André Bombeck
|
75aa850eae
|
style: satisfy v1.34.1 format gate
|
2026-07-29 15:59:12 +02:00 |
|
Marc-André Bombeck
|
b0a94b3423
|
fix(web): stabilize document and example downloads
|
2026-07-29 15:57:20 +02:00 |
|
Marc-André Bombeck
|
fb9ae2ac61
|
fix(coach): keep stateless turns grounded
|
2026-07-29 15:56:19 +02:00 |
|
Marc-André Bombeck
|
9354c649fe
|
fix(integrations): surface Google sync progress and canonical workouts
|
2026-07-29 15:55:37 +02:00 |
|
Marc-André Bombeck
|
b9879e8829
|
fix(nightscout): pin approved private origins
|
2026-07-29 15:54:01 +02:00 |
|
Marc-André Bombeck
|
8db21ab718
|
fix(jobs): persist bounded success outcomes
|
2026-07-29 15:50:42 +02:00 |
|
Marc-André Bombeck
|
7acc711d9e
|
test(01-24): record blocked merged release gate
|
2026-07-29 15:43:31 +02:00 |
|
Marc-André Bombeck
|
8b3b2a388e
|
docs(01-24): record merged re-audit block
|
2026-07-29 15:26:59 +02:00 |
|
Marc-André Bombeck
|
8a3c3d096f
|
docs(01-23): complete locale reconciliation plan
|
2026-07-29 15:13:04 +02:00 |
|
Marc-André Bombeck
|
b41b32d472
|
feat(i18n): complete v1.34.1 locale reconciliation
|
2026-07-29 15:11:40 +02:00 |
|
Marc-André Bombeck
|
163aa73e01
|
feat(i18n): reconcile English German and Spanish copy
|
2026-07-29 15:08:50 +02:00 |
|
Marc-André Bombeck
|
67eeefd584
|
fix(i18n): translate final security and import states
|
2026-07-29 15:07:35 +02:00 |
|
Marc-André Bombeck
|
b6dfe62c9d
|
test(i18n): inventory v1.34.1 locale contracts
|
2026-07-29 15:07:05 +02:00 |
|
Marc-André Bombeck
|
d34d781d78
|
docs(01-22): record merged green outcome gate
|
2026-07-29 15:05:38 +02:00 |
|
Marc-André Bombeck
|
1dcadcb0f0
|
docs(01-21): complete Google sync fairness plan
- record atomic task commits and verification evidence
- retain GH-01 and GH-06 as live-account evidence gates
|
2026-07-29 15:04:53 +02:00 |
|
Marc-André Bombeck
|
5bc213c5b8
|
test(01-21): type guarded progress mock calls
- declare the updateMany mock argument tuple
- assert the guarded write exists before inspection
|
2026-07-29 15:04:08 +02:00 |
|
Marc-André Bombeck
|
ba6d06be3b
|
feat(01-21): expose Google sync terminal status
- return redacted per-resource outcomes from manual sync
- poll owner-scoped progress and invalidate committed workout views
|
2026-07-29 15:01:13 +02:00 |
|
Marc-André Bombeck
|
f3008c9ee0
|
docs(01-26): complete workout pulse plan
|
2026-07-29 15:00:38 +02:00 |
|
Marc-André Bombeck
|
104a058096
|
style(workouts): format pulse enrichment
|
2026-07-29 14:58:46 +02:00 |
|
Marc-André Bombeck
|
5ec1a3836f
|
feat(01-21): add fair Google sync outcomes
- finish workout and low-cost resources before dense metrics
- report bounded terminal outcomes and invalidate workout caches
|
2026-07-29 14:58:40 +02:00 |
|
Marc-André Bombeck
|
f6555d471b
|
fix(workouts): show aggregate pulse in lists
|
2026-07-29 14:58:25 +02:00 |
|
Marc-André Bombeck
|
d2f6bf33eb
|
fix(workouts): sanitize WHOOP zone enrichment
|
2026-07-29 14:58:24 +02:00 |
|
Marc-André Bombeck
|
89fefce7ac
|
test(workouts): separate pulse aggregates from curves
|
2026-07-29 14:57:42 +02:00 |
|
Marc-André Bombeck
|
43cce08012
|
fix(workouts): share enriched canonical detail data
|
2026-07-29 14:56:59 +02:00 |
|
Marc-André Bombeck
|
ed63a3bf32
|
test(workouts): pin enriched list and detail envelopes
|
2026-07-29 14:56:21 +02:00 |
|
Marc-André Bombeck
|
bcef9cf51d
|
docs(01-22): complete truthful cohort outcomes plan
- summarize bounded outcome facts and provider verdict folding
- record adjacent Google core verification dependency
|
2026-07-29 14:55:43 +02:00 |
|
Marc-André Bombeck
|
635e9b64c5
|
fix(workouts): enrich canonical WHOOP aggregates
|
2026-07-29 14:55:11 +02:00 |
|
Marc-André Bombeck
|
1cb0f7dd6a
|
test(workouts): pin WHOOP aggregate enrichment
|
2026-07-29 14:53:59 +02:00 |
|
Marc-André Bombeck
|
c3ffc43335
|
refactor(01-22): reuse Google cohort concurrency limit
- preserve the shared Google Health poll fan-out width
|
2026-07-29 14:53:22 +02:00 |
|
Marc-André Bombeck
|
6a3861122c
|
feat(01-22): publish truthful cohort outcomes
- fold complete partial failed parked and skipped user verdicts
- bound serialized job facts to a privacy-safe scalar allowlist
- preserve provider retry isolation and reminder queue completion
|
2026-07-29 14:50:30 +02:00 |
|
Marc-André Bombeck
|
a4f00f16f3
|
docs(01-19): complete Apple Health ECG import plan
- record bounded encrypted import behavior and verification results
- document the counter edge-case deviation and concurrent typecheck issue
|
2026-07-29 14:49:51 +02:00 |
|
Marc-André Bombeck
|
5cfcb69ef2
|
feat(01-21): add guarded Google sync progress
- persist one bounded owner-scoped current-run envelope
- reject stale writers and materialize interrupted runs safely
|
2026-07-29 14:49:12 +02:00 |
|
Marc-André Bombeck
|
addd6b7000
|
fix(01-19): avoid phantom ECG failure counts
- increment archive-level failures only for discovered ECG artifacts
|
2026-07-29 14:47:47 +02:00 |
|
Marc-André Bombeck
|
4b64556b38
|
feat(01-19): expose privacy-safe ECG import outcomes
- return and render bounded ECG result counters with partial-failure wording
- document archive limits, encrypted storage, and exact WHOOP constraints
|
2026-07-29 14:47:22 +02:00 |
|
Marc-André Bombeck
|
a686c7200b
|
feat(01-19): persist Apple Health ECG recordings
- encrypt and upsert stable content-addressed ECG recordings transactionally
- keep XML imports successful while ECG members fail with scalar counters
|
2026-07-29 14:45:40 +02:00 |
|