review: memory writes from a secret session are not written to Honcho

The journal now records each call's class (absent on the owner's undo and on
older lines, which still read). The mirror turns everything a secret write
would conclude or send to the fleet into one Skip, after its deletions, which
still go; a note whose own header says secret is skipped the same way.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 14:04:42 -07:00
co-authored by Claude Opus 5.5
parent 5f4e0d9997
commit b392af9ca4
6 changed files with 237 additions and 4 deletions
+6
View File
@@ -35,6 +35,10 @@ pub struct Record {
/// For an undo, the edit it reverted.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub undoes: Option<String>,
/// The call's class (`public`, `private` or `secret`, as on the wire): what its session had
/// read. `None` for the owner's undo and for lines from before it was recorded.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub class: Option<String>,
}
fn file_of(name: &str) -> Option<MemoryFile> {
@@ -132,6 +136,7 @@ pub fn record(store: &Store, ctx: &Context, outcome: &Outcome) -> Result<String,
untrusted: ctx.untrusted,
flag: outcome.flag.map(str::to_string),
undoes: None,
class: Some(crate::notes::class_name(ctx.taint).to_string()),
},
ctx.now,
)
@@ -227,6 +232,7 @@ pub fn undo(store: &Store, id: &str, now: Timestamp) -> Result<String, String> {
untrusted: false,
flag: None,
undoes: Some(id.to_string()),
class: None,
},
now,
)?;