Skip to content

v0.5.1: fix Stress detail screen (HRV-stress shape) - #16

Merged
abdulsaheel merged 1 commit into
mainfrom
feat/wake-trigger
Jun 21, 2026
Merged

v0.5.1: fix Stress detail screen (HRV-stress shape)#16
abdulsaheel merged 1 commit into
mainfrom
feat/wake-trigger

Conversation

@abdulsaheel

Copy link
Copy Markdown
Collaborator

Stress detail screen read the old top-level keys; /day/stress now nests HRV stress under stress. Rewrote the screen to render the real score + SI/LF-HF/RMSSD + HR context + overnight arousal + drivers. Bump → 0.5.1+13.

🤖 Generated with Claude Code

The Stress detail screen read the old top-level score/buckets/worn_min keys, but
/day/stress now nests the HRV stress under 'stress' ({score,si,lf_hf,rmssd,level}).
It saw null and showed 'No stress data' while Today (daily.stress.score) showed the
real value. Rewrote it to render the HRV score + SI/LF-HF/RMSSD + HR context +
overnight arousal + drivers.
@abdulsaheel
abdulsaheel merged commit daa6f2a into main Jun 21, 2026
abdulsaheel added a commit that referenced this pull request Jun 26, 2026
v0.5.1: fix Stress detail screen (HRV-stress shape)
abdulsaheel added a commit that referenced this pull request Aug 9, 2026
The branch forked at 5faa4b0 and was 96 commits behind. The last two
experimental releases (0.9.22, 0.9.23) were both cut from that fork point, so
WHOOP 5 testers have been running builds without fixes main has had for weeks
— including the ones that matter most on iOS: strength workouts never reaching
Apple Health (#184), strain scored 0.0 after a backgrounded workout (#206),
reconnect dying for the process lifetime after one throw (#208), and the
crash batch in #212, whose Journey-timeline clamp is the most-hit issue in
Crashlytics. This merge ends that drift before the next experimental.

Five conflicts, three of them real, all resolved as keep-both:

  getBattery/getHello — take main's throttled _pollBatteryIfDue (a raw send
    here was 2,880 radio round-trips a day) and keep the branch's gen5 HELLO,
    which is a different opcode on Maverick.
  enableHrOnlyLive — both sides wanted a line at the same place: the branch's
    isGen5 lookup and main's _applyLinkPriority() step-down. Both are kept.
  app_state imports — union of the two `show` lists.

One conflict git resolved silently and wrongly, caught by the analyzer rather
than by the merge: gen5 changed `setAlarm` to return the armed instant
(null = the write never reached the band) where main returns a bool, and
main's alarm grace-retry — code the branch has never seen — assigned it
straight to `bool rearmed`. Same signal either way, so the call site becomes
`!= null` and the retry bookkeeping is unchanged.

Dependency pins, both moved forward rather than merged blind:

  protocol -> 367d22b, protocol main @ #16 merge. gen5 is ON MAIN now, so the
    side-branch pin is obsolete; this SHA is a strict superset of the 7edcb3e
    edge main carried (crc8 length check, realtimeRr RR-bound, odd-length hex
    rejection) plus every gen5 decoder the branch needs.
  analytics -> main's 1fb34dc. The branch's cbbe06a is an ancestor of it, 15
    commits behind, so this is a straight fast-forward.

flutter analyze lib test clean. Full suite +1535 ~2, 0 failures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant