stop filtering journal/digest nodes from knowledge and search
Journal and digest nodes are episodic memory — they should participate in the graph on the same terms as everything else. Remove all journal#/daily-/weekly-/monthly- skip filters from knowledge extraction, connector pairs, challenger, semantic keys, and link candidate selection. Use node_type field instead of key name matching for episodic/semantic classification. Operational nodes (MEMORY, where-am-i, work-queue, work-state) are still filtered — they're system state, not memory. Co-Authored-By: ProofOfConcept <poc@bcachefs.org>
This commit is contained in:
parent
b00e09b091
commit
70c0276fa0
4 changed files with 13 additions and 28 deletions
12
src/llm.rs
12
src/llm.rs
|
|
@ -133,17 +133,11 @@ pub(crate) fn parse_json_response(response: &str) -> Result<serde_json::Value, S
|
|||
Err(format!("no valid JSON in response: {preview}..."))
|
||||
}
|
||||
|
||||
/// Get semantic keys (non-journal, non-system) for prompt context.
|
||||
/// Get non-operational keys for prompt context.
|
||||
pub(crate) fn semantic_keys(store: &Store) -> Vec<String> {
|
||||
let skip = ["MEMORY", "where-am-i", "work-queue", "work-state"];
|
||||
let mut keys: Vec<String> = store.nodes.keys()
|
||||
.filter(|k| {
|
||||
!k.starts_with("journal#")
|
||||
&& *k != "journal"
|
||||
&& *k != "MEMORY"
|
||||
&& *k != "where-am-i"
|
||||
&& *k != "work-queue"
|
||||
&& *k != "work-state"
|
||||
})
|
||||
.filter(|k| !skip.contains(&k.as_str()))
|
||||
.cloned()
|
||||
.collect();
|
||||
keys.sort();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue