Ambient Journal captures and stores a person's spoken life, so security issues are taken seriously. Thank you for helping keep it and its users safe.
Please do not open a public GitHub issue for security problems. Public disclosure before a fix puts users at risk.
Report privately through one of these channels:
- Preferred: GitHub's private vulnerability reporting on this repository (the "Report a vulnerability" button under the Security tab). This opens a private advisory visible only to you and the maintainers.
- Email fallback: grajat90@gmail.com.
Please include:
- A description of the issue and the impact you believe it has.
- Steps to reproduce, or a proof of concept, if you have one.
- Affected component (for example the Swift helper, the Go daemon, the store, or IPC) and version or commit.
We will acknowledge your report, keep you updated on our assessment and any fix, and credit you in the release notes unless you prefer to remain anonymous. Please give us a reasonable chance to release a fix before any public disclosure.
The security-relevant assets, drawn from THREAT-MODEL.md, are:
- Confinement of audio and transcript. Raw audio must never leave the Swift helper, and no raw transcript may be persisted. Any path that lets audio cross the IPC boundary or writes a transcript to disk is a serious vulnerability.
- The encrypted store. The database is encrypted at rest with Adiantum; the encryption key is kept with owner-only permissions. Weaknesses in encryption, key handling, or file permissions are in scope.
- Egress paths. All off-device egress is opt-in and named (ask-back to your own cloud model
carries only the distilled
ContextPack, never a transcript; optional cloud distillation is off by default and double-gated). Any unexpected or unconsented network egress is in scope.
For the full picture of assets, threats, mitigations, and residual risk, read THREAT-MODEL.md and PRIVACY.md.
The project is pre-1.0 and moving quickly. Only the latest main receives security fixes.
Please reproduce issues against the current main where possible.