Skip to content

fix!: standardize DID method to did:agentmesh across all SDKs (v3.2.0) + critic gap docs#1170

Merged
imran-siddique merged 7 commits intomicrosoft:mainfrom
imran-siddique:main
Apr 16, 2026
Merged

fix!: standardize DID method to did:agentmesh across all SDKs (v3.2.0) + critic gap docs#1170
imran-siddique merged 7 commits intomicrosoft:mainfrom
imran-siddique:main

Conversation

@imran-siddique
Copy link
Copy Markdown
Member

@imran-siddique imran-siddique commented Apr 16, 2026

BREAKING CHANGE

Two sets of changes combined:

1. DID Standardization (30 files)

Standardizes all agent DIDs to \did:agentmesh:\ prefix, resolving the inconsistency where Python/.NET used \did:mesh:\ while TypeScript/Rust/Go used \did:agentmesh:.

  • Python: agent_id.py, delegation.py, entra.py, all integrations and tests
  • .NET: AgentIdentity.cs, Jwk.cs, GovernanceKernel.cs, all 26 test files
  • Docs: README, tutorials, identity docs, FAQ, compliance docs
  • Version bump: 3.1.0 → 3.2.0 (.NET, Python agent-mesh, TypeScript)

Migration: Replace \did:mesh:\ with \did:agentmesh:\ in policies, identity registries, and agent configs.

2. External Critic Gap Docs

  • §10 Physical AI — documents AGT scope excludes physical actuators
  • §11 Streaming Data — documents per-action evaluation, not stream assurance
  • Updated THREAT_MODEL.md residual risks

Test Results

512/513 .NET tests pass (1 pre-existing flaky regex timeout unrelated to this change).

imran-siddique and others added 5 commits April 15, 2026 09:46
…CP parity

* fix(ci): add path filters and concurrency; announce v3.1.0 release

CI optimization:
- Add paths-ignore for docs to 5 code-only workflows
- Add paths filter to Link Check (only run on docs changes)
- Add concurrency groups to 7 heavy workflows
- Docs-only PRs drop from ~14 checks to ~4

README:
- Add v3.1.0 release announcement callout
- Add PyPI version badge
- Update tutorial count to 31

Co-authored-by: Copilot <[email protected]>

* docs: update SOC2 mapping for resolved kill switch and DeltaEngine gaps

- Kill switch is no longer placeholder: now implements saga handoff
  with handoff_success_count tracking (kill_switch.py:69-178)
- DeltaEngine verify_chain() is no longer a stub: now performs SHA-256
  chain verification (delta.py:67-127)
- Move both from Critical/High gaps to new 'Resolved' section
- Update Processing Integrity coverage (2 of 4 defects, not 3 of 4)
- Update evidence table with current line ranges

Co-authored-by: Copilot <[email protected]>

* feat(dotnet): add MCP security namespace with scanner, gateway, redactor, and sanitizer

Add AgentGovernance.Mcp namespace implementing full MCP security parity with
TypeScript and Rust SDKs:

- McpSecurityScanner: tool poisoning, typosquatting, hidden instructions,
  rug pull, schema abuse, cross-server attack, and description injection detection
- McpCredentialRedactor: regex-based redaction of API keys, bearer tokens,
  connection strings, and secret assignments
- McpResponseSanitizer: response scanning for prompt injection tags,
  imperative phrasing, credential leakage, and exfiltration URLs
- McpGateway: policy enforcement pipeline with deny/allow lists, payload
  sanitization, rate limiting, and human approval gates

Includes 46 xUnit tests covering all threat categories. Updates
SDK-FEATURE-MATRIX.md to flip .NET MCP Security from — to ✅.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
* fix(pipeline): run NuGet ESRP signing on Windows agent (microsoft#1022)

The EsrpCodeSigning@5 task constructs internal paths (batchSignPolicyFile,
ciPolicyFile) using Windows-style backslashes. Running on ubuntu-latest
produced garbled mixed paths like '/home/vsts/work/1/s/src\myapp\'.

Changes:
- Add per-job pool override: PublishNuGet runs on windows-latest
- Convert FolderPath and all shell commands to Windows paths
- Replace bash scripts with PowerShell for the Windows agent
- PyPI and npm stages remain on ubuntu-latest (unchanged)
- Add comment to delete orphaned ESRP_DOMAIN_TENANT_ID ADO variable

Co-authored-by: Copilot <[email protected]>

* docs: reland empty-merge changes from PRs microsoft#1017 and microsoft#1020 (microsoft#1125)

PRs microsoft#1017 and microsoft#1020 were squash-merged as empty commits (0 file
changes). This commit re-applies the intended documentation updates.

From PR microsoft#1017 (critic gaps):
- LIMITATIONS.md: add sections 7 (knowledge governance gap), 8
  (credential persistence gap), 9 (initialization bypass risk)
- LIMITATIONS.md: add knowledge governance and enforcement infra
  rows to 'What AGT Is Not' table
- THREAT_MODEL.md: add knowledge flow and credential persistence
  to residual risks, add configuration bypass vectors table,
  remove stale '10/10' qualifier

From PR microsoft#1020 (SOC2 resolved gaps):
- soc2-mapping.md: mark kill switch as resolved (saga handoff
  implemented in kill_switch.py:69-178)
- soc2-mapping.md: mark DeltaEngine verify_chain() as resolved
  (SHA-256 chain verification in delta.py:67-127)
- soc2-mapping.md: add Resolved section to gaps summary, update
  Processing Integrity to 2 of 4 defects (was 3 of 4)

Co-authored-by: Copilot <[email protected]>

