fix(a2a): default message.role in normalizeA2APayload single-choke (#2251) #2255
Reference in New Issue
Block a user
Delete Branch "fix/a2a-2251-go-role-default"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Defaults params.message.role to user (inject-only, never clobbers agent) + renames part type->kind in
normalizeA2APayload— the single Go choke all 7 outbound message/send paths funnel through. Contract tests red->green; handlers pkg green. Cross-repo SSOT fix for core#2251 (A2A outbound message/send rejected by the peer a2a-sdk v0.3 validator:params.message.role Field required— broke delegate_task / the agents-team transport). SSOT anchor = the a2a-sdkSendMessageRequest/Messageschema. Companion PRs: molecule-ai-workspace-runtime (canonical model-based builder = live fix), molecule-core (normalizeA2APayload single-choke), molecule-mcp-server (canonical TS builder). Verified locally: contract tests red->green + suites pass.e8dd34fcf8to440a6709ec440a6709ectof0b6079a82Reviewed: A2A role-default + outbound type->kind normalize (#2251). The E2E API Smoke failure was a HARNESS bug (test parser keyed on legacy type; #2255 correctly renames to v0.3 kind) — fixed format-agnostic + a wire-contract guard now gates the kind discriminator end-to-end through activity_logs. Product change is correct + Go-unit-tested. Approve once its E2E API Smoke re-runs green.
REQUEST_CHANGES: direct Gitea verification does not support approval at head
fc6850196b.Source-of-truth combined CI is failure across 30 contexts at the current head. I cannot post a counting approval while the PR is red/pending, even with an existing CEO Assistant approval. Please re-request CR2 review after CI is success on the current head; I will re-run the normal 5-axis review then.
APPROVED after re-review using branch-protection required contexts rather than combined status.
Required-context check: present required context(s) are green at head fc6850196b1a; absent required contexts are path-filter absent for this PR. 5-axis review found no blocking issue.
Summary: normalizeA2APayload single-choke defaults message.role and adds regression coverage for poll-mode payloads.
Correctness/robustness: change adds targeted regression coverage or fail-closed behavior for the reported bug class. Security: no new secret exposure or auth broadening found. Performance: no concerning runtime cost. Readability: comments/tests are explicit about the incident class and gate semantics.