Skip to content

fix: map rejected task state in proto converters#668

Merged
ishymko merged 1 commit intomainfrom
ishymko/625
Feb 5, 2026
Merged

fix: map rejected task state in proto converters#668
ishymko merged 1 commit intomainfrom
ishymko/625

Conversation

@ishymko
Copy link
Member

@ishymko ishymko commented Feb 4, 2026

Fixes #625

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @ishymko, 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 an oversight in the system's state management by implementing the correct mapping for the 'rejected' task state within the Protocol Buffer conversion utilities. This ensures that tasks transitioning to a rejected status are accurately represented and communicated across different layers of the application, particularly when interacting with external systems via Protocol Buffers. The changes are validated with new and updated unit tests to confirm the integrity of the state conversions and API responses.

Highlights

  • Proto Converters Update: The proto_utils.py file has been updated to correctly map the rejected task state between internal types.TaskState and Protocol Buffer a2a_pb2.TaskState in both directions (to and from proto).
  • New Test Case for Rejected State: A new test, test_get_task_status_rejected, has been added to test_rest_fastapi_app.py to verify that the REST API correctly handles and returns tasks with a rejected status.
  • Improved Enum Conversion Testing: The test_enum_conversions in test_proto_utils.py was modified to include the rejected state in its comprehensive enum conversion tests, ensuring its proper handling.
Changelog
  • src/a2a/utils/proto_utils.py
    • Added case types.TaskState.rejected to map to a2a_pb2.TaskState.TASK_STATE_REJECTED in ToProto.task_state.
    • Added case a2a_pb2.TaskState.TASK_STATE_REJECTED to map to types.TaskState.rejected in FromProto.task_state.
  • tests/server/apps/rest/test_rest_fastapi_app.py
    • Added test_get_task_status_rejected to verify the API response for a rejected task.
  • tests/utils/test_proto_utils.py
    • Removed types.TaskState.rejected from the exclusion list in test_enum_conversions to ensure it is tested.
Activity
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 adds support for the rejected task state by updating the protobuf converters in src/a2a/utils/proto_utils.py. The changes are well-tested, with a new test case for the REST API in tests/server/apps/rest/test_rest_fastapi_app.py and an update to the existing tests in tests/utils/test_proto_utils.py to include this new state. The implementation is clean and follows the existing pattern. I have one minor suggestion to improve code readability in one of the test files.

@ishymko ishymko marked this pull request as ready for review February 4, 2026 16:43
@ishymko ishymko requested a review from a team as a code owner February 4, 2026 16:43
@ishymko ishymko enabled auto-merge (squash) February 5, 2026 11:08
@ishymko ishymko merged commit 957e92b into main Feb 5, 2026
12 checks passed
@ishymko ishymko deleted the ishymko/625 branch February 5, 2026 11:09
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.

[Bug]: A2ARESTFastAPIApplication omits state field from task status when task is rejected

2 participants