artifactize 0.9.0

The AI-native collaboration layer for one-of-a-kind teammates and their agents: split a project into Artifacts with their own evals, and reuse every review while it still holds.
Documentation
//! Project selection, verification orchestration, and status.

pub mod selection;

mod status;
pub use status::{
    ArtifactCondition, ArtifactState, Counts, EvalCondition, EvalState, StatusView, VerifyAction,
    status,
};

pub(crate) mod verify;
pub use verify::{DEFAULT_HUMAN_WAIT, DEFAULT_JOBS, VerifyOptions, verify};

/// The fingerprint bound `status` and `verify` use: `--fingerprint-jobs`, else the CPUs.
fn fingerprint_parallelism(options: &VerifyOptions) -> Result<crate::cache::Parallelism, String> {
    match options.fingerprint_jobs {
        Some(0) => Err("fingerprint jobs must be at least 1.".into()),
        jobs => Ok(crate::cache::Parallelism::new(
            jobs.unwrap_or_else(crate::cache::Parallelism::available),
        )),
    }
}