github ilyakruchinin/SomnoTrace v3.2.7

5 hours ago

SomnoTrace v3.2.7

๐Ÿ› ๏ธ Fix: EDF import no longer stops after the first folder (#338)

A subtle but nasty one for AirSense 10 users: importing a card with many
day folders only ever processed the oldest one per boot. The cause was the
.crc checksum file that AS10 writes beside every EDF โ€” the importer consumed
the EDFs but left the checksums behind, so the drained folder could never be
removed and quietly blocked everything queued after it.

  • ๐Ÿงน AS10 .crc sidecars are now consumed together with their EDF (on success
    and on quarantine).
  • ๐Ÿšง A folder with nothing importable โ€” a leftover husk, a quarantined .bad,
    or your own files โ€” is now skipped, never allowed to stall later days.
    Your files are left alone; only the scan moves on.
  • ๐Ÿ” If EDFs remain in IMPORT/ but nothing can be imported, the log now says
    so instead of reporting a clean, empty inbox.

Result: drop a whole season of card folders in and they all import in one pass. ๐Ÿ“ฅโœจ

๐Ÿ” New: ntfy authentication (ntfy Pro & self-hosted) (#337)

The alert push channel now works with servers that require credentials โ€” no
more "I self-host ntfy, can SomnoTrace use it?" dead end.

  • Username & password, access tokens (tk_โ€ฆ), and both via the URL
    (?auth=โ€ฆ) for proxies that strip the Authorization header.
  • Tucked into a collapsed Advanced โ€” server authentication section, so the
    common "just use ntfy.sh" flow stays exactly as clean as before. ๐Ÿงผ
  • ๐Ÿ”’ Credentials are never echoed back by the API (only "a secret is
    stored"), and an empty field keeps the stored secret โ€” unrelated settings
    changes can't wipe it.
  • ๐Ÿงช Send test push now validates credentials before you save them.
  • ๐Ÿงฑ Stored in their own NVS blob, so existing alert settings survive upgrades
    and downgrades untouched.
  • ๐Ÿ“ฃ A rejected credential is now a clear "server requires authentication โ€”
    check the server authentication settings" instead of a cryptic failure.

๐Ÿ˜ด New: sleep stages on BreathingRoom (#339)

BreathingRoom joins SMB and Aerivue as a sleep-stage destination โ€” the same
SomnoStage .sst files your device already scores, now visible as a sleep
source next to your therapy and oximetry data.

  • ๐Ÿ“ค Both AirSense 11 sessions and O2 ring recordings are supported,
    uploaded as-is (UTC-accurate, no resampling).
  • ๐Ÿ” Fully idempotent: a known unit is simply replaced, so retries and
    re-sends are always safe.
  • ๐Ÿ—‚๏ธ Its own upload state tracker, independent of Aerivue's โ€” enabling one
    never disturbs the other, and past nights backfill automatically.
  • ๐Ÿ•“ Time zone is derived by the server from the unit id; when it can't be
    (epoch 0 drifting >5 min from the session stamp) the device sends its IANA
    zone explicitly and logs that it did.
  • ๐Ÿ’Ž Stage upload is a Premium feature, like oximetry โ€” a free account gets one
    clear notice per pass instead of a wall of failures.

Verified on real hardware: a full 45-night backlog uploaded cleanly. โœ…

๐Ÿ™ Thank you

  • todd3835 โ€” for the meticulous #338 report and for sharing real AS10 card
    data. That data is what turned a "works on my machine" report into a
    reproducible bug and a verified fix. ๐Ÿ†
  • yahwehPT โ€” for asking about self-hosted ntfy auth (#337); this release
    exists because you asked.

โฌ†๏ธ Upgrading

Nothing to reconfigure: alert settings, upload state and existing imports carry
over as-is. AS10 users with leftover folders in IMPORT/ can leave them โ€” they
are skipped harmlessly now, and new folders import normally.

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.