Skip to content

feat(spec): Add last update time to Task#1206

Closed
lkawka wants to merge 9 commits intoa2aproject:mainfrom
lkawka:task-update-time
Closed

feat(spec): Add last update time to Task#1206
lkawka wants to merge 9 commits intoa2aproject:mainfrom
lkawka:task-update-time

Conversation

@lkawka
Copy link
Copy Markdown
Member

@lkawka lkawka commented Nov 17, 2025

The new task/list method's specification dictates that tasks must be ordered by the last update time. However, the current data model lacks a direct way to determine when a task was last updated. To resolve this, a new field with last update time is being added to the Task message.

Addressing potential concerns:

  1. The timestamp field in the TaskStatus message already exists: There are two issues with this field:
    1. Not all task updates are necessarily status updates.
    2. The field is optional, which can lead to unstable ordering when sorting by this field alone.
  2. Backends can just incorporate this information into their internal data models: While true, including this in the public API offers significant advantages by allowing clients to readily access and display this value to users.

Fixes #1207

@lkawka lkawka requested a review from a team as a code owner November 17, 2025 15:47
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @lkawka, 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 enhances the Task data model by introducing a new update_time field. This addition is essential to fulfill the task/list method's requirement for ordering tasks by their last update, providing a dedicated and reliable timestamp for all task modifications, distinct from just status changes. The change is propagated across the gRPC protobuf definition, the JSON schema, and the TypeScript type definitions to ensure consistency and client accessibility.

Highlights

  • Task Message Update: Introduced an update_time field to the Task message in a2a.proto to track the last modification time, crucial for ordering tasks.
  • JSON Schema and TypeScript Updates: The updateTime field was added to the Task definition in a2a.json (as a required ISO 8601 string) and to the Task interface in types.ts to ensure consistency across all definitions.
  • Minor Formatting Adjustment: A small formatting change was applied to the ListTaskPushNotificationConfigParams interface in types/src/types.ts.
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
Copy Markdown
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 introduces an update_time field to the Task message across the Protobuf, JSON, and TypeScript specifications. This change is well-justified by the need to order tasks by their last update time. The implementation is consistent and correct across all modified files. I have one minor suggestion to revert a purely stylistic change to keep the pull request focused on its primary goal. Otherwise, the changes look good.

lkawka and others added 3 commits November 17, 2025 16:53
@lkawka lkawka changed the title feat: Add update_time to Task feat: Add last update time to Task Nov 21, 2025
@darrelmiller
Copy link
Copy Markdown
Contributor

/vote

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 1, 2025

DEPRECATED
#1206 (comment) is the real vote

Vote created

@darrelmiller has called for a vote on feat: Add last update time to Task`` (#1206).

The members of the following teams have binding votes:

Team
@a2aproject/a2a-tsc

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 7days. It will pass if at least 51% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

@amye amye added this to TSC Review Dec 2, 2025
@amye amye moved this to In Voting in TSC Review Dec 2, 2025
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 2, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
@muscariello Pending
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

1 similar comment
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 3, 2025

Vote status

So far 12.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
1 0 0 7

Binding votes (1)

User Vote Timestamp
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
@muscariello Pending
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@muscariello muscariello added the TSC Review To be reviewed by the Technical Steering Committee label Dec 4, 2025
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 4, 2025

Vote status

So far 25.00% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
2 0 0 6

Binding votes (2)

User Vote Timestamp
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
muscariello In favor 2025-12-04 7:59:35.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@ToddSegal Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@holtskinner holtskinner changed the title feat: Add last update time to Task feat(spec): Add last update time to Task Dec 5, 2025
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 5, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-04 21:06:55.0 +00:00:00
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
muscariello In favor 2025-12-04 7:59:35.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

2 similar comments
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 6, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-04 21:06:55.0 +00:00:00
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
muscariello In favor 2025-12-04 7:59:35.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 7, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-04 21:06:55.0 +00:00:00
geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
muscariello In favor 2025-12-04 7:59:35.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 8, 2025

Vote closed

The vote did not pass.

37.50% of the users with binding vote were in favor and 0.00% were against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
@ToddSegal In favor 2025-12-04 21:06:55.0 +00:00:00
@geneknit In favor 2025-12-02 17:59:29.0 +00:00:00
@muscariello In favor 2025-12-04 7:59:35.0 +00:00:00

@amye
Copy link
Copy Markdown
Contributor

amye commented Dec 9, 2025

/vote

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 28, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

8 similar comments
@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 29, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 30, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Dec 31, 2025

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 1, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 2, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 3, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 4, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 6, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@Tehsmash
Copy link
Copy Markdown
Contributor

Tehsmash commented Jan 6, 2026

After discussion in the TSC meeting on 2026/01/6, we agreed to leave the fields in Task as they are and change the filter for ListTasks to status_timestamp_after to indicate that its based on the task status only.

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 7, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

6 similar comments
@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 8, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 9, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 10, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 11, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 12, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 13, 2026

Vote status

So far 37.50% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
3 0 0 5

Binding votes (3)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@lerhaupt Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending

@darrelmiller
Copy link
Copy Markdown
Contributor

@Tehsmash I think that means we could close this PR and combine the proposed naming change with this PR to change the datatype #1288

@Tehsmash
Copy link
Copy Markdown
Contributor

@Tehsmash I think that means we could close this PR and combine the proposed naming change with this PR to change the datatype #1288

👍 happy for it to be combined (whatever makes it turn around faster)

Tehsmash added a commit to Tehsmash/A2A that referenced this pull request Jan 13, 2026
Tasks do not have a top level last_updated time this clarifies the spec
and a2a.proto so that the filter and ordering refers to the
status.timestamp instead.

Closes: a2aproject#1206
@darrelmiller
Copy link
Copy Markdown
Contributor

Closing this PR in favour of #1358

@github-project-automation github-project-automation bot moved this from In Voting to Done in TSC Review Jan 13, 2026
@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 14, 2026

Vote status

So far 44.44% of the users with binding vote are in favor and 0.00% are against (passing threshold: 51%).

Summary

In favor Against Abstain Not voted
4 0 0 5

Binding votes (4)

User Vote Timestamp
ToddSegal In favor 2025-12-12 1:50:07.0 +00:00:00
geneknit In favor 2025-12-19 18:54:08.0 +00:00:00
lerhaupt In favor 2026-01-13 21:53:09.0 +00:00:00
muscariello In favor 2025-12-11 9:42:01.0 +00:00:00
@darrelmiller Pending
@hughesthe1st Pending
@000-000-000-000-000 Pending
@SivaNSAP Pending
@spetschulatSFDC Pending

darrelmiller added a commit that referenced this pull request Jan 14, 2026
This PR combines two fixes for the ListTaskRequest last_updated_after
field one changes the field to a timestamp type and one renames it and
clarifies the ordering of the task list result.

Original PR for the timestamp type fix was:
#1288

Fixes: #1287
Fixes: #1206

---------

Co-authored-by: Yaroslav Shevchuk <yarolegovich@gmail.com>
Co-authored-by: Darrel <darrmi@microsoft.com>
@amye
Copy link
Copy Markdown
Contributor

amye commented Jan 14, 2026

/cancel-vote

#1358 has the correct one + gitvote has added Stephen already, so yay! We'll restart this.

@git-vote
Copy link
Copy Markdown

git-vote bot commented Jan 14, 2026

Vote cancelled

@amye has cancelled the vote in progress in this pull request.

@git-vote git-vote bot removed the gitvote/open label Jan 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitvote TSC Review To be reviewed by the Technical Steering Committee

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[Feat]: Add last update time to Task

8 participants