Skip to content

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 09:50
· 42 commits to main since this release
2f7cd96

Somn v0.1.1 — stability hotfix

Fixes the crashes in v0.1.0 where tapping Sleep (and in some cases Settings) could close the app.

The v0.1.0 release shipped with a foreground-service bug: on Android 14+ devices the platform enforces foreground-service types at start time — claiming the "health" type requires the Body Sensors runtime permission and "microphone" requires Record Audio, or the system throws and the app process dies. v0.1.0 declared both types but never asked for Body Sensors, so tapping Sleep could crash on exactly the devices where people most want a sleep tracker.

What's fixed

  • Sleep button crash (the big one). SleepTrackingService now:
    • claims only the foreground-service types whose runtime permissions are actually granted,
    • falls back to the permission-free "special use" type when microphone/body sensors are denied, so sleep tracking still starts,
    • and any failed foreground promotion degrades to a logged, clean stop instead of taking the whole app down.
  • Settings button crash. Opening Settings could crash if any preference flow failed to load. Every Settings data flow is now guarded — it keeps the last known value, logs, and never crashes.
  • Alarm reliability. Alarm foreground promotion is guarded the same way and uses the correct media-playback service type on Android 11+, so alarms start and ring reliably.
  • Onboarding now requests Body Sensors (optional) so sleep tracking can run as a health service on Android 14+.

What else changed

  • Same privacy-first feature set as v0.1.0: on-device sleep tracking, no account, no cloud, no analytics, no ads, no Google Play Services in the release build.
  • New unit tests lock in the foreground-service type logic (143 tests total, lint gate green).

Verified

  • Crash-repro tested end-to-end on Android 15 (tap Sleep, tap Settings, fire an alarm — no crash), Android 13, and install-verified on Android 16.
  • ./gradlew testDebugUnitTest assembleDebug lintDebug all green.

Install

Download app-release-signed.apk and open it on your device (Android 8.0 / API 26+). Allow "install unknown apps" when prompted.

Checksum

SHA-256 (app-release-signed.apk): 1081c954bf6d6a5c06776d324815b51a14d2f00dbf4b323c0aacefc61b7f7f41

Links

License: GPL-3.0