Merged
Conversation
a2a-sdk 1.0.2 reverted the proto_utils repeated-field check from ``field.is_repeated`` back to ``field.label == LABEL_REPEATED``, which the upb C-extension FieldDescriptor exposes. The regression that forced the previous ``<1.0.2`` ceiling is fixed upstream, so adopters were locked on the broken 1.0.1 line via our pin. Full test suite (3722 unit + 470 conformance) passes against 1.0.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
bokelley
added a commit
that referenced
this pull request
May 5, 2026
Reverts the bump from #586. CI Python 3.11 confirmed a2a-sdk 1.0.2 still triggers `'google._upb._message.FieldDescriptor' object has no attribute 'label'` on every A2A wire test — the regression that forced the original `<1.0.2` ceiling is NOT fixed in 1.0.2. Restoring the ceiling so adopters of 4.4.x stay on the working 1.0.1 line. PyPI 4.4.1 published the broken pin and should be yanked manually. This revert ships as 4.4.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bokelley
added a commit
that referenced
this pull request
May 5, 2026
#588) * fix(deps): re-pin a2a-sdk<1.0.2 (revert #586) Reverts the bump from #586. CI Python 3.11 confirmed a2a-sdk 1.0.2 still triggers `'google._upb._message.FieldDescriptor' object has no attribute 'label'` on every A2A wire test — the regression that forced the original `<1.0.2` ceiling is NOT fixed in 1.0.2. Restoring the ceiling so adopters of 4.4.x stay on the working 1.0.1 line. PyPI 4.4.1 published the broken pin and should be yanked manually. This revert ships as 4.4.2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(deps): pin protobuf>=6 + canary test for a2a-sdk×protobuf matrix The previous revert (a2a-sdk<1.0.2) unbroke our CI on protobuf 7.34.1 but did NOT fix the original upstream caller (salesagent), who runs protobuf 5.29.5 — the upb FieldDescriptor on 5.x lacks ``is_repeated``, which a2a-sdk 1.0.1's ``@validate_proto_required_fields`` reads on every ``message/send``. Result: every JSON-RPC invocation 500s before any handler runs. Adding ``protobuf>=6,<8`` rules out the broken 5.x cell. Combined with the existing ``a2a-sdk>=1.0.1,<1.0.2``, adopters land in a known-good matrix cell on every supported wheel. Adds tests/test_a2a_protobuf_compat.py — a fast canary that probes a real ``FieldDescriptor`` instance and fails with a readable error when a future dep bump moves us back into a broken cell. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lifts the
a2a-sdk<1.0.2ceiling. Upstream 1.0.2 reverted theproto_utilsrepeated-field check fromfield.is_repeatedback tofield.label == LABEL_REPEATED, which theupbC-extensionFieldDescriptorexposes — the regression that forced the previous pin is fixed.Adopters of
adcp==4.4.0(latest) were locked on the broken 1.0.1 line by this pin with no upstream patch to fall back on.Test plan
pip install -e .resolves toa2a-sdk==1.0.2pytest tests/— 3722 passed, 17 skipped, 1 xfailedpytest tests/conformance/— 470 passed, 5 skipped (wire-level a2a coverage)🤖 Generated with Claude Code