Expand description
The session’s typed event history.
§Why the events are typed rather than a string
The CLI’s record mode replays this history, and a replay that has to parse a message to find out which transition it was is a replay that breaks when somebody rewords a message. Each variant is a fact, and a fact can be matched on.
§Why the version is a String
A protocol’s version is that protocol’s type: a date for MCP, a
Major.Minor for A2A. Storing it as a string keeps this enum free of a
dependency on either, and the engine renders it through Display
on the way in. It is a lossy choice and a deliberate one — the log is for
asking “what happened”, and the log answers that by naming the version
that was agreed, not by being able to compare it.
§Redaction happens on the way out
These events carry the full request id, because the record mode has to correlate a notification with the request that caused it and a redacted id cannot do that. A sink that writes them to a log rather than to a file redacts at that boundary, which is where the redaction belongs — a value that cannot be logged is a value a record cannot hold.
Structs§
- Null
Event Log - An event log that goes nowhere.
Enums§
- Session
Event - One thing that happened to a session.
Traits§
- Event
Log - Where a session’s history goes.