R.6

Sources

The manual rests on one pinned release, one reference SDK, five more SDKs, one test kit, and one capture kit, and it names every place where those sources disagree.

How to read this manual ranks the sources and describes the kit. This page pins their versions, lists the conflicts between them, and records what the project changed after the tag.

The pin

ItemValue
ReleaseA2A 1.0.1, tag v1.0.1 of github.com/a2aproject/A2A, commit 3303592588e388e62e0f69f701af531d2f4e3991, tagged 2026-05-28
Protocol version1.0 in every request and card. Facts verified 2026-10-06.
Main branchCommit 679ab3a of 2026-10-05, read for changes after the tag, and quoted only for rules the tag lacks
Reference SDKa2a-sdk 1.2.2, tag v1.2.2 of github.com/a2aproject/a2a-python, commit 2f9e44af243df5c7c7a3da361c8d095324bcd5e3, Apache License 2.0
Capture kitthe kit folder, standard library only, described in the kit README

The changelog dates the release 2026-05-26, and the spec banner still names 1.0.0 as the latest release (conflict D16). The manual cites the reference SDK as sdk and a path under src/a2a/, and never quotes it.

Vendored files

The vendored files are copied from the tag under the Apache License 2.0 in LICENSE. The audit checks that every source marker uses a source key that the manual declares.

FileUpstreamSource key
a2a.protospecification/a2a.proto, 811 lines, normativeproto and a message or enum name
specification.mddocs/specification.md, 3610 linesspec and a section number
specification-main.mddocs/specification.md on main at 679ab3a, 3618 lines, unreleasedspec-main and a section number, only for rules added after the tag
docs.mdFourteen project pages in 3019 lines, not normative. This edition adds multi-tenancy, custom-protocol-bindings, and extension-and-binding-governance.docs and a page name

Section 1.4 of the spec gives the proto path as spec/a2a.proto, which is wrong (conflict D15). Two briefs index these files by line: the spec brief, with 40 findings and the register below, and the docs brief, which flags stale pages.

The SDKs and the test kit

Body sections compare six official SDKs and the official test kit, each read at one tag. The manual cites the reference SDK as sdk, and the others as sdk-go, sdk-java, sdk-js, sdk-dotnet, and sdk-rust, with a file path and the tag. It paraphrases them and never quotes them.

RepositorySource keyTagCommitDate
a2a-pythonsdkv1.2.22f9e44a2026-10-05
a2a-gosdk-gov2.6.0ebf17c52026-09-25
a2a-javasdk-javav1.4.0.Final64081942026-09-28
a2a-jssdk-jsv1.3.029417a52026-09-29
a2a-dotnetsdk-dotnetv1.0.0-preview287fd4482026-04-09
a2a-rssdk-rusta2a-server-lf-v0.5.132c31f62026-09-30
a2a-tcka2a-tck and a file path1.0.0.alpha229063fe2026-05-27

The conflict register

This table condenses section 12.2 of the spec brief, and D36 to D40 were found while writing the manual. The last column says what the A2A repository did about each one after the tag, checked on 2026-10-06. Fixed on main means merged and unreleased. Partly fixed means that a residual remains on main.

