memoryd: note answers name notes.md and the file that was not changed

This commit is contained in:
2026-09-25 20:32:29 -07:00
parent 7b95937c88
commit e963ef72bb
4 changed files with 30 additions and 14 deletions
+19 -7
View File
@@ -57,9 +57,21 @@ pub fn untrusted_refusal(file: MemoryFile) -> String {
)
}
/// The answer when an untrusted session's `add` became a note.
pub const SAVED_AS_NOTE: &str =
"saved as a note (untrusted): this session has read untrusted content";
/// The answer when an untrusted session's `add` became a note. It names the file it did not change:
/// on the device the model read a shorter answer as success.
pub fn saved_as_note(file: MemoryFile) -> String {
format!(
"not added to {}: this session has read untrusted content, so it was saved in notes.md as an untrusted note",
file.name()
)
}
/// The answer to a `note` from a session that has not read untrusted content.
pub const NOTED: &str = "saved in notes.md";
/// The answer to a `note` from a session that has read untrusted content.
pub const NOTED_UNTRUSTED: &str =
"saved in notes.md, marked untrusted: this session has read untrusted content";
fn stale(file: MemoryFile) -> String {
format!(
@@ -97,13 +109,13 @@ pub fn apply(store: &Store, args: &MemoryArgs, ctx: &Context) -> Result<Outcome,
| MemoryArgs::Consolidate { file, .. } => *file,
};
// 3. When `ctx.untrusted`: an Add becomes `noted(store, ctx, text, "add")?` with its answer
// replaced by SAVED_AS_NOTE; any other action -> Err(untrusted_refusal(file)).
// replaced by saved_as_note(file); any other action -> Err(untrusted_refusal(file)).
if ctx.untrusted {
match args {
MemoryArgs::Add { text, .. } => {
let outcome = noted(store, ctx, text, "add")?;
return Ok(Outcome {
answer: SAVED_AS_NOTE.to_string(),
answer: saved_as_note(file),
..outcome
});
}
@@ -222,9 +234,9 @@ fn noted(
Ok(Outcome {
action,
answer: if ctx.untrusted {
"noted (untrusted)"
NOTED_UNTRUSTED
} else {
"noted"
NOTED
}
.to_string(),
change: Change {