Skip to content

Conversation

@matoushavlena
Copy link
Contributor

Changes DataPart.data from google.protobuf.Struct to google.protobuf.Value to support JSON arrays, primitives, and other non-object values.

Breaking change: The protobuf field type changes from Struct to Value. Code that directly accesses DataPart.data as a struct/map will need to be updated to handle the broader Value type, which can be an object, array, string, number, boolean, or null.

Resolves #1088
Related #1255

@matoushavlena matoushavlena requested review from a team as code owners December 11, 2025 14:57
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @matoushavlena, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the flexibility of the DataPart protobuf message by changing its underlying data type from a Struct to a Value. This allows DataPart to accommodate a full spectrum of JSON types, including arrays and primitive values, rather than being limited to only structured objects. While this introduces a breaking change, it broadens the utility of DataPart for various machine-readable information exchanges, with all documentation updated accordingly.

Highlights

  • Expanded DataPart Support: The DataPart.data field now utilizes google.protobuf.Value instead of google.protobuf.Struct, enabling it to encapsulate any JSON value, including objects, arrays, strings, numbers, booleans, or null.
  • Breaking Change: This modification constitutes a breaking change, necessitating updates to existing code that directly accesses DataPart.data while expecting a Struct (map-like) type.
  • Documentation Updates: All pertinent documentation files (docs/llms.txt, docs/topics/key-concepts.md, docs/tutorials/python/8-next-steps.md, specification/grpc/a2a.proto) have been updated to accurately reflect the enhanced capabilities of DataPart.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant and breaking change by updating DataPart.data from google.protobuf.Struct to google.protobuf.Value. This enhancement allows DataPart to carry not just JSON objects, but any valid JSON value, including arrays and primitives. The changes are correctly implemented in the protobuf specification, and the accompanying documentation updates in llms.txt, key-concepts.md, and a2a.proto clearly reflect this new capability. I have one minor suggestion to improve the consistency of the documentation update in one of the tutorial files.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@geneknit geneknit added the TSC Review To be reviewed by the Technical Steering Committee label Dec 11, 2025
@github-project-automation github-project-automation bot moved this to Backlog in TSC Review Dec 11, 2025
@geneknit geneknit moved this from Backlog to In Voting in TSC Review Dec 11, 2025
@geneknit
Copy link

/vote

@git-vote
Copy link

git-vote bot commented Dec 11, 2025

Vote created

@geneknit has called for a vote on feat(spec)!: support arrays and primitives in DataPart (#1306).

The members of the following teams have binding votes:

Team
@a2aproject/a2a-tsc

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 11months 29days 3h 50m 24s. It will pass if at least 51% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

@holtskinner holtskinner changed the title feat(spec)!: support arrays and primitives in DataPart feat(spec)!: support arrays and primitives in DataPart Dec 11, 2025
@git-vote
Copy link

git-vote bot commented Dec 12, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@geneknit Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

4 similar comments
@git-vote
Copy link

git-vote bot commented Dec 13, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@geneknit Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 14, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@geneknit Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 15, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@geneknit Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 16, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@geneknit Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@amye
Copy link
Contributor

amye commented Dec 16, 2025

/check-vote

@git-vote
Copy link

git-vote bot commented Dec 16, 2025

Votes can only be checked once a day.

@git-vote
Copy link

git-vote bot commented Dec 17, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

1 similar comment
@git-vote
Copy link

git-vote bot commented Dec 18, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 19, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 20, 2025

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 28, 2025

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

8 similar comments
@git-vote
Copy link

git-vote bot commented Dec 29, 2025

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 30, 2025

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Dec 31, 2025

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 1, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 2, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 3, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 4, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 5, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 6, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

6 similar comments
@git-vote
Copy link

git-vote bot commented Jan 7, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 8, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 9, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 10, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 11, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 12, 2026

Vote status

So far 50.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 4

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
muscariello In favor 2025-12-11 21:40:15.0 +00:00:00
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

Non-binding votes (1)

User Vote Timestamp
holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@git-vote
Copy link

git-vote bot commented Jan 13, 2026

Vote closed

The vote passed! 🎉

62.50% of the users with binding vote were in favor and 0.00% were against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
5 0 0 3

Binding votes (5)

User Vote Timestamp
@SivaNSAP In favor 2026-01-13 16:13:40.0 +00:00:00
@ToddSegal In favor 2025-12-19 19:24:46.0 +00:00:00
@darrelmiller In favor 2025-12-16 17:06:55.0 +00:00:00
@geneknit In favor 2025-12-16 23:41:17.0 +00:00:00
@muscariello In favor 2025-12-11 21:40:15.0 +00:00:00

Non-binding votes (1)

User Vote Timestamp
@holtskinner In favor 2025-12-11 15:29:29.0 +00:00:00

@xui-will
Copy link

This proposal introduces a breaking change at the gRPC/protobuf level, and the associated cost in terms of client updates, regressions, and debugging should not be overlooked.

In protobuf, only field numbers are preserved on the wire, not the field definitions. Changing the type of an existing field creates a compatibility gap: a newer client interacting with an older agent (or vice versa) would be unable to reliably interpret DataPart, effectively breaking interoperability of one of the most heavily used field of the whole protocol.

Alternative solutions should be considered. For instance, and safer pattern would be to introduce a new field and deprecate the existing one rather than changing it in place.

Also, FWIW: We have made a different proposal to allow usage of the gRPC type Any which is even more powerful.
I would like to have our proposal considered in conjunction to this PR, as I feel it's either complementary or redundant. c.f. #1300

@darrelmiller
Copy link
Contributor

@xui-will The latest iteration of the thinking about changes to the Part type are documented in this comment here #1255 (comment)

We are moving to a v1.0, which is a breaking change from v0.3. This is an opportunity we need to take before we release v1 and we will not want to make any breaking changes for hopefully a long time.

My understanding of Any is that it enables passing any gRPC type, but it expects the gRPC type identifier to be communicated. This is not simple to support with other protocol bindings.

Copy link
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

@Tehsmash
Copy link
Contributor

@darrelmiller @muscariello I think we can close this in favor of Darrel's PR which refactors Part completely: #1363. This PR switches content.Data to a Value so that it supports arrays / other json primitives.

@github-project-automation github-project-automation bot moved this from In Voting to Done in TSC Review Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitvote/closed gitvote/passed gitvote TSC Review To be reviewed by the Technical Steering Committee

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Feat]: Allow DataPart.data to be a valid JSON data type (not just object)

7 participants