Skip to main content

spawn_fingerprint

Function spawn_fingerprint 

Source
pub fn spawn_fingerprint(
    provider: &str,
    task: &str,
    provider_session_id: Option<&str>,
    checkpoint_session_id: Option<&str>,
) -> String
Expand description

Canonical digest of a spawn’s compared argument set (ADR-142 §1, “Persistent process record”): provider, task, provider_session_id, checkpoint_session_id, in that key order, absent optionals omitted entirely rather than written as null. idempotency_key is excluded — it is the replay lookup key, not compared content.

The key order is built by hand rather than through a serde_json::Map/Value::Object because serde_json’s default map type sorts keys alphabetically (BTreeMap) unless the crate-wide preserve_order feature is enabled elsewhere in the dependency graph; hand- ordering keeps this digest’s byte layout independent of that feature flag. Digested with BLAKE3 (khive_types::hash::Hash32), the same content-hash primitive khive-db uses for content-addressed blob refs.