chore: fix clippy warnings and run rustfmt
This commit is contained in:
1 parent
fecd8bf33f
commit
3765e6b05d
21 files changed
+420
-369
No files matched your search
+94
-97
@@ -105,109 +105,106 @@ async fn trigger_autonomous_review(path: &Path, state: Arc<MemoryState>) {
|
||||
// ADR-0109: Incremental Background AST Indexing & Differential Graph Updates
|
||||
let ext = path.extension().and_then(|e| e.to_str()).unwrap_or("");
|
||||
if matches!(ext, "rs" | "ts" | "js" | "py" | "go" | "java" | "c" | "cpp")
|
||||
&& let Ok(content) = std::fs::read_to_string(path) {
|
||||
let language = match ext {
|
||||
"rs" => Some(tree_sitter_rust::LANGUAGE),
|
||||
"ts" | "js" => Some(tree_sitter_typescript::LANGUAGE_TYPESCRIPT),
|
||||
"py" => Some(tree_sitter_python::LANGUAGE),
|
||||
"java" => Some(tree_sitter_java::LANGUAGE),
|
||||
"c" => Some(tree_sitter_c::LANGUAGE),
|
||||
"cpp" => Some(tree_sitter_cpp::LANGUAGE),
|
||||
"go" => Some(tree_sitter_go::LANGUAGE),
|
||||
_ => None,
|
||||
};
|
||||
&& let Ok(content) = std::fs::read_to_string(path)
|
||||
{
|
||||
let language = match ext {
|
||||
"rs" => Some(tree_sitter_rust::LANGUAGE),
|
||||
"ts" | "js" => Some(tree_sitter_typescript::LANGUAGE_TYPESCRIPT),
|
||||
"py" => Some(tree_sitter_python::LANGUAGE),
|
||||
"java" => Some(tree_sitter_java::LANGUAGE),
|
||||
"c" => Some(tree_sitter_c::LANGUAGE),
|
||||
"cpp" => Some(tree_sitter_cpp::LANGUAGE),
|
||||
"go" => Some(tree_sitter_go::LANGUAGE),
|
||||
_ => None,
|
||||
};
|
||||
|
||||
if let Some(lang) = language {
|
||||
let mut parser = tree_sitter::Parser::new();
|
||||
if parser.set_language(&lang.into()).is_ok()
|
||||
&& let Some(tree) = parser.parse(&content, None) {
|
||||
let mut chunks = Vec::new();
|
||||
crate::indexer::extract_chunks(
|
||||
tree.root_node(),
|
||||
&content,
|
||||
&mut chunks,
|
||||
ext,
|
||||
if let Some(lang) = language {
|
||||
let mut parser = tree_sitter::Parser::new();
|
||||
if parser.set_language(&lang.into()).is_ok()
|
||||
&& let Some(tree) = parser.parse(&content, None)
|
||||
{
|
||||
let mut chunks = Vec::new();
|
||||
crate::indexer::extract_chunks(tree.root_node(), &content, &mut chunks, ext);
|
||||
let file_str = path.to_string_lossy().to_string();
|
||||
let now = std::time::SystemTime::now()
|
||||
.duration_since(std::time::UNIX_EPOCH)
|
||||
.unwrap_or_default()
|
||||
.as_secs();
|
||||
|
||||
let chunks_count = chunks.len();
|
||||
let file_str_clone = file_str.clone();
|
||||
state.modify_graph(|g| {
|
||||
// Ensure File entity exists
|
||||
g.entities
|
||||
.entry(file_str.clone())
|
||||
.or_insert_with(|| crate::models::Entity {
|
||||
name: file_str.clone(),
|
||||
entity_type: "File".to_string(),
|
||||
namespace: "global".to_string(),
|
||||
file_path: Some(file_str.clone()),
|
||||
created_at: Some(now),
|
||||
updated_at: Some(now),
|
||||
..Default::default()
|
||||
});
|
||||
|
||||
for (chunk_name, chunk_code, chunk_desc) in chunks {
|
||||
let symbol_name = format!("{}::{}", file_str, chunk_name);
|
||||
let symbol_type = if chunk_desc.contains("struct") {
|
||||
"DataStructure".to_string()
|
||||
} else {
|
||||
"McpTool".to_string()
|
||||
};
|
||||
|
||||
g.entities.insert(
|
||||
symbol_name.clone(),
|
||||
crate::models::Entity {
|
||||
name: symbol_name.clone(),
|
||||
entity_type: symbol_type,
|
||||
observations: vec![format!(
|
||||
"AST definition: {} chars",
|
||||
chunk_code.len()
|
||||
)],
|
||||
namespace: "global".to_string(),
|
||||
file_path: Some(file_str.clone()),
|
||||
created_at: Some(now),
|
||||
updated_at: Some(now),
|
||||
..Default::default()
|
||||
},
|
||||
);
|
||||
let file_str = path.to_string_lossy().to_string();
|
||||
let now = std::time::SystemTime::now()
|
||||
.duration_since(std::time::UNIX_EPOCH)
|
||||
.unwrap_or_default()
|
||||
.as_secs();
|
||||
|
||||
let chunks_count = chunks.len();
|
||||
let file_str_clone = file_str.clone();
|
||||
state.modify_graph(|g| {
|
||||
// Ensure File entity exists
|
||||
g.entities.entry(file_str.clone()).or_insert_with(|| {
|
||||
crate::models::Entity {
|
||||
name: file_str.clone(),
|
||||
entity_type: "File".to_string(),
|
||||
namespace: "global".to_string(),
|
||||
file_path: Some(file_str.clone()),
|
||||
created_at: Some(now),
|
||||
updated_at: Some(now),
|
||||
..Default::default()
|
||||
}
|
||||
});
|
||||
|
||||
for (chunk_name, chunk_code, chunk_desc) in chunks {
|
||||
let symbol_name = format!("{}::{}", file_str, chunk_name);
|
||||
let symbol_type = if chunk_desc.contains("struct") {
|
||||
"DataStructure".to_string()
|
||||
} else {
|
||||
"McpTool".to_string()
|
||||
};
|
||||
|
||||
g.entities.insert(
|
||||
symbol_name.clone(),
|
||||
crate::models::Entity {
|
||||
name: symbol_name.clone(),
|
||||
entity_type: symbol_type,
|
||||
observations: vec![format!(
|
||||
"AST definition: {} chars",
|
||||
chunk_code.len()
|
||||
)],
|
||||
namespace: "global".to_string(),
|
||||
file_path: Some(file_str.clone()),
|
||||
created_at: Some(now),
|
||||
updated_at: Some(now),
|
||||
..Default::default()
|
||||
},
|
||||
);
|
||||
|
||||
let rel = crate::models::Relation {
|
||||
from: file_str.clone(),
|
||||
to: symbol_name,
|
||||
relation_type: "declares".to_string(),
|
||||
namespace: "global".to_string(),
|
||||
..Default::default()
|
||||
};
|
||||
if !g.relations.contains(&rel) {
|
||||
g.relations.push(rel);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let _ = state.event_bus_tx.send(crate::state::GenericEvent {
|
||||
topic: "ast:symbol_updated".to_string(),
|
||||
session_id: None,
|
||||
payload: serde_json::json!({
|
||||
"file": file_str_clone,
|
||||
"extension": ext,
|
||||
"symbols_count": chunks_count,
|
||||
}),
|
||||
});
|
||||
|
||||
let _ = state.event_bus_tx.send(crate::state::GenericEvent {
|
||||
topic: "resource:updated".to_string(),
|
||||
session_id: None,
|
||||
payload: serde_json::json!({
|
||||
"uri": "memory://graph"
|
||||
}),
|
||||
});
|
||||
let rel = crate::models::Relation {
|
||||
from: file_str.clone(),
|
||||
to: symbol_name,
|
||||
relation_type: "declares".to_string(),
|
||||
namespace: "global".to_string(),
|
||||
..Default::default()
|
||||
};
|
||||
if !g.relations.contains(&rel) {
|
||||
g.relations.push(rel);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let _ = state.event_bus_tx.send(crate::state::GenericEvent {
|
||||
topic: "ast:symbol_updated".to_string(),
|
||||
session_id: None,
|
||||
payload: serde_json::json!({
|
||||
"file": file_str_clone,
|
||||
"extension": ext,
|
||||
"symbols_count": chunks_count,
|
||||
}),
|
||||
});
|
||||
|
||||
let _ = state.event_bus_tx.send(crate::state::GenericEvent {
|
||||
topic: "resource:updated".to_string(),
|
||||
session_id: None,
|
||||
payload: serde_json::json!({
|
||||
"uri": "memory://graph"
|
||||
}),
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
info!(
|
||||
"Autonomous review & incremental AST index complete for {:?}",
|
||||
|
||||
Reference in new issue
Block a user