pub struct SessionMeta {Show 16 fields
pub session_id: String,
pub file_path: String,
pub provider: String,
pub model: String,
pub slug: String,
pub working_directory: String,
pub created_at: i64,
pub modified_at: i64,
pub message_count: u32,
pub first_user_message: String,
pub file_size_bytes: u64,
pub git_branch: String,
pub total_tokens: u64,
pub subagent_count: u32,
pub identity_id: String,
pub starts_undated: bool,
}Expand description
Lightweight metadata for the session list — extracted without full parsing.
Fields§
§session_id: String§file_path: String§provider: String§model: String§slug: String§working_directory: String§created_at: i64§modified_at: i64§message_count: u32§first_user_message: String§file_size_bytes: u64§git_branch: String§total_tokens: u64§subagent_count: u32§identity_id: StringThe account id (db_accounts.id / the <account_id> path
segment under identities/) this session was discovered under, if
any. Empty for sessions found not under an account’s home (personal
~/.claude, the default <shared>/providers/claude/projects, or
legacy ~/.config/claude-*) — those aren’t attributable to a
specific identity. Lets SessionIndex answer “this agent’s
sessions” in O(sessions for this identity) instead of a full scan;
see docs/specs/SPEC_AGENT_IDENTITY_HISTORY_PERSISTENCE_PROTOCOL_2026_08_16.md
§4.4. An agent’s own id is resolved from this via
db_agent_identity_links (Store::agent_identity_list_for_agent),
not stored here directly — the same account can in principle be
shared, and this field reflects the filesystem fact (which account),
not a specific agent’s claim on it.
starts_undated: boolA conversation record with no timestamp comes before the first dated
one, so created_at (the first timestamp) isn’t when the session
started — a time-window search can’t rule the session out by it.
Trait Implementations§
Source§impl Clone for SessionMeta
impl Clone for SessionMeta
Source§fn clone(&self) -> SessionMeta
fn clone(&self) -> SessionMeta
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SessionMeta
impl Debug for SessionMeta
Source§impl<'de> Deserialize<'de> for SessionMeta
impl<'de> Deserialize<'de> for SessionMeta
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for SessionMeta
impl RefUnwindSafe for SessionMeta
impl Send for SessionMeta
impl Sync for SessionMeta
impl Unpin for SessionMeta
impl UnsafeUnpin for SessionMeta
impl UnwindSafe for SessionMeta
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more