Skip to content

History: MRTR conversation grouping + modern message vocabulary #1627

Description

@cliffhall

Stack: SDK V2 + New Spec — 4 of 10 (needs era model from card 3).

Teach the History view the new modern-era message vocabulary — most importantly, that one logical operation can span multiple JSON-RPC ids. This is probably the single most valuable new visualization in the whole stack.

Scope

  • MRTR conversation grouping: render resultType (complete | input_required), and group an MRTR conversation as one expandable unit: original call → inputRequests → user answers → retried request with a new id (linked by requestState) → final result. The request/response pairing logic must stop assuming one id per operation.
  • Drive MRTR manually (inputRequired: { autoFulfill: false } + withInputRequired()) so the Inspector keeps its pending-request UX and full visibility, rather than letting the SDK hide the retry loop. Existing usePendingClientRequests panels (sampling/elicitation/roots) are era-agnostic and survive; the semantics shown ("server sent a request" vs. "server returned input_required; answer goes back as a retry") must be accurate per era.
  • Render the new modern frames: server/discover, subscriptions/listen + notifications/subscriptions/acknowledged + subscriptionId tagging.
  • Transcript-classification caveat: the modern probe carries the _meta envelope before era is known — "saw an envelope" ≠ "modern negotiated" when labeling captured traffic.

Key files

clients/web/src/components/screens/HistoryScreen/*, groups/HistoryEntry/*, groups/historyUtils.ts, core/mcp/messageTrackingTransport.ts, pending-request panels under groups/.

Acceptance

  • An MRTR round-trip displays as one grouped, expandable conversation.
  • Modern notifications/discover frames render correctly and are labeled by era.
  • npm run ci green.

Ref: specification/v2_new_spec_impact.md §7.2–7.4, §8.3, §9.2, §9.5(4).

Metadata

Metadata

Assignees

Labels

v2Issues and PRs for v2

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions