@@ -9,6 +9,122 @@ All notable changes to the `agentveil` SDK.
99 named while AgentVeil is described as an external trust and reputation
1010 integration.
1111
12+ ## [ 0.7.14] - 2026-05-11
13+
14+ AgentVeil MCP Proxy v0.1 first public release. Action Control Plane for IDE
15+ MCP clients wrapping downstream MCP servers with runtime decision gating,
16+ human approval routing, durable signed evidence, and replay defense.
17+
18+ ### Added
19+ - Added the ` agentveil-mcp-proxy ` console script and
20+ ` python -m agentveil_mcp_proxy ` entry point for MCP transport proxy
21+ operation.
22+ - Added encrypted local proxy identity storage with Argon2id and SecretBox,
23+ passphrase-file support, ` AVP_PROXY_PASSPHRASE ` , a 12-character minimum for
24+ new identities, and documented passphrase-source trade-offs.
25+ - Added Runtime Gate integration with DecisionReceipt verification, schema
26+ enforcement, audit ID binding, payload hash binding, risk class binding,
27+ policy context hash binding, and circuit breaker handling.
28+ - Added a local TTL-capped DecisionReceipt replay cache as a v0.1 compensating
29+ control before the backend nonce/freshness protocol update.
30+ - Added the loopback browser approval server with CSRF checks, HMAC cookies,
31+ per-prompt tokens, Content-Length bounds, socket timeouts, and
32+ ` ThreadingHTTPServer ` .
33+ - Added a durable SQLite evidence store with WAL mode, hash chaining, fsync
34+ durability, owner-only permissions, and auxiliary WAL/SHM permission
35+ hardening after commits.
36+ - Added offline evidence bundle export and verification covering chain
37+ integrity, signed receipt validation, receipt binding checks, audit ID
38+ matching, and receipt-reference dedupe.
39+ - Added headless approval mode and bounded headless policy support with
40+ owner-only policy-file validation.
41+ - Added built-in policy packs for ` default ` , ` github ` , ` filesystem ` , and
42+ ` shell ` , including broadened destructive coverage for ` purge_* ` ,
43+ ` truncate_* ` , ` wipe_* ` , ` format_* ` , ` rm ` , ` rmdir_* ` , ` unlink_* ` , and
44+ ` clean_* ` patterns where applicable.
45+ - Expanded destructive classification prefixes with ` purge ` , ` truncate ` ,
46+ ` wipe ` , ` format ` , ` rm ` , ` rmdir ` , ` unlink ` , and ` clean ` .
47+ - Added cross-platform CI coverage across 3 operating systems and 4 Python
48+ versions, workflow dispatch support, pinned GitHub Actions SHAs, and
49+ ` permissions: contents: read ` .
50+ - Added ` env_passthrough ` blocking for the reserved ` AVP_* ` prefix so proxy
51+ secrets cannot be forwarded to downstream MCP servers by configuration.
52+ - Added the MCP Proxy subproject README and the operations guide at
53+ ` docs/MCP_PROXY_OPERATIONS.md ` .
54+
55+ ### Security
56+ - Completed the P10.5 security audit remediation train: 12 MEDIUM and 8 LOW
57+ findings were identified across independent passes; 10 MEDIUM findings were
58+ closed in P10.6-P10.10, M-2 received the local replay-cache mitigation, and
59+ M-10 was deferred to v0.1.1.
60+ - Completed the post-P10.9 mid-train audit: 2 MEDIUM and 3 LOW findings were
61+ identified; MT-1, MT-2, and MT-3 were closed in P10.10, while MT-4 and MT-5
62+ were accepted as v0.1 LOW risk.
63+ - Annotated the 14-site Bandit B608 SQL false-positive cluster with narrow
64+ ` # nosec B608 ` rationale comments.
65+ - Verified public documentation surfaces for attribution wording and prohibited
66+ product terminology.
67+ - Added receipt ` audit_id ` cross-checking and duplicate receipt-reference
68+ rejection to the offline verifier.
69+ - Added positive-value validation for RuntimeGateClient replay-cache settings.
70+ - Hardened CLI identity, config, and grant writes with file fsync and parent
71+ directory fsync.
72+ - Added a 1 MiB client-to-proxy JSON-RPC line cap matching the downstream
73+ message cap.
74+ - Bounded downstream response bookkeeping with in-flight ID tracking,
75+ TTL-pruned timed-out IDs, unsolicited-response counting, and retained
76+ response caps.
77+ - Required DecisionReceipt schema, audit ID, and receipt binding fields in
78+ offline evidence verification.
79+
80+ ### Known Limitations
81+ - ** Backend protocol nonce/freshness:** the local replay cache mitigates
82+ same-process replays within a five-minute window. The v0.1.1 protocol update
83+ adds backend-issued nonce plus ` issued_at ` and ` expires_at ` fields to a new
84+ ` decision_receipt/3 ` schema. Same-intent replays across proxy restarts and
85+ against a compromised backend response channel remain possible in v0.1.
86+ - ** Windows Job Object race:** Windows downstream process containment has a
87+ narrow ` start() ` window where a child process can spawn descendants before
88+ assignment to the Job Object. Use an external Windows service supervisor for
89+ production Windows deployments until the v0.1.1 fix lands.
90+ - ** OS keychain identity storage:** v0.1 uses passphrase-encrypted Argon2id
91+ identity files. v0.1.1+ adds opt-in macOS Keychain, Linux Secret Service, and
92+ Windows Credential Manager integration.
93+ - ** P7a WAL/SHM creation-window race:** the evidence store chmods auxiliary
94+ SQLite files after every commit; a small in-flight transaction window still
95+ depends on the user umask. Accepted as v0.1 LOW risk.
96+ - ** P7b runtime-only chain validation:** chain integrity is validated at store
97+ open and after write transactions; there is no periodic background chain
98+ validation during a long-running proxy. Periodic restarts are the v0.1
99+ mitigation.
100+ - ** MT-4 receipt cache eviction under sustained burst:** sustained high-volume
101+ legitimate receipts can evict captured receipts before the nominal TTL,
102+ weakening local replay defense in adversarial timing scenarios. The v0.1.1
103+ protocol nonce/freshness fix supersedes this mitigation.
104+ - ** MT-5 ` granted_by_request_id ` reference validation:** the verifier does not
105+ dereference cache-hit ` granted_by_request_id ` values to prove the referenced
106+ record exists in the same bundle. Manual auditors should cross-check those
107+ references when reviewing cache-hit evidence.
108+
109+ ### Audit References
110+ - Closed P10.5-security findings: M-1, M-3, M-4, M-5, M-6, M-7, M-8, M-9.a,
111+ M-9.b, M-11, M-12, L-1, L-2, L-3, Codex MEDIUM-1, Codex LOW-2, and
112+ Codex LOW-3.
113+ - Closed mid-train audit findings: MT-1, MT-2, and MT-3.
114+ - Partial mitigation: M-2 local replay cache; full protocol fix deferred to
115+ v0.1.1.
116+ - Deferred v0.1.1: M-2 and M-10.
117+ - Accepted as v0.1 LOW risk: MT-4, MT-5, P7a residual, and L-4 through L-8.
118+ - Commits: ` 0e6583c ` (P10.6), ` 5c14f37 ` (P10.7), ` 5a89148 ` (P10.8),
119+ ` de43147 ` (P10.9), ` 3577e4b ` (P10.10), and ` bddf600 ` (P10.11).
120+
121+ ### Validation
122+ - P11 release gate passed: main CI matrix green on 12/12 cells, full local
123+ pytest passed with ` 642 passed, 1 skipped ` , Bandit reported 0 HIGH and
124+ 0 MEDIUM findings, pip-audit reported 0 known vulnerabilities, public-surface
125+ wording scans passed, console scripts worked, build artifacts included the
126+ MCP Proxy README, and license/security metadata was verified.
127+
12128## [ 0.7.13] - 2026-05-08
13129
14130Fresh release for the MCP action-control toolbox expansion.
0 commit comments