self-run-result-in-rationale: pin each run's own rationale and the empty-result sentence (mutation survivors)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-31 11:39:17 +01:00
commit 743cbb8b43
2 changed files with 19 additions and 0 deletions

View file

@ -1182,3 +1182,14 @@ fn a_persona_runs_rationale_stays_out_of_her_history_and_a_result_cannot_pass_fo
let selfrun = lines.iter().find(|line| line.starts_with("self-one ")).unwrap();
assert!(selfrun.lines().skip(1).all(|line| line.starts_with(" ")), "{selfrun:?}");
}
#[test]
fn each_self_run_shows_its_own_rationale() {
let rig = Rig::new(vec![], &[]);
self_run_closed_with(&rig, "self-first", "alpha report");
self_run_closed_with(&rig, "self-second", "beta report");
let lines = recent_runs(&rig.mind, &Slug(INSTANCE.into())).unwrap();
let of = |label: &str| lines.iter().find(|line| line.starts_with(label)).unwrap().clone();
assert!(of("self-first ").contains("alpha report") && !of("self-first ").contains("beta"), "{lines:?}");
assert!(of("self-second ").contains("beta report") && !of("self-second ").contains("alpha"), "{lines:?}");
}

View file

@ -139,3 +139,11 @@ fn a_resolve_that_fails_is_logged_and_tried_once() {
assert_eq!(error.to_string(), "refused");
assert_eq!(again.admits.get(), 1);
}
#[test]
fn a_result_with_no_text_closes_with_the_carriers_sentence_not_an_empty_rationale() {
let mind = with_run();
carry_with(&Seen::of(&mind), vec![Out(result_with(""))], Some(0), false).outcome.unwrap();
assert!(rationale_of(&mind, "selfrun-a").contains("carrier closed the run"));
assert!(reason_of(&mind, "selfrun-a").contains("subtype=success"));
}