Skip to content

Learning 001: A fixture-only client never meets the real transport ​

  • Date: 2026-10-10
  • Source: system-feedback
  • Work item: issue-3

What happened ​

The web renderer's SSE parser split frames on \n\n. Every test fed it the prototype fixture or in-memory events, and the Playwright suites ran the ?fixture=prototype mode, so the parser was never pointed at the a2a-sdk server, which ends frames with \r\n\r\n. The renderer rendered nothing from a live stream; the first live capture of the demo found it.

Learning ​

A client of a protocol needs at least one test against the real server or a recorded byte stream of it, not only against hand-written events. Fixtures prove the model and the rendering; they cannot prove the wire.

Action ​

The verification plan's UI row now captures the live demo in both renderers. The hand-written parser was then replaced by the official @a2a-js/sdk client at the approver's request, which removes the class of defect rather than one instance. When a layer adds a client of an external SDK's server, its tasks.md entry should name one test that exercises the real transport.