M5a plan: tasks 21 and 22, from the device check
21: the ledger raises a session's state by the stricter of the grant's label and the result's own, so a clean session that recalls a memory-tainted note becomes untrusted and cannot write it into memory.md (found on straylight, 2026-09-25). 22: the answers to a note name notes.md, and for an untrusted add the file that was not changed. The new given tests are ledger_label.rs and new versions of memoryd's edit.rs and serve.rs; the old copies are kept as -task06 and -task10. On a scratch tree at the end of task 20: the named tests fail and then pass, 5 and 4 mutations are caught, and the gate passes with 944 tests. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -175,7 +175,7 @@ fn an_untrusted_session_writes_notes_not_identity() {
|
||||
));
|
||||
assert_eq!(
|
||||
answer,
|
||||
"saved as a note (untrusted): this session has read untrusted content"
|
||||
"not added to memory.md: this session has read untrusted content, so it was saved in notes.md as an untrusted note"
|
||||
);
|
||||
let memory = std::fs::read_to_string(r.dir.path().join("memory/memory.md")).unwrap();
|
||||
assert_eq!(memory, "");
|
||||
@@ -232,7 +232,7 @@ fn review_holds_identity_writes_but_not_notes() {
|
||||
r#"{"action":"note","text":"Not held."}"#,
|
||||
false,
|
||||
));
|
||||
assert_eq!(noted, "noted");
|
||||
assert_eq!(noted, "saved in notes.md");
|
||||
let (untrusted, _) = content(call(
|
||||
&r,
|
||||
"mm-b",
|
||||
@@ -242,7 +242,7 @@ fn review_holds_identity_writes_but_not_notes() {
|
||||
));
|
||||
assert_eq!(
|
||||
untrusted,
|
||||
"saved as a note (untrusted): this session has read untrusted content"
|
||||
"not added to memory.md: this session has read untrusted content, so it was saved in notes.md as an untrusted note"
|
||||
);
|
||||
let admin = |command, arg: &str| match ask(
|
||||
&r.config.admin_socket(),
|
||||
|
||||
Reference in New Issue
Block a user