Release · v0.2.0
This release deepens the evidence behind every compliance claim, hardens the data-at-rest story, and adds features built for the way regulated research teams actually work — written here for the two people who have to sign off on it: the principal investigator and compliance counsel. Everything below is live in the current release and verifiable in public source.
The short version
v0.2.0 isn’t a coat of paint. The database is now encrypted as a whole, the tamper-evident audit trail got stronger and wider, three more HIPAA safeguards are mapped to working controls, and two new features were built around obligations a research program already carries.
The through-line: evidence, not adjectives. Every capability below is backed by a control you — or your auditor — can check in public source, not by a promise. Controls are aligned to the cited rules; alignment, not certification.
For compliance counsel
The biggest investment in v0.2.0 is in the parts you have to defend to a regulator — encryption, the audit trail, and the safeguards behind them.
The entire database — messages, classifications, accounts, credentials, and the audit log itself — is now AES-256 encrypted on disk (single-file SQLCipher), on by default for new installs. If the encryption library or master key is missing, the app refuses to start rather than write plaintext, and a stolen backup without the key is unrecoverable. Maps to HIPAA §164.312(a)(2)(iv).
The tamper-evident access log is now a keyed HMAC-SHA256 chain spanning eight event tables plus a per-request PHI-access log. “Keyed” means a row can’t be quietly rewritten and re-hashed, and the chain survives a master-key rotation. Verify it yourself with the audit-verify CLI or the paginated /compliance view. Maps to §164.312(c)(1).
Minimum-necessary (§164.502(b)) through delegate-vs-owner gating and metadata-only alerts; accounting of disclosures (§164.528) via the access-event chain; and breach-analysis support (§164.402) — whole-database encryption at rest is the technical basis your breach analysis turns on. It supports, but does not by itself conclude, a determination that lost or stolen data was unusable, unreadable, and indecipherable; that determination stays yours to make.
Scheduled database backups are encrypted, off by default, and validated fail-closed against an X25519 key — no plaintext PHI is ever written to a temp directory. Restore is deliberately CLI-only: there is no one-click button to fat-finger.
About BAAs — the accurate version. Running the default local model keeps PHI on your own network, so no Business Associate Agreement with a cloud AI vendor is required. Turn on a cloud backend and a code-enforced gate blocks PHI from leaving until you’ve recorded that vendor’s BAA. The obligation attaches to whoever receives the PHI — enforced in code, not asserted in a policy PDF.
For the principal investigator
Two of these are new to v0.2.0; the rest sharpen how the tool already works — each drawn with the liability boundary in mind.
Email Triage can now be configured to watch for the mail that starts a safety-reporting clock (detection is opt-in, off by default) — FDA IND (21 CFR 312.32), EU CTR SUSAR, IRB — and track it on a working-day calendar. The boundary is explicit: sponsor deadlines are shown as informational and never escalated to the site as if they were yours; the IRB clock ships unconfigured so the tool never invents a number; and a human confirms every legal clock before it arms. The AI never computes the date.
Define a study once — a few keywords and the mailboxes it lives in — and get one scheduled digest of every matching message across those inboxes. Matching rides the existing classification pass, so there’s no new place your mail is sent; the tool stores only message IDs and your own keywords, never subject or body; a PHI check blocks study definitions that contain protected data; and delivery goes only to your own mailbox, re-checked at send time.
Route a triage signal to Slack, PagerDuty, Opsgenie, Teams, Discord, or a signed endpoint of your own. Alerts carry metadata, never the email body; each is HMAC-signed when you set a secret (and dropped rather than sent unsigned if that secret can’t be read); external URLs are deny-by-default; and on a HIPAA-flagged account the payload collapses to category, timestamp, and a flow ID.
Drafts now come back as real, model-written reply bodies — but in a neutral professional voice until you explicitly ask the tool to learn from your sent mail. Nothing is scraped silently. On a HIPAA account it never reuses your verbatim past mail, only a privacy-scrubbed style descriptor, and it fails closed on any credential or BAA error.
A live model picker shows each backend’s capabilities and memory footprint, with capability-aware failover — every switch written to a tamper-evident audit row — and a per-backend circuit breaker that tells “the server is down” apart from “the answer was bad.”
The Features page now opens with an end-to-end map: real-time ingest and classification fanning out in a single pass to routes, watch rules, and topic matching, alongside the scheduled digests — over a band that marks what stays sovereign (local by default, content never leaves your network) and what is audited. See the pipeline →
For the long engagement
Features are easy to ship and easy to let rot. v0.2.0 also invested in the parts you only come to value months later.
A new page lays out the engineering discipline that keeps these compliance claims true as the code keeps changing: structural build-pins that fail CI when a control goes missing, a verify-don’t-accept audit habit, a three-reviewer gate on every risk surface, and a six-year findings register. Read How It Stays True →
The integration API moved to a clean /api/v1 namespace, and every legacy path now issues a permanent (308) redirect that preserves the method and body — so anything you’ve already built keeps working. See the API →
Every page in this subsite is now checked on each change by an automated gate — zero console errors and WCAG 2.1 AA accessibility (relevant to Section 508 / ADA for federally-funded work), across desktop and mobile. The checks run offline and block a release that regresses.
Honest scope. These are controls aligned to the cited rules — not a certification, and not legal advice. The software does not by itself make an organization HIPAA- or 21 CFR Part 11–compliant; compliance is a program you own, with its own policies, vendor agreements, and validation. What v0.2.0 gives you is controls you can verify in public source and a build that resists their decay. Confirm applicability with your own compliance counsel.
Why this matters
A release like this — evidence deepened, liability boundaries drawn on purpose, controls pinned so they can’t quietly decay — is what it looks like when a regulated system has a technologist accountable for it. Email Triage is a working proof of that posture. It’s the same rigor I bring as a fractional CTO to research programs and regulated teams who need technology leadership they can defend to an auditor, a PI, and a board.