a2aproject / a2aproject/a2a-js

[Bug]: REST push-notification config listing ignores pageSize and pageToken

オープン
#700 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
TypeScript
スター
613
フォーク
169
平均マージ
1日 6時間
マージ済み PR(30日)
21

説明

## What happened

The REST transport silently drops `pageSize` and `pageToken` when listing push-notification configurations. A call that supplies `pageSize: 7` and `pageToken: "cursor-abc"` sends `GET /tasks/task-1/pushNotificationConfigs` with no query string. The REST server also invokes the request handler with `pageSize: 0` and an empty `pageToken` even when the HTTP request contains those query parameters, so callers cannot request a page or continue from a cursor.

## What I expected

When `pageSize` and/or `pageToken` are supplied, the REST client should transmit them as URL-encoded camelCase query parameters, and the REST server should pass those values through to `ListTaskPushNotificationConfigsRequest`. A caller should be able to retrieve a bounded page and follow the returned `nextPageToken`.

## Steps to reproduce

1. Create a `RestTransport` with a custom `fetch` implementation that records the requested URL and returns a successful JSON response.
2. Call `listTaskPushNotificationConfig({ tenant: "", taskId: "task-1", pageSize: 7, pageToken: "cursor-abc" })`.
3. Observe that the requested URL is `/tasks/task-1/pushNotificationConfigs` rather than including `?pageSize=7&pageToken=cursor-abc`.
4. Alternatively, send `GET /tasks/task-1/pushNotificationConfigs?pageSize=7&pageToken=cursor-abc` to an Express server using `restHandler` and inspect the request-handler arguments; they still contain `pageSize: 0` and `pageToken: ""`.

## Additional context

The A2A specification section 11.5 (Query Parameter Naming for Request Parameters) requires GET operation request parameters to be sent as query parameters and defines the camelCase names `pageSize` and `pageToken`: https://github.com/a2aproject/A2A/blob/main/docs/specification.md#115-query-parameter-naming-for-request-parameters

The same request fields are available through the JSON-RPC and gRPC transports, so silently ignoring them in REST makes pagination behavior differ across transports. If pagination is intentionally unsupported for this endpoint, the public REST API should document or reject those inputs instead of ignoring them.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。