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(())
}