Highest sequence delivered for a message so far. 0 when nothing has been read.
Drop a message's cursor. Call when a message reaches a terminal state, so the map does not grow without bound across a long session.
Drop every cursor.
Read everything that has landed for a message since the last call.
The cursor advances only on a successful read, so a failed call costs a repeat rather than a gap. Never throws — this is the recovery path, and a recovery path that throws takes down the reconciliation that called it.
The message to tail.
Tracks a read cursor per conversation detail and tails durable run events from it.
Usually reached via
ConversationsRuntime.Instance.Tail.