EDIT · ROUTE · INSPECT
Conversation identity: inspect routed histories
Edit message envelopes and see exactly which conversation stores each message.
Edit the request data
Exact current operation
Inspect stored state, not acceptance alone
Six fictional envelopes alternate between case-A and case-B. The text describes two different journeys. Every stored message updates the selected context history, and its reply includes the accumulated text from that context. The expectedContext field is fixture ground truth used to count misrouting; it is not a trusted routing field or a proposed production wire format. The receiver routes by contextId. A request can therefore be accepted while its content ends up in the wrong history.
Control routing and replay
Missing context policy either rejects an envelope without contextId or routes it to the shared unassigned bucket. Remove context IDs deletes that field from messages three and four after parsing your editor text. It does not change the expected context. Replay the first message appends a copy of the opening envelope. Deduplicate by context and message ID suppresses a replay with the same text but rejects a repeated identity carrying different text. Disabling deduplication stores a repeated message again. Deduplication is scoped to a context; reusing the same message ID in another context does not hit the same receipt.
Try a visible contamination case
Enable removal of context IDs and choose the shared default policy. At the end, unassigned contains Travel in April and Travel in June together even though their intended contexts differ. Switch to rejection: those messages are absent from every history and the rejected count increases. Restore complete IDs and replay the first message, comparing deduplication on and off. Edit a message in the JSON source and inspect how the actual remembered text changes. For a conflict case, append a copy with the same messageId and contextId but different text; rejection must leave the earlier stored value unchanged.
Read the inspector and the limits
Load example replaces the editor with the six-message baseline while retaining policy choices. The editor accepts one through twenty-four messages and reports malformed JSON or invalid envelope fields without executing them. Play reveals operations over sixty inspection seconds; Pause, Next operation, Restart, Speed and the timeline let you inspect any stage. The canvas shows the first three contexts, while the text inspector includes all contexts and exact replies. Settings build a new deterministic experiment. There is no model inference, tenant authorization, cryptographic identity, durable storage, conversation summarization or full A2A schema validation. The unassigned bucket is an explicit bad policy to investigate, not a recommended recovery behavior.