pub fn sensor_fingerprint(parts: &[&str]) -> StringExpand description
Build a fleet-standard fingerprint from semantic parts.
The fingerprint is a SHA-256 hash of the pipe-joined parts, with trailing empty parts trimmed. This provides a stable, deterministic identifier for findings that can be used for deduplication and tracking.
ยงExample
use perfgate_sensor::sensor_fingerprint;
let fp = sensor_fingerprint(&["tool", "check", "code", "metric"]);
assert_eq!(fp.len(), 64); // SHA-256 hex string
// Trailing empty parts are trimmed
let fp1 = sensor_fingerprint(&["a", "b", ""]);
let fp2 = sensor_fingerprint(&["a", "b"]);
assert_eq!(fp1, fp2);
// Different inputs produce different fingerprints
let fp3 = sensor_fingerprint(&["a", "c"]);
assert_ne!(fp1, fp3);