Skip to content

fix: Add Input Validation for Task Context IDs in new_task Function #340

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

pankaj-bind
Copy link
Contributor

Description

This update addresses an issue where the new_task function in src/a2a/utils/task.py did not validate the format of the context_id when it was provided. Invalid or malformed context_id values, such as empty strings or non-UUID strings, were not being properly handled, which could lead to downstream errors.

The changes in this PR introduce a validation check to ensure that any provided context_id is a valid UUID. If the context_id is invalid, a ValueError is raised. If no context_id is provided, a new UUID is generated as before.

@pankaj-bind pankaj-bind requested a review from a team as a code owner July 23, 2025 19:19
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.

Summary of Changes

Hello @pankaj-bind, 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 significantly improves the reliability of the new_task function by introducing explicit validation for the context_id parameter. It addresses a potential source of errors by enforcing that context_id values conform to the UUID format, thereby enhancing data integrity and system stability. Comprehensive tests have been added to verify the new validation logic.

Highlights

  • Input Validation: Implemented robust validation for the context_id parameter within the new_task function in src/a2a/utils/task.py. This ensures that any provided context_id is a valid UUID, preventing malformed identifiers from causing downstream issues.
  • Error Handling: Modified the new_task function to raise a ValueError if an invalid context_id is supplied. The function's docstring has been updated to reflect this new exception condition.
  • Test Coverage: Expanded the test suite in tests/utils/test_task.py with new unit tests specifically for the new_task function. These tests cover scenarios involving valid, invalid (e.g., 'not-a-uuid'), and empty string context_id inputs, ensuring the new validation logic behaves as expected.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 or fill out our survey to provide feedback.

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 successfully adds input validation for context_id in the new_task function, raising a ValueError for invalid UUIDs. The accompanying tests cover the new logic for valid, invalid, and empty string context_ids. My review includes suggestions to refine the exception handling in the implementation for more precision and to consolidate the new tests using parameterization for better maintainability.

pankaj-bind and others added 4 commits July 24, 2025 00:55
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@holtskinner holtskinner changed the title feat: Add Input Validation for Task Context IDs in new_task Function fix: Add Input Validation for Task Context IDs in new_task Function Jul 23, 2025
@holtskinner holtskinner merged commit a7ed7ef into a2aproject:main Jul 23, 2025
5 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