a2aproject / a2aproject/a2a-tck

[Bug]: TCK should activate required Agent Card extensions in client requests

Open
#193 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.