Repository navigation
Release 3.0.0: A2A 1.0 agent cards, UCP 2026-08-25 profiles, MPP payment offers - #148
Merged
Merged
Conversation
…ent offers Mirrors node-commerce 3.0.0. The agent card declared A2A 1.0 but carried the 0.3 shape: the endpoint now sits in supportedInterfaces, the extended-card flag in capabilities, and security as securityRequirements. The UCP profile publishes its signing keys as keys and moves to 2026-08-25; supported_versions is no longer published. x-payment-info also carries MPP's offers, priced in each rail's smallest unit, alongside the x402scan fields. A new guard parses the built card as the official A2A AgentCard protobuf (a2a-sdk, dev only), which refuses any field the spec does not define.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Mirrors node-commerce 3.0.0 (agentscore/node-commerce#141). Requested by Varun after a report that our A2A cards were out of date; a sweep of every hand-written format found two more.
to_dict()now emits A2A 1.0 (specification/a2a.protoat v1.0.1): the requiredsupportedInterfaces[](url, protocolBinding, protocolVersion), the extended-card flag incapabilities.extendedAgentCard, andsecurityRequirementsin place ofsecurityon the card and on skills.build_a2a_agent_cardkeepsurl,preferred_transport,additional_interfacesandsecurityas inputs. The UCP extension URI moves to 2026-08-25.signing_keysand madekeys(a JWK Set) the one canonical field. The profile publisheskeysat version 2026-08-25;build_ucp_profile(keys=...), withsigning_keysstill accepted.supported_versionsis no longer published.x-payment-infonow also carries MPP'soffers[](integer amount in the rail's smallest unit,Nonewhen dynamic) beside the x402scanpriceandprotocols. Newoffers_from.markupsafe3.0.4,tzdata2026.5) and the uv CLI workflow input moves to 0.12.23. The capped requirements (x402,pympp,redis,cdp-sdk,joserfc,httpx,stripe) all lock at PyPI latest, no prerelease is locked, and OSV overuv.lock(157 packages) is clean.tests/test_a2a_canonical.pyparses the built card as the official A2AAgentCardprotobuf froma2a-sdk(added as a dev dependency only), which refuses any field the spec does not define, plus the negative case on a 0.3-shaped card.Type of change
Public API
url,preferredTransport,protocolVersion,additionalInterfaces,supportsAuthenticatedExtendedCard,securityremoved;supportedInterfaces,securityRequirementsadded.build_a2a_agent_card:state_transition_historyandsupports_authenticated_extended_cardremoved;extended_agent_cardadded.A2AAgentCardCapabilitiesfollows the same rename.UCPProfile.signing_keysbecomeskeys;build_ucp_profile(keys=...),signing_keysstill accepted.well_known_ucp_urlonbuild_signed_ucp_responseand themount_ucp_routes_*methods becomes optional and is ignored.offers_from,to_security_requirements. Version 3.0.0.Test plan
x_payment_info_from_checkout, and the protobuf guard with its negative case.uv run ruff check .,uv run ruff format --check .,uv run ty check agentscore_commerce/,uv run vulture . --min-confidence 80 --exclude .venv,uv run pytest tests(1891 passed, coverage 95.41% against the 95% gate).What this deliberately does not do: release the package or move core's store, which takes 3.0.0 separately.
Checklist