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};Validation gates
Déjà doesn't guess. It qualifies matches using deterministic gates — so you can trust the "Verified Fix" as a repeatable outcome, not a coincidence.
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?
Start your vault, connect a repo, and let the evidence accumulate.