What's Changed
- fix(artifact): keep session filenames out of shared listings by @ktsoator in #1673
- test(workflow): enable TestRunNode_ErrInvalidRunNodeContext_OnStaticContext by @sushant-me in #1679
- fix(mcptoolset): validate connection configuration during construction by @ktsoator in #1687
- test(telemetry): replace hand-written telemetry expectations with record/replay goldens by @RKest in #1640
- fix(workflow): build route edges in a deterministic order by @wolo-lab in #1268
- fix(workflow): single-flight RunNode idempotency cache by @wolo-lab in #1043
- fix(skilltoolset): count skill metadata limits in runes by @Harbor404 in #1709
- fix(artifact): keep session filenames out of GCS shared listings by @ktsoator in #1708
- fix(launcher): check Host and Origin on every web launcher route by @jjsasha63 in #1641
- chore(deps): bump google.golang.org/genai from 1.71.0 to 1.72.0 by @baptmont in #1714
- feat(remoteagent): apply per-request auth to A2A via Config.Auth by @wolo-lab in #1150
- fix(utils): respect Nullable field on nil values during schema validation by @moritzwilhelm in #1566
- fix(examples): return an error for missing image data by @ktsoator in #1509
- test(compaction): actually run two writers at once by @baptmont in #1485
- fix(server): default a zero SSE write timeout to 120s by @Vivek1106-04 in #1686
- fix(llminternal): re-evaluate toolsets on every step in toolProcessor by @nuthalapativarun in #785
- docs(workflow): correct doc comments that describe fields and behaviour that do not exist by @sushant-me in #1711
- chore(deps): bump the go-minor-patch group with 5 updates by @dependabot[bot] in #1725
- fix(session/inmemory): holding sess.mu accross the eventCopy creation in AppendEvent by @dhakad22klx in #1575
- fix(runner): preserve buffered live events at stream end by @Ultronen in #1547
- fix(llmagent): clone Tools and Toolsets slices in constructor to prevent backing array aliasing by @somuai in #1493
- fix(session/database): surface JSON marshal errors on state writes by @Huang-404-Q in #1551
- fix(llminternal): classify a dropped live connection by type, not error text by @harshitwandhare in #1603
- fix(mcptoolset): allow callers to close MCP sessions by @ktsoator in #1713
- fix(llminternal): omit foreign thoughts from agent context by @jabrailkhalil in #1719
- fix(mcptoolset): honor context cancellation while waiting for sessions by @via2004 in #1717
- docs: fix stale method names in doc comments by @PratikDhanave in #1721
- fix(server/triggers): honor MaxConcurrentRuns in PubSubController by @PratikDhanave in #1720
- chore(lint): forbid process-wide logging in library code by @jjsasha63 in #1649
- fix(sequentialagent): serialize live completion tool injection by @jabrailkhalil in #1722
- fix(llminternal): leave ${var} and {var} placeholders literal by @Vivek1106-04 in #1682
- docs(memory): fix stale "string" wording on MemoryEntry.Timestamp by @PratikDhanave in #1745
- test(agentanalytics): cover the retry that opens a fresh stream by @Trainingcqy in #1527
- fix(vertexai): preserve ExecutableCode and CodeExecutionResult in session storage by @karthik-0306 in #1729
- test(examples): cover image precedence and empty results by @ktsoator in #1567
- fix(model/gemini): preserve empty text on thought-signature parts by @adilalperenciftci in #1639
- feat(mcptoolset): forward request-scoped metadata to MCP tool calls by @jjsasha63 in #1429
- fix(workflowagents): stop loop and sequential agents on sub-agent error by @Vivek1106-04 in #1684
- fix(adkrest): render nested workflow clusters in graph images by @leilei3167 in #1724
- fix(adkrest): bound /run_live messages, dead peers and concurrent sessions by @jjsasha63 in #1648
- test(vertexai): keep RPC replay independent of external network by @Ultronen in #1548
- fix(memory): normalize punctuation in in-memory search by @tejas5038 in #1565
- chore(lint): add misspell linter and perform US spelling sweep by @somuai in #1465
- test(llminternal): cover the nil RunConfig branch in callLLM by @baptmont in #1368
- fix(session/database): lock app and user state rows in AppendEvent by @Vivek1106-04 in #1743
- test(llmagent): drive tail retention end to end against a recorded model by @baptmont in #1438
- fix(runner): preserve BeforeRun plugin responses by @ktsoator in #1598
- fix(agent): synchronize concurrent artifact saves by @ktsoator in #1756
- docs(workflow): fix Run signature in NewRequestInputEvent example by @PratikDhanave in #1746
- refactor(agent): remove redundant Context method declarations by @moodbased in #1758
- docs(agent): clarify agent callback error behavior by @ktsoator in #1761
- chore(deps): bump the go-minor-patch group with 12 updates by @dependabot[bot] in #1798
- fix(llminternal): correct misleading "global" in appendInstructions error by @PratikDhanave in #1804
- fix(agenttool): wrap the runner.New error instead of discarding it by @PratikDhanave in #1803
- docs(telemetry): fix StartNodeSpan doc for invoke_workflow by @PratikDhanave in #1805
- fix(llminternal): guard nil first candidate in streaming aggregator by @PratikDhanave in #1802
- docs(mcptoolset): fix constructor example and schema comment by @ktsoator in #1779
- feat(exp): add the experimental /apps/{app_name}/app-info endpoint by @wojtas000 in #1404
- fix(loopagent): return when there are no sub-agents by @anzal1 in #1780
- chore(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 in /plugin/agentanalytics in the go_modules group across 1 directory by @dependabot[bot] in #1814
- Align vertexai session service via ADK REST API with other impl by @kdroste-google in #1571
- fix: reject Cloud Run service name beginning with '-' by @herdiyana256 in #1505
- chore(version): bump the tagged version constant to 2.6.0 by @wolo-lab in #1817
- feat(auth): refresh and retry once on a downstream 401/403 by @wolo-lab in #1136
- docs(artifact): clarify missing-version deletion behavior by @ktsoator in #1767
- fix(runner): drop nil parts from live requests by @Trainingcqy in #1795
- fix(server/triggers): let the Pub/Sub and Eventarc endpoints require a Google OIDC token by @wolo-lab in #1737
- fix(model/gemini): let the genai SDK resume paused generations by @baptmont in #1822
New Contributors
- @sushant-me made their first contribution in #1679
- @Harbor404 made their first contribution in #1709
- @moritzwilhelm made their first contribution in #1566
- @Ultronen made their first contribution in #1547
- @Huang-404-Q made their first contribution in #1551
- @jabrailkhalil made their first contribution in #1719
- @via2004 made their first contribution in #1717
- @karthik-0306 made their first contribution in #1729
- @adilalperenciftci made their first contribution in #1639
- @tejas5038 made their first contribution in #1565
- @moodbased made their first contribution in #1758
- @anzal1 made their first contribution in #1780
Full Changelog: v2.5.0...v2.6.0