data-cap
    Preparing search index...

    Function getEvidenceModel

    • Trusts the persisted evidence artifact at options.location only when its paired .fingerprint sidecar matches a freshly (cheaply) computed computeSourceFingerprint -- never on file presence alone, never on a timestamp. On any mismatch (stale fingerprint, missing/corrupt evidence file, no sidecar at all, an unrecognized schemaVersion), falls back to a real computeDataArtifacts() call: never hard-fails, never silently serves data that might be stale.

      Parameters

      Returns Promise<GetEvidenceModelResult>

      Never writes anything. A cache miss here does not self-heal the cache -- only an explicit generation run (generateDataArtifacts() with evidence) refreshes the artifact and its fingerprint together, so "when was this last regenerated" stays under explicit control rather than becoming an implicit side effect of a read. Two callers hitting the same stale cache both recompute independently; neither one's recompute changes what the other reads.