agentlog 0.1.2

CLI flight recorder for AI coding agents - capture, store, and replay AI sessions
Documentation
use crate::core::db::DbManager;
use crate::core::{db_path, ensure_initialized};
use anyhow::Result;
use colored::Colorize;

pub async fn execute(path: String) -> Result<()> {
    let project_root = ensure_initialized()?;
    let db_file = db_path(&project_root);

    let db = DbManager::open(&db_file)?;
    let file_changes = db.get_file_changes(&path)?;

    if file_changes.is_empty() {
        println!("{}", format!("No AI changes found for: {}", path).yellow());
        return Ok(());
    }

    println!("{}", format!("AI Blame for: {}", path).bold().underline());
    println!();

    for event in file_changes {
        let short_session = &event.session_id[..8];
        if let crate::models::Payload::FileChange {
            lines_added,
            lines_removed,
            ..
        } = &event.payload
        {
            println!(
                "{} {} | +{} -{}",
                event.timestamp.format("%Y-%m-%d %H:%M"),
                short_session.cyan(),
                lines_added.to_string().green(),
                lines_removed.to_string().red()
            );
        }
    }

    Ok(())
}