Skip to content

v0.0.1

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Sep 23:41
· 2 commits to main since this release
Immutable release. Only release title and notes can be modified.

[0.0.1] - 2026-09-20

The first version that runs. It reads a ResMed card in the browser, shows one night in detail or a period in summary, and sends nothing anywhere. Treat every figure as untested against anything but one AirSense 10 card and two synthetic ones.

Added

  • Reads a ResMed card in the browser. Pick the card's folder; PAPvault opens only the night files under DATALOG and never the machine's settings, summaries or identification.
  • A night in detail. Flow, pressure, leak rate, respiratory rate, flow limitation, snore, tidal volume and minute ventilation, on one time axis, with the cursor and the zoom shared across every plot and the device's own events marked on all of them.
  • A period in summary. Hours used, sessions, events per hour, and the pressure and leak figures, one point or bar per night.
  • A session is a stretch of flow. Two stretches are one session when the flow is cut for no more than five seconds. Files a machine writes when it is not recording a night carry no flow, and are never counted as nights.
  • Days run from 6 in the morning to 6 the next morning, and a session belongs whole to the day it began in.
  • Event names are the machine's own words, never renamed, never grouped, and colored with Okabe and Ito's Color Universal Design palette so that the colors stay apart for the common kinds of color blindness.
  • A manual in the page, which says what every figure means and what is never read.

Known limits

  • Only the AirSense 10 has been checked against a real card. The S9 and the 11 series are read the same way, but their signal names come from OSCAR and nobody here has tested them.
  • Oximetry is turned off. ResMed records it only on the AirSense 10 and a compatible oximeter is hard to find, so there is no card to test it against and no oximetry file is opened.
  • No check here has ever seen a real card. The checks in dev/tests/ run the reader against synthetic cards whose answers are known by construction, and both the reader and the generator were written in this repository. Every release is also gone through by hand against dev/CHECKLIST.md, on a real card, and what was checked is written into dev/VERIFICATION.md.

Commits

  • (a201834) Initial commit
  • (4db9efc) Rules to use AI agent are established
  • (8019e52) Security rules added
  • (5f75ba2) Checklist and verification
  • (690129c) Empty page built
  • (f7dd53f) Initial design done
  • (cece505) development work is done, survey completed
  • (7df5971) Initial format research for ResMed machines completed
  • (7be94b8) Document picker, manual, readme
  • (e4fad7e) synthetic data generation
  • (6309c32) v0.0.1 work is complete
  • (a3bcda8) Workflows added, versioning prep
  • (c8f1786) tests added
  • (f9c5679) minor bug fixes about builds

Use it

Open https://ozankiratli.github.io/PAPvault/ and choose your card's folder. Nothing is uploaded: the page reads the files in your browser and has nowhere to send them.

Or run it offline

index.html below is the whole program in one file. Download it, open it in a browser, and it works with no network at all.

curl -LO https://github.com/ozankiratli/PAPvault/releases/download/v0.0.1/index.html
sha256sum -c SHA256SUMS

Check that this is what the source builds

git clone https://github.com/ozankiratli/PAPvault
cd PAPvault && git checkout v0.0.1
python3 build.py

It prints the SHA-256 of what it built. It will be the one in SHA256SUMS, because the build uses nothing but the Python standard library and the same input gives the same bytes.

What it does not do

PAPvault shows what your machine recorded and adds no judgment of its own: no score, no normal range, no verdict. It collects nothing about you. For keeping years of data and studying them deeply, use OSCAR.

The full changelog is in CHANGELOG.md in the repository.