No longer instantiate recently opened agent threads on startup (#32285)
This was causing a lot of work on startup, particularly due to instantiating edit tool cards. The minor downside is that now these threads don't open quite as fast. Includes a few other improvements: * On text thread rename, now immediately updates the metadata for display in the UI instead of waiting for reload. * On text thread rename, first renames the file before writing. Before if the file removal failed you'd end up with a duplicate. * Now only stores text thread file names instead of full paths. This is more concise and allows for the app data dir changing location. * Renames `ThreadStore::unordered_threads` to `ThreadStore::reverse_chronological_threads` (and removes the old one that sorted), since the recent change to use a SQL database queries them in that order. * Removes `ContextStore::reverse_chronological_contexts` since it was only used in one location where it does sorting anyway - no need to sort twice. * `SavedContextMetadata::title` is now `SharedString` instead of `String`. Release Notes: - Fixed regression in startup performance by not deserializing and instantiating recently opened agent threads.
This commit is contained in:
parent
1552198b55
commit
cabd22f36b
8 changed files with 299 additions and 261 deletions
|
@ -393,16 +393,11 @@ impl ThreadStore {
|
|||
self.threads.len()
|
||||
}
|
||||
|
||||
pub fn unordered_threads(&self) -> impl Iterator<Item = &SerializedThreadMetadata> {
|
||||
pub fn reverse_chronological_threads(&self) -> impl Iterator<Item = &SerializedThreadMetadata> {
|
||||
// ordering is from "ORDER BY" in `list_threads`
|
||||
self.threads.iter()
|
||||
}
|
||||
|
||||
pub fn reverse_chronological_threads(&self) -> Vec<SerializedThreadMetadata> {
|
||||
let mut threads = self.threads.iter().cloned().collect::<Vec<_>>();
|
||||
threads.sort_unstable_by_key(|thread| std::cmp::Reverse(thread.updated_at));
|
||||
threads
|
||||
}
|
||||
|
||||
pub fn create_thread(&mut self, cx: &mut Context<Self>) -> Entity<Thread> {
|
||||
cx.new(|cx| {
|
||||
Thread::new(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue