Skip to content

Allow google-adk up to 2.14 - #103

Merged
haruotsu merged 2 commits into
mainfrom
adk-2.14
Nov 10, 2026
Merged

haruotsu merged 2 commits into
mainfrom
adk-2.14

Conversation

@haruotsu

Copy link
Copy Markdown
Collaborator

Widens the google-adk range from <2.10 to <2.15, and locks 2.14.0.

The range stopped at 2.9, and ADK 2.9 caps opentelemetry-api at 1.42.1. That version has a published advisory (GHSA-xcq7-p3pf-p88h, fixed in 1.45.1). ADK 2.14 allows 1.45.2, so this clears it.

What moves in the lock

Package Before After
google-adk 2.9.2 2.14.0
google-genai 2.22.0 2.34.0 (required by ADK 2.14)
opentelemetry-api / -sdk 1.42.1 1.45.2
opentelemetry-semantic-conventions 0.63b1 0.66b2

ADK 2.10 to 2.14 against what gete relies on

The range is pinned because ADK changes tool behaviour between minor releases, so these were checked one by one:

  • OpenAPI query parameters now follow style / explode; SSRF protection, path-parameter checks and 401 recovery in RestApiTool. All of these are in RestApiTool's request path. gete takes only the function declaration from RestApiTool and sends requests through its own client, so none of them change what gete sends.
  • Instruction templating leaves ${var} and \{var} as written. This only narrows substitution.
  • Enum tool arguments arrive as members. No gete tool takes Enum arguments.
  • after_tool_callback can screen tool output; on_tool_error runs on cancellation; McpToolset uses McpTool. gete's redaction, error and MCP tests pass unchanged.
  • Experimental features graduate to stable. The features gete enables are among them, and the experimental warnings are gone.
  • before_tool_callback and the tool call context. Tools that never get a tool_context reach the user's tokens through the call that before_tool_callback binds in a contextvar. Nothing tested that through ADK's own dispatch, so the first commit adds a test: two calls in one turn, run concurrently by ADK, each see only their own call. I made it fail by having the callback bind nothing, then saw it pass on both 2.9.2 and 2.14.0.

google-cloud-aiplatform[adk] (the Agent Engine base, <2) accepts google-adk<3, so deployed agents can resolve 2.14.

Checks

uv lock --check, ruff check, ruff format --check, mypy, pytest (1027 passed, no warnings), and gete validate --import-check on the example, which installs the deployment requirements in a fresh environment. All pass locally.

Tools that never get a tool_context reach the user's tokens through the
call that before_tool_callback binds in a contextvar. That only holds while
ADK runs the callback and the tool body in the same context, one per call.
Nothing drove that through ADK's own dispatch, so a release that moved the
callback elsewhere would have left every such tool without a token, with
the unit tests still passing.

🤖 Generated with Claude Code
The range stopped at 2.9, and 2.9 holds opentelemetry-api at 1.42.1, which
has a published advisory fixed in 1.45.1. ADK 2.14 allows 1.45.2.

The 2.10 to 2.14 changes were checked against what gete relies on. The
OpenAPI query style and SSRF changes are in RestApiTool's request path,
which gete does not use: it takes only the declaration and sends through
its own client. Instruction templating now substitutes less. No gete tool
takes Enum arguments. The bound tool call still reaches each tool body,
which the previous commit now tests through ADK's own dispatch.

google-genai moves to 2.34.0 because ADK 2.14 requires it.

🤖 Generated with Claude Code
@haruotsu
haruotsu merged commit 7cc291b into main Nov 10, 2026
3 checks passed
@haruotsu
haruotsu deleted the adk-2.14 branch November 10, 2026 05:35
@github-actions github-actions Bot mentioned this pull request Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant