pub struct Session {
pub metadata: SessionMetadata,
pub full_messages: Vec<Message>,
pub compressed_messages: Vec<Message>,
pub message_summaries: Vec<MessageSummary>,
pub messages: Vec<Message>,
}Expand description
Full session data including messages.
Fields§
§metadata: SessionMetadata§full_messages: Vec<Message>Full message history for display (TUI shows this).
compressed_messages: Vec<Message>Compressed messages for API requests (Agent uses this). If empty, use full_messages (no compression happened).
message_summaries: Vec<MessageSummary>Summaries of compressed messages (for TUI history view).
messages: Vec<Message>Legacy field - migrated to full_messages on load.
Implementations§
Source§impl Session
impl Session
Sourcepub fn from_messages(
messages: Vec<Message>,
project_path: Option<&Path>,
) -> Self
pub fn from_messages( messages: Vec<Message>, project_path: Option<&Path>, ) -> Self
Create a session from existing messages.
Sourcepub fn api_messages(&self) -> &[Message]
pub fn api_messages(&self) -> &[Message]
Get messages for API requests (use compressed if available).
Sourcepub fn display_messages(&self) -> &[Message]
pub fn display_messages(&self) -> &[Message]
Get messages for display (always full messages).
Sourcepub fn update_stats(&mut self, last_input_tokens: u32, total_output_tokens: u64)
pub fn update_stats(&mut self, last_input_tokens: u32, total_output_tokens: u64)
Update metadata after a turn.
Sourcepub fn set_compressed(
&mut self,
compressed: Vec<Message>,
summaries: Vec<MessageSummary>,
)
pub fn set_compressed( &mut self, compressed: Vec<Message>, summaries: Vec<MessageSummary>, )
Set compressed messages (called after compression).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnsafeUnpin for Session
impl UnwindSafe for Session
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
Mutably borrows from an owned value. Read more