Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Sessions

Session lifecycle operations are protocol-level Op variants (crates/protocol/src/protocol.rs) and are handled in core session handlers (crates/core/src/handlers/session.rs, crates/core/src/handlers/mode.rs).

Session Operations

OperationOpCore behaviorPrimary event
ResumeOp::ResumeSessionLoads messages from persisted rollout and restores session source metadata.Event::SessionResumed
Rewind (conversation only)Op::RewindToTruncates messages to selected user turn; does not restore files.Event::RewindComplete
Undo (conversation + files)Op::UndoToAttempts persistence backtrack with file restore; falls back to message-only rewind on failure.Event::UndoToComplete
ForkOp::ForkSessionTruncates to selected turn, creates a new SessionId, and continues in new session lineage.Event::SessionForked
New sessionOp::NewSessionResets in-memory state and emits fresh SessionReady + AvailableSkills.Event::SessionReady
RenameOp::RenameSessionUpdates active session title.Event::SessionRenamed

TUI Entry Points

From slash commands (crates/tui/src/app/update/commands.rs and crates/tui/src/app/update/modals.rs):

  • /resume opens resume picker and eventually sends Op::ResumeSession.
  • Double-Esc opens transcript picker in backtrack mode and sends Op::RewindTo.
  • /undo opens transcript picker in undo mode and sends Op::UndoTo.
  • /fork opens transcript picker in fork mode and sends Op::ForkSession.
  • /new resets UI state and sends Op::NewSession.
  • /rename opens rename modal and sends Op::RenameSession.

Export

/export and /export --json are TUI-side transcript exports (crates/tui/src/app/update/commands.rs):

  • reads rollout items
  • extracts message history
  • writes session-<id>.md or session-<id>.json in current working directory