vios_app 0.1.1

Small JSON vaults: Argon2id + AES-GCM, with optional AAD binding.
Documentation
// 🧠 reflex_override.rs – Allows user to override system reflex actions with reason logging

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,
}

/// Call to override a reflex, log reason and fingerprint
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(())
}