Skip to content

Widget: republish on live heart-rate changes too (#114)#8

Closed
digitalerdude wants to merge 2 commits into
mainfrom
widget-hr-live-refresh
Closed

Widget: republish on live heart-rate changes too (#114)#8
digitalerdude wants to merge 2 commits into
mainfrom
widget-hr-live-refresh

Conversation

@digitalerdude

Copy link
Copy Markdown
Owner

Summary

  • Addresses Data inaccuracy on the iOS widget ryanbr/noop#114.
  • A same-day maintainer commit (134197f) fixed the Home/Lock-Screen widget's battery % and connection state going stale during a foreground session, since those are LIVE state (model.live) that never bumps the repo-cache refreshSeq the widget's other fields ride. That commit explicitly scoped out other polish from Data inaccuracy on the iOS widget ryanbr/noop#114 but left one gap of the same kind: WidgetSnapshot.bpm reads model.bpm (the smoothed live heart rate), which had no matching republish hook.
  • Adds a model.$bpm-driven republish hook, foreground-gated exactly like the existing battery/connected ones. model.bpm already change-guards itself in ingestHR() (only assigns when the smoothed median actually moves), so this can't out-pace the existing hooks' throttling story.
  • Does not touch the "Charge reads like battery" label question or richer widget illustrations also mentioned in Data inaccuracy on the iOS widget ryanbr/noop#114 — the maintainer's own commit called those out as separate design calls, so left them out of scope here too.

Test plan

  • iOS (NOOPiOS) target builds clean via xcodebuild.
  • Change mirrors the exact pattern of the existing, already-merged battery/connected hooks in the same file — no new test seam needed, consistent with that precedent (which also shipped without new tests, per its own commit message).
  • Could not get a live on-device check of the widget refreshing during an active HR stream in this environment — worth a manual check before merge.

🤖 Generated with Claude Code

A same-day maintainer fix (134197f) republished the Home/Lock-Screen
widget snapshot on live battery/connection changes, since those are
LIVE state (model.live) that never bumps the repo-cache refreshSeq the
widget otherwise rides. WidgetSnapshot.bpm reads the same category of
live field (model.bpm) but had no matching hook, so the widget's heart
rate could freeze at a stale value for an entire foreground session
while a strap was actively streaming. Adds the same foreground-gated
republish hook for model.$bpm, mirroring the battery/connected ones
already in place.
@digitalerdude

Copy link
Copy Markdown
Owner Author

Closing this fork-internal PR to declutter — the real submission lives at ryanbr/noop (upstream). See that repo's PR list for the current, actionable version of this work.

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