a2aproject / a2aproject/a2a-tck
TCK sends wrong field names/structure for CreateTaskPushNotificationConfig (configId + nested config vs flat id)
- Dominant language
- Python
- Stars
- 50
- Forks
- 40
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 1
Description
## Summary
The TCK's `jsonrpc_client.create_task_push_notification_config` sends:
```json
{"taskId": "...", "configId": "...", "config": {"url": "...", "token": "..."}}
```
The v1.0 spec defines `TaskPushNotificationConfig` as a **flat** message (post-PR #1500):
```protobuf
message TaskPushNotificationConfig {
string tenant = 1;
string id = 2;
string task_id = 3;
string url = 4 [(google.api.field_behavior) = REQUIRED];
string token = 5;
AuthenticationInfo authentication = 6;
}
```
The SDK correctly serializes this flat via `MessageToDict()`:
```json
{"taskId": "...", "id": "...", "url": "...", "token": "..."}
```
## Two Mismatches
1. **Field name:** TCK sends `configId` — spec field is `id`
2. **Structure:** TCK nests `url`/`token`/`authentication` inside a `config` sub-object — spec has them flat on `TaskPushNotificationConfig`
## Location
`tests/utils/transport/jsonrpc_client.py`:
```python
response = self._make_jsonrpc_request(
method="CreateTaskPushNotificationConfig",
params={"taskId": task_id, "configId": config_id, "config": config},
)
```
## Impact
All push notification config create/get/list/delete tests fail with `-32602 InvalidParams` against any v1.0 agent built with the official SDK.
## Spec Reference
`TaskPushNotificationConfig` in `specification/a2a.proto` (current HEAD, post [a2aproject/A2A#1500](https://github.com/a2aproject/A2A/pull/1500))
Contributor guide
Assessment
This issue has not been assessed yet.