pub struct SessionManager { /* private fields */ }Expand description
Manages session persistence, indexing, and resume.
Implementations§
Source§impl SessionManager
impl SessionManager
Sourcepub fn new(workspace: &Path) -> Result<Self, MemoryError>
pub fn new(workspace: &Path) -> Result<Self, MemoryError>
Create a new session manager for the given workspace.
Sourcepub fn with_dir(sessions_dir: PathBuf) -> Result<Self, MemoryError>
pub fn with_dir(sessions_dir: PathBuf) -> Result<Self, MemoryError>
Create a new session manager with a custom sessions directory.
Sourcepub fn with_encryption(self, encryptor: SessionEncryptor) -> Self
pub fn with_encryption(self, encryptor: SessionEncryptor) -> Self
Enable encryption for session data using the provided encryptor.
Sourcepub fn start_session(&mut self, name: Option<&str>) -> SessionEntry
pub fn start_session(&mut self, name: Option<&str>) -> SessionEntry
Start a new session with an optional name.
Sourcepub fn save_checkpoint(
&mut self,
memory: &MemorySystem,
total_tokens: usize,
) -> Result<(), MemoryError>
pub fn save_checkpoint( &mut self, memory: &MemorySystem, total_tokens: usize, ) -> Result<(), MemoryError>
Save the current state of a memory system to the active session.
Sourcepub fn complete_session(
&mut self,
summary: Option<String>,
) -> Result<(), MemoryError>
pub fn complete_session( &mut self, summary: Option<String>, ) -> Result<(), MemoryError>
Mark the active session as completed.
Sourcepub fn resume_session(
&mut self,
query: &str,
) -> Result<(MemorySystem, String), MemoryError>
pub fn resume_session( &mut self, query: &str, ) -> Result<(MemorySystem, String), MemoryError>
Resume a session by name or ID. Returns the loaded MemorySystem and a continuation prompt to inject into the agent.
Sourcepub fn resume_latest(&mut self) -> Result<(MemorySystem, String), MemoryError>
pub fn resume_latest(&mut self) -> Result<(MemorySystem, String), MemoryError>
Resume the most recent session.
Sourcepub fn list_sessions(&self, limit: usize) -> Vec<&SessionEntry>
pub fn list_sessions(&self, limit: usize) -> Vec<&SessionEntry>
List recent sessions.
Sourcepub fn rename_session(
&mut self,
query: &str,
new_name: &str,
) -> Result<(), MemoryError>
pub fn rename_session( &mut self, query: &str, new_name: &str, ) -> Result<(), MemoryError>
Rename a session.
Sourcepub fn delete_session(&mut self, query: &str) -> Result<String, MemoryError>
pub fn delete_session(&mut self, query: &str) -> Result<String, MemoryError>
Delete a session (removes data file and index entry).
Sourcepub fn active_session_id(&self) -> Option<Uuid>
pub fn active_session_id(&self) -> Option<Uuid>
Get the active session ID.
Sourcepub fn sessions_dir(&self) -> &Path
pub fn sessions_dir(&self) -> &Path
Get the sessions directory path.
Sourcepub fn index(&self) -> &SessionIndex
pub fn index(&self) -> &SessionIndex
Get a reference to the session index.
Sourcepub fn find_incomplete_sessions(&self) -> Vec<&SessionEntry>
pub fn find_incomplete_sessions(&self) -> Vec<&SessionEntry>
Find incomplete sessions (not completed, with at least one message). Useful for crash recovery — shows sessions that were interrupted.
Sourcepub fn search(&self, query: &str) -> Vec<&SessionEntry>
pub fn search(&self, query: &str) -> Vec<&SessionEntry>
Search sessions by matching query against name, goal, summary, and tags. Returns empty vec for empty/whitespace-only queries.
Sourcepub fn filter_by_tag(&self, tag: &str) -> Vec<&SessionEntry>
pub fn filter_by_tag(&self, tag: &str) -> Vec<&SessionEntry>
Filter sessions by tag.
Sourcepub fn tag_session(&mut self, query: &str, tag: &str) -> Result<(), MemoryError>
pub fn tag_session(&mut self, query: &str, tag: &str) -> Result<(), MemoryError>
Add a tag to a session.
Auto Trait Implementations§
impl Freeze for SessionManager
impl RefUnwindSafe for SessionManager
impl Send for SessionManager
impl Sync for SessionManager
impl Unpin for SessionManager
impl UnsafeUnpin for SessionManager
impl UnwindSafe for SessionManager
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);