#[non_exhaustive]pub struct Finding {
pub id: String,
pub file: String,
pub function: String,
pub line: u32,
pub verdict: Verdict,
pub invocations: Option<u64>,
pub confidence: Confidence,
pub evidence: Evidence,
pub actions: Vec<Action>,
pub identity: Option<FunctionIdentity>,
}Expand description
A per-function finding combining static analysis and runtime coverage.
Marked #[non_exhaustive] in 0.6.0: downstream Rust consumers must
stop using struct-literal construction. The wire shape is unchanged.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: StringDeterministic content hash of shape fallow:prod:<hash>. See
finding_id for the canonical helper. Continues to ship through
0.6 alongside Finding::identity.
Finding::id vs FunctionIdentity::stable_id. They serve
different join axes and must not be conflated:
Finding::idis the canonical per-finding suppression key. It hashesfile + function + line + "prod", so the same function produces a differentidwhen its line changes. Agents writing suppression files / baselines / CI dedup state key on this value to suppress THIS specific finding, not every finding on the function.FunctionIdentity::stable_idis the canonical cross-surface join key. The same function gets ONEstable_idacross findings, hot paths, blast-radius entries, and importance entries. Cloud aggregation, traffic-weighted ranking, and any “show me this function’s history” join uses it.
New agent suppression formats SHOULD write identity.stable_id
when present (stable across line moves) AND retain Finding::id
for backwards-compatibility with 0.5-era baselines. Readers MUST
accept both forms during the grace window.
file: StringPath to the source file, relative to Request::project_root.
function: StringFunction name as reported by the static analyzer. Matches
StaticFunction::name and FunctionIdentity::name.
line: u321-indexed line number the function starts on. Included in the ID hash so anonymous functions with identical names but different locations get distinct IDs.
verdict: VerdictPer-finding verdict. Describes what the agent should do with this specific function.
invocations: Option<u64>Raw invocation count from the V8 dump. None when the function was
not tracked (lazy-parsed, worker-thread isolate, etc.).
confidence: ConfidenceConfidence the sidecar has in this finding’s Finding::verdict.
evidence: EvidenceEvidence rows the sidecar used to arrive at the finding.
actions: Vec<Action>Machine-readable next-step hints for AI agents.
identity: Option<FunctionIdentity>Canonical function identity introduced in 0.6.0. Optional for
forward-compat with 0.5-shape sidecars. See FunctionIdentity
for the canonical join semantics.