feat: freeze Host Journal context across compaction

This commit is contained in:
2026-10-17 12:19:37 +09:00
parent 10d200d9ba
commit 956aeed6b2
18 changed files with 357 additions and 15 deletions
+2
View File
@@ -69,6 +69,8 @@ pub enum LoggedSessionHistoryOrigin {
},
/// Host-produced opening context summary; not auto-read or TaskStore material.
CompactionSummary,
/// Frozen Host Journal reference, never independent observation evidence.
JournalContext,
DerivedSummary,
LegacyUnknown,
}
+3 -1
View File
@@ -829,7 +829,9 @@ fn boundary_reference(
fn canonical_body(entry: &LoggedHistoryEntry) -> Option<CanonicalBody<'_>> {
if matches!(
entry.metadata.origin,
LoggedSessionHistoryOrigin::DerivedSummary | LoggedSessionHistoryOrigin::CompactionSummary
LoggedSessionHistoryOrigin::DerivedSummary
| LoggedSessionHistoryOrigin::CompactionSummary
| LoggedSessionHistoryOrigin::JournalContext
) {
return None;
}
@@ -543,6 +543,14 @@ fn reasoning_proves_rollback_safety_but_private_and_derived_items_are_not_materi
let segment = crate::new_segment_id();
let mut derived = message("derived", LoggedRole::User, "summary");
derived.metadata.origin = LoggedSessionHistoryOrigin::DerivedSummary;
let mut journal = message("journal", LoggedRole::User, "frozen Journal reference");
journal.metadata.origin = LoggedSessionHistoryOrigin::JournalContext;
let mut summary = message(
"compaction-summary",
LoggedRole::User,
"complementary summary",
);
summary.metadata.origin = LoggedSessionHistoryOrigin::CompactionSummary;
let reasoning = entry(
"reasoning",
LoggedItem::Reasoning {
@@ -559,7 +567,12 @@ fn reasoning_proves_rollback_safety_but_private_and_derived_items_are_not_materi
&[
seed(
session,
vec![derived, message("system", LoggedRole::System, "secret")],
vec![
derived,
journal,
summary,
message("system", LoggedRole::System, "secret"),
],
),
LogEntry::AnnotatedSystemItem {
ts: 1,
@@ -1889,6 +1889,7 @@ fn provenance(origin: &LoggedSessionHistoryOrigin) -> SessionEntryProvenance {
LoggedSessionHistoryOrigin::ModelOutput { .. } => SessionEntryProvenance::ModelOutput,
LoggedSessionHistoryOrigin::ToolOutput { .. } => SessionEntryProvenance::ToolOutput,
LoggedSessionHistoryOrigin::CompactionSummary
| LoggedSessionHistoryOrigin::JournalContext
| LoggedSessionHistoryOrigin::DerivedSummary => SessionEntryProvenance::DerivedSummary,
LoggedSessionHistoryOrigin::LegacyUnknown => SessionEntryProvenance::LegacyUnknown,
}