Release · v0.2.0

What’s new in 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

A release aimed squarely at your compliance file.

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

Stronger evidence for your compliance file.

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.

Whole-database encryption at rest

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).

A stronger, wider audit trail

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).

Three more safeguards mapped

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.

Encrypted backups, fail-closed

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

Features built for the regulated-research inbox.

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.

Regulatory Deadline Clock

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.

Topic / Study Digest

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.

Metadata-only alerting, five ways

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.

Smart Reply that earns your voice

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.

Choose your AI backend

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 whole picture, in one diagram

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

Built to stay true.

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.

“How It Stays True” — a new page

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 →

A versioned, stable API

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 →

Verified accessible and mobile-correct

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

This is the pace of a program with an owner.

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.