Skip to content

fix: move the extension URI off a domain we do not own; correct stale hardware caveats - #69

Merged
imran-siddique merged 1 commit into
mainfrom
fix/domain-and-hardware-status
Jul 28, 2026
Merged

fix: move the extension URI off a domain we do not own; correct stale hardware caveats#69
imran-siddique merged 1 commit into
mainfrom
fix/domain-and-hardware-status

Conversation

@imran-siddique

Copy link
Copy Markdown
Contributor

Prerequisite for filing the A2A extension proposal. Both changes have to be true before that issue goes up, because the proposal points at these exact strings and pages.

1. Extension URI moves to agentrust-io.com

The cA2A extension URI was https://agentrust.io/extensions/ca2a/v0.1. agentrust.io is not ours — it resolves to parked AWS addresses. That URI is the one string we are asking other operators to copy into their Agent Cards, so it must not depend on a domain we do not control.

A2A treats extension URIs as identifiers rather than fetchable URLs, so this is not a functional break, but any peer pinning the old string must update. Doing it now is the point: once the proposal is filed it stops being only our problem.

Moved together: the adapter constant, the transport spec table, the A2A fixture, the test that pins the constant, and the maintainer email in pyproject.toml.

2. Two spec pages had gone stale against the hardware run

After #68 landed, hardware-validation.md recorded that verify_offer returned assurance="hardware" off a live SEV-SNP quote, but two pages still said the opposite:

  • profile.md P-6: "Not yet met by this implementation ... the appraisal runs in software mode at assurance="none""
  • call-graph.md: hardware appraisal is "the remaining hardware step"

Both now state what is true, and both keep the limits that genuinely remain, rather than swapping one overclaim for another:

  • the appraisal is one-directional (the caller appraised the callee; mutual simultaneous attestation is still outstanding), so P-6 is marked met one-directionally rather than met
  • the committed examples/ harness stays software-attested, because genuine evidence embeds per-CPU identifiers and cannot ship as a fixture

Deliberately not touched

tag:agentrust.io,2026:trace-v0.1 in trace_binding.py. That EAT profile identifier appears in 125 files across the org, including cmcp's JSON schema and trust records, and it sits inside signed payloads. An RFC 4151 tag URI is only valid if the minter controlled the domain on the stated date, so this one is wrong rather than merely misspelled — but renaming it is a cross-repo transition with a verifier-compatibility question attached, not a find-and-replace. Raising separately.

211 passed, 3 skipped.

… caveats

The cA2A extension URI was https://agentrust.io/extensions/ca2a/v0.1, and
agentrust.io is not ours: it resolves to parked AWS addresses. That URI is
precisely the string we are asking other operators to copy into their
Agent Cards, so it must not depend on a domain we do not control. It moves
to agentrust-io.com, along with the transport spec, the fixture, the
maintainer email, and the test that pins the constant.

A2A treats extension URIs as identifiers rather than fetchable URLs, so
this is not a functional break, but a peer pinning the old string must
update. Doing it before filing the A2A proposal is the point: after the
proposal it would be someone else's problem too.

Separately, two spec pages had gone stale against hardware-validation.md.
profile.md P-6 still said the appraisal runs at assurance="none" and
call-graph.md still called hardware appraisal "the remaining hardware
step", when verify_offer had already returned assurance="hardware" off a
live SEV-SNP quote. Both now say what is true, and both keep the limits
that genuinely remain: the appraisal is one-directional, and the committed
examples stay software-attested because real evidence embeds per-CPU
identifiers.

The tag:agentrust.io,2026:trace-v0.1 EAT profile identifier is deliberately
untouched. It is a cross-repo spec identifier embedded in signed records,
so it needs a transition decision rather than a rename.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@imran-siddique
imran-siddique merged commit 7741cd9 into main Jul 28, 2026
12 checks passed
@imran-siddique
imran-siddique deleted the fix/domain-and-hardware-status branch July 28, 2026 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant