v1.4.0 - Proxy and Policy Hardening
v1.4.0 - Proxy and Policy Hardening
Agent Circuit Breaker v1.4.0 hardens the v1.3 runtime surface without changing default check behavior.
Highlights
- Full dependency-free stdio JSON-RPC MCP proxy entry point:
circuit-breaker-mcp-proxy - MCP
tools/callargument inspection before requests are forwarded to an upstream server - JSON-RPC error responses when a tool call is blocked, pending approval, or fails closed
- Optional
sha256andhmac-sha256signature verification for policy files and rule packs --require-signaturefor environments that must reject unsigned policy/rule JSON- Case-insensitive scan markers for
Run:,Command:,Shell:,SQL:, and list-item variants - Inline ambient policy rules via
.agent-circuit-breaker/policy.json - Relative rule paths resolved from the policy file directory
- Strict mode now blocks
UNKNOWN; team/prod profiles routeUNKNOWNto approval - Node 24-era GitHub Actions hygiene updates
Fixed Reproductions
| Input / Scenario | Before | Now |
|---|---|---|
Run: DROP TABLE users; in scan mode |
missed/narrow extraction | blocked |
Ambient policy with top-level rules object |
error: rule path must be string | inline rules loaded |
circuit-breaker check "ls /home" --mode strict |
unknown | block |
circuit-breaker check "ls /home" --profile team |
unknown | pending approval |
Unsigned rule file with --require-signature |
loaded | fails closed |
| Tampered signed rule file | loaded as data | fails closed |
Compatibility
Default circuit-breaker check behavior remains backward-compatible. The stricter UNKNOWN handling is opt-in through --mode strict, --profile team, --profile prod, or a central policy selecting those modes/profiles.
Remote policy loading remains explicit: network access only happens when a caller passes an http:// or https:// policy URL.
Verification
python -m unittest discover: 380 tests