diff --git a/src/capnp_store.rs b/src/capnp_store.rs index 6e16b8e..3761571 100644 --- a/src/capnp_store.rs +++ b/src/capnp_store.rs @@ -711,8 +711,16 @@ impl Store { pub fn categorize(&mut self, key: &str, cat_str: &str) -> Result<(), String> { let cat = Category::from_str(cat_str) .ok_or_else(|| format!("Unknown category '{}'. Use: core/tech/gen/obs/task", cat_str))?; - if let Some(node) = self.nodes.get_mut(key) { + let updated = if let Some(node) = self.nodes.get_mut(key) { node.category = cat; + node.version += 1; + Some(node.clone()) + } else { + None + }; + if let Some(node) = updated { + // Persist to capnp log so category survives cache rebuilds + self.append_nodes(&[node])?; Ok(()) } else { Err(format!("No node '{}'", key))