v1.0.0: failproofaid #684
NiveditJain
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
v1.0.0
The first stable release. The current
lateston npm is0.0.15, so upgrading from it lands the entire1.0.0-beta.*line at once: a background daemon, fail-closed enforcement, twelve agent CLIs, FailproofAI Cloud, and a~/.failproofaithat survives its own upgrades.Upgrading
npm install -g failproofai@latest && failproofai updateTwo commands, because npm only replaces the CLI
~/.failproofai/and the daemon binary under~/.failproofai/bin/do not move with it.failproofai updateruns any pending home migrations, installs the matchingfailproofaidbinary and restarts the service.failproofai migrate --dry-runprints exactly what would happen, changing nothing.Your cloud enrolment, ingest credential, policy selection, hand-written policies, undelivered events, telemetry identity and decision history are all carried across. The irreplaceable files are copied to
~/.failproofai/migrations/backup-layout<n>/before the first step, and every step is recorded inmigrations/applied.json.The three things worth knowing
Enforcement runs through a background daemon, and a configured machine fails closed.
failproofai configinstallsfailproofaidas a system service (systemd unit at/etc/systemd/system/failproofaid@<user>.service, launchdLaunchDaemonon macOS) system-scope but user-run, so it starts at boot and survives logout. From that point an unreachable daemon denies rather than quietly falling back to in-process evaluation: a guarantee you can remove by stopping a service is not one. A protocol-version mismatchdenies too, but says so in its own words, because the remedy differs. In-process evaluation still exists and is reachable only on a machine that was never set up.
A policy that cannot be honoured on your CLI is not silently pretended.
enforcement-capability.tsrecords, per (CLI, event) pair and with the evidence attached, whether a deny actually changes the agent's behaviour on that CLI. Absent means UNVERIFIED — never "blocked". The fiverequire-*-before-stopgates, for example, have no turn-end event to hang off on Hermes or Goose, and that is stated rather than assumed.Setup is two questions, not five.
failproofai configopens with a Recommended path:global scope, the CLIs actually detected on the machine, and a named 15-policy set. Customize is the previous wizard, unchanged — nothing is hidden, it just stops being the only way through. Recommended unions with what you already had enabled, so choosing the sensible default can never reduce your protection.
Twelve agent CLIs
Live-hook enforcement on Claude Code, Codex, Copilot CLI, Cursor, OpenCode, Pi, Hermes, OpenClaw, Factory (droid), Devin, Antigravity (agy) and Goose — each against that CLI's own hook contract, verified live against a named version rather than inferred from docs. VS Code's Copilot Chat agent mode is covered for free: it loads the same
.github/hooks/*.jsonand~/.claude/settings.jsonthecopilotandclaudeinstalls already write.Transcript collection and the audit pillar cover the same twelve.
FailproofAI Cloud
failproofai config --connect <url> --token <key>enrols a machine in one step policy pull and event ingest share one credential, one URL and one prompt.observeeffect for the observe-before-enforce step of a rollout.policySource,cloudPolicyId, the deployment it came from — so the dashboard can answer what centrally-managed policy actually did.failproofai config --disconnectreally disconnects: the daemon readsmode: "oss"and goes silent, and the active manifest is cleared so nothing keeps enforcing from a deployment the machine has left.--status, and data that simply never arrived;--statusnow reports from the collector's own record of what the server said, and the same verdict is printed once per session atSessionStart.New commands
failproofai updatefailproofai migrate [--dry-run]failproofai uninstall [--purge]~/.failproofai.failproofai backfill [--since 30d]failproofai harness add-pathfailproofai config --pause / --resumefailproofai audit --scheduled[audit] autoships off, because the scan reads transcript contents.Removed
failproofai auth login/logout/whoami. Sign-in has not gone anywhere — the local dashboard has always had its own, and still does. This was the second front door.config --email/--no-email) and the counters-only upload the scheduled scan used to POST. An audit of what is on your laptop is a local tool; the safest version of a network call it does not need to make is not making it.Platform support
Linux and macOS. On Windows,
failproofai configprints why and exits 1 before writing anything rather than completing setup with a weaker guarantee than every other configured machine has. Revisit whenfailproofaidgains a Windows service target.Also in this release
cwd/sourcecolumns Hermes rewrites mid-run — a single session was arriving in the dashboard as two machines' worth of agents.PostToolUsedeny now actually enforces on Codex and Copilot. Both read a top-level{decision:"block", reason}at that event and neither reads the shape we emitted, so everysanitize-*deny on those two CLIs was evaluated, logged, counted — and dropped. Verified live against Codex 0.147.0 and Copilot 1.0.78.mode: "oss"is now honoured by the daemon, not just the CLI, so a disconnected machine is provably silent instead of silent-by-happenstance.block-rm-rf,block-force-pushandblock-secrets-write, which were off by default and should not have been. Both are precisely scoped:rm -rf node_modulesis untouched, and--force-with-leaseis allowed.The full history, including all 22 beta releases, is in
CHANGELOG.md.
This discussion was created from the release v1.0.0: failproofaid.
All reactions