Skip to content

fix: normalize legacy cards in createFromAgentCard - #602

Merged
JakubWorek merged 1 commit into
a2aproject:mainfrom
jstar0:fix/client-factory-legacy-card
Jul 27, 2026
Merged

fix: normalize legacy cards in createFromAgentCard#602
JakubWorek merged 1 commit into
a2aproject:mainfrom
jstar0:fix/client-factory-legacy-card

Conversation

@jstar0

@jstar0 jstar0 commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Description

Summary

ClientFactory.createFromAgentCard() selected transports directly from
supportedInterfaces, while the URL path first normalized cards through the
configured AgentCardResolver. As a result, a pure v0.3 card with a top-level
url still failed with No compatible transport found even when both documented
legacy compatibility options were enabled.

Changes

This change exposes the default resolver's existing agent-card normalizer as an
optional resolver capability and applies it to direct-card creation before
transport selection. The URL path continues to consume the already-resolved
card without a second normalization pass. The normalized card is also passed to
the transport factory and retained by the returned client.

Compatibility remains opt-in: disabling resolver compatibility still rejects a
pure v0.3 card, and custom resolvers that only implement resolve() keep their
existing behavior. The compatibility guide now includes the custom-fetch plus
createFromAgentCard() workflow.

Verification

npm run lint:ci
npm run build
npm run test-build
npm test
npm run test:edge
npm run test:integration

Fixes #601

Signed-off-by: King Star <mcxin.y@gmail.com>
@jstar0
jstar0 requested a review from a team as a code owner July 26, 2026 12:35
@github-actions

Copy link
Copy Markdown

🧪 Code Coverage

⬇️ Download Full Report

Base PR Delta
src/client/factory.ts 95.62% 95.74% 🟢 +0.12%
Total 90.89% 90.9% 🟢 +0.01%

Generated by coverage-comment.yml

@JakubWorek
JakubWorek merged commit 9807a66 into a2aproject:main Jul 27, 2026
15 of 16 checks passed
bartek-gralewicz pushed a commit that referenced this pull request Jul 28, 2026
🤖 I have created a release *beep* *boop*
---


## [1.0.1](v1.0.0...v1.0.1)
(2026-07-28)


### Bug Fixes

* **compat/v0_3:** call context builder for compatibility layer
([#604](#604))
([771836c](771836c)),
closes [#600](#600)
* normalize legacy cards in createFromAgentCard
([#602](#602))
([9807a66](9807a66)),
closes [#601](#601)
* **signature:** canonicalize the same payload when signing and
verifying ([#606](#606))
([7415e0e](7415e0e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

[Bug]: ClientFactory:createFromAgentCard is not version aware.

2 participants