feat: add session stream event trace flag

This commit is contained in:
2026-05-26 19:57:47 +09:00
parent 5ccfdea7c8
commit 372a99bc0b
4 changed files with 100 additions and 3 deletions
+23
View File
@@ -167,6 +167,15 @@ where
self.sink.publish(entry);
Ok(())
}
/// Append a debug trace record alongside the current segment log. Trace
/// writes deliberately do not affect the segment entry counter or live
/// replay sink because they are not conversation history.
pub fn append_trace(&self, entry: &session_store::TraceEntry) -> Result<(), StoreError> {
let loc = self.state.location();
self.store
.append_trace(loc.session_id, loc.segment_id, entry)
}
}
/// Type-erased commit handle for the interceptor. Lets the
@@ -502,6 +511,20 @@ impl<C: LlmClient + Clone + 'static, St: Store + Clone + 'static> Pod<C, St> {
warn!(error = %err, "history append commit failed; dropping");
}
});
if self.manifest.session.record_event_trace {
let writer = self.log_writer_handle();
self.worker_mut()
.on_stream_event(move |turn, _llm_call, event| {
let entry = session_store::TraceEntry {
ts: segment_log::now_millis(),
turn,
event: event.clone(),
};
if let Err(err) = writer.append_trace(&entry) {
warn!(error = %err, "stream event trace commit failed; dropping");
}
});
}
self.history_persistence_wired = true;
}