fix(deps): re-pin a2a-sdk<1.0.2, add protobuf>=6 floor + matrix canary#588
Merged
fix(deps): re-pin a2a-sdk<1.0.2, add protobuf>=6 floor + matrix canary#588
Conversation
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>
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>
08ff88f to
2696253
Compare
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
Reverts #586 and adds a
protobuf>=6,<8floor to actually fix the upstream caller (salesagent) that motivated the original bump attempt.The matrix
is_repeated)label)The matrix has two broken cells. Reverting #586 alone (a2a-sdk → 1.0.1) only unbroke our CI; salesagent stayed broken because they run protobuf 5.29.5. Adding
protobuf>=6closes the second broken cell so adopters land in a working column on every supported wheel.Why both pins are needed
>=1.0.1,<1.0.2— 1.0.2 readsfield.labelon the upb FieldDescriptor, which protobuf 7.x dropped. CI confirmed.>=6,<8— 1.0.1 readsfield.is_repeated, which the upb extension only exposes from 6.x onward. Without this floor, salesagent and other adopters on protobuf 5.x get an SDK that 500s on everymessage/send.Canary test
tests/test_a2a_protobuf_compat.pyprobes a realFieldDescriptorinstance and fails fast with a readable error message when a future dep bump moves us back into a broken cell. Two assertions:is_repeatedfor 1.0.1,labelfor 1.0.2) must be readable on the resolved protobuf upb FieldDescriptor.>=6floor.Verified locally:
Impact
extra_headersfix from fix(client): add extra_headers escape hatch for multi-tenant servers #585 stays intact and ships in 4.4.2.message/sendnow actually works on adcp 4.4.2 regardless of which protobuf wheel they pull, because the dep resolver can no longer land them on the broken 5.x cell.Test plan
🤖 Generated with Claude Code