IDThe sources sayThe manual followsDiscussed inUpstream
D1Subscribe verb. Proto GET. §5.3 and §11.3.2 POST.The proto. Accept both.front, 4.5, 5.2, R.1open PR #2068
D2Blocking. §3.1.1 returns at once. §3.2.2 and the proto wait.§3.2.2 and the protofront, 4.1, 7.1open issue #2135
D3Streams at interrupted states. §3.1.2 and §3.1.6 close at terminal states. §11.7 and the streaming guide also close at interrupted ones. §7.6.1 keeps auth streams open.Close at terminal states, and expect either at interrupted onesfront, 1.2, 4.2, 4.5, R.3open PR #2270
D4Push configuration name. Prose PushNotificationConfig. Proto TaskPushNotificationConfig.The proto name4.6, R.2partly fixed on main (PR #1981)
D5Create request. Prose and Appendix A CreateTaskPushNotificationConfigRequest. Proto TaskPushNotificationConfig.The proto4.6, R.1partly fixed on main (PR #1981)
D6Card security field. §3.1.11, §13.3, and the §8.5 sample security. Proto securityRequirements.The protofront, 2.1, 2.3, 6.1, R.2partly fixed on main (PR #2046)
D7Extended card flag number. Appendix A.2.2 field 5. Proto field 4.The proto2.3no activity
D8Protocol version. Appendix A.2.1 protocolVersions on the card. Proto protocolVersion per interface.One per interface2.1fixed on main, unreleased (PR #2165)
D9Stream event names. Migration guide taskStatusUpdate, taskArtifactUpdate. Proto statusUpdate, artifactUpdate.The proto4.5, 7.4fixed on main, unreleased (PR #2056)
D10Fields the proto lacks. Migration guide Task.createdAt, Task.lastModified, configId, TaskArtifactUpdateEvent.index.Do not send themR.2, 7.4partly fixed on main (PR #2056)
D11Deprecated OAuth flows. Migration guide: implicit and password removed. Proto: kept, deprecated.Present, never used6.1no activity
D12Pagination names. Migration guide cursor, limit, nextCursor. Proto pageToken, pageSize, nextPageToken.The proto4.3fixed on main, unreleased (PR #2165)
D13Error body. §6.4 and §6.5 samples application/problem+json. Migration guide application/json. §11.6 google.rpc.Status.§11.65.5open PR #1641 and PR #1689
D14JSON-RPC method template. §9.3 category/action. §9.1 and §9.4 PascalCase.PascalCase5.1no activity
D15Proto path. §1.4 spec/a2a.proto. §5.7, §10.1, and the repository specification/a2a.proto.The repository1.1, Vendored filesno activity
D16Release and date. Banner: 1.0.0 is latest. Changelog 2026-05-26. Tag message 2026-04-23. Tag commit 2026-05-28.1.0.1, tagged 2026-05-28The pinopen PR #2072
D17Header registrations. §14.2.1 and §14.2.2 cite Section 3.2.5. Service parameters are §3.2.6.§3.2.65.4open issue #2305
D18TLS version. Spec 1.3 or later. Enterprise guide 1.2 or later.The spec6.1no activity
D19Empty required arrays. §5.7 wants one element at least. The §8.4.1 example has empty skills, and empty tasks is legitimate.Empty tasks for no results, a skill on every real card2.1, R.2open issue #2122
D20The typ header. §8.4.2 lists typ among the MUST fields and words it as SHOULD.Send alg, kid, and typ set to JOSE2.3no activity
D21Signing steps. §8.4.2 and §8.4.3 remove default values. §8.4.1 keeps REQUIRED and set optional fields.§8.4.12.3open issue #2249
D22JSON naming example. §5.5 push_notification_config. Proto task_push_notification_config.The protoR.2no activity
D23Samples that break REQUIRED. Some omit messageId, artifactId, or an event's contextId.Never copy a sample as it is3.1, 6.2partly fixed on main (PR #2083)
D24Invalid JSON. The samples in §4.6.1, §6.7, and §9.4.1.Never copy a sample as it is3.2, 6.2open PR #1657
D25Layer 2 diagram. §1.3 shows Get Agent Card. §3.1 defines only Get Extended Agent Card.The diagram is informal1.1no activity
D26Mandatory operations. §3.1 requires them all. §3.3.4 lets flags decline streaming, push, and the extended card.The capability flags2.2no activity
D27Transport in a guide. Core Concepts: JSON-RPC 2.0 for everything. Spec: three bindings.The spec5.1no activity
D28Who creates the context id. Core Concepts: the server. Spec: a client can propose one.The spec3.5open issue #1317
D29States from extensions. The extensions guide lists extensions that add states, and forbids new enum values.Neither is normative. Add no states.3.4, 6.2no activity
D30Extension activation. §4.6.1 JSON-RPC parameters. §9.2 HTTP headers.The header5.4no activity
D31Version as a parameter. §3.6.1 allows a request parameter. §9.2 and §11.2 require headers.The header5.4open issue #2184
D32Old endpoint names. The what-is-a2a diagram: POST /sendMessage, /.well-known/agent-card.message:send, agent-card.json2.2fixed on main, unreleased (PR #2261)
D33Stream type in a guide. Streaming guide SendStreamingMessageResponse. Spec StreamResponse.The spec4.5no activity
D34gRPC interface URL. Proto: an absolute HTTPS URL. gRPC dials a host and a port.No rule at the tag2.1, 5.3fixed on main, unreleased (PR #1997)
D35Role spelling. §2.2 user and agent. Proto and §5.5 ROLE_USER, ROLE_AGENT.The enum names3.1no activity
D36Another client's task. §3.3.2 calls it an authorization error and forbids revealing that it exists.TaskNotFoundError6.1no activity
D37A 0.3 state name. §3.4.3 input-required. Proto TASK_STATE_INPUT_REQUIRED.The proto name3.4open PR #2155
D38Cancel transitions. Migration guide: clarified in 1.0. Spec: no transition table.Transitions are implementation behavior3.4open issue #1992
D39Version in samples. §9.2, §11.2, and §14.2.1 send A2A-Version: 0.3.Send 1.05.4no activity
D40Old extended card flag. Appendix A.2.2 supportsExtendedAgentCard. Migration guide and SDK supportsAuthenticatedExtendedCard.extendedAgentCard in capabilities2.3, 7.4no activity

Discrepancies found after the register

Research for this edition found twenty more places where a docs page, an appendix, or a sample disagrees with the proto or the spec. None changes what the manual follows. The last column says whether main still has the text, as checked on 2026-10-06.

IDThe sources sayThe manual followsDiscussed inOn main
N1Stream event kind in the guide. Migration guide, for 0.3: kind values taskStatusUpdate and taskArtifactUpdate. Appendix A.2.1 and the 0.3 schema: status-update and artifact-update.Appendix A.2.1R.6 onlyfixed
N2Extensions path. Migration guide agentCard.extensions. Proto capabilities.extensions.The proto6.2, R.2unchanged
N3Tenant scope. Migration guide: tenant scoping in gRPC requests. Proto: tenant on every request message, and a /{tenant} route for every rpc.The proto5.2unchanged
N4ListTasks in 0.3. Migration guide: not available in 0.3. The 0.3 prose lists tasks/list, and the 0.3 proto and schema do not.The guide, read as not in the 0.3 schemaR.6 onlyno change needed
N5Upgrade headings. Appendix A.2.1 says pre-0.3.x under the heading about the 1.0 change.Read as pre-1.0R.6 onlyunchanged
N6Removal timeline. Appendix A sets removal at 0.5.0 or later for names that 1.0 renamed, and calls the timeline an example.§1.4: the next major releaseR.6 onlyunchanged
N7Removed card field name. Appendix A.2.2 supports_extended_agent_card, field 13. The 0.3 proto supports_authenticated_extended_card, field 13.The 0.3 protoR.6 onlyunchanged
N8Version in the §10.2 sample. The gRPC sample sends a2a-version 0.3, which D39 does not list.Send 1.05.3unchanged
N9Config id name. Migration guide config_id. Proto id.The protoR.2fixed
N10Extension lists as new fields. Migration guide adds Message.extensions and Artifact.extensions in 1.0. Both exist in the 0.3 proto.Not newR.6 onlyunchanged
N11Mutual TLS as new. Migration guide adds mutual TLS in 1.0. The 0.3 proto has mtls_security_scheme.Not newR.6 onlyunchanged
N12Tenant routes. §5.3, §11.3, and §11.5 list no /{tenant} route. The proto adds one to every rpc.The proto5.2, R.1unchanged
N13Tenant field number. ListTaskPushNotificationConfigsRequest.tenant is field 4. Every other request has field 1.No conflict. Visible in gRPC only.R.6 onlyunchanged
N14filename on any part. Migration guide: filename on every part. Proto comment: for the file.The proto allows it on any part. Use it for files.3.2unchanged
N15Create request in Appendix A. The table names CreateTaskPushNotificationConfigRequest as current. It is the 0.3 type.The proto, as D54.6unchanged
N16Operation aliases. Migration guide: aliases during the transition. The proto and the method set define none. SDK compatibility layers do.The spec. Name the SDK layer.R.6 onlyunchanged
N17The flipped default. Migration guide shows returnImmediately as new. 0.3 blocking defaulted to false, no wait. 1.0 returnImmediately defaults to false, a wait.§3.2.2 and the proto4.1unchanged
N18Card sample in the extensions guide. A top-level url, the 0.3 shape.supportedInterfacesR.6 onlyfixed
N19A gRPC-specific wrapper. §10.5.1 calls TaskPushNotificationConfig a gRPC resource type. The proto uses it in every binding.The protoR.6 onlyunchanged
N20Security in the tenancy guide. The multi-tenancy page securitySchemes and security. Proto securityRequirements.The proto, as D6R.6 onlyunchanged

After v1.0.1

The manual checked main of the A2A repository at commit 679ab3a, dated 2026-10-05, and found 73 commits after the tag. One changes the proto: PR #1997 lets a gRPC interface url be a hostname:port address, which settles D34. It is the only entry in the pending 1.0.2 release, PR #2072, still open.

PR #2081 added §7.6.4, In-Task Authorization Scope, which the manual quotes with the key spec-main. Branch dev-1.1, at commit db39eb5 of 2026-09-22, holds the 1.1 work: a generation field and a task timeline. The approved fixes for D1 and D3 target that branch and are still open. No tag newer than v1.0.1 existed on 2026-10-06.

A2A protocol 1.0.1 · 3303592 · 2026-05-28 · Edition 2026.10