use anyhow::Result; use std::path::Path; /// Last-known-published version per package, so re-runs don't re-flag a /// version already handled. Deliberately just one file per package for /// now — this is where a real review-queue persistence layer plugs in /// later (see SPEC.md > Architecture > Reviewer queue). pub fn load_last_version(state_dir: &Path, name: &str) -> Option { std::fs::read_to_string(state_dir.join(format!("{name}.version"))) .ok() .map(|s| s.trim().to_string()) } pub fn save_last_version(state_dir: &Path, name: &str, version: &str) -> Result<()> { std::fs::create_dir_all(state_dir)?; std::fs::write(state_dir.join(format!("{name}.version")), version)?; Ok(()) }