LiveEntries

works.iterative.claude.core.log.LiveEntries
object LiveEntries

A session's live stream, written as the entries its transcript will hold.

A page reads a conversation from the transcript, and a transcript is only what the CLI has finished writing down. The same conversation is also coming past on the process's own stream, ahead of the file — so this puts it in the transcript's shape, and everything downstream (the reader, the rendering, the follow) stays one code path with one encoding.

That is the whole point: it does not render, and there is no second way for a row to be drawn. A live entry and the file's entry for the same turn produce the same row, so a page that has been shown the live one and then re-reads the file sees nothing move.

Two kinds of message carry conversation and become entries. Everything else on the stream — the session's own bookkeeping, keep-alives, control replies, anything unparsed — is not a turn and yields nothing, the same as the bookkeeping lines a transcript file holds.

The end-of-turn envelope is the exception, and only when the turn ended badly. A turn that dies has no words to write down, so the transcript stops mid-conversation and says nothing about why; the envelope is the only account of the ending anyone gets, and a reader who is not shown it is left waiting for an answer that is never coming.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def of(message: Message, sessionId: SessionId, at: Moment): List[ConversationLogEntry]

The entries one live message stands for: one, or none.

The entries one live message stands for: one, or none.

Value parameters

at

when this was heard. The vendor timestamps the line when it writes it; heard-at is the closest thing available before that, and it is what the row's clock shows either way.

sessionId

the session being followed, which the file's own entries carry too

Attributes