Skip to content

fix(grpc): Fix inconsistent property name between gRPC and JSON-RPC in Message object#1100

Merged
darrelmiller merged 4 commits intomainfrom
copilot/fix-1083
Oct 18, 2025
Merged

fix(grpc): Fix inconsistent property name between gRPC and JSON-RPC in Message object#1100
darrelmiller merged 4 commits intomainfrom
copilot/fix-1083

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Sep 24, 2025

This PR resolves an inconsistency in the Message object property names between the two transport protocols:

Issue:

  • JSON-RPC (TypeScript): Used parts: Part[] for the array of content parts
  • gRPC (Protocol Buffers): Used repeated Part content = 5; for the same field

Solution:
Updated the gRPC protocol buffer definition in specification/grpc/a2a.proto to use parts instead of content, aligning it with the JSON-RPC naming convention:

// Before
repeated Part content = 5;

// After  
repeated Part parts = 5;

Also updated the associated comment to reflect the change from "Content is the container..." to "Parts is the container...".

Impact:

  • Ensures consistent property naming across both transport protocols
  • Eliminates potential confusion for developers working with different transports
  • Maintains backward compatibility while improving developer experience
  • No changes needed to existing JSON schema or TypeScript definitions

The fix is minimal and surgical, changing only the field name in the gRPC definition to match the established JSON-RPC convention.

Fixes #1083.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…atch JSON-RPC

Co-authored-by: darrelmiller <447694+darrelmiller@users.noreply.github.com>
Copilot AI changed the title [WIP] [Bug]: Inconsistent property name between gRPC and JSON-RPC in message object Fix inconsistent property name between gRPC and JSON-RPC in Message object Sep 24, 2025
Copilot AI requested a review from darrelmiller September 24, 2025 02:13
@a2aproject a2aproject deleted a comment from Copilot AI Sep 24, 2025
@darrelmiller darrelmiller marked this pull request as ready for review September 24, 2025 02:15
@darrelmiller darrelmiller requested a review from a team as a code owner September 24, 2025 02:15
@darrelmiller darrelmiller added the TSC Review To be reviewed by the Technical Steering Committee label Sep 24, 2025
@darrelmiller darrelmiller added this to the 0.4.0 milestone Sep 24, 2025
@holtskinner holtskinner changed the title Fix inconsistent property name between gRPC and JSON-RPC in Message object fix(spec): Fix inconsistent property name between gRPC and JSON-RPC in Message object Sep 29, 2025
@holtskinner holtskinner changed the title fix(spec): Fix inconsistent property name between gRPC and JSON-RPC in Message object fix(grpc): Fix inconsistent property name between gRPC and JSON-RPC in Message object Sep 29, 2025
Copy link
Copy Markdown
Member

@muscariello muscariello left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@darrelmiller darrelmiller merged commit 2a1f819 into main Oct 18, 2025
12 checks passed
@darrelmiller darrelmiller deleted the copilot/fix-1083 branch October 18, 2025 17:19
darrelmiller pushed a commit that referenced this pull request Mar 12, 2026
🤖 I have created a release *beep* *boop*
---


## [1.0.0](v0.3.0...v1.0.0)
(2026-03-12)


### ⚠ BREAKING CHANGES

