Repository navigation
docs: cover everything landed since v0.2.0 - #132
Merged
Merged
Conversation
Owner
Author
|
Release notes draft for v0.3.0 (for the GitHub release once everything is merged; PR numbers for the seven fix branches are #125–#131): # v0.3.0
The A2A v1.0 parity release. Handler now implements every protocol method on every surface it has, sends and receives non-text parts, negotiates its transport, and supports six security schemes. It also closes a credential-handling gap found while testing all of that end to end.
## Highlights
- **Streaming in the TUI** with a STOP control, input-required handling, and replies that render as they arrive (#98)
- **Files and structured data** go out with `--file` and `--data` (or the TUI's ATTACH button) and come back readable (#111)
- **Every A2A v1.0 method**: `ListTasks` (#112, #120), `ListTaskPushNotificationConfigs` and `DeleteTaskPushNotificationConfig` (#113), `GetExtendedAgentCard` (#114)
- **Transport negotiation**: JSON-RPC and HTTP+JSON built in, gRPC via `a2a-handler[grpc]`, chosen from the agent card (#116)
- **HTTP Basic and OpenID Connect** join bearer, API key, mTLS, and OAuth2 client credentials (#117)
- **Credentials stay on the origin you configured**, never on a host an agent card happens to name (fix/credentials-scoped-to-origin)
## Features
- `handler task list` with `--context-id`, `--status`, `--page-size`, `--history-length`, `--include-artifacts`; follows pagination to the end and reports truncation; MCP `list_tasks` (#112, #120)
- `handler task notification list` and `remove`; MCP `list_task_notifications` and `delete_task_notification` (#113)
- `handler card get --extended`; the TUI shows the extended card on connect; MCP `get_agent_card` takes `extended` and auth arguments (#114)
- `SendMessageConfiguration` on every send: `--accept`, `--history-length`, `--no-wait`; push config rides on the message with `--push-url`/`--push-token` (#115)
- Transport badge in the TUI, `A2AService.negotiated_transport`, a clear error when no binding is shared (#116)
- `type = "basic"` and `type = "oidc"` in `servers.toml`, `server add --basic-*` and `--oidc-*` flags, and both schemes in the TUI Auth tab (#117)
- A2A extensions: `-e/--extension`, per-server `extensions = [...]`, declared extensions on the card, and a warning when a required extension is not requested (#118)
- `handler server run push --token` rejects deliveries without the matching `X-A2A-Notification-Token` (fix/push-receiver-v1-payloads)
- Whole numbers in data parts render as integers (fix/attachments-dropped)
## Fixes
- Attachments were built but never left the client on `send` or `stream`; `--file`, `--data`, and TUI attachments now reach the agent (fix/attachments-dropped)
- The second message of a TUI session could crash the send worker with a duplicate widget id and lock the composer (fix/tui-streaming-widget-collision)
- `task notification get` without `--config-id` failed with a server-side validation error; it now uses the task's single config and names the choices when there are several (#121, fix/push-config-get-without-id)
- The push receiver read only the v0.3 payload shape, so v1.0 deliveries showed no task ID or state (fix/push-receiver-v1-payloads)
- Cards that mix a v0.3 top-level `protocolVersion` with versionless v1.0 interfaces reported "A2A vunknown"; the served JSON now answers (fix/protocol-version-mixed-cards)
- When both well-known card paths fail, the error names the standard path, not the legacy fallback (fix/protocol-version-mixed-cards)
- `task list` hardened against servers that repeat or cycle page tokens, with a 100-task page cap from the spec (#120)
- `uv_build` pin widened to current releases; deprecated license classifier dropped (#110, chore/widen-uv-build-pin)
## Security
- Auth headers, API keys, Basic credentials, and custom headers are bound to the origin (scheme, host, port) of the configured agent URL. A card that advertises a different host no longer receives them, and Handler warns when a card routes requests away from the configured origin. Loopback aliases and default ports count as one origin. (fix/credentials-scoped-to-origin)
- The CLI's default log level moves from ERROR to WARNING so the warnings above, and the required-extension warning, are visible without `-v`.
- The push receiver can require a notification token, so a receiver bound beyond loopback cannot be fed forged notifications.
## Docs
- Guides and the CLI reference cover attachments, request configuration, task listing, push notifications end to end, extended cards, transport negotiation, extensions, all six auth schemes, the origin rule, and the real configuration file locations (docs/0.3.0-features)
- `handler mcp --help` and the MCP guide list the thirteen tools the server actually exposes
- README feature list refreshed
## Upgrading
`uv tool install --force a2a-handler --refresh` (or `pipx upgrade a2a-handler`). No configuration changes are required. If you relied on an agent card redirecting authenticated requests to a different host, configure that host as the server URL instead. |
The docs site and README still described v0.2.0: four auth schemes, no attachments, no task listing, no push config list/remove, no extended card, no transport negotiation, no extensions, and an MCP tool list with two tools that no longer exist. Bring them up to date with #98, #111-#118, #120, and the seven fix branches queued for 0.3.0. Guides gain sections on files and structured data, request configuration (--accept, --history-length, --no-wait), A2A extensions, task listing, the full push notification lifecycle (including the receiver's --token and v1.0 payloads), HTTP Basic and OpenID Connect, the rule that credentials only ever reach the configured origin, the real config file locations per platform, and the TUI's streaming, cancel, input-required, attachment, badge, and session behaviour. The CLI reference lists every current flag. The MCP guide and `handler mcp --help` name the thirteen tools the server exposes. Every flag and TOML key was checked against `handler <cmd> --help` and the branch diffs. assets/tui.png is untouched (#109). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
alDuncanson
marked this pull request as ready for review
October 16, 2026 19:26
alDuncanson
force-pushed
the
docs/0.3.0-features
branch
from
October 16, 2026 19:26
94aec61 to
b2114b9
Compare
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
Brings the docs site, README, and two in-code docstrings up to date with everything that landed after v0.2.0 (#98, #111–#118, #120) and with the seven fix branches queued for 0.3.0 (
fix/attachments-dropped,fix/credentials-scoped-to-origin,fix/push-config-get-without-id,fix/push-receiver-v1-payloads,fix/protocol-version-mixed-cards,fix/tui-streaming-widget-collision,chore/widen-uv-build-pin). Every flag and TOML key was checked againsthandler <cmd> --helpand the branch diffs; nothing is documented that the code does not do.Docs-only apart from two docstrings. No behaviour changes.
What changed
docs/guides/messages-tasks.mdx (largest change)
--filelocal inline / URL by reference, 10 MiB inline limit,--data, text optional, how received parts render, integers in data parts), shape the request (--accept,--history-length,--no-wait), request A2A extensions (-e/--extension, required-extension warning), list an agent's tasks (task list,--statuslabels with hyphen tolerance, 100-task page cap, truncation reporting).card get --extendedand how it fails when not offered.message send --push-url/--push-token,notification getwithout--config-id(single-config lookup),notification list,notification remove.--continueis how you answerinput-required.docs/guides/authentication.mdx
--basic-username/--basic-password-env,type = "basic") and OpenID Connect (--oidc-*,type = "oidc", issuer discovery).--bearer-env/--api-key-envoverrides, the IAM identity-token pattern, the HTTPS rule for token/issuer URLs, and thatserver showprints only env var names.docs/guides/servers.mdx
~/Library/Application Support/handler, Linux$XDG_CONFIG_HOME/handler), plus.handler/servers.toml; points atserver validatefor the resolved path.extensions = [...]key.docs/guides/local-servers.mdx
server run push --token, the v1.0 delivery shapes (statusUpdate/artifactUpdate/task/message) and thestatefield in the listing, and an end-to-end test that uses--push-url.docs/guides/tui.mdx
docs/guides/mcp.mdx
set_agent_credentials/clear_agent_credentialsno longer exist); notes per-tool auth arguments,list_taskstruncation, andget_task_notificationlookup.docs/reference/cli.mdx
message send/stream, newtask list,task notification list/removesections,card get --extended,server addBasic/OIDC flags,server run push --token, logging-default note.docs/index.mdx, docs/quickstart.mdx, docs/guides/enterprise-a2a.mdx, README.md
assets/tui.pnguntouched (Retake the README screenshot (shows the removed built-in agent) #109).src/a2a_handler/cli/mcp.py
handler mcp --helplists the real tools instead of two removed ones, and addslist_tasks,list_task_notifications,delete_task_notification.src/a2a_handler/servers.py
$XDG_CONFIG_HOME.Also drafted (not in this PR):
release-notes-0.3.0.mdin the session scratchpad, ready to paste into the GitHub release.Verification
uv run ruff check .,uv run ruff format --check .,uv run ty check: clean.uv run pytest -q: 596 passed (this branch is offmain; the fix branches add their own tests).handler <cmd> --helpon this branch, and--tokenonserver run pushagainst thefix/push-receiver-v1-payloadsdiff.docs/docs.json: all 11 nav pages exist, every page hastitle/descriptionfront matter, code fences are balanced, and all relative links resolve.mintCLI in this environment); the deploy preview on this PR is the real check.Review notes
handler\handlerthere and I did not want to state a path I could not verify on Windows.--token, single-config lookup, origin-bound credentials, protocol version badge).🤖 Generated with Claude Code