Skip to content

bump google.golang.org/adk from v0.4.0 to v0.5.0#1954

Merged
dgageot merged 1 commit intodocker:mainfrom
dgageot:board/bump-google-golang-org-adk-fix-what-need-73b9256a
Mar 6, 2026
Merged

bump google.golang.org/adk from v0.4.0 to v0.5.0#1954
dgageot merged 1 commit intodocker:mainfrom
dgageot:board/bump-google-golang-org-adk-fix-what-need-73b9256a

Conversation

@dgageot
Copy link
Member

@dgageot dgageot commented Mar 6, 2026

ADK v0.5.0 changed how the A2A executor structures artifacts: partial streaming events now produce a separate artifact with a DataPart LastChunk marker.

Changes

  • Bump google.golang.org/adk from v0.4.0 to v0.5.0
  • Update A2A e2e tests to handle the new multi-artifact response format
  • Extract sendA2AMessage helper to reduce test boilerplate
  • Fix startA2AServer to use a context-aware HTTP request

Testing

  • All tests pass
  • Linter reports 0 issues

ADK v0.5.0 changed how the A2A executor structures artifacts: partial
streaming events now produce a separate artifact with a DataPart
LastChunk marker. Updated and simplified the A2A e2e tests to handle
the new multi-artifact response format by extracting a sendA2AMessage
helper and filtering for text parts across all artifacts. Also fixed
startA2AServer to use a context-aware HTTP request.

Assisted-By: cagent
Copy link

@docker-agent docker-agent bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Assessment: 🔴 CRITICAL

This PR updates the ADK dependency to v0.5.0 and refactors the A2A tests to handle the new multi-artifact response format. However, the new test validation logic has critical issues that could cause test failures with streaming partial responses.

Critical Issues Found:

  • Test assertions assume all text parts contain complete data, but streaming partial responses may produce empty or incomplete text parts
  • Final text validation assumes the last text part is the final response, which may not be true with LastChunk markers

Findings:

  • 🔴 1 CRITICAL issue
  • 🟡 1 NOTABLE issue

texts := resp.textParts()
require.NotEmpty(t, texts)
for _, text := range texts {
assert.Equal(t, "4", text)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 CRITICAL: Test assertion fails on partial streaming artifacts

The test loops over all text parts and asserts that each equals '4':

for _, text := range texts {
    assert.Equal(t, "4", text)
}

With the new multi-artifact format where streaming partial responses produce separate artifacts with DataPart LastChunk markers, intermediate text parts may contain partial or empty content that doesn't match '4'. This will cause the test to fail on streaming partial responses.

The old code checked specific indices (Parts[0] and Parts[1]). The new code should either:

  • Check only the final aggregated text
  • Filter out partial/empty streaming artifacts before assertion
  • Verify the complete set of expected values rather than assuming each part equals '4'


texts := resp.textParts()
require.NotEmpty(t, texts)
assert.Contains(t, texts[len(texts)-1], "Hello")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 NOTABLE: Incorrect final text validation with multi-artifact format

The test uses texts[len(texts)-1] to assert the final response:

assert.Contains(t, texts[len(texts)-1], "Hello")

With the new multi-artifact format, the last text part might be an empty DataPart LastChunk marker rather than the actual response content. This means the assertion could check an empty string instead of the actual final answer.

Consider:

  • Aggregating all non-empty text parts
  • Verifying the complete response is present somewhere in the artifacts
  • Filtering out LastChunk markers before validation

@dgageot dgageot merged commit 3876aea into docker:main Mar 6, 2026
8 checks passed
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.

2 participants