pub struct EventView {
pub actor: Option<String>,
pub created_at: Option<String>,
pub id: Option<String>,
pub kind: Option<String>,
pub payload: Option<Option<Value>>,
pub seq: Option<i32>,
pub session_id: Option<String>,
}Fields§
§actor: Option<String>Actor is who produced the turn. A write that names nobody takes the calling principal, so this is rarely empty in practice.
created_at: Option<String>CreatedAt is when the turn was recorded, RFC 3339 in UTC to the second. Seconds are coarse enough that two turns can share one, which is why Seq and not this is the order.
id: Option<String>ID is the event’s own handle, minted as "evt_" + 32 hex characters. It identifies the turn; Seq is what ORDERS it.
kind: Option<String>Kind is what the turn IS, from a closed six: message (a model turn), tool-call, spawn (a subagent started), log, status, control (a steering command the running surface consumes). Anything else is refused at the write.
payload: Option<Option<Value>>§seq: Option<i32>Seq is the turn’s position in this session’s log: monotonic from 1, assigned by the store inside the insert, and unique PER SESSION rather than globally. It is the cursor a reader resumes from after a reconnect — ask for everything after your last-seen seq.
session_id: Option<String>SessionID is the session this turn belongs to. Carried on every event so a stream frame stands alone — a subscriber watching a whole tree gets turns from several sessions down one connection.