pub struct ConversationHistory {
pub id: String,
pub title: String,
pub messages: Vec<ChatMessage>,
pub model_name: String,
pub project_path: String,
pub created_at: DateTime<Local>,
pub updated_at: DateTime<Local>,
pub total_tokens: Option<usize>,
pub compactions: Vec<CompactionRecord>,
pub input_history: VecDeque<String>,
}Expand description
A complete conversation history
Fields§
§id: String§title: String§messages: Vec<ChatMessage>§model_name: String§project_path: String§created_at: DateTime<Local>§updated_at: DateTime<Local>§total_tokens: Option<usize>§compactions: Vec<CompactionRecord>Metadata for context compactions performed in this conversation.
input_history: VecDeque<String>History of user input prompts for navigation (up/down arrows)
Implementations§
Source§impl ConversationHistory
impl ConversationHistory
Sourcepub fn add_messages(&mut self, messages: &[ChatMessage])
pub fn add_messages(&mut self, messages: &[ChatMessage])
Add messages to the conversation
Sourcepub fn replace_messages(&mut self, messages: Vec<ChatMessage>)
pub fn replace_messages(&mut self, messages: Vec<ChatMessage>)
Replace the model-visible message log without deriving a new title. Used by context compaction: the original title still describes the session better than the generated checkpoint.
Sourcepub fn add_compaction(&mut self, record: CompactionRecord)
pub fn add_compaction(&mut self, record: CompactionRecord)
Record a completed context compaction.
Sourcepub fn add_to_input_history(&mut self, input: String)
pub fn add_to_input_history(&mut self, input: String)
Add input to history (with deduplication of consecutive identical inputs)
Trait Implementations§
Source§impl Clone for ConversationHistory
impl Clone for ConversationHistory
Source§fn clone(&self) -> ConversationHistory
fn clone(&self) -> ConversationHistory
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConversationHistory
impl Debug for ConversationHistory
Source§impl<'de> Deserialize<'de> for ConversationHistory
impl<'de> Deserialize<'de> for ConversationHistory
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 ConversationHistory
impl RefUnwindSafe for ConversationHistory
impl Send for ConversationHistory
impl Sync for ConversationHistory
impl Unpin for ConversationHistory
impl UnsafeUnpin for ConversationHistory
impl UnwindSafe for ConversationHistory
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
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>,
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>
Converts
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>
Converts
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