* feat(dotnet): add MCP security namespace — completes cross-language MCP parity (microsoft#1021)

* fix(ci): add path filters and concurrency; announce v3.1.0 release

CI optimization:
- Add paths-ignore for docs to 5 code-only workflows
- Add paths filter to Link Check (only run on docs changes)
- Add concurrency groups to 7 heavy workflows
- Docs-only PRs drop from ~14 checks to ~4

README:
- Add v3.1.0 release announcement callout
- Add PyPI version badge
- Update tutorial count to 31



* docs: update SOC2 mapping for resolved kill switch and DeltaEngine gaps

- Kill switch is no longer placeholder: now implements saga handoff
  with handoff_success_count tracking (kill_switch.py:69-178)
- DeltaEngine verify_chain() is no longer a stub: now performs SHA-256
  chain verification (delta.py:67-127)
- Move both from Critical/High gaps to new 'Resolved' section
- Update Processing Integrity coverage (2 of 4 defects, not 3 of 4)
- Update evidence table with current line ranges



* feat(dotnet): add MCP security namespace with scanner, gateway, redactor, and sanitizer

Add AgentGovernance.Mcp namespace implementing full MCP security parity with
TypeScript and Rust SDKs:

- McpSecurityScanner: tool poisoning, typosquatting, hidden instructions,
  rug pull, schema abuse, cross-server attack, and description injection detection
- McpCredentialRedactor: regex-based redaction of API keys, bearer tokens,
  connection strings, and secret assignments
- McpResponseSanitizer: response scanning for prompt injection tags,
  imperative phrasing, credential leakage, and exfiltration URLs
- McpGateway: policy enforcement pipeline with deny/allow lists, payload
  sanitization, rate limiting, and human approval gates

Includes 46 xUnit tests covering all threat categories. Updates
SDK-FEATURE-MATRIX.md to flip .NET MCP Security from — to ✅.



---------

Co-authored-by: Copilot <[email protected]>

* docs: address external critic gaps (microsoft#1025)

* feat(dotnet): add kill switch and lifecycle management to .NET SDK (#5)

- Add KillSwitch with arm/disarm, event history, and subscriber notifications
- Add LifecycleManager with 8-state machine and validated transitions
- Add 26 xUnit tests
- Update README

Co-authored-by: Copilot <[email protected]>

* feat(rust): add execution rings and lifecycle management to Rust SDK (#6)

* feat(dotnet): add kill switch and lifecycle management to .NET SDK

- Add KillSwitch with arm/disarm, event history, and subscriber notifications
- Add LifecycleManager with 8-state machine and validated transitions
- Add comprehensive xUnit tests for both components (26 tests)
- Update .NET SDK README with usage documentation

Co-authored-by: Copilot <[email protected]>

* feat(rust): add execution rings and lifecycle management to Rust SDK

Add two new modules to the agentmesh Rust crate:

- rings.rs: Four-level execution privilege ring model (Admin/Standard/
  Restricted/Sandboxed) with per-agent assignment and per-ring action
  permissions, ported from the Python hypervisor enforcer.

- lifecycle.rs: Eight-state agent lifecycle manager (Provisioning through
  Decommissioned) with validated state transitions and event history,
  matching the lifecycle model used across other SDK languages.

Both modules include comprehensive unit tests and are re-exported from
the crate root. README updated with API tables and usage examples.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* feat(go): add MCP security, execution rings, and lifecycle management to Go SDK (#7)

* feat(openshell): add governance skill package and runnable example (microsoft#942)

Co-authored-by: Copilot <[email protected]>

* feat(go): add MCP security, execution rings, and lifecycle management to Go SDK

- mcp.go: MCP security scanner detecting tool poisoning, typosquatting,
  hidden instructions (zero-width chars, homoglyphs), and rug pulls
- rings.go: Execution privilege ring model (Admin/Standard/Restricted/Sandboxed)
  with default-deny access control
- lifecycle.go: Eight-state agent lifecycle manager with validated transitions
- Full test coverage for all three modules
- Updated README with API docs and examples

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* docs: sync audit redaction status and framing with current code (#8)

* feat(openshell): add governance skill package and runnable example (microsoft#942)

Co-authored-by: Copilot <[email protected]>

* feat(typescript): add MCP security scanner and lifecycle management to TS SDK (microsoft#947)

Co-authored-by: Copilot <[email protected]>

* docs: update SDK feature matrix after parity pass (microsoft#950)

Reflects new capabilities added in PRs microsoft#947 (TS), .NET, Rust, Go:
- TypeScript: MCP security scanner + lifecycle management (was 5/14, now 7/14)
- .NET: Kill switch + lifecycle management (was 8/14, now 10/14)
- Rust: Execution rings + lifecycle management (was 6/14, now 8/14)
- Go: MCP security + rings + lifecycle (was 4/14, now 7/14)

All SDKs now have lifecycle management. Core governance (policy, identity,
trust, audit) + lifecycle = 5 primitives shared across all 5 languages.

Co-authored-by: Copilot <[email protected]>

* docs: add LIMITATIONS.md - honest design boundaries and layered defense (microsoft#953)

Addresses valid external critique of AGT's architectural blind spots:

1. Action vs Intent: AGT governs individual actions, not reasoning or
   action sequences. Documents the compound-action gap explicitly and
   recommends content policies + model safety layers.

2. Audit logs record attempts, not outcomes: Documents that post-action
   state verification is the user's responsibility today, with hooks planned.

3. Performance honesty: README now notes that <0.1ms is policy-eval only;
   distributed mesh adds 5-50ms. Full breakdown in LIMITATIONS.md.

4. Complexity spectrum: Documents the minimal path (just PolicyEvaluator,
   no mesh/crypto) vs full enterprise stack.

5. Vendor independence: Documents zero cloud dependencies in core,
   standard formats for all state, migration path.

6. Recommended layered defense architecture diagram showing AGT as one
   layer alongside model safety, application logic, and infrastructure.

Co-authored-by: Copilot <[email protected]>

* fix(docs): rewrite OpenClaw sidecar deployment with working K8s manifests (microsoft#954)

Closes microsoft#952

Co-authored-by: Copilot <[email protected]>

* feat: reversibility checker, trust calibration guide, escalation tests (microsoft#955)

ReversibilityChecker with 4 levels and compensation plans. Trust score calibration guide with weights, decay, thresholds. 19 tests. Co-authored-by: Copilot <[email protected]>

* feat: AGT Lite — zero-config governance in 3 lines + fix broken quickstart (microsoft#956)

agent_os.lite: govern() factory, sub-ms enforcement, 16 tests. Fixed quickstart that called nonexistent add_rules(). Co-authored-by: Copilot <[email protected]>

* fix: bump all runtime versions to 3.1.0 and fix CI lint/test failures (microsoft#957)

- Bump __version__ in 29 Python __init__.py files from 3.0.2 to 3.1.0
- Bump version= in 6 setup.py files from 3.0.2 to 3.1.0
- Bump meter version strings in _mcp_metrics.py
- Bump 9 package.json files from 3.0.2 to 3.1.0
- Bump .NET csproj Version from 3.0.2 to 3.1.0
- Bump Rust workspace Cargo.toml from 3.0.2 to 3.1.0
- Create Go sdk doc.go with version marker 3.1.0
- Fix ruff W292 (missing newline at EOF) in data_classification.py
- Fix CLI init regex to allow dots in agent names (test_init_special_characters)

Co-authored-by: Copilot <[email protected]>

* fix(openclaw): critical honesty pass — document what works vs what's planned (microsoft#958)

Co-authored-by: Copilot <[email protected]>

* fix(ci): fix Rust crate packaging - use workspace root with -p agentmesh (microsoft#959)

* fix(openclaw): critical honesty pass — document what works vs what's planned

Server (__main__.py):
- Add --host/--port argparse + env var support (was hardcoded 127.0.0.1:8080)

Dockerfile.sidecar:
- Copy modules/ directory (was missing, causing build failure)
- Use 0.0.0.0 for container binding (127.0.0.1 is wrong inside containers)
- Remove phantom port 9091 (no separate metrics listener exists)

openclaw-sidecar.md — full honesty rewrite:
- Add status banner: transparent interception is NOT yet implemented
- Document actual sidecar API endpoints (health, detect/injection, execute, metrics)
- Fix Docker Compose to use Dockerfile.sidecar (was using wrong Dockerfile)
- Remove GOVERNANCE_PROXY claim (OpenClaw doesn't natively read this)
- Replace fictional SLO/Grafana sections with real /api/v1/metrics docs
- Add Roadmap section listing what's planned vs shipped

openshell.md:
- Remove references to non-existent shell scripts
- Fix python -m agentmesh.server to python -m agent_os.server
- Add note that sidecar doesn't transparently intercept (must call API)
- Replace pip install agentmesh-platform with Python skill library usage

Co-authored-by: Copilot <[email protected]>

* fix(ci): fix Rust crate packaging — use workspace root with -p agentmesh

cargo package in a workspace writes .crate files to the workspace root's
target/package/, not the individual crate's directory. The pipeline was
running from the crate subdirectory and couldn't find the output.

Fix: change workingDirectory from packages/agent-mesh/sdks/rust/agentmesh
to packages/agent-mesh/sdks/rust (workspace root) and add -p agentmesh
to all cargo commands to target the specific crate.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* docs(adr): ADR 0005 — Liveness attestation extension for TrustHandshake (microsoft#948)

Proposes liveness attestation as opt-in gate for TrustHandshake. Addresses ghost-agent and ungraceful-handoff gaps from microsoft#772.

Co-authored-by: kevinkaylie <[email protected]>

* blog: MCP Security — Why Your AI Agent Tool Calls Need a Firewall (microsoft#899)

Co-authored-by: aymenhmaidiwastaken <[email protected]>

* feat: add LotL prevention policy for security measures (microsoft#949)

YAML policy template for Living-off-the-Land detection and prevention.

* feat(examples): add ATR community security rules for PolicyEvaluator (microsoft#908)

15 curated ATR detection rules + sync script. Closes microsoft#901.

* fix(docs): correct npm package name and stale version refs across 21 files (microsoft#960)

- Fix @agentmesh/sdk → @microsoft/agentmesh-sdk in 13 markdown files
  (README, QUICKSTART, tutorials, SDK docs, i18n, changelog)
- Fix broken demo path in agent-os README (agent-os/demo.py → demo/maf_governance_demo.py)
- Remove stale v1.0.0 labels from extension status table
- Bump AGT Version refs 3.0.2 → 3.1.0 in case study templates and
  ATF conformance assessment

Co-authored-by: Copilot <[email protected]>

* fix(ci): use ESRP Release for NuGet signing (microsoft#961)

Co-authored-by: Copilot <[email protected]>

* fix(ci): correct ESRP NuGet contenttype casing (microsoft#962)

* fix(ci): add missing packages to ESRP pipeline and fix Go version tag

Three gaps found during publish verification:

1. PyPI: add agentmesh-marketplace (8th package, was missing from matrix)
2. Rust: build+publish both workspace crates (agentmesh + agentmesh-mcp)
   - Changed from single-crate to workspace build (--workspace)
   - Package loop builds both .crate files
   - Renamed artifact from 'rust-agentmesh' to 'rust-crates'
3. Go: add 'v' prefix to version in doc.go (3.1.0 → v3.1.0)
   - Go module tags require semver with v prefix
   - Pipeline grep expects '// Version: v...' format

Co-authored-by: Copilot <[email protected]>

* fix(ci): correct ESRP NuGet contenttype casing — 'NuGet' not 'Nuget'

ESRP Release rejected 'Nuget' with: 'The value provided for
ReleaseContentType property is invalid.' ErrorCode 2254.

ESRP content types are case-sensitive. Fix: 'Nuget' -> 'NuGet'.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* fix(ci): add missing packages to ESRP pipeline and fix Go version tag (microsoft#963)

* fix(ci): add missing packages to ESRP pipeline and fix Go version tag

Three gaps found during publish verification:

1. PyPI: add agentmesh-marketplace (8th package, was missing from matrix)
2. Rust: build+publish both workspace crates (agentmesh + agentmesh-mcp)
   - Changed from single-crate to workspace build (--workspace)
   - Package loop builds both .crate files
   - Renamed artifact from 'rust-agentmesh' to 'rust-crates'
3. Go: add 'v' prefix to version in doc.go (3.1.0 → v3.1.0)
   - Go module tags require semver with v prefix
   - Pipeline grep expects '// Version: v...' format

Co-authored-by: Copilot <[email protected]>

* fix(ci): correct ESRP NuGet contenttype casing — 'NuGet' not 'Nuget'

ESRP Release rejected 'Nuget' with: 'The value provided for
ReleaseContentType property is invalid.' ErrorCode 2254.

ESRP content types are case-sensitive. Fix: 'Nuget' -> 'NuGet'.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* fix(ci): use EsrpCodeSigning + dotnet push for NuGet (microsoft#965)

EsrpRelease@11 does not support NuGet as a contenttype — it's for
PyPI/npm/Maven/crates.io package distribution. NuGet packages must be
signed with EsrpCodeSigning@5 first, then pushed with dotnet nuget push.

New flow:
1. EsrpCodeSigning@5 with NuGetSign + NuGetVerify operations (CP-401405)
2. dotnet nuget push with the signed .nupkg to nuget.org

This matches the standard Microsoft NuGet ESRP signing pattern used by
azure-sdk, dotnet runtime, and other Microsoft OSS projects.

Co-authored-by: Copilot <[email protected]>

* fix(security): upgrade axios to 1.15.0 - CVE-2026-40175, CVE-2025-62718 (microsoft#966)

Critical S360 action items for SFI-ES5.2 1ES Open Source Vulnerabilities.

CVE-2026-40175 (CVSS 9.9): Unrestricted Cloud Metadata Exfiltration
via Header Injection Chain — prototype pollution gadget enables CRLF
injection in HTTP headers, bypassing AWS IMDSv2 session tokens.

CVE-2025-62718: NO_PROXY Bypass via Hostname Normalization — trailing
dots and IPv6 literals skip NO_PROXY matching, enabling SSRF through
attacker-controlled proxy.

Upgraded in 3 packages:
- extensions/copilot: 1.14.0 → 1.15.0
- extensions/cursor:  1.13.5 → 1.15.0
- agent-os-vscode:    1.13.6 → 1.15.0

Co-authored-by: Copilot <[email protected]>

* fix(ci): resolve ESRP_DOMAIN_TENANT_ID cyclical reference (microsoft#967)

The ADO variable ESRP_DOMAIN_TENANT_ID had a cyclical self-reference,
preventing ESRP authentication across ALL publishing stages (PyPI, npm,
NuGet, crates.io).

Fix: Define MICROSOFT_TENANT_ID as a pipeline-level variable with the
well-known Microsoft corporate tenant ID (72f988bf-..., same default
used by ESRP Release action.yml). This is a public value, not a secret.

Also: NuGet publishing requires Microsoft as co-owner of the package
on NuGet.org. See https://aka.ms/Microsoft-NuGet-Compliance

Co-authored-by: Copilot <[email protected]>

* docs: sync audit redaction status and framing with current code

- Update SOC2 mapping to reflect CredentialRedactor now redacts
  credential-like secrets before audit persistence (API keys, tokens,
  JWTs, connection strings, etc.). Remaining gap: non-credential PII
  (email, phone, addresses) not yet redacted in audit entries.
- Replace 'kernel-level enforcement' with 'policy-layer enforcement'
  in README, OWASP compliance, and architecture overview to match the
  existing 'application-level governance' framing in README Security
  section and LIMITATIONS.md.
- Qualify 10/10 OWASP coverage claim in COMPARISON.md with footnote
  clarifying this means mitigation components exist per risk category,
  not full elimination.
- Update owasp-llm-top10-mapping.md LLM06 row for credential redaction.

Addresses doc/code inconsistencies identified in external review.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: kevinkaylie <[email protected]>
Co-authored-by: Aymen Hmaidi <[email protected]>
Co-authored-by: harshnair75567-cloud <[email protected]>
Co-authored-by: Adamthereal <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: kevinkaylie <[email protected]>
Co-authored-by: Aymen Hmaidi <[email protected]>
Co-authored-by: harshnair75567-cloud <[email protected]>
Co-authored-by: Adamthereal <[email protected]>

* fix(lint): resolve agent-mesh lint errors in eu_ai_act.py (microsoft#1028)

- Remove unused variable profiling_override (F841)
- Remove f-string without placeholders (F541)
- Fix whitespace in docstrings (W293)

Co-authored-by: Copilot <[email protected]>

* fix(ci): add path filters and concurrency; announce v3.1.0 release (microsoft#1039)

CI optimization:
- Add paths-ignore for docs to 5 code-only workflows
- Add paths filter to Link Check (only run on docs changes)
- Add concurrency groups to 7 heavy workflows
- Docs-only PRs drop from ~14 checks to ~4

README:
- Add v3.1.0 release announcement callout
- Add PyPI version badge
- Update tutorial count to 31

Co-authored-by: Copilot <[email protected]>

* docs: add ADOPTERS.md and make deployment guides multi-cloud (microsoft#1040)

- New ADOPTERS.md following Backstage/Flatcar pattern with Production,
  Evaluation, and Academic tables + instructions for adding your org
- Rewrite docs/deployment/README.md from Azure-only to multi-cloud:
  Azure (AKS, Foundry, Container Apps), AWS (ECS/Fargate), GCP (GKE),
  Docker Compose, self-hosted. Updated architecture diagram to show
  cloud-agnostic deployment patterns.
- Fix broken AWS/GCP links (pointed to non-existent paths)
- README now links to 'Deployment Guides' (multi-cloud) instead of
  'Azure Deployment'
- README Contributing section invites adopters to add their org

Co-authored-by: Copilot <[email protected]>

* feat: add AGT Lite — zero-config governance in 3 lines, fix broken quickstart (microsoft#1044)

Addresses the #1 developer experience criticism: AGT is too complex to start.

New: agent_os.lite — lightweight governance module
- govern() factory: one line to create a governance gate
- check(action): one line to enforce — raises GovernanceViolation or returns True
- check.is_allowed(action): non-raising bool version
- Allow lists, deny lists, regex patterns, content filtering, rate limiting
- Built-in audit trail and stats
- Sub-millisecond evaluation (0.003ms avg, 1000 evals in <100ms)
- Zero dependencies beyond stdlib (re, time, datetime)
- 16 tests passing

Fix: govern_in_60_seconds.py quickstart
- BROKEN: was calling PolicyEvaluator.add_rules() which does not exist
- FIXED: now uses agent_os.lite.govern() which actually works
- Verified end-to-end: script runs and produces correct output

The lite module is for developers who just want basic governance
without learning PolicyEvaluator, YAML, OPA/Rego, trust mesh, etc.
Upgrade to the full stack when you need it.

Co-authored-by: Copilot <[email protected]>

* feat(ci): enhance weekly security audit with 7 new scan jobs (microsoft#1051)

Add comprehensive security checks based on issues found during
the MSRC-111178 security audit and ongoing post-merge reviews:

- Workflow security regression (MSRC-111178 pull_request_target check)
- Expression injection scan (github.event.* in run: blocks)
- Docker security (root containers, wildcard CORS, hardcoded passwords,
  0.0.0.0 bindings)
- XSS and unsafe DOM (innerHTML, eval, yaml.load, shell=True)
- Action SHA pinning compliance
- Version pinning (pyproject.toml upper bounds, Docker :latest tags,
  license field format)
- Dependency confusion with --strict mode (pyproject.toml + package.json)
- Retention days updated to 180 (EU AI Act Art. 26(6))

Co-authored-by: Copilot <[email protected]>

* fix(ci): fix OpenShell integration CI — spelling, link check, policy validation (microsoft#1057)

- Add OpenShell/NVIDIA terms to cspell dictionary (Landlock, seccomp, syscall, etc.)
- Fix broken link: openclaw-skill -> openshell-skill in docs/integrations/openshell.md
- Fix policy validation: replace starts_with (invalid) with matches + regex

Co-authored-by: Copilot <[email protected]>

* feat: add reversibility checker, trust calibration guide, and escalation/reversibility tests (microsoft#1061)

Addresses critical review feedback:

1. Rollback/reversibility (agent_os.reversibility)
   - ReversibilityChecker: pre-execution assessment of action reversibility
   - 4 levels: fully_reversible, partially_reversible, irreversible, unknown
   - CompensatingAction: structured undo plans for each action type
   - Built-in rules for 12 common actions (write, deploy, delete, email, etc.)
   - block_irreversible mode for strict environments

2. Trust score calibration guide (docs/security/trust-score-calibration.md)
   - Score component weights (compliance 35%, task 25%, behavior 25%, identity 15%)
   - Decay functions with tier floors
   - Initial score assignments by agent origin
   - Threshold recommendations (conservative/moderate/permissive)
   - Anti-gaming measures and operational playbook

3. Tests: 19 passing (10 escalation + 9 reversibility)

Co-authored-by: Copilot <[email protected]>

* feat: deployment runtime (Docker/AKS) and shared trust core types (microsoft#1062)

agent-runtime: Evolve from thin re-export shim to deployment runtime
- DockerDeployer: container deployment with security hardening
  (cap-drop ALL, no-new-privileges, read-only rootfs)
- KubernetesDeployer: AKS pod deployment with governance sidecars
  (runAsNonRoot, seccompProfile, resource limits)
- GovernanceConfig: policy/trust/audit config injected as env vars
- DeploymentTarget protocol for extensibility (ADC, nono, etc.)
- 24 tests (all subprocess calls mocked)

agent-mesh: Extract shared trust types into agentmesh.trust_types
- TrustScore, AgentProfile, TrustRecord, TrustTracker
- Canonical implementations replacing ~800 lines of duplicated code
  across 6+ integration packages
- 25 tests covering clamping, scoring, history, capabilities

Co-authored-by: Copilot <[email protected]>

* feat(dotnet): add kill switch and lifecycle management to .NET SDK (microsoft#1065)

- Add KillSwitch with arm/disarm, event history, and subscriber notifications
- Add LifecycleManager with 8-state machine and validated transitions
- Add comprehensive xUnit tests for both components (26 tests)
- Update .NET SDK README with usage documentation

Co-authored-by: Copilot <[email protected]>

* feat(go): add MCP security, execution rings, and lifecycle management to Go SDK (microsoft#1066)

- mcp.go: MCP security scanner detecting tool poisoning, typosquatting,
  hidden instructions (zero-width chars, homoglyphs), and rug pulls
- rings.go: Execution privilege ring model (Admin/Standard/Restricted/Sandboxed)
  with default-deny access control
- lifecycle.go: Eight-state agent lifecycle manager with validated transitions
- Full test coverage for all three modules
- Updated README with API docs and examples

Co-authored-by: Copilot <[email protected]>

* feat(rust): add execution rings and lifecycle management to Rust SDK (microsoft#1067)

* feat(dotnet): add kill switch and lifecycle management to .NET SDK

- Add KillSwitch with arm/disarm, event history, and subscriber notifications
- Add LifecycleManager with 8-state machine and validated transitions
- Add comprehensive xUnit tests for both components (26 tests)
- Update .NET SDK README with usage documentation

Co-authored-by: Copilot <[email protected]>

* feat(rust): add execution rings and lifecycle management to Rust SDK

Add two new modules to the agentmesh Rust crate:

- rings.rs: Four-level execution privilege ring model (Admin/Standard/
  Restricted/Sandboxed) with per-agent assignment and per-ring action
  permissions, ported from the Python hypervisor enforcer.

- lifecycle.rs: Eight-state agent lifecycle manager (Provisioning through
  Decommissioned) with validated state transitions and event history,
  matching the lifecycle model used across other SDK languages.

Both modules include comprehensive unit tests and are re-exported from
the crate root. README updated with API tables and usage examples.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>

* fix: align lotl_prevention_policy.yaml with PolicyDocument schema

The policy file used an incompatible schema format (id, parameter,
regex_match, effect) instead of the expected PolicyDocument fields
(name, condition.field, operator, action). This caused the
validate-policies CI check to fail for all PRs.

Changes:
- id → name
- condition.parameter → condition.field
- operator: regex_match → operator: matches
- action at rule level (shell_exec/file_read) → action: deny
- effect: DENY → removed (redundant with action: deny)
- Added version, name, description, disclaimer at top level

Co-authored-by: Copilot <[email protected]>

* fix: resolve .NET ESRP signing issues blocking NuGet publish

GitHub Actions (publish.yml):
- Fix broken if-guards on signing steps: env.ESRP_AAD_ID was set in
  step-level env (invisible to if-expressions). Replace with job-level
  ESRP_CONFIGURED env derived from secrets.
- Add missing ESRP_CERT_IDENTIFIER to signing step env blocks.
- Gate the publish step on ESRP_CONFIGURED so unsigned packages are
  never pushed to NuGet.org under the Microsoft.* prefix.
- Make stub signing steps fail-fast (exit 1) instead of silently
  succeeding, preventing unsigned packages from reaching NuGet push.

ADO Pipeline (esrp-publish.yml):
- Add UseDotNet@2 task to Publish_NuGet stage so dotnet nuget push
  has a guaranteed SDK version on the Windows agent.

Co-authored-by: Copilot <[email protected]>

* fix(docs): fix OpenClaw sidecar demo and add limitations callout (microsoft#1163)

The docker-compose example in openclaw-sidecar.md was illustrative only
and did not work — it referenced a non-existent OpenClaw image and lacked
healthchecks. Users were hitting this and getting confused.

Changes:
- Add working demo at demo/openclaw-governed/ with docker-compose.yaml
  that builds and runs the governance sidecar from source
- Replace the inline docker-compose in the doc with a link to the demo
  plus a clearly-labeled reference template for custom deployments
- Add prominent WARNING callout listing known limitations (no native
  OpenClaw integration, no published images, explicit API required)
- Remove stale orphaned curl snippet after the docker-compose block
- Add healthcheck to docker-compose governance-sidecar service
- Fix OpenClaw image reference from ghcr.io/openclaw/openclaw:latest
  to a placeholder users must replace with their own image

Co-authored-by: Copilot <[email protected]>

* fix(docs): fix OpenClaw sidecar demo and add limitations callout (microsoft#1164)

The docker-compose example in openclaw-sidecar.md was illustrative only
and did not work — it referenced a non-existent OpenClaw image and lacked
healthchecks. Users were hitting this and getting confused.

Changes:
- Add working demo at demo/openclaw-governed/ with docker-compose.yaml
  that builds and runs the governance sidecar from source
- Replace the inline docker-compose in the doc with a link to the demo
  plus a clearly-labeled reference template for custom deployments
- Add prominent WARNING callout listing known limitations (no native
  OpenClaw integration, no published images, explicit API required)
- Remove stale orphaned curl snippet after the docker-compose block
- Add healthcheck to docker-compose governance-sidecar service
- Fix OpenClaw image reference from ghcr.io/openclaw/openclaw:latest
  to a placeholder users must replace with their own image

Co-authored-by: Copilot <[email protected]>

* fix(ci): use PME tenant ID for ESRP cert signing

The ESRP signing cert lives in the PME (Partner Managed Engineering)
tenant (975f013f), not the Microsoft corporate tenant (72f988bf).
Using the wrong tenant ID causes ESRP signing to fail when looking
up the cert.

Co-authored-by: Copilot <[email protected]>

* docs: Add Scaling AI Agents article to COMMUNITY.md (microsoft#857)

Co-authored-by: deepsearch <[email protected]>

* Add runtime evidence mode to agt verify (microsoft#969)

* Track agt verify evidence plan

* Add runtime evidence mode to agt verify

* Add runtime evidence verifier tests

* Add CLI tests for agt verify evidence mode

* Document evidence mode for compliance verification

* Remove local implementation notes

* Document agt verify evidence mode

* Harden evidence path handling in verify

---------

Co-authored-by: T. Smith <[email protected]>

* docs: add Entra Agent ID bridge tutorial with R&R matrix and DID fix

- Add Tutorial 31: Bridging AGT Identity with Microsoft Entra Agent ID
  - Detailed roles & responsibilities between AGT and Entra/Agent365
  - Architecture diagram showing the identity bridge
  - Step-by-step: DID creation, Entra binding, AKS workload identity,
    token validation, lifecycle sync, access verification
  - Known gaps and limitations table
  - Platform independence note (AWS, GCP, Okta patterns)
- Fix DID prefix in .NET MCP gateway tests (did:agentmesh → did:mesh
  for consistency with Python reference implementation and .NET SDK)
- Update tutorials README with Enterprise Identity section

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
Co-authored-by: kevinkaylie <[email protected]>
Co-authored-by: Aymen Hmaidi <[email protected]>
Co-authored-by: harshnair75567-cloud <[email protected]>
Co-authored-by: Adamthereal <[email protected]>
Co-authored-by: Jack Batzner <[email protected]>
Co-authored-by: lawcontinue <[email protected]>
Co-authored-by: deepsearch <[email protected]>
Co-authored-by: ewmh <[email protected]>
Co-authored-by: T. Smith <[email protected]>
Add three new sections to LIMITATIONS.md addressing gaps identified in
public criticism and external security analysis:

- §10 Physical AI and Embodied Agent Governance: documents that AGT
  governs software agents not physical actuators, with mitigations
- §11 Streaming Data and Real-Time Assurance: documents that AGT
  evaluates per-action not continuously over data streams
- §12 DID Method Inconsistency Across SDKs: documents the did:mesh
  vs did:agentmesh split with migration plan for v4.0

Update THREAT_MODEL.md residual risks to reference all three new
limitation sections.

Co-authored-by: Copilot <[email protected]>
@github-actions github-actions Bot added documentation Improvements or additions to documentation size/M Medium PR (< 200 lines) labels Apr 16, 2026
imran-siddique and others added 2 commits April 16, 2026 21:02
* fix!: standardize DID method to did:agentmesh across all SDKs

BREAKING CHANGE: All agent DIDs now use the did:agentmesh: prefix.
The legacy did:mesh: prefix used by Python and .NET has been migrated
to match the did:agentmesh: convention already used by TypeScript,
Rust, and Go SDKs.

Changes:
- Python: agent_id.py, delegation.py, entra.py, all integrations
- .NET: AgentIdentity.cs, Jwk.cs, GovernanceKernel.cs, all tests
- Docs: README, tutorials, identity docs, FAQ, compliance docs
- Tests: all test fixtures updated across Python, .NET, TS, VSCode
- Version bump: 3.1.0 → 3.2.0 (.NET, Python agent-mesh, TypeScript)

Migration: replace did:mesh: with did:agentmesh: in your policies,
identity registries, and agent configurations.

Co-authored-by: Copilot <[email protected]>

* docs: add Q11-Q13 to FAQ — AGT scope, Agent 365, and DLP comparison

Adds three new customer Q&As:
- Q11: Is AGT for Foundry agents or any agent type? (any)
- Q12: Relationship between AGT and Agent 365 (different layers)
- Q13: How is AGT different from DLP/communication compliance
  (content vs action governance)

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
@github-actions github-actions Bot added dependencies Pull requests that update a dependency file tests agent-mesh agent-mesh package size/XL Extra large PR (500+ lines) and removed size/M Medium PR (< 200 lines) labels Apr 16, 2026
@github-actions
Copy link
Copy Markdown

🤖 AI Agent: breaking-change-detector — Summary

🔍 API Compatibility Report

Summary

This pull request primarily updates documentation and addresses gaps in limitations and the threat model. It also introduces changes to the .NET SDK, specifically standardizing the DID format from did:mesh:* to did:agentmesh:*. While these changes are significant, they do not introduce breaking changes to the Python packages or other APIs published to PyPI. The .NET SDK changes are additive and backward-compatible, as the DID format update is internal and does not alter public API signatures.

Findings

Severity Package Change Impact
🔵 agent-governance-dotnet DID format standardized from did:mesh:* to did:agentmesh:* Internal change, no breaking impact on public APIs
🔵 Documentation Added new sections to LIMITATIONS.md and THREAT_MODEL.md Improves clarity, no API impact

Migration Guide

For .NET SDK Users:

  • If you rely on the did:mesh:* format for identity parsing or policy matching, update your code to handle the new did:agentmesh:* format. Use wildcard matching (did:*) in policies to ensure compatibility across SDKs.

For Python SDK Users:

  • No migration steps are required as there are no changes to the Python APIs.

Conclusion

✅ No breaking changes were found in the Python packages published to PyPI. The .NET SDK changes are additive and backward-compatible. Documentation updates enhance clarity without impacting API compatibility.

@github-actions
Copy link
Copy Markdown

🤖 AI Agent: docs-sync-checker — Issues Found

📝 Documentation Sync Report

Issues Found

  • ⚠️ docs/FAQ.md — new questions added, but the corresponding sections in README.md might need updates to reflect these additions.
  • ⚠️ docs/LIMITATIONS.md — new limitations added, but no mention of these updates in CHANGELOG.md.
  • ⚠️ docs/THREAT_MODEL.md — residual risks updated, but no mention of these updates in CHANGELOG.md.
  • ⚠️ packages/agent-governance-dotnet — DID format updated from did:mesh:* to did:agentmesh:*, but no mention of this breaking change in CHANGELOG.md.

Suggestions

  • 💡 Update README.md to include references to the new FAQ questions, especially regarding AGT's compatibility with Foundry agents, its relationship with Agent 365, and its distinction from DLP and communication compliance policies.
  • 💡 Add entries to CHANGELOG.md for:
    1. The new sections added to LIMITATIONS.md (Physical AI, Streaming Data, DID Inconsistency).
    2. Updates to THREAT_MODEL.md regarding residual risks.
    3. The breaking change in the .NET SDK regarding the DID format update from did:mesh:* to did:agentmesh:*.
  • 💡 Ensure that all example code in examples/ reflects the updated DID format (did:agentmesh:*) if applicable.

Additional Notes

  • The PR does not introduce new public APIs, so no issues with missing docstrings or type hints were found.
  • The example code in the .NET SDK has been updated to reflect the new DID format, but examples in other SDKs (if any) should also be checked for consistency.

Please address the above issues and suggestions to ensure documentation and examples are fully synchronized with the changes introduced in this PR. Let me know if you need further assistance!

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Agent: code-reviewer

Review Summary

This pull request primarily updates documentation to address gaps in the limitations and threat model of the Agent Governance Toolkit (AGT). It also includes changes to the .NET SDK to standardize the Decentralized Identifier (DID) format from did:mesh:* to did:agentmesh:*. Below is a detailed review of the changes, focusing on the specified areas of concern.


🔴 CRITICAL

1. DID Method Inconsistency Across SDKs

  • Issue: The documentation highlights that different SDKs use inconsistent DID prefixes (did:mesh:* vs. did:agentmesh:*). While this PR begins the process of standardizing the .NET SDK to did:agentmesh:*, the inconsistency remains across other SDKs (Python, TypeScript, Rust, Go).
  • Impact: This inconsistency could lead to policy mismatches, identity verification failures, and potential security vulnerabilities in cross-SDK interactions.
  • Action: Prioritize the standardization of DID formats across all SDKs. If immediate standardization is not feasible, implement robust normalization logic in the policy engine to handle both formats seamlessly.

2. Physical AI Governance

  • Issue: The documentation acknowledges that AGT does not govern physical actuators, hardware interlocks, or real-time control loops. While this is explicitly stated as out of scope, the lack of governance for physical AI introduces a significant risk for systems involving robots, drones, or other physical agents.
  • Impact: Without proper safeguards, physical agents could perform unsafe or destructive actions, leading to potential harm or property damage.
  • Action: Consider adding a warning or disclaimer in the SDK documentation and code comments to ensure developers are aware of this limitation. Additionally, explore partnerships or integrations with domain-specific safety frameworks.

3. Streaming Data Governance

  • Issue: AGT does not provide continuous assurance over streaming data or real-time sensor feeds. This limitation is documented, but it represents a significant gap for use cases involving real-time data processing.
  • Impact: Agents could act on stale, poisoned, or otherwise compromised data streams, leading to incorrect or harmful actions.
  • Action: Investigate the feasibility of adding streaming data validation or integration with external data quality monitoring tools. At a minimum, provide more detailed guidance on implementing application-level mitigations.

🟡 WARNING

1. Breaking Change in .NET SDK

  • Issue: The DID format change from did:mesh:* to did:agentmesh:* in the .NET SDK is a breaking change for existing users.
  • Impact: Any existing systems or policies relying on the did:mesh:* format will break unless they are updated to accommodate the new format.
  • Action: Clearly document this breaking change in the release notes and provide migration guidance for users. Consider implementing backward compatibility (e.g., supporting both formats during a transition period).

💡 SUGGESTIONS

1. Documentation Improvements

  • The newly added sections in LIMITATIONS.md and THREAT_MODEL.md are comprehensive and well-written. However:
    • Add a summary table at the beginning of LIMITATIONS.md for quick reference.
    • Include a timeline or roadmap for addressing the identified limitations, especially for the DID standardization and potential future support for physical AI governance.

2. Test Coverage

  • The updates to the .NET SDK include changes to the DID format, and corresponding test updates are present. However:
    • Ensure that tests are added to verify backward compatibility if you decide to support both DID formats during a transition period.
    • Add integration tests to validate cross-SDK interactions, especially for systems using mixed DID formats.

3. Backward Compatibility for DID Format

  • To minimize disruption, consider implementing a temporary fallback mechanism in the .NET SDK to support both did:mesh:* and did:agentmesh:* formats. For example:
    if (agentDid.StartsWith("did:mesh:") || agentDid.StartsWith("did:agentmesh:")) {
        // Normalize to a common format for internal processing
    } else {
        throw new InvalidDidFormatException("Unsupported DID format");
    }

4. Policy Engine Enhancements

  • The limitations around streaming data and physical AI governance suggest potential areas for future development:
    • Introduce a mechanism for periodic re-evaluation of policies for long-running actions or subscriptions.
    • Explore the feasibility of integrating with external systems for real-time data validation and physical safety assurances.

5. Versioning

  • The .NET SDK version has been updated to 3.2.0. Ensure that this version bump is consistent across all related documentation and release notes.

Summary of Actionable Feedback

  1. 🔴 Critical: Prioritize standardizing the DID format across all SDKs or implement robust normalization in the policy engine to handle both formats.
  2. 🔴 Critical: Add explicit warnings in the SDK documentation and code comments about the lack of physical AI governance.
  3. 🔴 Critical: Investigate potential mitigations for streaming data governance gaps, including integration with external data quality monitoring tools.
  4. 🟡 Warning: Clearly document the breaking change in the .NET SDK's DID format and provide migration guidance.
  5. 💡 Suggestion: Add a summary table to LIMITATIONS.md and include a roadmap for addressing identified limitations.
  6. 💡 Suggestion: Add tests for backward compatibility and cross-SDK interactions.
  7. 💡 Suggestion: Consider implementing a temporary fallback mechanism for the DID format in the .NET SDK.
  8. 💡 Suggestion: Explore enhancements to the policy engine for streaming data validation and physical AI governance.
  9. 💡 Suggestion: Ensure the version bump in the .NET SDK is reflected consistently across all documentation and release notes.

Let me know if you need further clarification or assistance!

@github-actions
Copy link
Copy Markdown

🤖 AI Agent: security-scanner — Security Review Summary

Security Review Summary

This pull request primarily updates documentation to address gaps in the limitations and threat model of the Agent Governance Toolkit (AGT). It also includes changes to the .NET SDK to standardize the Decentralized Identifier (DID) format from did:mesh:* to did:agentmesh:*. While the changes are mostly documentation and minor code updates, they touch on critical areas such as identity handling and policy enforcement, which require careful scrutiny.


Findings

1. DID Method Inconsistency Across SDKs

  • Severity: 🟠 HIGH
  • Issue: The documentation highlights an inconsistency in the DID method prefixes used across SDKs (did:mesh:* in Python/.NET and did:agentmesh:* in TypeScript/Rust/Go). While the PR begins the process of standardizing the .NET SDK to use did:agentmesh:*, this inconsistency could still lead to policy mismatches or enforcement failures in cross-SDK environments.
  • Attack Vector: An attacker could exploit this inconsistency by crafting a malicious agent with a mismatched DID prefix to bypass policy rules that rely on specific DID patterns.
  • Suggested Fix: Expedite the standardization of the DID method across all SDKs to did:agentmesh:*. Until then, implement a normalization layer in the policy engine to handle both did:mesh:* and did:agentmesh:* formats consistently. Add test cases to ensure that policies work correctly with both formats.

2. Potential for Policy Engine Circumvention in Streaming Data

  • Severity: 🟠 HIGH
  • Issue: The documentation acknowledges that AGT evaluates policies at the time of action invocation but does not provide continuous assurance over streaming data. This creates a potential gap where an agent could subscribe to a data stream and later receive malicious or stale data without triggering any policy checks.
  • Attack Vector: An attacker could inject poisoned or stale data into a previously approved stream, leading to incorrect or harmful agent behavior without triggering AGT's policy engine.
  • Suggested Fix: Introduce optional hooks for periodic re-evaluation of streaming data policies. For example, allow users to define custom validation functions that can be applied to streaming data at regular intervals. Additionally, provide built-in support for detecting anomalies in streaming data (e.g., unexpected format changes, stale data).

3. Physical AI Governance Gaps

  • Severity: 🟡 MEDIUM
  • Issue: The documentation explicitly states that AGT does not govern physical actuators, hardware interlocks, or real-time control loops. While this is out of scope for AGT, it represents a significant limitation for users deploying AGT in physical AI systems.
  • Attack Vector: An attacker could exploit this gap by issuing commands that are technically policy-compliant but result in unsafe physical actions (e.g., moving a robot into a hazardous area).
  • Suggested Fix: While physical AI governance is out of scope, the documentation should include stronger warnings and guidance for users deploying AGT in physical systems. Recommend integrating AGT with domain-specific safety frameworks and hardware-level safeguards.

4. Credential Exposure in Documentation Examples

  • Severity: 🔵 LOW
  • Issue: The documentation examples include DIDs like did:agentmesh:abc123 and did:agentmesh:test. While these are placeholders, there is a risk that users might copy and paste these examples into production code without modification, potentially leading to predictable or insecure identifiers.
  • Attack Vector: An attacker could exploit predictable DIDs to impersonate agents or bypass policies.
  • Suggested Fix: Update the documentation to include a clear warning that example DIDs are placeholders and must not be used in production. Alternatively, use more obviously fake DIDs (e.g., did:example:1234) to reduce the risk of misuse.

Additional Observations

  1. Backward Compatibility for DID Changes:

    • The change from did:mesh:* to did:agentmesh:* in the .NET SDK introduces a potential backward compatibility issue. Existing systems using did:mesh:* may experience policy mismatches or errors when interacting with updated components.
    • Recommendation: Provide migration tooling or a compatibility layer to handle legacy DIDs. This could include a configuration option to enable support for both formats during the transition period.
  2. Testing Coverage for DID Changes:

    • The PR includes updates to test cases for the .NET SDK to reflect the new DID format. However, additional tests should be added to verify that the policy engine and other components can handle both did:mesh:* and did:agentmesh:* formats during the transition period.
  3. Supply Chain Risks:

    • No new dependencies are introduced in this PR, so there are no immediate supply chain risks. However, the documentation should emphasize the importance of verifying the integrity of AGT's dependencies, especially given its role as a security layer.

Final Assessment

  • DID Method Inconsistency: 🟠 HIGH
  • Streaming Data Policy Gaps: 🟠 HIGH
  • Physical AI Governance Gaps: 🟡 MEDIUM
  • Credential Exposure in Documentation: 🔵 LOW

Action Items

  1. DID Standardization:

    • Expedite the standardization of DIDs across all SDKs.
    • Implement a normalization layer in the policy engine to handle both did:mesh:* and did:agentmesh:* formats.
  2. Streaming Data Assurance:

    • Introduce hooks for periodic re-evaluation of streaming data policies.
    • Provide built-in support for detecting anomalies in streaming data.
  3. Physical AI Guidance:

    • Strengthen warnings in the documentation about the limitations of AGT in physical AI systems.
    • Recommend integrating AGT with domain-specific safety frameworks.
  4. Documentation Improvements:

    • Update examples to use more obviously fake DIDs (e.g., did:example:1234).
    • Add warnings about the risks of using placeholder DIDs in production.
  5. Backward Compatibility:

    • Provide migration tooling or a compatibility layer for legacy DIDs.
    • Add test cases to ensure backward compatibility during the transition period.

By addressing these issues, the AGT project can maintain its integrity as a critical security layer for AI agent governance.

@imran-siddique imran-siddique changed the title docs: address external critic gaps in limitations and threat model fix!: standardize DID method to did:agentmesh across all SDKs (v3.2.0) + critic gap docs Apr 16, 2026
@imran-siddique imran-siddique merged commit 6e3934b into microsoft:main Apr 16, 2026
79 of 87 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-mesh agent-mesh package dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/XL Extra large PR (500+ lines) tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant