github ilyakruchinin/SomnoTrace v3.2.6

3 hours ago

SomnoTrace v3.2.6

✨ New: Import ResMed EDF files (Experimental 🧪)

SomnoTrace can now ingest data straight from a ResMed SD card — an AirSense 10/11
card copy, a single DATALOG/<date> folder, or even loose .edf files — and turn
it into native sessions. Imported nights show up in the web UI, graphs, uploads,
SleepHQ, SMB, etc. just like normally recorded data, with full waveform,
SpO₂/pulse, daily-summary and event (EVE/CSL) fidelity.

How to use:

  1. 📡 Connect to your device over FTP (enable FTP access in settings if needed).
  2. 📂 Copy the card contents — or just the folders/files you want — into
    /somnotrace/IMPORT/ (keep the DATALOG/<date> structure if you have it).
  3. 🔄 Reboot the device (Actions → Reboot in the web UI). The import runs
    automatically at boot — a reboot is required, files aren't picked up live.
  4. ⏳ Wait a bit — the import runs in the background; new sessions then appear
    in the dashboard and are re-offered to your upload backends.

🛡️ Safe by design: duplicate sessions are skipped, interrupted copies are
detected (in-progress FTP uploads and files modified <15 s ago are deferred),
and corrupt files are quarantined to *.bad instead of failing silently.

⚠️ Call for testers! This is the first release of the importer. It's been
verified against real AirSense 11 card data and synthetic AirSense 10 files,
but cards in the wild vary. If you have an AS10/AS11 card dump — especially
from different regions/firmware — please try it and report back (successes
too!). Feedback wanted on GitHub issues. 🙏

📅 Locale-aware calendar

The day picker in the dashboard now follows your browser's locale:
Sunday-first for the US, Canada, Japan, Brazil & co., Monday-first for most of
Europe — with weekday names shown in your language. 🗓️🌍

🧰 Under the hood

  • PSRAM-first memory allocation throughout the import path; worker stack
    high-water is now logged for field diagnosis. 🧠
  • Atomic file operations + improved error handling across import and
    session-recovery paths. 🔒
  • edf_gen stack footprint restored to pre-import baseline on every export
    path (verified on-device: ~4.5 KB headroom on the 16 KB rebuild task). 📏
  • More host-test coverage: 29 test suites incl. an EDF→SNT→EDF round-trip
    across time zones; merged PRs #333 & #334. ✅

Don't miss a new SomnoTrace release

NewReleases is sending notifications on new releases.