feat: migrate to A2A protocol v1.0.0 stable#3
Merged
Conversation
Breaking changes from v1.0.0-rc proto (lf.a2a.v1): TaskPushNotificationConfig — flatten nested config - Remove PushNotificationConfig as a standalone type - Inline url, token, authentication directly into TaskPushNotificationConfig - tenant field moved to first position matching proto field order SendMessageConfiguration — field renames - blocking -> return_immediately (JSON: "returnImmediately") - push_notification_config: Option<PushNotificationConfig> -> task_push_notification_config: Option<TaskPushNotificationConfig> CreateTaskPushNotificationConfig — simplified input - Remove CreateTaskPushNotificationConfigRequest wrapper type - RPC and REST handler now take TaskPushNotificationConfig directly - REST handler injects task_id/tenant from path/query into body ListTaskPushNotificationConfig -> ListTaskPushNotificationConfigs (plural) - Rename request/response types, handler method, client method - JSON-RPC method constant value updated to "ListTaskPushNotificationConfigs" CancelTaskRequest — add optional metadata field Task.context_id — String -> Option<String> - RC had field_behavior = REQUIRED; stable removes it Crate version 0.1.0 -> 1.0.0 to track protocol stable release Update normative sources in CLAUDE.md, AGENTS.md, README, lib.rs, store.rs, examples, templates to reference v1.0.0 stable. ImplicitOAuthFlow/PasswordOAuthFlow retained: release notes say removed but official published definitions still include them as deprecated (lines 596-608, 634-647). Will drop when the published definitions stop advertising them. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TaskPushNotificationConfigflattened — removes nestedPushNotificationConfig;url,token,authenticationare now direct fields;PushNotificationConfigtype removedSendMessageConfigurationfield renames —blocking→return_immediately(JSONreturnImmediately);push_notification_config→task_push_notification_config: Option<TaskPushNotificationConfig>CreateTaskPushNotificationConfigsimplified — removesCreateTaskPushNotificationConfigRequestwrapper; RPC and REST now takeTaskPushNotificationConfigdirectly; REST injectstask_id/tenantfrom path/query into body;configIdquery param goneListTaskPushNotificationConfigspluralised — request/response types, handler method, client method, JSON-RPC method constant value all updatedCancelTaskRequest.metadata— new optional field; REST handler accepts optional JSON bodyTask.context_id—String→Option<String>(REQUIRED annotation removed in stable proto)0.1.0→1.0.0— tracks A2A stable releaseCLAUDE.md,AGENTS.md,README,docs/proto-first-design.mdreferencev1.0.0tag andlf.a2a.v1packageImplicitOAuthFlow/PasswordOAuthFlowretained: release notes say removed but the official published definitions still include them asdeprecated. Will drop when the definitions stop advertising them.Test plan
cargo test --no-default-features— 40 unit tests passcargo test --all-features— 96 tests pass (unit + integration + wiremock + server + spec)cargo clippy --all-targets --no-default-features -- -D warningscargo clippy --all-targets --all-features -- -D warnings🤖 Generated with Claude Code