feat(web): render outbound A2A cards - #24
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Posted by an AI agent on Jackson's behalf Live UI evidenceCaptured at PR #24 head
The honest degraded state is visible: the no-exchange sent card and plain inbound card have no role-claiming badge. No quote strip or same-thread link is shown because exchange pairing remains unavailable at this seam (#128/#129); no inferred pairing was added. |
Posted by an AI agent on Jackson's behalf
Problem statement
Thread A2A deliveries were rendered as protocol-heavy blocks, while outbound sends were not rendered as cards. The shipped treatment also lacked the final visual hierarchy for direction, state, relative time, and long message bodies.
Solution
Extend the J5-owned renderer with the approved TA6–TA10 card treatment and add one narrow, authorized
MessagesTimelinedelegate for completed outboundsend_messagetool entries. All matching, parsing, validation, and fallback behavior stays in the J5 component.Behavior changes
Change list
ThreadA2ARendererand focused tests for received and outbound cards.MessagesTimelinedelegate/fallback seam.Testing
pnpm --filter @t3tools/web typecheck: passed (Node 26.8 engine warning against requested Node 24.13.1).git diff --check, and lint: passed.1e9e4787d438bf4b4b8e3851d704c67e30b6f7f7,--committed --base j5/main, no credits: completed, 4 files reviewed, no findings. The tool reported stale localj5/mainand used verifiedorigin/j5/main(74a5d6354) as the comparison base.c51fd30880028bbf3f7c9e99c7a642b835e66651: collapsed cards, expanded cards.README.md,manifest.json, andSHA256SUMSare co-published in that capture directory.Deferrals, follow-ups & related work
exchange_idbut not ask/reply role, and the paired ask text is behind the outbound seam; B7 therefore does not infer quote or resolved pairing.Expects replybecause the role is absent; B7 preserves truthful degradation rather than rewriting inherited semantics.Awaiting replylabel can remain after a peer reply when role/pairing is unavailable; this is explicitly named here.failureMode: returnsend payload has no dedicated negative-control test; the guard currently rejects it by requiring a message id.