Please report vulnerabilities privately via GitHub: Security → Report a vulnerability. Do not open a public issue for anything you believe is exploitable.
You can expect an initial response within 72 hours. Please include a minimal reproduction and, if the issue involves a session file format, a redacted sample.
It downloads checksums.txt and the release archive for your platform from the
same GitHub release and compares sha256 before replacing the binary. That
catches a corrupt or truncated download; it does not catch a tampered release,
since whoever could replace the archive could replace the checksums beside it.
Releases are signed with cosign and carry build provenance, and the client does not verify either. If you need that guarantee, verify before installing:
cosign verify-blob --certificate checksums.txt.pem --signature checksums.txt.sig \
--certificate-identity-regexp 'https://github.com/vshulcz/deja-vu/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com checksums.txtNightly builds are prereleases and are not signed. deja update follows
releases/latest, which excludes them.
deja-vu reads coding-agent session logs from the local disk and builds a local
index. It has no network listener and no background traffic; network access
happens only in deja update and deja doctor (release metadata from GitHub,
no session data), deja sync ssh (your own SSH connection), and deja embed
and hybrid search, which send text to the embedding endpoint you configured —
normally Ollama or LM Studio on localhost, and off entirely when you configure
none. Reports about secrets surviving redaction in indexed, embedded or shared
output are in scope and appreciated.
See the security model for data flows, redaction limits, trust assumptions, and release verification.
Only the latest release receives fixes.