* **spec:** Combine `TaskPushNotificationConfig` and
`PushNotificationConfig`
([#1500](#1500))
* **spec:** remove duplicated ID from the create task push config
request ([#1487](#1487))
* **spec:** pluralize configs in `ListTaskPushNotificationConfigs`
([#1486](#1486))
* **spec:** Add LF prefix to the package.
([#1474](#1474))
* **spec:** Switch to non-complex IDs in requests
([#1389](#1389))
* **spec:** Standardize spelling of "canceled" to use American Spelling
throughout ([#1283](#1283))
* **spec:** Align enum format with ADR-001 ProtoJSON specification
([#1384](#1384))
* **spec:** Remove redundant `final` field from `TaskStatusUpdateEvent`
([#1308](#1308))
* **spec:** Move `extendedAgentCard` field to `AgentCapabilities`
([#1307](#1307))
* **spec:** Fixes for the last_updated_after field
([#1358](#1358))
* **spec:** modernize oauth 2.0 flows - remove implicit/password, add
device code / pkce
([#1303](#1303))
* **spec:** Make "message" field name consistent between protocol
bindings ([#1302](#1302))
* **spec:** Remove deprecated fields from a2a.proto for v1.0 release
([#1301](#1301))
* **spec:** Rename `supportsAuthenticatedExtendedCard` to
`supportsExtendedAgentCard`
([#1222](#1222))
* **spec:** Remove v1s from a2a url http bindings
* **spec:** Large refactor of specification to separate application
protocol definition from mapping to transports

### Features

* **spec:** Add `tasks/list` method with filtering and pagination to the
specification
([0a9f629](0a9f629))
* **spec:** modernize oauth 2.0 flows - remove implicit/password, add
device code / pkce
([#1303](#1303))
([525ff38](525ff38))
* **spec:** Natively Support Multi-tenancy on gRPC through an additional
scope field on the request.
([#1195](#1195))
([cfbce32](cfbce32)),
closes [#1148](#1148)
* **spec:** Provide ability for SDKs to be backwards compatible.
([#1401](#1401))
([227e249](227e249))
* **spec:** Remove v1s from a2a url http bindings
([1bd263f](1bd263f))


### Bug Fixes

* Add missing metadata field to Part message in gRPC specification
([#1019](#1019))
([b3b266d](b3b266d)),
closes [#1005](#1005)
* Add name field to FilePart protobuf message
([#983](#983))
([2b7cb6f](2b7cb6f)),
closes [#984](#984)
* Clarify blocking calls return on interrupted states
([#1403](#1403))
([0655ff3](0655ff3))
* **doc:** Makes JSON-RPC SendMessage response clearer
([#1241](#1241))
([5792804](5792804))
* **docs:** Clearer wording around context id.
([#1588](#1588))
([dec790a](dec790a))
* **grpc:** Fix inconsistent property name between gRPC and JSON-RPC in
Message object ([#1100](#1100))
([2a1f819](2a1f819))
* **grpc:** missing field in gRPC spec - state_transition_history
([#1138](#1138))
([a2de798](a2de798)),
closes [#1139](#1139)
* **grpc:** Update `CreateTaskPushNotificationConfig` endpoint to
`/v1/{parent=tasks/*/pushNotificationConfigs}`
([#979](#979))
([911f9b0](911f9b0))
* **proto:** Add icon_url to a2a.proto
([#986](#986))
([17e7f62](17e7f62))
* **proto:** Adds metadata field to A2A DataPart proto
([#1004](#1004))
([a8b45dc](a8b45dc))
* Remove unimplemented state_transition_history capability field
([#1396](#1396))
([c768a44](c768a44)),
closes [#1228](#1228)
* Restore CreateTaskPushNotificationConfig method naming
([#1402](#1402))
([d14f410](d14f410))
* Revert "chore(gRPC): Update a2a.proto to include metadata on
GetTaskRequest" ([#1000](#1000))
([e6b8c65](e6b8c65))
* Simplify Part message structure by flattening FilePart and DataPart
([#1411](#1411))
([bfae8f7](bfae8f7))
* **spec:** Add LF prefix to the package.
([#1474](#1474))
([a54e809](a54e809))
* **spec:** add metadata to `CancelTaskRequest`
([#1485](#1485))
([c441b91](c441b91)),
closes [#1484](#1484)
* **spec:** Added clarification on timestamps in HTTP query params
([#1425](#1425))
([6292104](6292104))
* **spec:** Added clarifying text around messages and artifacts
([#1424](#1424))
([b03d141](b03d141))
* **spec:** Adjust field number for `ListTasksRequest.tenant` to prevent
missing number ([#1470](#1470))
([cd16c52](cd16c52))
* **spec:** Clarify contextId behavior when message is sent with taskId
but without contextId
([#1309](#1309))
([a336a5a](a336a5a))
* **spec:** Clarify versioning strategy and client responsibilities in
protocol specification
([#1259](#1259))
([a4afeea](a4afeea))
* **spec:** Fix/1251 clarify authentication scheme
([#1256](#1256))
([3e6c7db](3e6c7db))
* **spec:** Fixes for the last_updated_after field
([#1358](#1358))
([0e204bf](0e204bf))
* **spec:** Make "message" field name consistent between protocol
bindings ([#1302](#1302))
([1e5f462](1e5f462)),
closes [#1230](#1230)
* **spec:** make `history_length` optional
([#1071](#1071))
([0572953](0572953))
* **spec:** pluralize configs in `ListTaskPushNotificationConfigs`
([#1486](#1486))
([cf735cb](cf735cb))
* **spec:** Remove config from binding.
([#1587](#1587))
([010b9cc](010b9cc))
* **spec:** Remove deprecated fields from a2a.proto for v1.0 release
([#1301](#1301))
([60f83c3](60f83c3)),
closes [#1227](#1227)
* **spec:** remove duplicated ID from the create task push config
request ([#1487](#1487))
([393898d](393898d))
* **spec:** Remove metadata field from ListTasksRequest
([#1235](#1235))
([b6ef9ee](b6ef9ee))
* **spec:** Remove reserved and fix tags ordering
([#1494](#1494))
([1997c9d](1997c9d))
* **spec:** Rename `supportsAuthenticatedExtendedCard` to
`supportsExtendedAgentCard`
([#1222](#1222))
([c196824](c196824)),
closes [#1215](#1215)
* **spec:** Standardize spelling of "canceled" to use American Spelling
throughout ([#1283](#1283))
([4dd980f](4dd980f))
* **spec:** Suggest Unique Identifier fields to be UUID
([#966](#966))
([00cf76e](00cf76e))
* **spec:** Switch to non-complex IDs in requests
([#1389](#1389))
([2596c1c](2596c1c)),
closes [#1390](#1390)
* **spec:** Update security schemes example
([#1364](#1364))
([f9a8f5b](f9a8f5b))
* Update the Java tutorials and descriptions
([#1181](#1181))
([202aa06](202aa06))


### Documentation

* **spec:** Align enum format with ADR-001 ProtoJSON specification
([#1384](#1384))
([810eaa1](810eaa1)),
closes [#1344](#1344)


### Code Refactoring

* **spec:** Combine `TaskPushNotificationConfig` and
`PushNotificationConfig`
([#1500](#1500))
([d1ed0da](d1ed0da))
* **spec:** Large refactor of specification to separate application
protocol definition from mapping to transports
([b078419](b078419))
* **spec:** Move `extendedAgentCard` field to `AgentCapabilities`
([#1307](#1307))
([40d6286](40d6286))
* **spec:** Remove redundant `final` field from `TaskStatusUpdateEvent`
([#1308](#1308))
([5b101cc](5b101cc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: Amye Scavarda Perrin <amye@amye.org>
Co-authored-by: Holt Skinner <13262395+holtskinner@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

TSC Review To be reviewed by the Technical Steering Committee

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Inconsistent property name between gRPC and JSON-RPC in message object

4 participants