adk: v1.4.0
1.4.0 (2026-07-20)
Features
- add fileData support to GcsArtifactService (#476) (4bc7086)
- Cleanup and Generalize determineAgentForResumption for LRO Session Resumption Routing (#490) (f72dcbc)
- Configurable Client Labels in adk-js (#454) (87e15ec)
- Group appName, userId, and sessionId into a unified composite session key (#486) (f22e959)
- Implement Agent-Controlled Compaction (#477) (0aa4d82)
- Implement Gemini Interaction API in adk-js (#364) (82ed4e1)
- Implement Trajectory Thought Pruning in adk-js (#451) (584ce87)
- Internalize removeClientFunctionCallId into content processor in adk-js (#481) (89012ad)
- Refactor ForwardingArtifactService and introduce SessionArtifactService (#455) (64b18e4)
- Replace Promise with proper Task type in ActiveStreamingTool Staging (#468) (932d121)
- Support apps (#489) (fd69b69)
Bug Fixes
- agents: share the invocation cost manager so maxLlmCalls spans the whole run (#484) (c46d71b)
- auth: apply SSRF blocklist to OAuth2 token endpoint in fetchOAuth2Tokens (#465) (4953bc4)
- auth: prevent SSRF credential leak via OAuth2 redirects and block IPv6 [::] (#482) (1c405a4)
- core: default newMessage role to 'user' when omitted (#475) (#478) (e30c891)
- core: don't emit empty-parts model content from the stream aggregator (#485) (d1f8e98)
- core: format object state and Part artifact values as JSON or text in instruction templates (#494) (#495) (ff34add)
- gate token-based compaction on latest prompt size, not event sum (#474) (ad84b98), closes #473
- gracefully handle missing function calls during context compaction (#496) (da24221)
- load SKILL.md files with tables (#500) (3ed86d5)
- sessions/vertexai: quote userId in AIP-160 list filter (#499) (8f9e8f2)
- streaming: supress empty part arrays (#450) (2ff0643)
- tools: persist exchanged OpenAPI credentials via the State API (#491) (bcf1e27)
- tools: treat an empty toolFilter array as no filter in BaseToolset (#493) (e5fe7a1)
devtools: 1.4.0
1.4.0 (2026-07-20)
Features
- cli: support --agent_engine_id in deploy agent_engine (#487) (ddbe34b)
- Implement Gemini Interaction API in adk-js (#364) (82ed4e1)
- Support apps (#489) (fd69b69)
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- @google/adk bumped from ^1.3.0 to ^1.4.0
- dependencies
integrations: 1.4.0
1.4.0 (2026-07-20)
Features
Miscellaneous Chores
- release 1.0.0 (84f886e)
Dependencies
- The following workspace dependencies were updated
- dependencies
- @google/adk bumped from ^1.3.0 to ^1.4.0
- dependencies
main: 1.4.0
1.4.0 (2026-07-20)
Features
- add fileData support to GcsArtifactService (#476) (4bc7086)
- Cleanup and Generalize determineAgentForResumption for LRO Session Resumption Routing (#490) (f72dcbc)
- cli: support --agent_engine_id in deploy agent_engine (#487) (ddbe34b)
- Configurable Client Labels in adk-js (#454) (87e15ec)
- Group appName, userId, and sessionId into a unified composite session key (#486) (f22e959)
- Implement Agent-Controlled Compaction (#477) (0aa4d82)
- Implement Gemini Interaction API in adk-js (#364) (82ed4e1)
- Implement Trajectory Thought Pruning in adk-js (#451) (584ce87)
- integrations: create new top-level integrations package (#449) (a65d05f)
- Internalize removeClientFunctionCallId into content processor in adk-js (#481) (89012ad)
- Refactor ForwardingArtifactService and introduce SessionArtifactService (#455) (64b18e4)
- Replace Promise with proper Task type in ActiveStreamingTool Staging (#468) (932d121)
- Support apps (#489) (fd69b69)
Bug Fixes
- agents: share the invocation cost manager so maxLlmCalls spans the whole run (#484) (c46d71b)
- auth: apply SSRF blocklist to OAuth2 token endpoint in fetchOAuth2Tokens (#465) (4953bc4)
- auth: prevent SSRF credential leak via OAuth2 redirects and block IPv6 [::] (#482) (1c405a4)
- core: default newMessage role to 'user' when omitted (#475) (#478) (e30c891)
- core: don't emit empty-parts model content from the stream aggregator (#485) (d1f8e98)
- core: format object state and Part artifact values as JSON or text in instruction templates (#494) (#495) (ff34add)
- gate token-based compaction on latest prompt size, not event sum (#474) (ad84b98), closes #473
- gracefully handle missing function calls during context compaction (#496) (da24221)
- load SKILL.md files with tables (#500) (3ed86d5)
- sessions/vertexai: quote userId in AIP-160 list filter (#499) (8f9e8f2)
- streaming: supress empty part arrays (#450) (2ff0643)
- tools: persist exchanged OpenAPI credentials via the State API (#491) (bcf1e27)
- tools: treat an empty toolFilter array as no filter in BaseToolset (#493) (e5fe7a1)