No magic.
Just math.
Déjà's Automated Chain of Custody turns incidents into deterministic evidence: what failed, why it recurred, and the exact fixes that resolved it.
The pipeline
Each phase emits structured metadata, so every match is explainable and reviewable.
Capture evidence
Ingest incidents, stack traces, and linked context (deploys, alerts, tickets).
Extract signal
Normalize traces, strip noise, and isolate the error's stable signature.
Stable identity
Generate a deterministic fingerprint that survives refactors and churn.
Evidence-backed fix
Match recurrence to prior proven PRs—complete with confidence and gates.
Code-centric proof
// 1) Normalize the trace to stable tokensconst normalized = stripNoise(trace) .keepFrames( ["src/api", "src/utils"]) .collapseVendor();// 2) Generate a deterministic fingerprintconst fp = sha256( serialize({ error: normalized.errorType, message: normalized.messageTemplate, frames: normalized.stableFrames }));// 3) Match the fingerprint to prior fixes with evidence gatesconst candidates = index.lookup(fp);const verified = candidates .filter(c => c.gates.rate && c.gates.duration) .sortBy(c => c.confidence) .last();return { fingerprint: fp, fix_pr: verified.pr, confidence: verified.confidence, evidence: verified.explain};Trust Engine
File Gate
Matches only if fix touched relevant files.
Rate Gate
Regression rate drops after fix window.
Infra Gate
Rules out infra noise & deploy artifacts.
Feature Flag Gate
Correlates fixes to rollout conditions.
Duration Gate
Verifies fix stability over time.
Privacy by design
Déjà is built for regulated environments. You decide what's ingested. The system can be deployed to meet strict perimeter requirements.
Ready to deploy the engine?
Provision your Vault, connect a repo, and let the evidence accumulate.