security / current release boundary
Checksummed and signed, with an explicit bootstrap boundary.
WaitDojo v0.2.4 bootstraps an embedded Ed25519 verification key. Once v0.2.4 is installed, subsequent self-updates fail closed unless their archive signature verifies. That does not retroactively authenticate the v0.2.3-to-v0.2.4 update or a fresh shell install.
What published v0.2.4 verifies now.
- The installer downloads the selected release archive and its exact
.sha256file. - It validates the checksum-file shape, computes SHA-256 locally, and stops before installation when the values differ.
- It checks that the archive contains an executable WaitDojo binary with Codex and Claude Code command support.
- The installer source and aggregate
SHA256SUMSfile are publicly reviewable. - Each archive has a detached Ed25519 signature. An installation already carrying the trusted key verifies later update archives before extraction and stops on any mismatch.
- The separately signed release-provenance document binds all four archive digests and its release signing public key to the tag commit, tag ref, source repository, and release workflow.
Independent verification and its boundary.
The detached signature protects installations that already have the trusted public key. v0.2.4 is the bootstrap release: v0.2.3 does not have that key or this verifier, so its update to v0.2.4 remains checksum-only. Protection applies to updates from an installed v0.2.4 onward.
The shell installer still begins from code, an archive, and a checksum served by this site. A fresh install does not independently authenticate the key it is receiving. Review the installer and verify the archive signature and signed provenance against a public key obtained through a trusted channel before treating a fresh install as publisher-authenticated.
Rotation and incident response are fail-closed.
A repository Actions secret holds the Ed25519 signing key because this private repository is on GitHub Free. Two-person PR and tag review is the human authorization gate; it is a recorded procedure, not a protected-environment approval enforced by this GitHub plan. The workflow derives and compares the public key, verifies every archive and provenance signature, and refuses the site handoff on any missing or invalid trust artifact.
Planned key rotation uses an old-key-signed bridge release that embeds the new public key. Published tags and signatures are never overwritten. If the old key is suspected or confirmed compromised, it cannot securely authorize that bridge: automatic updates stop, the compromised key is removed from CI trust, and users must obtain and verify the replacement key through an out-of-band trusted channel before a manual reinstall or recovery bootstrap.
Review before installing.
curl -fsSL 'https://waitdojo.dev/install.sh' | sh -s -- --dry-run
curl -fsSL 'https://waitdojo.dev/releases/latest/SHA256SUMS'
A dry run shows the runtime, archive, source URL, and actions without changing files. For privacy boundaries, see privacy; for local diagnostics, see the doctor guide.
Report a security concern.
Contact Nishant Bhargava directly. Do not include production prompts, repository contents, credentials, tokens, or private coding-agent output. Include the affected version, archive name, expected and observed digest, and a minimal reproduction.