refactor: apply rust best practices and fix memory optimizations

- Optimized memory allocation in router.rs by offloading JSON serialization to spawn_blocking and using references.
- Prevented full graph duplication on startup in state.rs index rebuild.
- Eliminated massive String allocations in QueryGraphPathHandler BFS loops.
- Avoided temporary Strings in VisualizeGraphHandler via inline writing.
- Fixed O(N) full-graph deduplication in MergeEntitiesHandler to scale efficiently.
This commit is contained in:
Riz Ashraf committed 2026-09-22 22:01:38 +01:00
1 parent 251757f8fc
commit 37003be620
17 files changed
+399 -198

No files matched your search

+30 -12
View File
@@ -264,24 +264,27 @@ impl McpTool for GenerateStandupReportHandler {
#[cfg(test)]
mod tests {
use super::*;
use tempfile::tempdir;
use serde_json::json;
use tempfile::tempdir;
#[tokio::test]
async fn test_notes_lifecycle() {
let dir = tempdir().unwrap();
let state = Arc::new(MemoryState::new(dir.path().to_str().unwrap()));
let add_handler = AddStickyNoteHandler;
let args = json!({
"content": "Buy milk",
});
let res = add_handler.execute(args, state.clone()).await.unwrap();
assert!(res.contains("Sticky note added"));
let read_handler = ReadStickyNotesHandler;
let res2 = read_handler.execute(json!({}), state.clone()).await.unwrap();
let res2 = read_handler
.execute(json!({}), state.clone())
.await
.unwrap();
assert!(res2.contains("Buy milk"));
let delete_handler = DeleteStickyNoteHandler;
@@ -289,7 +292,10 @@ mod tests {
let res3 = delete_handler.execute(args2, state.clone()).await.unwrap();
assert_eq!(res3, "Sticky note deleted.");
let res4 = read_handler.execute(json!({}), state.clone()).await.unwrap();
let res4 = read_handler
.execute(json!({}), state.clone())
.await
.unwrap();
assert!(!res4.contains("Buy milk"));
}
@@ -297,19 +303,22 @@ mod tests {
async fn test_handoff_and_summaries() {
let dir = tempdir().unwrap();
let state = Arc::new(MemoryState::new(dir.path().to_str().unwrap()));
let handoff_handler = LeaveHandoffMemoHandler;
let args = json!({
"content": "Finished implementing graph tests",
"author": "Antigravity",
"namespace": "global"
});
let res = handoff_handler.execute(args, state.clone()).await.unwrap();
assert_eq!(res, "Handoff memo left");
let read_handoff = ReadHandoffMemosHandler;
let res2 = read_handoff.execute(json!({"namespace": "global"}), state.clone()).await.unwrap();
let res2 = read_handoff
.execute(json!({"namespace": "global"}), state.clone())
.await
.unwrap();
assert!(res2.contains("Finished implementing graph tests"));
let summary_handler = AddSessionSummaryHandler;
@@ -317,11 +326,20 @@ mod tests {
"summary": "Completed a bunch of tests",
"namespace": "global"
});
let res3 = summary_handler.execute(args_sum, state.clone()).await.unwrap();
let res3 = summary_handler
.execute(args_sum, state.clone())
.await
.unwrap();
assert_eq!(res3, "Session summary added");
let standup_handler = GenerateStandupReportHandler;
let res4 = standup_handler.execute(json!({"namespace": "global", "hours_lookback": 24}), state.clone()).await.unwrap();
assert!(res4.len() > 0);
let res4 = standup_handler
.execute(
json!({"namespace": "global", "hours_lookback": 24}),
state.clone(),
)
.await
.unwrap();
assert!(!res4.is_empty());
}
}