Skip to content

Commit 8897ff5

Browse files
release: v2.3.0 — plugin governance, developer tooling, security hardening
- Bump all 7 core packages to v2.3.0 - Add RELEASE_NOTES_v2.3.0.md - Update CHANGELOG.md with v2.3.0 entry Co-authored-by: Copilot <[email protected]>
1 parent 53f6bad commit 8897ff5

File tree

9 files changed

+312
-19
lines changed

9 files changed

+312
-19
lines changed

CHANGELOG.md

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212
1313
## [Unreleased]
1414

15+
## [2.3.0] - 2026-03-26
16+
1517
### Added
16-
- Demo `--include-attacks` flag for adversarial scenario testing (prompt injection, tool alias bypass, SQL bypass).
17-
- .NET `SagaStep.MaxAttempts` property replacing deprecated `MaxRetries`.
18-
- `ContentHashInterceptor` for SHA-256 tool identity verification at intercept time.
19-
- `ToolRegistry` content hashing — computes and verifies handler integrity at registration and execution.
20-
- `PolicyEngine.freeze()` method with `MappingProxyType` immutability and mutation audit log.
21-
- `QuorumConfig` for M-of-N approval requirements in `EscalationHandler`.
22-
- Escalation fatigue detection — auto-DENY when agents exceed configurable rate threshold.
23-
- `EscalationRequest.votes` field for per-approver vote tracking.
18+
- MCP server allowlist/blocklist and plugin trust tiers (#425, #426)
19+
- Plugin schema adapters and batch evaluation (#424, #429)
20+
- Governance policy linter CLI command (#404)
21+
- Pre-commit hooks for plugin manifest validation (#428)
22+
- GitHub Actions action for governance verification (#423)
23+
- Event bus, task outcomes, diff policy, and sandbox provider (#398, #396, #395, #394)
24+
- Graceful degradation, budget policies, and audit logger (#410, #409, #400)
25+
- JSON schema validation for governance policies (#305, #367)
26+
- 14 launch-ready tutorials (07–20) covering all toolkit features
27+
- Tutorials landing page README with learning paths (#422)
28+
- Copilot instructions with PR review checklist (#413)
29+
- Pytest markers for slow and integration tests (#375)
30+
- Reference integration example for plugin marketplace governance (#427)
31+
32+
### Changed
33+
- Renamed PyPI package `agent-runtime``agentmesh-runtime` (name collision with AutoGen) (#444)
34+
- Renamed PyPI package `agent-marketplace``agentmesh-marketplace` (#439)
35+
36+
### Fixed
37+
- ESRP pipeline `each` directive syntax in Verify stages
38+
- ESRP pipelines updated to use `ESRP_CERT_IDENTIFIER` secret
39+
- Hardcoded service connection name (ADO compile-time requirement) (#421)
40+
- License format updated to SPDX string (setuptools deprecation) in agent-compliance and agent-lightning
41+
- Corrected license reference in AgentMesh README from Apache 2.0 to MIT (#436)
42+
- .NET GovernanceMetrics test isolation — flush listener before baseline (#417)
43+
- Dependency confusion + pydantic dependency fix (#412)
44+
- Enforced maintainer approval for all external PRs (#392)
2445

2546
### Security
26-
- Replaced XOR placeholder encryption with AES-256-GCM in DMZ module.
27-
- Added Security Model & Limitations section to README.
28-
- Added security advisories to SECURITY.md for CostGuard and thread safety fixes.
29-
- Hardened against agent sandbox escape vectors (tool aliasing, runtime policy self-modification, approval fatigue).
47+
- Moved all ESRP config to pipeline secrets (#370)
48+
49+
### Documentation
50+
- Standardized package README badges (#373)
51+
- Added README files to example and skill integration directories (#371, #372, #390)
52+
- Added requirements for example directories (#372)
3053

3154
## [2.2.0] - 2026-03-17
3255

RELEASE_NOTES_v2.3.0.md

Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
# Agent Governance Toolkit v2.3.0
2+
3+
> [!IMPORTANT]
4+
> **Community Preview Release** — All packages published from this repository (PyPI, npm, NuGet)
5+
> are **community preview releases** for testing and evaluation purposes only. They are **not**
6+
> official Microsoft-signed releases. Official Microsoft-signed packages published via ESRP
7+
> Release will be available in a future release.
8+
9+
**Plugin governance, developer tooling, and hardened security — 97 commits since v2.2.0.**
10+
11+
This release introduces a full plugin governance layer (MCP server allowlist/blocklist, schema
12+
adapters, trust tiers), developer-facing tooling (policy linter CLI, pre-commit hooks, GitHub
13+
Actions action), runtime reliability primitives (event bus, task outcomes, graceful degradation,
14+
budget policies), and 14 new tutorials. It also includes significant security hardening across the
15+
entire codebase and two PyPI package renames to avoid namespace collisions.
16+
17+
## 🚀 What's New
18+
19+
### Plugin Governance & MCP Server Controls
20+
21+
- **MCP server allowlist/blocklist** — Enforces marketplace-level policies on which MCP servers
22+
plugins can use through `MCPServerPolicy` with allowlist/blocklist modes. Validates plugin
23+
manifests and rejects non-compliant plugins during registration (#425, #426, #434)
24+
- **Plugin trust tiers** — Classify plugins into trust levels (e.g., verified, community,
25+
untrusted) with tier-based policy enforcement (#434)
26+
- **Plugin schema adapters** — Auto-detects and adapts Copilot-style and Claude-style plugin
27+
manifest formats to the canonical `PluginManifest` schema, enabling multi-format plugin
28+
support with capability extraction (#424, #429, #433)
29+
- **Batch plugin evaluation** — Evaluate multiple plugins against governance policies in a single
30+
call for marketplace-scale validation (#429, #433)
31+
- **Reference integration example** — Complete example showing plugin marketplace governance
32+
integration end-to-end (#427, #435)
33+
34+
### Developer Tooling
35+
36+
- **Governance policy linter CLI** — New `agent-compliance lint-policy <path>` command validates
37+
YAML policy files for required fields, unknown operators/actions, deprecated names, and
38+
conflicting rules with JSON/text output options (#404, #432)
39+
- **Pre-commit hooks** — Two new hooks for local development: `validate-plugin-manifest` (checks
40+
plugin.json schema compliance) and `evaluate-plugin-policy` (evaluates manifests against
41+
governance policies before commit) (#428, #431)
42+
- **GitHub Actions action** — Composite action at `action/action.yml` wrapping governance
43+
verification commands (`governance-verify`, `marketplace-verify`, `policy-evaluate`, `all`)
44+
with configurable inputs, structured outputs, and support for plugin marketplace PR
45+
workflows (#423, #430)
46+
- **JSON schema validation** — Governance policy files are now validated against a formal JSON
47+
schema, catching structural errors before runtime (#305, #367)
48+
49+
### Runtime Reliability & Observability
50+
51+
- **Event bus** — Cross-gate publish/subscribe system (`GovernanceEventBus`) enabling loose
52+
coupling between governance gates (PolicyEvaluator, TrustGate, CircuitBreaker) with standard
53+
event types for policy violations, trust changes, circuit state, and budget overages
54+
(#398, #415)
55+
- **Task outcomes**`TaskOutcomeRecorder` tracks agent task successes/failures with
56+
severity-based scoring, diminishing returns on success boosts, time-based score recovery,
57+
and per-agent trust state management (#396, #415)
58+
- **Diff policy** — Evaluate only the delta between previous and current policy state to reduce
59+
overhead on incremental policy updates (#395, #415)
60+
- **Sandbox provider** — Pluggable sandbox provider abstraction for swapping isolation backends
61+
(#394, #415)
62+
- **Graceful degradation**`agent_os.compat` module provides no-op fallbacks
63+
(`NoOpPolicyEvaluator`, `NoOpGovernanceMiddleware`) allowing consumers to optionally depend
64+
on the toolkit without try/except boilerplate (#410, #414)
65+
- **Budget policies**`BudgetPolicy` dataclass defines resource consumption limits (max tokens,
66+
tool calls, cost, duration) with `BudgetTracker` for monitoring usage and detecting overages
67+
with detailed violation reasons (#409, #414)
68+
- **Audit logger** — Structured audit logging for governance decisions with pluggable backends
69+
(#400, #414)
70+
- **Policy evaluation heatmap** — Visual heatmap added to the SRE dashboard showing policy
71+
evaluation patterns and hotspots (#309, #326)
72+
- **Compliance grading**`compliance_grade()` method added to `GovernanceAttestation` for
73+
calculating compliance scores (#346)
74+
75+
### Tutorials & Learning Paths
76+
77+
- **14 new tutorials (07–20)** — Launch-ready tutorials covering all toolkit features including
78+
plugin governance, budget policies, event bus, graceful degradation, MCP server controls,
79+
and more
80+
- **Tutorials landing page** — New README with structured learning paths guiding users from
81+
beginner to advanced topics (#422)
82+
83+
### CI/CD & ESRP
84+
85+
- **PR review orchestrator** — Collapses multiple agent review comments into a single unified
86+
summary on pull requests (#345)
87+
- **Dependency confusion pre-commit hook** — Detects unregistered package names before commit,
88+
plus weekly CI audit job (#350)
89+
- **Markdown link checker** — CI workflow to catch broken links in documentation (#323)
90+
- **ESRP NuGet signing** — Updated NuGet signing config with Client ID and Key Vault
91+
integration (#359, #361, #363, #365)
92+
93+
## ⚠️ Breaking Changes
94+
95+
### PyPI Package Renames
96+
97+
Two PyPI packages have been renamed to avoid namespace collisions:
98+
99+
| Old Name | New Name | Reason |
100+
|----------|----------|--------|
101+
| `agent-runtime` | `agentmesh-runtime` | Name collision with AutoGen team's `agent-runtime` package (#444) |
102+
| `agent-marketplace` | `agentmesh-marketplace` | Consistent `agentmesh` namespace alignment (#439) |
103+
104+
**Migration:** Update your `requirements.txt` or `pyproject.toml`:
105+
106+
```diff
107+
- agent-runtime
108+
+ agentmesh-runtime
109+
110+
- agent-marketplace
111+
+ agentmesh-marketplace
112+
```
113+
114+
## 🔒 Security
115+
116+
- **Fork RCE hardening** — Hardened `pull_request_target` workflows against fork-based remote
117+
code execution [MSRC-111178] (#353)
118+
- **Dependency confusion** — Comprehensive remediation across the entire codebase: replaced all
119+
unregistered PyPI package names, added weekly audit CI, added pre-commit detection hook
120+
(#325, #328, #349, #350, #351, #352)
121+
- **MD5 → SHA-256 migration** — All cryptographic hash usage migrated from MD5 to SHA-256
122+
(#349, #351)
123+
- **ESRP secrets** — Moved all ESRP configuration values to pipeline secrets (#370)
124+
- **Maintainer approval enforcement** — All external PRs now require maintainer approval (#392)
125+
- **SECURITY.md** — Added security policy files to all packages (#354)
126+
- **LangChain crypto hardening** — Hardened cryptographic fallback in LangChain integration (#354)
127+
- **24 security findings addressed** — Comprehensive sweep across codebase (#303)
128+
- **Agent sandbox escape hardening** — Strengthened isolation boundaries against escape
129+
vectors (#297)
130+
- **OWASP Agentic AI hardening** — Proactive hardening against OWASP Agentic AI Top 10
131+
themes
132+
- **47 negative security tests** — Adversarial scenario test suite added
133+
- **101 additional tests** — CA security, MCP integration, and audit stub coverage
134+
- **OpenSSF Scorecard fixes** — Dangerous-workflow, signed-releases, and pinned-deps
135+
improvements (#356)
136+
137+
## 🐛 Bug Fixes
138+
139+
- Corrected license reference in AgentMesh README from Apache 2.0 to MIT (#436)
140+
- Hardcoded service connection name in ESRP pipelines (ADO compile-time requirement) (#421)
141+
- ESRP pipeline fixes for `each` directive syntax in Verify stages and `ESRP_CERT_IDENTIFIER`
142+
secret usage
143+
- Fixed .NET `GovernanceMetrics` test isolation — flush listener before baseline assertion (#417)
144+
- Fixed dependency confusion + pydantic dependency issues (#411, #412)
145+
- Followup cleanup for recently merged community PRs (#393)
146+
- Bumped `cryptography` package, migrated `PyPDF2``pypdf`, scoped workflow permissions (#355)
147+
- Filled community PR gaps — replaced bare excepts, `print``logging`, added `py.typed`
148+
markers, LICENSE fixes (#344)
149+
- Improved CLI error messages in `register` and `policy` commands (#314)
150+
- `SagaStep.MaxRetries` rename + behavioral fault injection + lint fix (#295)
151+
- Pre-announcement security hardening and demo improvements (#296)
152+
- Restored `read-all` at workflow level for Scorecard verification (#327)
153+
- Reverted unsafe merged PRs #357 and #362 (#391)
154+
155+
## 📚 Documentation
156+
157+
- Added copilot-instructions.md with PR review checklist (#413)
158+
- Standardized package README badges across all packages (#373)
159+
- Added README files to example directories and skill integrations (#371, #372, #390)
160+
- Added requirements files for example directories (#372)
161+
- Refreshed all design proposals — updated status, added 5 new proposals (#348)
162+
- Added inline comments to Helm chart `values.yaml` (#341)
163+
- Updated framework integration star counts to current values (#329)
164+
- Added comprehensive docstrings to `mcp_adapter.py` classes (#324)
165+
- Added testing guide for external testers and customers (#313)
166+
- Added integration author guide for contributors (#311)
167+
168+
## 📦 Dependencies
169+
170+
### GitHub Actions
171+
172+
| Package | From | To |
173+
|---------|------|----|
174+
| `actions/attest-sbom` | 2.2.0 | 4.1.0 |
175+
| `actions/attest-build-provenance` | 2.4.0 | 4.1.0 |
176+
| `actions/github-script` | 7.0.1 | 8.0.0 |
177+
| `actions/setup-node` | 4.4.0 | 6.3.0 |
178+
| `actions/stale` | 9.1.0 | 10.2.0 |
179+
| `actions/upload-artifact` | 4.6.2 | 7.0.0 |
180+
| `anchore/sbom-action` | 0.23.1 | 0.24.0 |
181+
| `ossf/scorecard-action` | 2.4.0 | 2.4.3 |
182+
| `sigstore/gh-action-sigstore-python` | 3.0.0 | 3.2.0 |
183+
184+
### npm Dev Dependencies
185+
186+
- Bumped `eslint` (#387)
187+
- Bumped `typescript` (#385, #386)
188+
- Bumped `yaml` (#384)
189+
- Bumped `@typescript-eslint/eslint-plugin` (#381, #292)
190+
- Bumped `@typescript-eslint/parser` (#286, #288)
191+
- Bumped `@vitest/coverage-v8` (#289, #380)
192+
- Bumped `@types/node` (#283, #291)
193+
194+
### Python
195+
196+
- Bumped `cryptography` (#355)
197+
- Migrated `PyPDF2``pypdf` (#355)
198+
199+
## 🧹 Internal
200+
201+
- Removed unused imports with autoflake in a2a-protocol (#340)
202+
- Added pytest markers for slow and integration tests (#375)
203+
- Added 10 AI-powered GitHub Actions workflows (#294)
204+
205+
## Packages
206+
207+
### Python (PyPI)
208+
209+
| Package | Version | Status |
210+
|---------|---------|--------|
211+
| `agent-os-kernel` | 2.3.0 | Community Preview |
212+
| `agentmesh-platform` | 2.3.0 | Community Preview |
213+
| `agent-hypervisor` | 2.3.0 | Community Preview |
214+
| `agentmesh-runtime` | 2.3.0 | Community Preview _(renamed from `agent-runtime`)_ |
215+
| `agentmesh-marketplace` | 2.3.0 | Community Preview _(renamed from `agent-marketplace`)_ |
216+
| `agent-sre` | 2.3.0 | Community Preview |
217+
| `agent-governance-toolkit` | 2.3.0 | Community Preview |
218+
| `agent-lightning` | 2.3.0 | Community Preview |
219+
220+
### npm
221+
222+
| Package | Version | Status |
223+
|---------|---------|--------|
224+
| `@microsoft/agentmesh-sdk` | 1.0.0 | Community Preview |
225+
| `@microsoft/agentmesh-mcp-proxy` | 1.0.0 | Community Preview |
226+
| `@microsoft/agentos-mcp-server` | 1.0.1 | Community Preview |
227+
| `@microsoft/agentmesh-copilot-governance` | 0.1.0 | Community Preview |
228+
| `@microsoft/agentmesh-mastra` | 0.1.0 | Community Preview |
229+
| `@microsoft/agentmesh-api` | 0.1.0 | Community Preview |
230+
| `@microsoft/agent-os-copilot-extension` | 1.0.0 | Community Preview |
231+
232+
### NuGet
233+
234+
| Package | Version | Status |
235+
|---------|---------|--------|
236+
| `Microsoft.AgentGovernance` | 2.3.0 | Community Preview |
237+
238+
## Contributors
239+
240+
- @imran-siddique
241+
- @dependabot
242+
- @matt-van-horn
243+
- @jhawpetoss6-collab
244+
- @Bob
245+
- @AuthorPrime
246+
- @Copilot
247+
- @parsa-faraji-alamouti
248+
- @umesh-pal
249+
- @xavier-garceau-aranda
250+
- @zeel-desai
251+
- @aryan
252+
- @sharath-k
253+
- @yuchengpersonal
254+
255+
## What's Coming
256+
257+
- Official Microsoft-signed releases via ESRP Release (pending onboarding approval)
258+
- PyPI package ownership transfer to `microsoft` account
259+
- npm `@microsoft` scope activation via ESRP
260+
- NuGet Authenticode + NuGet package signing
261+
262+
## Full Changelog
263+
264+
See [CHANGELOG.md](CHANGELOG.md) for the complete list of changes.
265+
266+
**Full Changelog:** https://github.com/microsoft/agent-governance-toolkit/compare/v2.2.0...v2.3.0
267+
268+
## License
269+
270+
[MIT](LICENSE) — © Microsoft Corporation

packages/agent-compliance/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "agent-governance-toolkit"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — Unified installer and runtime policy enforcement for the Agent Governance Toolkit"
99
readme = "README.md"
1010
license = "MIT"

packages/agent-hypervisor/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "agent-hypervisor"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — Agent Hypervisor: Runtime supervisor for multi-agent Shared Sessions with Execution Rings, Joint Liability, Saga Orchestration, and hash-chained audit trails"
99
readme = "README.md"
1010
license = "MIT"

packages/agent-lightning/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "agent-lightning"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — Agent-Lightning RL integration for the Agent Governance Toolkit: governed training with policy enforcement"
99
readme = "README.md"
1010
license = "MIT"

packages/agent-mesh/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "agentmesh-platform"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — The Secure Nervous System for Cloud-Native Agent Ecosystems - Identity, Trust, Reward, Governance"
99
readme = "README.md"
1010
license = {text = "MIT"}

packages/agent-os/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "agent-os-kernel"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — A kernel architecture for governing autonomous AI agents with Nexus Trust Exchange"
99
readme = "README.md"
1010
license = "MIT"

packages/agent-runtime/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "agentmesh-runtime"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — AgentMesh Runtime: Execution supervisor for multi-agent sessions with privilege rings, saga orchestration, and audit trails"
99
readme = "README.md"
1010
license = "MIT"

packages/agent-sre/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "agent-sre"
7-
version = "2.2.0"
7+
version = "2.3.0"
88
description = "Community Edition — Reliability Engineering for AI Agent Systems"
99
readme = "README.md"
1010
license = "MIT"

0 commit comments

Comments
 (0)