diff --git a/crates/eureka-state/src/bin/huginn/main.rs b/crates/eureka-state/src/bin/huginn/main.rs index d144797..1a7cd40 100644 --- a/crates/eureka-state/src/bin/huginn/main.rs +++ b/crates/eureka-state/src/bin/huginn/main.rs @@ -31,7 +31,7 @@ use clap::{CommandFactory, FromArgMatches, Parser, Subcommand}; use cultnet_rs::{PROJECTION_DOCUMENT, Selection}; use eureka_state::hold; use huginn_mind::eureka_pipeline::{ - Line, PipelineDocument, PipelineKind, PipelineRef, Short, Slug, pipeline_key, + Line, PipelineDocument, PipelineRef, Short, Slug, pipeline_key, }; use huginn_mind::{ BATCH_MAX, Faculty, HuginnMindRequest, HuginnMindResponse, MindRefusal, PipelineAdmissionBatch, PipelineAdmissionOutcome, @@ -329,7 +329,6 @@ fn blocked( return Ok(0); } let selection = Selection { - schemas: Some(vec![PipelineKind::Question.type_id().to_string()]), keys: Some(keys), ..Selection::default() }; diff --git a/crates/mind-body/src/queue.rs b/crates/mind-body/src/queue.rs index 275b52f..9d9ab01 100644 --- a/crates/mind-body/src/queue.rs +++ b/crates/mind-body/src/queue.rs @@ -665,23 +665,18 @@ mod tests { held.contains(&a) && held.contains(&b) && held.items().len() == 2, "{held:?}: retire holds what the answer retired" ); - let retired: Vec = holds(&mind) - .unwrap() - .iter() - .map(|hold| hold.retired) - .collect(); - assert_eq!(retired, [true]); - mind.committed(vec![close(a.clone(), withdrawn())]); - assert_eq!( - on_hold(&mind).unwrap().items(), - std::slice::from_ref(&b), - "a resolved claim drops out" - ); + // Another run's question, still open, is not this answer's: only the claims of f2 are retired. + let c = spec_ref("c"); + mind.committed(vec![spec("c")]); + mind.committed(vec![run("g", RunTurn::SelfRun, RunOperator::Mind, std::slice::from_ref(&c))]); + mind.committed(vec![close(run_ref("g"), recorded())]); + mind.committed(vec![question_in("other", &run_ref("g"))]); + let retired: Vec = holds(&mind).unwrap().into_iter().filter(|hold| hold.retired).flat_map(|hold| hold.items).collect(); + assert_eq!(retired, [a.clone(), b.clone()]); + mind.committed(vec![close(a, withdrawn())]); + assert_eq!(on_hold(&mind).unwrap().items(), [b.clone(), c.clone()], "a resolved claim drops out"); mind.committed(vec![close(b, withdrawn())]); - assert!( - on_hold(&mind).unwrap().items().is_empty(), - "all resolved, nothing is held" - ); + assert_eq!(on_hold(&mind).unwrap().items(), [c], "all of f2's resolved, only the open question's claim is held"); } #[test]