Skip to content

0.9.0

Choose a tag to compare

@batrapulkit batrapulkit released this 11 Oct 16:02
· 35 commits to main since this release

Undo, signed records, Face ID approvals, spend limits and proof of work

  • An undo copy before risky changes. Before an action that waits for a person (or a command that can't be undone) runs, Squidbrake keeps a copy of what it changes: files and git changes on the agent's computer (squidbrake undo, now also for Claude Code's Write and Edit), the record behind an API call through /proxy (read with a GET first), or what a client.py snapshot function returns. With snapshots: required (the default), an action whose copy can't be made doesn't run. Set snapshot: best_effort on a rule to relax it.
  • Stop an agent from the notification. Phone notifications carry a Stop agent button, and the one-tap approval page a Stop button.
  • Signed checkpoints. Every 50 audit entries are signed with the gateway's ledger key (Ed25519). The public key is at /v1/audit/public-key; python verify.py FILE --key KEY proves an export wasn't rewritten.
  • Approve with Face ID or fingerprint. Register a phone or laptop as a passkey; each approval is signed by the device and the signature is kept and checked by verify.py. Settings can require it for approvals.
  • People's details masked. Emails are stored as p.redacted-3f2a9c@domain, card numbers as [card ending 4242]; lists, phones and notifications show at most 2 KB of a value.
  • Each rule decides what happens while Squidbrake is down (when_unreachable: allow | block, default block). Agents keep a copy so they follow it offline.
  • Owner, admin, approver, viewer. Viewers change nothing; only owners make admins and owners.
  • Spend limits (budgets:): pause an agent over its daily or monthly token or dollar limit. Claude Code reports its tokens by itself.
  • Proof of work (proof_checks:): after an agent says it's done, look in Stripe, GitHub, a SQL database or any HTTP API, and flag "not actually done".
  • AI approval briefs (optional, your own Anthropic key, pip install "squidbrake[ai]"): a short plain-English risk note on each held action. Advice only; it never decides.
  • Evidence pack maps the new controls to SOC 2, ISO/IEC 42001 and the EU AI Act.

Worth knowing before you upgrade: approved actions now need an undo copy by default, so a delete too big to copy (over 500 MB) or a proxied API that can't be read with GET is refused. MCP tools' changes can't be copied; held ones run without a copy and the record says so.

Upgrade: run the install line again, or pipx upgrade squidbrake

Install this version (0.9.0)

Windows (PowerShell):

$env:SQUIDBRAKE_VERSION="0.9.0"; irm https://pilots.squidbrake.com/install.ps1 | iex

macOS / Linux:

curl -fsSL https://pilots.squidbrake.com/install.sh | SQUIDBRAKE_VERSION=0.9.0 sh

With pip: pip install squidbrake==0.9.0. Docker: docker pull ghcr.io/batrapulkit/squidbrake:0.9.0

Running the line again without SQUIDBRAKE_VERSION goes back to the newest. Every version:
https://github.com/batrapulkit/squidbrake/releases