pub fn resolution_of<'a>(
loaded: &'a Loaded,
disagreement: &str,
) -> Option<&'a ReasoningRecord>Expand description
The resolution of a disagreement, when there is one.
Admission allows at most one resolution per disagreement, so the first match is the only one. A disagreement without a resolution blocks every conclusion on its assessment.
use majordomus_cli::reasoning::record::*;
use majordomus_cli::reasoning::store::{resolution_of, Loaded};
let mut loaded = Loaded::default();
assert!(resolution_of(&loaded, "disagreement-1").is_none());
loaded.records.push(ReasoningRecord {
schema: RECORD_SCHEMA.into(),
version: RECORD_VERSION,
id: "resolution-1".into(),
task: "t".into(),
recorded_at: "2026-10-01T00:00:01Z".into(),
head: None,
redacted: vec![],
body: ReasoningBody::Resolution(ResolutionInput {
disagreement: "disagreement-1".into(),
experiment: "run the supervision test".into(),
outcome: "no caller retries".into(),
favours: "neither".into(),
evidence: vec![],
}),
});
assert_eq!(resolution_of(&loaded, "disagreement-1").unwrap().id, "resolution-1");