micro--go-micro
7f6481d2af
The A2A gateway interoperated go-micro-to-go-micro but a real external client (ADK, LangGraph, a2a-SDK) would not: - Discovery: served the Agent Card at /.well-known/agent.json, but A2A 0.3.0 discovers it at /.well-known/agent-card.json. Serve both, with agent-card.json canonical and agent.json a legacy alias — per-agent, per-skill, and at the single-agent top level. - message/stream emitted repeated full Task snapshots. External SSE clients parse by `kind` and stop on `final:true`; a Task snapshot has neither, so they never terminate. Emit spec-shaped TaskArtifactUpdate (append) chunks and close with a TaskStatusUpdate final:true. The non-streaming and resubscribe paths also close with a terminal marker. - A streaming error set both `result` and `error` in one JSON-RPC response (strict clients reject it). Emit a failed status-update instead — never result and error together. Tests assert the canonical card path, the status-update/artifact-update event shapes ending in final:true, and that no response carries both result and error. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CmdEY7pYmV5zzwCjNJ4ykL