migrate more files to use index-based node access
- learn.rs, daemon.rs, graph.rs, digest.rs, prompts.rs - Convert store.nodes.get() → store.get_node() - Convert store.nodes.contains_key() → store.contains_key() - Convert store.nodes.values/iter() → all_keys + get_node Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
fe6450223c
commit
af3e41f1d9
5 changed files with 63 additions and 43 deletions
|
|
@ -27,11 +27,14 @@ pub fn compute_graph_health(store: &crate::store::Store) -> GraphHealth {
|
|||
let graph = store.build_graph();
|
||||
let snap = crate::graph::current_metrics(&graph);
|
||||
|
||||
let episodic_count = store.nodes.iter()
|
||||
.filter(|(_, n)| matches!(n.node_type, crate::store::NodeType::EpisodicSession))
|
||||
let all_keys = store.all_keys().unwrap_or_default();
|
||||
let episodic_count = all_keys.iter()
|
||||
.filter_map(|k| store.get_node(k).ok()?)
|
||||
.filter(|n| matches!(n.node_type, crate::store::NodeType::EpisodicSession))
|
||||
.count();
|
||||
let episodic_ratio = if store.nodes.is_empty() { 0.0 }
|
||||
else { episodic_count as f32 / store.nodes.len() as f32 };
|
||||
let total = all_keys.len();
|
||||
let episodic_ratio = if total == 0 { 0.0 }
|
||||
else { episodic_count as f32 / total as f32 };
|
||||
|
||||
// Use the same planning logic as consolidation (skip O(n²) interference)
|
||||
let plan = crate::neuro::consolidation_plan_quick(store);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue