Skip to main content

codelens_engine/memory/
audit.rs

1use serde::{Deserialize, Serialize};
2
3use super::MemoryTier;
4
5/// Lifecycle event for a memory entry, recorded by the audit subsystem.
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7pub enum MemoryAuditEvent {
8    Created { tier: MemoryTier, path: String },
9    Updated { tier: MemoryTier, path: String },
10    Deleted { tier: MemoryTier, path: String },
11    Archived { tier: MemoryTier, path: String },
12    Restored { tier: MemoryTier, path: String },
13}
14
15/// Trait abstracting audit recording so the engine stays decoupled from the
16/// MCP-layer `AuditSink`.
17pub trait AuditRecorder: std::fmt::Debug {
18    fn record(&self, event: &MemoryAuditEvent);
19}
20
21/// A no-op recorder that discards all events.
22#[derive(Debug)]
23pub struct NullRecorder;
24
25impl AuditRecorder for NullRecorder {
26    fn record(&self, _event: &MemoryAuditEvent) {}
27}