Download Latest Version NOOP v8.2.1 source code.tar.gz (43.4 MB)
Email in envelope

Get an email when there's a new version of NOOP

Home / v8.2.0
Name Modified Size InfoDownloads / Week
Parent folder
NOOP-v8.2.0-ios.ipa 2026-07-05 14.5 MB
NOOP-v8.2.0-macos.zip 2026-07-05 24.7 MB
NOOP-v8.2.0.apk 2026-07-05 19.2 MB
NOOP v8.2.0 source code.tar.gz 2026-07-05 43.4 MB
NOOP v8.2.0 source code.zip 2026-07-05 44.4 MB
README.md 2026-07-05 4.7 kB
Totals: 6 Items   146.1 MB 6

NOOP v8.2.0

The community release. Nearly everything in here started as one of your reports or pull requests, twelve workstreams, six contributors credited, and the biggest one fixes a bug that quietly froze half the app for importers.

Update from the Releases page, AltStore, or brew upgrade as usual.

The big one: imported history no longer freezes your scores

Android: the stuck-on-an-old-date bug is fixed. If you imported a WHOOP CSV or re-added your strap, five surfaces (the Sleep tile, Vitality, Fitness age, Rhythm and the AI coach) could freeze on the import's last day while everything else moved on. The daily-metric resolver now unions every identity your data lives under, the same way the Apple platforms already did, and the Sleep screen itself got the same treatment so it can't drift the other way. Found and fixed via ryanbr's sharp pull request, with one extra seam we caught on review. If this was you (it was several of you), update and your history should snap back without any re-import. (#1008, [#1009], and the second half of [#1014])

Sleep no longer reads 7h30 when it shouldn't. A stage-less schedule record (Health Connect's bedtime span) could override your real scored night with a flat 450 minutes. Bare aggregates now lose to a genuinely scored night, while a real import (WHOOP CSV, with stages and efficiency) still wins its day, and an import that corrects a junk value still corrects it. Thanks smar98 for the export that proved it. (#993)

Fixes

  • Cycling power sensors: wheel speed no longer reads double. The Bluetooth spec uses different clock units for the two wheel-data services (1/2048 s vs 1/1024 s) and we used one for both. Also, switching between sensor types mid-ride now resets cleanly instead of producing one garbage reading. Sharp spec catch by ryanbr. (#1007)
  • Backups got armour. Every restore now integrity-checks the backup before the swap and re-verifies after, rolling back automatically if anything is off. On Android we also replaced the platform default that silently deletes a corrupt database with one that preserves it. Prompted by wanxorg's report. (#1014)
  • Strap-clock problems now say so. A strap with a wrong clock (the usual aftermath of a full drain) used to look like a mystery sync failure. The connection readout now shows whether the clock is latched and warns on a 1970-style date, sync won't chase future-dated history forever (ryanbr, [#1015]), and the sync counter is cumulative so a long backfill no longer looks like it's restarting. (#987, [#990])
  • Test Centre exports tell the truth. The report's storage numbers were placeholder zeros; they're real now, and the export warns you if the test mode you picked was never actually running. (#1002)
  • Deep Timeline shows your sleep and workouts again. The full-day heart-rate view now draws the sleep band and workout markers like the classic chart, and on iPhone you can touch-and-hold to scrub exact values. (#979 follow-ups)
  • The liquid Today settles level when you're lying down. Tilt response now scales with how upright the phone is, so reading in bed doesn't pin the liquid sideways. (#1004)
  • Hydration card updates the moment you log a drink. It could sit stale until an unrelated sync. (#989)

New since you asked

  • Hourly windows on the Today heart-rate card (Android). Pick 1h to 24h; view-only, so it stays instant. (ryanbr, [#985])
  • NOOP speaks full German. Every screen, including the first-run terms. Danke eltomato89. (#984)
  • Oura: activity minutes and MET decoding. More of the ring's on-device data lands locally. Groundwork by pipiche38. (#960)

Under the hood

  • Four performance pickups from ryanbr's batch: the daily-scoring pass drops redundant per-day reads on both platforms, sleep staging is memoized against identical inputs, and day-bucketing lost a hot-loop date formatter. Byte-identical outputs, pinned by tests. (#995, [#996], [#997], [#999])
  • The Test Centre's connection mode can now capture a raw SpO2 research dump, log-only, for the reverse-engineering effort. No made-up SpO2 number will ever ship. (ryanbr, [#945])

Issues closed in this release

[#993], [#989], [#1004] follow-through, plus the queued halves of [#1009] and [#1014]. PRs [#984], [#985], [#945], [#960], [#995], [#996], [#997], [#999], [#1006], [#1007], [#1008], [#1015] all land here, reimplemented under the project with credit, as always.

With thanks

ryanbr (nine, count them, nine), eltomato89, pipiche38, and reporters smar98, wanxorg, burstingninja, Jenssaibe, JordanBouchier, Aditya190803, skforty7. This is what the board is for.

Source: README.md, updated 2026-07-05