Skip to main content

ClaudeRecord

Enum ClaudeRecord 

Source
pub enum ClaudeRecord {
Show 19 variants User { message: Message, meta: RecordMeta, }, Assistant { message: Message, meta: RecordMeta, }, System { subtype: Option<String>, extra: BTreeMap<String, Value>, }, Attachment { extra: BTreeMap<String, Value>, }, FileHistorySnapshot { extra: BTreeMap<String, Value>, }, FileHistoryDelta { extra: BTreeMap<String, Value>, }, AiTitle { extra: BTreeMap<String, Value>, }, PermissionMode { extra: BTreeMap<String, Value>, }, Mode { extra: BTreeMap<String, Value>, }, LastPrompt { extra: BTreeMap<String, Value>, }, QueueOperation { extra: BTreeMap<String, Value>, }, PrLink { extra: BTreeMap<String, Value>, }, FrameLink { extra: BTreeMap<String, Value>, }, AgentName { extra: BTreeMap<String, Value>, }, Started { extra: BTreeMap<String, Value>, }, Result { extra: BTreeMap<String, Value>, }, WorktreeState { extra: BTreeMap<String, Value>, }, ForkContextRef { extra: BTreeMap<String, Value>, }, Unknown,
}
Expand description

One line of a Claude Code transcript.

Variants§

§

User

A user turn (plain text, or an array of content blocks incl. tool results).

Fields

§message: Message

The message envelope.

§meta: RecordMeta

Conversation-graph links and metadata.

§

Assistant

An assistant turn (text, thinking, and/or tool calls).

Fields

§message: Message

The message envelope.

§meta: RecordMeta

Conversation-graph links and metadata.

§

System

A system event (subtypes: compact_boundary, turn_duration, api_error, away_summary, stop_hook_summary, …).

Fields

§subtype: Option<String>

The event subtype.

§extra: BTreeMap<String, Value>

Anything else.

§

Attachment

An attachment record (pasted/added files, images, command output).

Fields

§extra: BTreeMap<String, Value>

Anything (shape varies widely).

§

FileHistorySnapshot

A file-state snapshot enabling edit undo.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

FileHistoryDelta

The per-file half of the same edit-undo state: one record per file touched by a turn, pointing back at the ClaudeRecord::FileHistorySnapshot it belongs to (snapshotMessageId) and naming the tracked path and its backup (trackingPath, backup). Claude Code began emitting these on 2026-07-25; before that a snapshot carried the whole set. Like its sibling it is a marker for /rewind, not conversation, so it is modeled generically — the point is that it stops landing in the anonymous ClaudeRecord::Unknown bucket.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

AiTitle

Generated conversation title.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

PermissionMode

Permission-mode marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

Mode

Mode marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

LastPrompt

The last typed prompt (UI restore).

Fields

§extra: BTreeMap<String, Value>

Anything.

§

QueueOperation

Prompt-queue operation (UI).

Fields

§extra: BTreeMap<String, Value>

Anything.

PR link metadata.

Fields

§extra: BTreeMap<String, Value>

Anything.

Claude-hosted HTML frame link metadata (path + frameUrl). This is session/UI state rather than a conversational turn, analogous to ClaudeRecord::PrLink, but remains explicitly typed so audits name its intentional cross-format residue instead of reporting an unknown record discriminant.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

AgentName

Subagent name marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

Started

Subagent task start marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

Result

Subagent task result marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

WorktreeState

Git worktree state marker.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

ForkContextRef

PARITY-10 (provenance P010): a lineage/provenance marker linking this session to the conversation context it was forked from (e.g. Claude Code’s --fork-session / rewind-and-branch flow). Extremely rare in real corpora (observed 5 times in a ~12,300-file, ~1.3M-record reference corpus) and its exact field shape is unconfirmed by any sample this crate has seen — modeled generically (like ClaudeRecord::WorktreeState/ClaudeRecord::AgentName) so every field it carries, whatever they turn out to be, is captured in extra rather than silently landing in the anonymous ClaudeRecord::Unknown bucket.

Fields

§extra: BTreeMap<String, Value>

Anything.

§

Unknown

Any record type we do not model yet.

Implementations§

Source§

impl ClaudeRecord

Source

pub fn tag(&self) -> Option<&'static str>

The static discriminant name, or None for ClaudeRecord::Unknown.

Trait Implementations§

Source§

impl Clone for ClaudeRecord

Source§

fn clone(&self) -> ClaudeRecord

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClaudeRecord

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ClaudeRecord

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<ClaudeRecord, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more