Repository navigation
AgentGuard_v0.9.0
AgentGuard 0.9.0 — Release Notes
Released: 2026-06-22
Headline: Surface-stabilization release — the step before a validated v1.0. AgentGuard's public surface is now stabilized: all three enforcement paths (MCP Gateway, LLM API Proxy, SDK / /v1/check) are verified end-to-end, the test suite is green, and v0.9 locks in the surfaces it intends to freeze at 1.0 while correcting one honesty defect. There are no new features and no breaking changes — the /v1/check wire protocol and the audit JSONL are byte-compatible with v0.7 (no schema bump).
The self-hosted Apache-2.0 build remains fully featured. The hosted, multi-tenant version (AgentGuard Cloud) lives at https://agentguard.lictorate.com.
Why this release exists
v0.9 is the last stop before a validated v1.0, and it exists to make the 1.0 promise credible rather than to add surface:
- The public surface needed to be written down before it can be frozen. v1.0's headline guarantee is additive-only evolution — no field, route, flag, or schema version removed or renamed without a major-version event. That promise is only meaningful if the surface it covers is enumerated. v0.9 enumerates it in a single contract document and ships nothing that would move it.
- One marketing claim was ahead of the code. The README and FAQ called the audit log "tamper-evident," but the code writes an append-only JSON-Lines log with no cryptographic integrity chain. Carrying an unbacked security claim into a validated 1.0 was not acceptable, so v0.9 trues it up.
- Two smaller accuracy gaps were worth closing on the way in — the
/v1/checklatency telemetry was measured before the audit enqueue (understating a slow audit backend), and the supported topology was never stated plainly. Both are now correct.
v0.9 ships only after additional testing and validation. It is a no-new-features, no-breaking-changes release by design.
What changed
The stabilization contract — docs/COMPATIBILITY.md
New document that declares the surfaces v0.9 stabilizes and intends to freeze at 1.0:
- the policy YAML schema (
version: "1"), - the
/v1/checkand/v1/t/{tenant}/...wire protocol, - the audit
schema_version: 2format, and - the CLI flags and subcommands.
It also states the additive-only intent that becomes a hard guarantee from 1.0: nothing in those surfaces is removed or renamed without a major-version event. Linked from the README docs table.
Audit "tamper-evident" claim corrected (the one real defect)
The README and FAQ marketed the audit log as "tamper-evident," but the code provides an append-only JSON-Lines log with no cryptographic integrity chain. The wording is now accurate: AgentGuard writes an append-only audit trail, and tamper-evidence is achieved by forwarding it to append-only / WORM storage (S3 Object Lock, a SIEM, or syslog) — AgentGuard does not seal the log itself. No code or on-disk format changed; this is a documentation correction only. (Closes internal-audit finding L4 by truth-up, not by crypto — in-process hash-chaining / Merkle checkpoints were evaluated and deferred out of core scope.)
/v1/check latency telemetry corrected
X-AgentGuard-Total-Ms and the agentguard_request_duration_ms SLO histogram are now measured end-to-end (after the audit enqueue), matching their documented "end-to-end" definition; previously they were captured before the audit write and understated a slow audit backend. Response-header / metric change only — no wire-format or gating change.
CI hot-path p99 latency gate
New TestEngineCheck_P99LatencyGate (pkg/policy) runs policy.Engine.Check with the persistence syncer active and fails if p99 crosses the 3 ms budget (measured baseline ≪0.1 ms for the bare engine; ~0.53 ms for the full HTTP /v1/check path). Wired as a dedicated step in .github/workflows/ci.yml alongside the existing HTTP-path persistence-on latency check, so a regression that lands blocking I/O on the hot path breaks the build.
Single-node posture stated plainly
README Limitations now declares single-node (replicas: 1) the supported, stable topology, with PostgreSQL / multi-node explicitly a v1.0 requirement (post-v0.9). No behavior change.
Version bump
Version set to 0.9.0 across all three binaries (agentguard, agentguard-mcp-gateway, agentguard-llm-proxy) and both SDKs (agentguardproxy on PyPI, @agentguard/sdk on npm).
Breaking changes
Nothing
The /v1/check request/response shapes, the audit schema_version: 2 JSONL format, the policy schema (version: "1"), and every CLI flag and subcommand are unchanged from v0.7. The Go-level surface is unchanged as well. Upgrading is a binary/SDK swap.
Upgrade notes
- No migration required. There is no file rewrite, no policy-schema change, no wire-protocol change, and no audit-format change. See
MIGRATION.md§ v0.7.0 → v0.9.0. - Go installers (
go install): pull the v0.9.0 tag (below). - Docker:
docker pullagainst the next published image after this release. - Python SDK:
pip install --upgrade "agentguardproxy==0.9.0". - TypeScript SDK:
npm install @agentguard/sdk@0.9.0. - (Optional) Forward your audit log to WORM storage if you want tamper-evidence — see the README audit bullet and
COMPATIBILITY.md.
Get started
# Install all three binaries at the v0.9.0 tag
go install github.com/Caua-ferraz/AgentGuard/cmd/agentguard@v0.9.0
go install github.com/Caua-ferraz/AgentGuard/cmd/agentguard-mcp-gateway@v0.9.0
go install github.com/Caua-ferraz/AgentGuard/cmd/agentguard-llm-proxy@v0.9.0
# Or upgrade the SDKs only
pip install --upgrade "agentguardproxy==0.9.0"
npm install @agentguard/sdk@0.9.0Full change list: CHANGELOG.md § 0.9.0. Stabilized surfaces and the additive-only intent: docs/COMPATIBILITY.md.