Your machine can now audit itself on a timer and email you what it found, configured from the terminal, so a headless box, a detached tmux session or a CI runner can be told to watch itself without anyone opening a browser.
Scheduled audits, from the command line
- Put the audit on a timer with
failproofai audit --schedule [days] --email you@yourdomain.com. Signing in is one command and then the code from your inbox; the interval defaults to 7 days and accepts 1–90. - Turn it off with
failproofai audit --no-schedule, which leaves you signed in. An expired session must never trap you into keeping a feature you are trying to disable. - Ask a headless machine where it stands with
failproofai audit --status: whether scheduling is on, where reports go, whether the daemon is up, and when the next scan is due. There was no way to ask before. - Get a digest when a scheduled scan finds something harmful, instead of being asked to go and look. Counts and redacted examples only, plus the machine's name, enumerated on the settings page in the same order the email uses.
- Configure the same thing from the dashboard at
/settings, reached by a gear in the header. It is server-rendered from the config, so a page whose whole job is to say whether a security feature is on no longer spends its first frame saying the opposite. - Every write goes through the same
updateConfigthe dashboard uses and the same session file, so the CLI and the dashboard agree by construction rather than by promise.
Fixes
- Telemetry actually reaches PostHog. The dashboard server was stranding its own events and printing
Error while flushing PostHogwhile doing it. - The digest no longer ships assigned secrets verbatim.
export DATABASE_PASSWORD=…,npm config set _authToken=…and inline URL credentials are masked by name, keeping which credential was exposed while removing the value. - Redaction stops inventing credentials and deleting hostnames. An unanchored
sk-matched inside ordinary words, and path shortening was deleting a URL's host, which is the entire security decision in a finding. - The digest stops going quiet on the machines with the most to report. A policy straddling the report window scored zero and was dropped from every later report too. Not a delayed digest: a feature that stopped working the longer you used it.
- A first digest no longer covers all of history. Against a real machine that meant 5,815 findings in the opening email; it is bounded to one interval now, and the same run reports 17.
failproofai audit --helpis readable again, down from four sections and forty lines to two lines saying what the command is and one aligned usage block.- The daemon is warned about on the command that strands it, rather than after the fact.
Docs
- A rebuilt documentation site at docs.befailproof.ai, organised around tracing agent runs, auditing failures, evaluating live quality and deploying policies.
- The audit and dashboard pages now document what actually shipped.
docs/cli/audit.mdxhad been telling people to enable scheduling by hand-editingaudit.auto: true, the exact key whose meaning this release changes. - The HTTP API reference generates request examples again, and light mode is pink rather than blue.
Upgrading
- A machine that already had scheduled audits on will keep scanning locally and send nothing until you opt in again. Through 1.0.0
audit.automeant "scan this machine on a timer" and needed no account and no network, so reading it as agreement to upload redacted transcript excerpts would have started every already-scheduled machine mailing on upgrade, having agreed to nothing of the kind. Consent is now recorded separately, and the CLI tells you how to turn digests on. - The audit's files move under
~/.failproofai/audit/automatically on first run. Nothing is deleted; the session file keeps its0600mode. - No API, policy or hook-configuration changes. Every integration behaves exactly as it did on 1.0.0.
Dependencies
- Pin
nanoidto 3.3.18, closing GHSA-2v37-7h3g-55p8 (CVSS 8.2). - Bump
h2to 0.4.16 inCargo.lock, clearing RUSTSEC-2026-0258. - Bump
sql.jsto 1.14.2,posthog-nodeto 5.49.1, andrusqlite.
Full Changelog: v1.0.0...v1.0.1