Skip to content

docs(a2a): include message id in direct send examples - #235

Closed
FanouZeng-TT wants to merge 1 commit into
Universal-Commerce-Protocol:mainfrom
FanouZeng-TT:docs/a2a-message-id-example
Closed

FanouZeng-TT wants to merge 1 commit into
Universal-Commerce-Protocol:mainfrom
FanouZeng-TT:docs/a2a-message-id-example

Conversation

@FanouZeng-TT

Copy link
Copy Markdown
Contributor

Description

a2a/docs/07-testing-guide.md shows a direct message/send payload whose
params.message only has role and parts:

"message": {
  "role": "user",
  "parts": [{"type": "text", "text": "show me products"}]
}

The locked A2A SDK model requires messageId, so copying that curl body fails at
parameter validation before any agent work starts. The chat client already sends
both messageId: crypto.randomUUID() and kind: "message", so the guide and
frontend overview were out of sync with the working request shape. The frontend
doc also only read status.message.parts, while the app handles the top-level
result.parts shape returned by the business agent.

Fix: add messageId and kind to the documented send payloads, and mirror
the app's response-parts fallback in the frontend guide.

Category (Required)

  • Core Protocol: Protocol specification changes. (Requires Technical Council approval)
  • Governance/Contributing: Governance or contribution process changes. (Requires Governance Council approval)
  • Capability: Capability specification changes. (Requires Maintainer approval)
  • Documentation: Documentation updates. (Requires Maintainer approval)
  • Infrastructure: Build, CI, tooling, or release changes. (Requires DevOps Maintainer approval)
  • Maintenance: Dependency, compatibility, or routine maintenance changes. (Requires DevOps Maintainer approval)
  • SDK: Language-specific SDK updates and releases. (Requires DevOps Maintainer approval)
  • Samples / Conformance: Maintaining samples and the conformance suite. (Requires Maintainer approval)
  • UCP Schema: Changes to the ucp-schema tool. (Requires Maintainer approval)
  • Community Health (.github): Repository-wide health files and configuration. (Requires DevOps Maintainer approval)

Related Issues

N/A

Checklist

  • I have followed the Contributing Guide.
  • I have updated the documentation (if applicable).
  • My changes pass all local linting and formatting checks.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • (For Core/Capability) I have included/updated the relevant JSON schemas.
  • I have regenerated Python Pydantic models by running generate_models.sh under python_sdk.

Screenshots / Logs (if applicable)

$ uv run python - <<'PY'
from a2a.types import Message
Message.model_validate({
    'role': 'user',
    'parts': [{'type': 'text', 'text': 'show me products'}],
    'messageId': '1',
    'kind': 'message',
})
try:
    Message.model_validate({
        'role': 'user',
        'parts': [{'type': 'text', 'text': 'show me products'}],
    })
except Exception as exc:
    assert 'messageId' in str(exc)
else:
    raise SystemExit('missing messageId unexpectedly passed')
PY

$ uvx pre-commit run --all-files
trim trailing whitespace...Passed
fix end of files...Passed
check yaml...Passed
check json...Passed
check for added large files...Passed
detect private key...Passed
check that scripts with shebangs are executable...Passed
check that executables have shebangs...Passed
ruff (legacy alias)...Passed
ruff format...Passed
prettier...Passed
codespell...Passed

$ git diff --check
# no output

🤖 Generated with Claude Code

@damaz91 damaz91 added status:needs-triage Signal that the PR is ready for human triage status:blocked and removed status:needs-triage Signal that the PR is ready for human triage labels Sep 14, 2026
@damaz91

damaz91 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Thank you so much for taking the time to put this together and for your detailed contributions to the A2A sample, @FanouZeng-TT!

We are currently rebuilding the A2A sample from scratch to align with the latest UCP specification and SDKs, and as part of that effort we have placed the existing a2a/ sample into a maintenance freeze (see #255 and #256). Because the legacy a2a/ codebase will be replaced by the new implementation, we are closing open pull requests targeting the current a2a/ directory rather than merging further changes into it.

We really appreciate your engagement with UCP and hope you'll check out and contribute to the new A2A sample once it lands!

@damaz91 damaz91 closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants