Skip to content

Conversation

@cmtoan
Copy link
Contributor

@cmtoan cmtoan commented Jan 2, 2026

Description

Event consumer should stop on input_required task as fixed in the python version a2aproject/a2a-python#167

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @cmtoan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical issue in the event consumption mechanism where the system failed to halt event processing when a task entered an 'input required' state. By modifying the event consumer to recognize this state as a termination condition, the change ensures proper flow control and consistency with other language implementations, preventing unnecessary resource usage and potential logical errors.

Highlights

  • Event Consumer Logic Update: The EventConsumer now correctly stops processing events when it encounters a Task with a status of INPUT_REQUIRED, aligning its behavior with the Python implementation.
  • New Helper Method: A private helper method, isFinalOrInterruptedTask, has been introduced in EventConsumer.java to encapsulate the logic for determining if a task's state should terminate the event stream, including both final states and the new INPUT_REQUIRED state.
  • New Test Case: A dedicated test case, testConsumeTaskInputRequired, has been added to EventConsumerTest.java to verify that the event stream properly terminates upon receiving an INPUT_REQUIRED task.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

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

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 correctly implements the requirement for the EventConsumer to stop processing events when a task with the INPUT_REQUIRED state is encountered. The change is isolated and a new helper method is introduced for the logic. A corresponding unit test has been added to verify the new behavior. My review includes suggestions to improve the clarity of the new method's name and to address code duplication in the test suite for better long-term maintainability.

@cmtoan
Copy link
Contributor Author

cmtoan commented Jan 2, 2026

There are flaky tests in QuarkusA2ARestTest.

@ehsavoie
Copy link
Collaborator

ehsavoie commented Jan 5, 2026

@cmtoan May you add some javadoc on your isStreamTerminatingTask to explain why INPUT_REQUIRED is terminating.
maybe update the log message on line 98 as INPUT_REQUIRED is not a final event. Could you be more specific with the flaky tests and create an issue

@cmtoan
Copy link
Contributor Author

cmtoan commented Jan 5, 2026

@ehsavoie yes, I add a javadoc and update the log.
For the flaky tests, I've seen there is already an issue here #557

Copy link
Collaborator

@kabir kabir left a comment

Choose a reason for hiding this comment

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

Thank you @cmtoan!

@kabir kabir merged commit 3947f26 into a2aproject:main Jan 13, 2026
12 checks passed
cmtoan added a commit to cmtoan/a2a-java that referenced this pull request Jan 13, 2026
# Description

Event consumer should stop on input_required task as fixed in the python
version a2aproject/a2a-python#167
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.

3 participants