a2aproject / a2aproject/a2a-tck
[Bug]: TCK should activate required Agent Card extensions in client requests
- Dominant language
- Python
- Stars
- 50
- Forks
- 40
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 1
Description
### What happened?
## Summary
The A2A TCK discovers Agent Card extension declarations, but its transport clients do not consistently activate required extensions on ordinary positive test requests.
This breaks SUTs that correctly advertise a required extension and enforce it across all advertised transports. For example, gRPC tests currently call the SUT without `a2a-extensions` metadata, so the server returns `ExtensionSupportRequiredError` / `FAILED_PRECONDITION` before the test reaches the behavior it intended to validate.
## Expected Behavior
When the Agent Card declares required extensions, positive TCK requests should include the corresponding activation value:
- HTTP/JSON-RPC and HTTP+JSON: `A2A-Extensions: `
- gRPC: `a2a-extensions: ` metadata
Negative tests that intentionally verify missing-extension behavior should continue to omit the header/metadata.
## Impact
A conforming SUT that enforces required extensions on gRPC cannot pass the current TCK without a local workaround. Failures show up as required-extension errors in unrelated gRPC tests, such as `CORE-SEND-*`, `CORE-STREAM-*`, and `GRPC-ERR-*`, instead of the expected task or streaming behavior.
## Acceptance Criteria
- Required Agent Card extensions are activated on positive HTTP and gRPC TCK requests.
- Missing-extension negative tests still omit activation and expect `ExtensionSupportRequiredError`.
- SDKs no longer need CI-side monkey patches or `sitecustomize.py` shims to pass required-extension conformance.
### Relevant log output
```shell
```
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Contributor guide
Assessment
This issue has not been assessed yet.