pub struct RecentSessionRow {Show 19 fields
pub instance_id: String,
pub instance_name: String,
pub definition_id: String,
pub definition_name: String,
pub provider: String,
pub working_directory: String,
pub identity_id: String,
pub identity_name: String,
pub memory_id: String,
pub memory_name: String,
pub block_id_hint: String,
pub session_id: String,
pub preview: String,
pub node_count: usize,
pub last_active_at: i64,
pub has_snapshot: bool,
pub agent_created_at: i64,
pub started_at: i64,
pub agent_type: String,
}Expand description
One row of the AgentPicker’s “Recent sessions” list. Mirrors
NamedAgentRow but adds preview fields read from the per-block
output.state.json snapshot in filestore. node_count == 0 and an
empty preview mean the snapshot wasn’t readable (the block may
pre-date the persistence flow or have crashed before its first
30s snapshot) — the row still surfaces so the user can reattach.
Fields§
§instance_id: String§instance_name: String§definition_id: String§definition_name: String§provider: String§working_directory: String§identity_id: String§identity_name: String§memory_id: String§memory_name: String§block_id_hint: StringThe pane / block whose filestore zone holds the conversation. Empty when the instance row exists but no SQLite row resolved the block_id (cross-version registry rows). Reattach falls back to the working-directory continuation path in that case.
session_id: StringThe CLI-emitted session id (session_id for Claude/Gemini,
thread_id for Codex) captured during the prior run. Empty
when the row predates the capture, the CLI didn’t emit a
session id, or the instance was created via a path that
doesn’t go through the spawn that captures it. Used by the
picker reattach flow to populate agent:sessionid on the new
block’s meta so the spawned subprocess gets a real
--resume <sid> on the FIRST turn instead of starting a
fresh conversation that re-injects the startup context.
preview: StringSnapshot of the first user message in the conversation (up to 240 chars, newlines collapsed). Empty when the snapshot doesn’t exist or doesn’t contain a user_message node yet.
node_count: usizeTotal nodes.length from the snapshot. 0 when unavailable.
last_active_at: i64Last activity timestamp (filestore modts when the snapshot
exists, otherwise started_at). Drives the sort order.
has_snapshot: boolWhether output.state.json was found in filestore for this
block. False when the snapshot doesn’t exist yet (no preview)
or the block_id_hint was empty.
agent_created_at: i64When the agent definition was first created (ms since epoch). Shown as “Created” in the My Agents card.
started_at: i64When this instance was last launched (ms since epoch). Shown as “Last Launch” in the My Agents card.
agent_type: String“host” or “container” — drives the runtime badge in the My Agents list.
Trait Implementations§
Source§impl Clone for RecentSessionRow
impl Clone for RecentSessionRow
Source§fn clone(&self) -> RecentSessionRow
fn clone(&self) -> RecentSessionRow
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecentSessionRow
impl Debug for RecentSessionRow
Source§impl<'de> Deserialize<'de> for RecentSessionRow
impl<'de> Deserialize<'de> for RecentSessionRow
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 RecentSessionRow
impl RefUnwindSafe for RecentSessionRow
impl Send for RecentSessionRow
impl Sync for RecentSessionRow
impl Unpin for RecentSessionRow
impl UnwindSafe for RecentSessionRow
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> 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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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