SomnoTrace v3.2.3
✨ New Features
- 😴 Sleep stage export (SomnoStage) — hypnograms are now exported as
Zeo-compatible CSV files to.somnotrace/stages/on the SD card and uploaded
automatically alongside CPAP and oximetry data. SMB uploads land in
SOMNOSTAGE/<YYYYMM>/and exports are back-filled automatically for
recordings that predate this release. - 🖼️ Brand logos on the portal — the SleepHQ, Aerivue, and BreathingRoom
upload cards now show real logos loaded from each service's site, with a
graceful fallback to the built-in icon if the image can't be fetched.
🚀 Improvements
- 📁 Tidier SMB folders — oximetry and stage uploads are now grouped into
one folder per month (OXIMETRY/<YYYYMM>,SOMNOSTAGE/<YYYYMM>) instead of
one folder per day. Existing folders are left untouched. - 📊 Consistent progress display — the portal now shows upload progress in
days for all three streams (CPAP · Oximetry · Stages), matching the
"days to keep in sync" setting. A day counts as done only when every
recording in it is uploaded. - ⚡ Faster upload passes — the SD card is scanned once per pass and shared
across all enabled backends, instead of being re-scanned (and every file
re-checksummed) once per backend. - 🧠 Smarter memory use — upload buffers were right-sized (~4× smaller per
recording), the per-pass recording cap grew from 128 to 768, and a failed
allocation now degrades gracefully instead of aborting the whole pass.
🐛 Fixes
- 🔄 Reset Upload State now resets everything (#317) — oximetry and stage
upload history is cleared along with CPAP, so all three streams re-upload
after a reset instead of only CPAP. - ⏱️ Uploader no longer stalls or spins — fixed timing edge cases and
therapy-hold handling that could starve the watchdog or burn CPU while
uploads were deferred. - 🏷️ No more stale update badge — the "update available" badge no longer
resurrects a cached version tag after an OTA flash; it stays quiet until the
first live check. - ✏️ OXYMETRY → OXIMETRY — fixed the long-standing typo in storage paths
and all upload backends (your NAS folder is now spelled correctly). - 💤 "SleepHQ Cloud" → "SleepHQ" — simplified the backend label and portal
card title.