From ba30f5b3e4a9ab7d2b5d05722d88f3419bf35715 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sun, 8 Mar 2026 20:25:09 -0400 Subject: [PATCH] use config for identity node references Replace hardcoded "identity" lookups with config.core_nodes so experience mining and init work with whatever core nodes are configured, not just a node named "identity". Co-Authored-By: ProofOfConcept --- src/enrich.rs | 10 ++++++---- src/main.rs | 15 ++++++++++----- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/enrich.rs b/src/enrich.rs index bbbe33f..f2f1db0 100644 --- a/src/enrich.rs +++ b/src/enrich.rs @@ -330,10 +330,12 @@ pub fn experience_mine( let conversation = format_conversation(&messages); println!(" {} messages, {} chars", messages.len(), conversation.len()); - // Load identity - let identity = store.nodes.get("identity") - .map(|n| n.content.clone()) - .unwrap_or_default(); + // Load core identity nodes for context + let cfg = crate::config::get(); + let identity: String = cfg.core_nodes.iter() + .filter_map(|k| store.nodes.get(k).map(|n| n.content.as_str())) + .collect::>() + .join("\n\n"); // Get recent episodic entries to avoid duplication let mut journal: Vec<_> = store.nodes.values() diff --git a/src/main.rs b/src/main.rs index 594780d..5f2b7e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -359,11 +359,16 @@ fn cmd_init() -> Result<(), String> { // Initialize store and seed default identity node if empty let mut store = store::Store::load()?; let count = store.init_from_markdown()?; - if !store.nodes.contains_key("identity") { - let default_identity = include_str!("../defaults/identity.md"); - store.upsert("identity", default_identity) - .map_err(|e| format!("seed identity: {}", e))?; - println!("Seeded identity in store"); + // Seed default core nodes if missing + for key in &cfg.core_nodes { + if !store.nodes.contains_key(key.as_str()) { + if key == "identity" { + let default = include_str!("../defaults/identity.md"); + store.upsert(key, default) + .map_err(|e| format!("seed {}: {}", key, e))?; + println!("Seeded {} in store", key); + } + } } store.save()?; println!("Indexed {} memory units", count);