pub fn create_checkpoint(working_dir: &Path) -> Option<String>
Create a checkpoint. Returns SHA if there are uncommitted changes, None if clean.