Skip to content

v1.4.0 - Proxy and Policy Hardening

Choose a tag to compare

@sagarchhatrala sagarchhatrala released this 20 Jul 19:28

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/call argument 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 sha256 and hmac-sha256 signature verification for policy files and rule packs
  • --require-signature for 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 route UNKNOWN to 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