diff --git a/crates/eureka-pipeline/src/lib.rs b/crates/eureka-pipeline/src/lib.rs index 0a94262..4d6cfd8 100644 --- a/crates/eureka-pipeline/src/lib.rs +++ b/crates/eureka-pipeline/src/lib.rs @@ -615,6 +615,11 @@ fn memory_is_well_formed(memory: &PipelineMemory, at: &str) -> Result<(), Pipeli if memory.text.0.trim().is_empty() { return Err(format_error(&format!("{at}.text"), "an empty memory")); } + if let MemoryOrigin::Direct { with, .. } = &memory.origin { + if with.is_empty() { + return Err(format_error(&format!("{at}.origin.with"), "a direct memory that names no one she heard it from")); + } + } if memory.salience_permille > SALIENCE_MAX_PERMILLE { return Err(format_error(&format!("{at}.salience_permille"), &memory.salience_permille.to_string())); } @@ -778,15 +783,14 @@ value_types! { /// One thing a Mind keeps for herself, in her own mind: what she was asked, /// decided, committed to, learned or did, an idea, or the rapport between /// her and another Mind or person. `text` is her own words. `about` names - /// the Matrix users it concerns (Minds included), `learned_in` where she - /// learned it (a room alias, a DM's room id, or `self run