Skip to content

chore(release/candidate): release 2.4.0#6325

Merged
wyf7107 merged 4 commits into
release/candidatefrom
release-please--branches--release/candidate--components--google-adk
Jul 7, 2026
Merged

chore(release/candidate): release 2.4.0#6325
wyf7107 merged 4 commits into
release/candidatefrom
release-please--branches--release/candidate--components--google-adk

Conversation

@adk-bot

@adk-bot adk-bot commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

🤖 I have created a release beep boop

2.4.0 (2026-07-07)

Features

  • add error handling to VertexAiMemoryBankService.search_memory (f3529e9)
  • add model_input_context for transient context in LLM requests (2aeb1e1)
  • add mTLS support for DiscoveryEngineSearchTool (8ba0e6a)
  • add mTLS support to Google API tools (3466586)
  • add OpenAI Responses API support in labs (6b831d5), closes #3209
  • add sub-branch creation and segment appending to _BranchPath (3009ec1)
  • add support for reusing an existing SQLAlchemy AsyncEngine in DatabaseSessionService (f4c7e4c)
  • add support for session TTL and expiration in Vertex AI session service (49d4441)
  • log when an agent run is cancelled and warn on cleanup-queue failures (c84c17a)
  • adk: add Anthropic effort config handling, thinking-parameter propagation, and conflict mitigation (4c862b9)
  • agents: add ManagedAgent backed by the Managed Agents API (cf91b84)
  • bigquery: expose thinking and tool-use token columns in analytics views (c14258d)
  • bigtable: support parameterized views with secure parameter injection (14a24f2)
  • expose branch property on Context (50c81eb)
  • expose max_parallel_workers on the workflow.node decorator and Node class (199d954)
  • expose parameter_binding in the @node decorator (bfc236d)
  • expose SKIP_THOUGHT_SIGNATURE_VALIDATOR constant (6aad10d)
  • add HTTP traces for MCP server requests/errors (4c4f77a)
  • implement Workflow-as-Tool core feature (1263ed6)
  • integrations: add DaytonaEnvironment for remote sandbox workspaces (df6baf4)
  • interactions: stream thought, media, code-exec, and function-result deltas (b2dda6e)
  • interactions: surface streamed grounding and final usage metadata (6a50b8d)
  • memory: add Vertex AI load_profiles tool (fb2b3af)
  • models: add configuration options to Gemini class (037ec12), closes #3813
  • models: surface and recover environment_id from interactions (81f9f2e)
  • pass invocation_id to _setup_invocation_context (73ecf8d)
  • plugins: add otel correlation, custom_metadata allowlist, and column projection to BigQuery analytics (38d715c)
  • refactor ADK CLI server to support nested agents in dev mode and simplify the API (35a3e4c)
  • sessions: add public prepare_tables() for eager initialization (66221c4)
  • skills: inject session state into SKILL.md via adk_inject_state (3afdb08)
  • support file_data URI references in GcsArtifactService (43115b2)
  • support mTLS and GOOGLE_API_USE_MTLS_ENDPOINT for the GDA client (e85a7b2)
  • support passing dynamic custom headers to LiteLLM via RunConfig (000d74d)
  • support provider-prefixed Gemini model IDs (816a87f)
  • telemetry: add gen_ai.invoke_agent.{inference,tool}_calls metrics (dec2182)
  • telemetry: add tool-type attribute to tool-execution duration (d5e8bc7)
  • telemetry: emit entrypoint invoke_workflow span under schema v2 (e98633a)
  • telemetry: introduce ADK_TELEMETRY_SCHEMA_VERSION_OPT_IN (84bbb35)
  • telemetry: specify bucket boundaries for GenAI metrics (abf9258)
  • tools: add response_scheduling to control Live function-response behavior (7443bfa)
  • tools: expose configurable parameter as a property on McpToolset (cca8c56)
  • tools: resolve built-in tools for managed-agent requests (f11d19d)
  • tools: support tuple tool parameters (a57c3e4)
  • utils: add support for nested state access in template injection (94c43a2)
  • workflow: allow ToolNode to accept JSON string or Content inputs (4e44632)

Bug Fixes

  • adapt interactions conversion to google-genai 2.9 SDK changes (9f3aeef)
  • add credential_key to ApplicationIntegrationToolset and IntegrationConnectorTool (c6a94b8), closes #4553
  • add DNS-rebinding protection to _OriginCheckMiddleware (9a4f479)
  • add module blocklist for YAML agent-config code references (6a5be34)
  • add parameter validation for sync tools in functions.py (9b9d27d)
  • agents: persist output_key when before_agent_callback short-circuits LlmAgent (0e263f1)
  • agents: preserve text streamed before tool calls in output_key (5a0b4af)
  • agents: prevent path traversal in AgentTool config_path resolution (171ae9e)
  • ApplicationIntegrationTool: implement dynamic mTLS endpoint resolution (37ca6fb)
  • apply run_config custom_metadata to the user event in node runtime (066fbce)
  • artifacts: preserve .text on GcsArtifactService load (ba51ff2), closes #3157
  • auth: allow configuring the OAuth prompt parameter (ac99770)
  • auth: strip redirect_uri from credential_key (ffa1843)
  • avoid mutating event-validation input (6b385e4)
  • avoid overwriting existing isolation scope in stamp_event_branch_context (798207a)
  • avoid yielding a None function-response event in live mode (4d88a52)
  • catch RecursionError in safe JSON serialization helpers (5515800), closes #5411
  • check whether a transfer target is a sibling agent (fa18d26)
  • cli: detailed error message on SSE stream, including client-side error type (56b84e1)
  • cli: enable interspersed option parsing for the cloud_run command (7b049b9)
  • cli: ensure ADK compatibility in agent-engine requirements (ea772b9), closes #5966
  • cli: respect ignore files in adk deploy commands (ee79e71)
  • cli: support flat-module agents in _determine_agent_language (7a553b7)
  • concatenate list values in deep_merge_dicts during parallel tool-call merge (fda2347), closes #5190
  • constrain artifact references to the caller scope (f863150), closes #6124 #6125
  • correct misleading workflow-agent deprecation messages (53a8ab1)
  • derive sandbox reasoning engine from template or snapshot name (5afa9db)
  • emit standard OTel cloud.resource_id for Agent Engine telemetry (8fc25f1), closes #6247
  • enable history_config on Vertex AI now that it is supported (2920145)
  • enforce agent-config args denylist when loaded under adk web (e506fa6)
  • ensure AgentTool text output when skip_summarization is True (b983fcf), closes #3881
  • exclude live HTTP clients from trace serialization (59868ea)
  • exit connection cleanly on expected GoAway signal in bidi streaming (4d165ef)
  • fingerprint the cacheable context prefix (7c7f1e7)
  • firestore: preserve update timestamps in list_sessions (99ba8ce)
  • fix branch parsing and unify branch stamping (9e3b43f)
  • prevent code-generation template injection via filenames (e042b8d)
  • stop swallowing errors in the MCP session context (ccb8138)
  • fix instructions_utils matching invalid nested paths (20ba01c)
  • fix MCP debug-client factory compatibility with keyword-only factories (1ad8864)
  • fix polling loop in IAM connector credentials provider when consent is pending (a614507)
  • fix regression in instructions_utils placeholder matching (9ecbaed)
  • fix Vertex AI Live API session replay on reconnect / modality switch (c007a87)
  • guard against None converter results in RemoteA2aAgent handlers (2e3d717)
  • guard user_content assignment against None in EvaluationGenerator (6bc9c9f)
  • handle empty message in LiteLLM response (d3e793f)
  • handle Pydantic models in safe_json_serialize for tool tracing (25d666a), closes #4629
  • harden ContainerCodeExecutor sandbox by default (0a9ce0f)
  • implement dynamic mTLS endpoint resolution for parameter manager (62b9700)
  • implement dynamic mTLS endpoint resolution for secret manager (5d4a13f)
  • import App lazily in _resolve_app to fix legacy Runner NameError (7481d07)
  • check the authorization header case-insensitively in MCP mTLS logic (3870032)
  • litellm: preserve Claude thinking blocks marked display "omitted" (7461863)
  • litellm: preserve streamed reasoning deltas in the adapter (b9625bf)
  • litellm: parse DeepSeek-V3 proprietary inline tool-call tokens (c5b2caa)
  • litellm: recognize assistant- prefix as a valid OpenAI file ID (ea325c7), closes #5664
  • live: correct the return type hint of handle_function_calls_live (9865e2b)
  • live: forward thinking config (71d8c84)
  • live: keep streaming tool yields from completing turns (07aa1e0)
  • make EUC request args JSON-serializable (a181a39)
  • map A2A Message.role to the correct GenAI content role (fe08a9f)
  • mcp: await async MCP header providers (c01e538), closes #6090
  • mcp: propagate trace context in the default streamable HTTP client (431e3c2), closes #4768
  • migrate AgentRegistry base URLs from v1alpha to v1 (82432a3)
  • models: gate Gemini cache creation on cacheable prefix tokens (1070036)
  • fix N-sized sliding window (d00ad67)
  • preserve Anthropic thinking blocks and signatures in the LiteLLM round-trip (febb250)
  • preserve JSON-native types in A2A _serialize_value() (139c700), closes #5183
  • prevent crash when parsing default values for typing.Any parameters (e360241)
  • prevent empty responses after load_skill (7c79230)
  • prevent VertexAiRagRetrieval from blocking the event loop (5898f37), closes #5033
  • prevent warning logs when cancelling the MCP session runner task (4aa0fd8)
  • propagate Gemini grounding metadata from ModelResponse (c303c62)
  • raise ValueError for unsupported MIME types in the file_data URI path (42eceb3)
  • reconnect on live connection 1011 error (f36d257), closes #5525
  • recurse into JSON-native containers in A2A _serialize_value() (c08debc)
  • remove unused userinfo_endpoint from GoogleApiToolset OIDC config (1509dcf)
  • restore auth_token initialization for secret and parameter manager clients (46a2181)
  • revert instruction-util refactoring that broke internal callers (59fe9b3)
  • sandbox nested persona template rendering in evaluation prompts (30493ba)
  • scope single-turn node inputs to the workflow branch (8d389e2)
  • security: enable Jinja2 autoescape to prevent XSS in the gepa sample (a721c1e)
  • send correct field names for sandbox input files (2b7e08a)
  • sessions: drop unsupported part_metadata before Vertex appendEvent (40a0279), closes #6014
  • sessions: strip tzinfo for MariaDB in DatabaseSessionService (2f799d5)
  • strip tzinfo from datetime for MySQL in create_session (a012bb7)
  • surface error for empty STOP model turn in non-streaming mode (932a9b5), closes #5631
  • telemetry: always export Agent Engine logs to stdout (e6df097)
  • telemetry: emit gen_ai.workflow.nested for nested workflows (20197de)
  • terminate infinite retry loop in RunSkillScriptTool on SCRIPT_NOT_FOUND (89d9bda), closes #5684
  • tools: accept dict output_schema in SetModelResponseTool (d69dedd), closes #5469
  • tools: handle tuple schemas in the function-parsing fallback (4fa7741)
  • truncate MCP HTTP debug logs over 1000 chars (3ebef82)
  • apply custom Gemini connection logic to all 3.x models, not just 3.1 (8aff514)
  • update litellm dependency constraint to 1.84.0+ (a912306)
  • use branch-scoped events for auth responses (f706a1e)
  • use the exchanged OAuth credential in ApplicationIntegrationToolset (e76df3d)
  • use Modality enum for RunConfig.response_modalities (5c8c55a)
  • use mTLS endpoint for Google OAuth2 token requests (ffe41f0)
  • validate local eval path segments (7b87f91)

Performance Improvements

  • avoid deepcopy of session contents when building LLM requests (400f512)
  • create SQLite session schema once per service instance (10a2cc5)
  • remove state injection when instruction has no placeholders (59970b6)
  • skip event query in DB get_session when num_recent_events is 0 (7e8191a)

Documentation

  • clarify is_final_response() is a public helper (978be4b), closes #4016
  • update GoogleSearchTool docstring to refer to Gemini models (8b011f9)
  • index missing reference guides in adk-agent-builder SKILL.md (c922b08)
  • samples: add ManagedAgent code-execution sample (527e3c1)
  • samples: add ManagedAgent sample using server-side google_search (969909f)
  • workflow: add and update workflow developer guides (e5c7d20)

This PR was generated with Release Please. See documentation.

@adk-bot
adk-bot force-pushed the release-please--branches--release/candidate--components--google-adk branch from 9e18390 to 8b59be5 Compare July 7, 2026 06:08
@wyf7107
wyf7107 merged commit 26a4ef2 into release/candidate Jul 7, 2026
2 checks passed
@wyf7107
wyf7107 deleted the release-please--branches--release/candidate--components--google-adk branch July 7, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants