Fix MCP hangs and add logging
This commit is contained in:
1 parent
75748f0e21
commit
f2582b58be
18 files changed
+1034
-39
No files matched your search
+12
-9
@@ -192,12 +192,12 @@ impl MemoryState {
|
||||
|
||||
pub fn rebuild_index(&self) {
|
||||
if let Ok(new_idx) = MemoryIndex::new(&self.base_dir) {
|
||||
let session = self.session_graph.read().unwrap();
|
||||
let cache = self.master_cache.read().unwrap();
|
||||
let session_clone = { self.session_graph.read().unwrap().clone() };
|
||||
let cache_clone = { self.master_cache.read().unwrap().0.clone() };
|
||||
|
||||
// Index entities that are only in master, or merge if they are in both
|
||||
for (name, e) in &cache.0.entities {
|
||||
if let Some(session_e) = session.entities.get(name) {
|
||||
for (name, e) in &cache_clone.entities {
|
||||
if let Some(session_e) = session_clone.entities.get(name) {
|
||||
let mut merged_e = e.clone();
|
||||
for obs in &session_e.observations {
|
||||
if !merged_e.observations.contains(obs) {
|
||||
@@ -210,19 +210,22 @@ impl MemoryState {
|
||||
}
|
||||
}
|
||||
// Index entities that are only in session
|
||||
for (name, session_e) in &session.entities {
|
||||
if !cache.0.entities.contains_key(name) {
|
||||
for (name, session_e) in &session_clone.entities {
|
||||
if !cache_clone.entities.contains_key(name) {
|
||||
let _ = new_idx.index_entity(session_e);
|
||||
}
|
||||
}
|
||||
|
||||
for t in self.tasks.read() {
|
||||
let tasks = self.tasks.read();
|
||||
for t in tasks {
|
||||
let _ = new_idx.index_task(&t);
|
||||
}
|
||||
for s in self.snippets.read() {
|
||||
let snippets = self.snippets.read();
|
||||
for s in snippets {
|
||||
let _ = new_idx.index_snippet(&s);
|
||||
}
|
||||
for a in self.adrs.read() {
|
||||
let adrs = self.adrs.read();
|
||||
for a in adrs {
|
||||
let _ = new_idx.index_adr(&a);
|
||||
}
|
||||
let _ = new_idx.commit();
|
||||
|
||||
Reference in new issue
Block a user