opencodecommit 1.6.0

AI-powered git commit message generator that delegates to terminal AI agents
Documentation
use std::fs::{self, OpenOptions};
use std::io::Write as _;
use std::path::PathBuf;

fn trace_path() -> Option<PathBuf> {
    std::env::var_os("OCC_E2E_RESPONSE_LOG").map(PathBuf::from)
}

pub fn log_response(platform: &str, operation: &str, backend: &str, response: &str) {
    let Some(path) = trace_path() else {
        return;
    };

    if let Some(parent) = path.parent() {
        let _ = fs::create_dir_all(parent);
    }

    let Ok(mut file) = OpenOptions::new().create(true).append(true).open(&path) else {
        return;
    };

    let test_case = std::env::var("OCC_E2E_TEST_CASE")
        .ok()
        .filter(|value| !value.trim().is_empty())
        .unwrap_or_else(|| "unspecified".to_owned());

    let response = response.trim();
    let _ = writeln!(file, "=== AI Response ===");
    let _ = writeln!(file, "platform: {platform}");
    let _ = writeln!(file, "test: {test_case}");
    let _ = writeln!(file, "operation: {operation}");
    let _ = writeln!(file, "backend: {backend}");
    let _ = writeln!(file, "response:");
    let _ = writeln!(file, "{response}");
    let _ = writeln!(file);
}