use serde::{Deserialize, Serialize};
use std::fs::{OpenOptions};
use std::path::Path;
#[derive(Debug, Serialize, Deserialize)]
pub struct ReflexOverride {
pub vault_id: String,
pub timestamp: String,
pub override_reason: String,
pub triggered_reflex: String,
pub cia_signature: String,
}
pub fn log_reflex_override(
vault_id: &str,
triggered_reflex: &str,
reason: &str,
cia_signature: &str,
) -> std::io::Result<()> {
let entry = ReflexOverride {
vault_id: vault_id.to_string(),
timestamp: Utc::now().to_rfc3339(),
override_reason: reason.to_string(),
triggered_reflex: triggered_reflex.to_string(),
cia_signature: cia_signature.to_string(),
};
let path = Path::new("vaults/mesh_logs/reflex_overrides.jsonl");
let file = OpenOptions::new().append(true).create(true).open(path)?;
let line = serde_json::to_string(&entry)?;
writeln!(writer, "{}", line)?;
Ok(())
}