feat(compression): adaptive auto transcript compactor

This commit is contained in:
2025-10-26 00:25:23 +02:00
parent 877ece07be
commit a0868a9b49
13 changed files with 850 additions and 24 deletions

View File

@@ -353,6 +353,26 @@ impl ConversationManager {
id
}
/// Replace the active conversation messages and rebuild internal indexes.
pub fn replace_active_messages(&mut self, mut messages: Vec<Message>) {
let now = std::time::SystemTime::now();
for message in &mut messages {
// Ensure message timestamps are not in the far past when rewired.
message.timestamp = now;
}
self.active.messages = messages;
self.active.updated_at = now;
self.rebuild_index();
self.stream_reset();
}
fn rebuild_index(&mut self) {
self.message_index.clear();
for (idx, message) in self.active.messages.iter().enumerate() {
self.message_index.insert(message.id, idx);
}
}
fn stream_reset(&mut self) {
self.streaming.clear();
}