Repository navigation
[Automated] Draft docs (kagent): feat: a2a task push notifications - #585
Merged
Merged
Conversation
Signed-off-by: GitHub Action <action@github.com>
The draft presented JWT signing as unconditional, but the chart leaves it off: `controller.push.signing.secretName` defaults to empty, the worker attaches an `Authorization` header only when a signer exists, and the controller serves 404 at `/.well-known/jwks.json` until one is configured. A receiver following the draft would have waited for a token that kagent never sends. Say that signing is opt-in, name the Secret and the PKCS#8 Ed25519 key it holds, and leave key rotation with the operator. The draft also told readers to publish the controller or the UI for JWKS. Only the controller serves that path; `ui.externalUrl` supplies the issuer string alone, so an issuer that falls back to the UI names a host with no key behind it. Set the issuer to a URL that reaches the controller. The remaining changes are smaller. The security prose moved under its own heading rather than trailing the steps. The methods table intro no longer claims the example calls the three `TaskPushNotificationConfig` methods, and names `GetTaskPushNotificationConfig` alongside its siblings. The section says why it uses the CLI on a page that is otherwise grpcurl. A `PUSH_CALLBACK_ID` export that no later step read is gone. In the UI page, the Task notifications paragraph no longer splits the checkpoint bullets from the checkpoint note, and it says what a new callback does and does not receive without attaching the qualifier to the wrong noun. Anchors and the cross-page link verified against a local 1.x build. The steps remain unrun; no cluster. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Author
Docs preview
Both are uploaded Worker versions and serve no production traffic. |
"...including `ListTasks` and `GetTaskPushNotificationConfig`, which reads one callback by ID" put a relative clause after a coordinated pair. The singular verb was correct, because only `GetTaskPushNotificationConfig` reads a callback, but the clause still looked like it reached both names, so the sentence read as a subject-verb disagreement. Two sentences give the clause one antecedent and remove the question. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Signed-off-by: Rachael Graham <rachael.graham@solo.io>
Rachael-Graham
approved these changes
Oct 12, 2026
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.
kagent-dev/kagent#3036 — feat: a2a task push notifications
Docs versions:
1.x(first shipped in v1.0.0-alpha10)What changes for users: A2A clients can register callback URLs for a task, either before dispatch or while the task is still active. kagent queues callbacks for input-required, auth-required, and terminal states, signs each delivery with a short-lived JWT, and requires HTTPS public destinations unless the operator enables the
controller.push.allowHTTPorcontroller.push.allowPrivateNetworksexceptions.What the docs now say: The A2A example now advertises
pushNotifications: true, lists the task push methods, and explains how to register, list, and delete callbacks with the CLI. The UI guide now names the Task notifications control and links to the callback delivery and JWT verification details.Not verified: No cluster; the steps are unrun.
How
kagent-3036was drafted, and what was not verifiedPlan, and what changed it
GetTask,taskId, and agent card capabilities.generated_reference_covers, andreference/helm.mdandreference/env-vars.mdare generated, so the prose belongs on the A2A and UI pages.a2a-agents.mdandlaunch-ui.md, and wrote a feature release note.Why a documentation change is necessary
The pull request changes the agent card from push notifications unsupported to supported, adds callback management through A2A, the CLI, and the UI, and adds Helm values for callback delivery policy and JWT signing. The A2A example showed
pushNotifications: falseand did not explain how a client registers callbacks or how receivers verify deliveries. The UI guide described the conversation controls without the new Task notifications control.What changed on disk
docs-site/content/kagent/1.x/examples/a2a-agents.md— Updates the agent card output, adds task push methods, and documents registering, listing, deleting, and securing callbacks.docs-site/content/kagent/1.x/observability/launch-ui.md— Adds the Task notifications control to the conversation UI description and links to the callback workflow.How to verify this change
controller.push.signing.issuer=https://kagent.exampleandui.externalUrl=https://kagent.example.https://kagent.example/.well-known/jwks.json; the response contains one Ed25519 signing key.kagent agent invoke --session $SESSION_ID --task "Run the long task." --push-url https://receiver.example/callback -o json.statusUpdate.taskIdand anAuthorization: Bearer <JWT>header whoseaudis the callback URL and whosetaskIdclaim matches the update.kagent agent session push list $SESSION_ID $TASK_ID; the callback ID and URL are listed for the active task.What was not verified
docs-site/content/kagent/1.x/examples/a2a-agents.md,"pushNotifications": trueHow the pages were chosen (triage report)
Draft a documentation change
kagent-dev/kagent#3036 — feat: a2a task push notifications
kagent-dev/websitedocs/architecture/README.mddocs/architecture/a2a-gateway.mddocs/architecture/a2a-push-notifications.mddocs/architecture/a2a-transports.mddocs/env.mdgo/api/client/a2a.goDraft branch:
pr-tracker-draft-kagent-3036Important
The test suite has not run on this pull request. It was opened by
github-actions[bot], and GitHub does not start workflows for pull requests opened with the repository's own token. This repository's checks are held asaction_requireduntil somebody presses Approve and run on the Checks tab. Checks that come from GitHub Apps rather than Actions, such as DCO, run on their own.Please approve the checks before reviewing the content: an absence of failures here means the tests have not run, not that they passed.