github ilyakruchinin/SomnoTrace v2.0.3

56 minutes ago

SomnoTrace v2.0.3 Release Notes

SomnoTrace v2.0.3 brings significant user-experience improvements to the Web Portal, smarter upload and connection testing, clearer BLE diagnostics, reproducible CI release builds with cryptographic attestations, and expanded test coverage.


🌟 Highlights

  • Test Upload Settings Before Saving: You can now test your SMB NAS and SleepHQ credentials directly from the Web Portal without having to save and reboot the device first.
  • Multi-Session Popovers & Event Breakdown: The dashboard summary now includes an interactive multi-session popover with refined touch support, and Apnea (A) events are now reported in the event breakdown table.
  • Cryptographically Signed Releases: Official release binaries are now built in a clean, reproducible CI container and signed with GitHub Sigstore provenance attestations, allowing instant verification via gh attestation verify.
  • Battery UI & Calibration Instructions: The battery indicator now includes on-screen calibration guidance and clear battery state descriptions.

🖥️ Web Portal & Dashboard

  • Live Credential Testing (#224): Added immediate validation for SMB shares and SleepHQ API tokens. Passwords can be tested as typed, and masked fields are handled securely so stored secrets are never overwritten with placeholder bullets.
  • Multi-Session Inspection: Improved the dashboard summary to show session-by-session breakdowns with enhanced touch responsiveness on mobile and tablet screens.
  • Firmware & Build Provenance (#231): The System Status tab now displays the source repository the firmware was compiled from, making it easy to distinguish official builds from local development or forks in support screenshots.
  • Battery Telemetry: Added helpful battery calibration steps and state indications to the power card.

📡 Connectivity, Uploads & Telemetry

  • Race-Free Upload Probing (#224): Connection testing now claims a dedicated transport lock before connecting, preventing contention with scheduled background upload cycles, backed by a 60-second automatic safety release to prevent deadlocks.
  • Transparent SleepHQ Error Diagnostics (#235): When SleepHQ import processing encounters an issue, serial logs now report the exact cause (HTTP status, server rejection, payload issues, or polling timeout) rather than a generic failure message.
  • Clearer BLE Reconnection Logging: Clarified serial log messages during the slow-retry phase so the timeline explicitly shows the 60-second idle backoff followed by the 30-second connection attempt.

📖 Documentation

  • Continuous Cross-Noon Sessions (#234): Added a dedicated guide in the README explaining why SomnoTrace records therapy spanning midday as a single seamless session (unlike the AS10/AS11, which split it into two days) and how minute clamping keeps OSCAR settings and statistics intact.

🛡️ Quality Assurance & Supply Chain Security

  • Automated CI Release Pipeline (#230): Release images (somnotrace-*-full.bin and -ota.bin) are now compiled in GitHub Actions using the pinned ESP-IDF container and signed via Sigstore.
  • Static Analysis in CI (#229): Integrated automated cppcheck (for C firmware) and shellcheck (for shell scripts) with reproducible local ./scripts/lint.sh --docker support.
  • Automated Mutation Testing (#221, #232): CI now runs automated mutation suites to verify test assertions, accompanied by an offline mutation exploration harness.
  • Boundary Test Coverage (#233): Pinned the minimum valid VLD3 oximetry file size (45 bytes) to protect against parser boundary regressions.
  • Contributor Attribution (#226): Added repository .mailmap for consistent contributor attribution.

👥 Contributors & Acknowledgements

A huge thank you to everyone who contributed code, testing, and feedback to make this release possible!

Code Contributions

  • @Plantucha (Michal Planicka): Outstanding contributions across the board—implementing live credential testing (#224), CI release attestation (#230), static analysis gates (#229), repository provenance stamps (#231), mutation testing tools (#232), boundary test coverage (#233), SleepHQ diagnostics (#235), and cross-noon documentation (#234).
  • @ilyakruchinin (Ilya Kruchinin): Multi-session dashboard popovers, Apnea event reporting, battery UI calibration guidance, BLE reconnect cadence clarification, and STR boundary clamping.

Testing & Community Feedback

  • @irfanguder (Irfan Guder): Invaluable real-world field testing, providing logs and reports that directly led to the cross-noon continuous session documentation (#88) and the BLE reconnection timing clarification (#228).
  • Thank you to all community members testing the Web Portal, verifying upload connections, and sharing feedback to keep SomnoTrace reliable and accurate!

Full Changelog: v2.0.2...v2.0.3

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.