Skip to content

fix: address protocol compliance issues across transports#923

Merged
kabir merged 3 commits into
a2aproject:mainfrom
kabir:itk-base
Jun 9, 2026
Merged

fix: address protocol compliance issues across transports#923
kabir merged 3 commits into
a2aproject:mainfrom
kabir:itk-base

Conversation

@kabir

@kabir kabir commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Fix SSE event listener, gRPC blocking offload handling, JSON-RPC route consistency, multiversion route alignment, and file content mapping to ensure correct behavior for cross-SDK interoperability.

This is groundwork to get the ITK working

Fix SSE event listener, gRPC blocking offload handling, JSON-RPC route
consistency, multiversion route alignment, and file content mapping to
ensure correct behavior for cross-SDK interoperability.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces changes to isolate outbound gRPC calls from inbound cancellation signals by forking the gRPC context, and offloads blocking operations from the Vert.x event loop using a new BlockingOffloadInterceptor. It also includes robustness improvements such as handling null file names in FileContentMapper_v0_3 and checking JSON types in JsonUtil. Feedback highlights the need to catch exceptions inside the offload executors to prevent hanging gRPC calls, perform size validation on file bytes to avoid OutOfMemory errors, and add a null check for the task parameter in ClientTaskManager_v0_3.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

If super.onHalfClose() throws inside the executor lambda, the exception
propagates uncaught on the worker thread and the gRPC call never closes
properly. Add try-catch around the handler invocation to close the call
with INTERNAL status on failure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add null check on task parameter in ClientTaskManager_v0_3.saveTaskEvent()
- Extract duplicated gRPC context forking code into installForkedContextWrapper()
  in both GrpcHandler and GrpcHandler_v0_3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kabir kabir merged commit a0ee1c1 into a2aproject:main Jun 9, 2026
12 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