persona prompt tests: pin the clock the plan line is read against, the plain closing words

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-11-03 09:23:12 +01:00
commit 54236c0ee4
2 changed files with 9 additions and 7 deletions

View file

@ -836,7 +836,8 @@ fn her_latest_runs_and_how_they_ended_are_in_her_input() {
rig.mind.committed(vec![close(run_ref("old-one"), recorded())]);
rig.go();
let input = rig.model.requests.borrow()[0].input.clone();
assert!(input.contains("old-one PersonaTurn: Recorded"), "{input}");
assert!(input.contains("old-one PersonaTurn: finished
"), "{input}");
}
#[test]
@ -1551,7 +1552,8 @@ fn a_self_runs_result_over_a_reasons_line_reaches_her_next_turn_whole() {
self_run_closed_with(&rig, "self-long", &result);
rig.go();
let input = rig.model.requests.borrow()[0].input.clone();
assert!(input.contains("self-long SelfRun: Recorded"), "{input}");
assert!(input.contains("self-long SelfRun: finished
line of my report"), "{input}");
assert!(input.contains(" THE END OF MY REPORT"), "{input}");
assert_eq!(input.matches(" line of my report").count(), 150);
}
@ -3509,7 +3511,7 @@ Near what was said:
- (2026-10-09, in #swarm, Did): "Closed the old bridge"
Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z (in 3h 20m), read 0s ago. The swarm aims to have used about 90% of the weekly allowance at reset; nothing enforces it; you and the other Minds set the tempo.
Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z (in 20d 7h), read 0s ago. The swarm aims to have used about 90% of the weekly allowance at reset; nothing enforces it; you and the other Minds set the tempo.
Tempo: not yet read. The swarm beat is the lower median of the votes cast: a Mind with no standing vote abstains and is not counted, and with no vote cast the beat is 900 s. A vote only needs changing when conditions change; leave it standing otherwise. You vote with tempo_vote_beat_s (60 to 86400 seconds per beat; omit the key to leave your standing vote as it is, and send null to withdraw it and abstain) and declare your own urgency with urgency_permille (0 to 1000, null for none); an urgency lasts until your next turn, so use it as etiquette, not as a habit.
@ -3536,7 +3538,7 @@ What you remember (from your own mind; `huginn view <id>` reads a record):
- nothing is remembered yet.
Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z (in 3h 20m), read 0s ago. The swarm aims to have used about 90% of the weekly allowance at reset; nothing enforces it; you and the other Minds set the tempo.
Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z (in 20d 7h), read 0s ago. The swarm aims to have used about 90% of the weekly allowance at reset; nothing enforces it; you and the other Minds set the tempo.
Tempo: not yet read. The swarm beat is the lower median of the votes cast: a Mind with no standing vote abstains and is not counted, and with no vote cast the beat is 900 s. A vote only needs changing when conditions change; leave it standing otherwise. You vote with tempo_vote_beat_s (60 to 86400 seconds per beat; omit the key to leave your standing vote as it is, and send null to withdraw it and abstain) and declare your own urgency with urgency_permille (0 to 1000, null for none); an urgency lasts until your next turn, so use it as etiquette, not as a habit.

View file

@ -357,7 +357,7 @@ fn the_start_message_is_the_first_thing_written_and_names_the_skill_the_instance
let ran = go(vec![Out(result_line())]);
assert!(matches!(&ran.events[0], Event::Wrote(_)), "the start precedes the first read: {:?}", ran.events[0]);
let written = ran.written();
for needle in ["Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z", "about 90% of the weekly allowance", "nothing enforces it"] {
for needle in ["Plan usage: five_hour 42.3% allowed, resets at 2026-10-29T20:50:00Z (in 20d 7h), read 0s ago", "about 90% of the weekly allowance", "nothing enforces it"] {
assert!(written[0].contains(needle), "the lease grant plan windows reach the child: {needle}: {}", written[0]);
}
for needle in ["Use the eureka skill.", "yggdrasil", "yggdrasil:run:selfrun-a", AGENT] {
@ -1216,7 +1216,7 @@ fn the_start_message_carries_the_claimed_follow_ups_item_and_id_verbatim() {
let mind = claiming(std::slice::from_ref(&claim), vec![brief]);
let ran = carry_with(&Seen::of(&mind), vec![Out(result_line())], Some(0), false);
let first = &ran.written()[0];
assert!(first.starts_with(&start_message(&Slug("yggdrasil".into()), &run_ref("selfrun-a"), &[plan_window()], 1_793_306_000_000)), "{first}");
assert!(first.starts_with(&start_message(&Slug("yggdrasil".into()), &run_ref("selfrun-a"), &[plan_window()], at_start().timestamp_millis() as u64)), "{first}");
for needle in ["Fix the thing.\nThen report \u{e9}.", claim.id.0.as_str(), "Use the eureka skill."] {
assert!(first.contains(needle), "{needle}: {first}");
}
@ -1278,7 +1278,7 @@ fn a_mind_query_failure_on_a_claim_fails_the_run_with_the_cause_and_starts_no_ch
#[test]
fn a_run_without_claims_gets_the_identity_lines_alone() {
let ran = go(vec![Out(result_line())]);
assert_eq!(ran.written()[0], start_message(&Slug("yggdrasil".into()), &run_ref("selfrun-a"), &[plan_window()], 1_793_306_000_000));
assert_eq!(ran.written()[0], start_message(&Slug("yggdrasil".into()), &run_ref("selfrun-a"), &[plan_window()], at_start().timestamp_millis() as u64));
}
// ---- the live session -----------------------------------------------------