Security Policy
August 17, 2026 ยท View on GitHub
Supported version
Security and correctness fixes are applied to the current supported source line,
currently 0.7.x.
Reporting a vulnerability
Please use GitHub's Report a vulnerability flow in the repository Security tab. Do not open a public issue for suspected credential exposure, path escape, state-integrity bypass, Hook command injection, or completion-gate bypass.
Include the affected version, operating system, Codex version, reproduction steps, and the smallest sanitized evidence needed to demonstrate the issue. Do not attach raw prompts, transcripts, plugin-private state, credentials, or user data.
Security boundary
Context Guard is a local correctness sidecar, not a security sandbox. It cannot make an untrusted Hook safe, prove semantic correctness, or replace operating system access controls. Users must review and trust the exact Hook definition before enabling it.
Schema-5 turn dispositions are private, turn-bound control declarations. They
do not grant authority, prove that a dependency is real, or prove that evidence
is semantically relevant. A yielded turn keeps every unverified requirement
pending; only a valid private checkpoint can complete the guarded contract.
Under Stop protocol 1.1.0, legacy continue is advisory and cannot force
another turn. Only a hash-verified explicit-persistence instruction or an
uncheckpointed whole-task completion claim can activate a correction turn.
Historical cache repair trusts only the archive SHA-256 index. A missing,
unindexed, symlinked, or hash-mismatched archive fails closed; --apply never
uses a corrupt archive as repair input and archives are not automatically
deleted. context-guard diagnose exposes bounded hashes, protocol/control
sources, declared dispositions, reason codes, and observed diagnostic outcomes,
not raw prompts or replies.