Agent Validation Playbook
July 8, 2026 ยท View on GitHub
Run the smallest validation set that matches the touched surface, then broaden when the change crosses package formats, launcher/runtime behavior, updater state, or patch drift handling.
Shell, Launcher, And Package Scripts
bash -n install.sh
bash -n scripts/lib/*.sh
bash -n launcher/start.sh.template
bash -n scripts/build-deb.sh
bash -n scripts/build-rpm.sh
bash -n scripts/build-pacman.sh
bash -n scripts/build-appimage.sh
For launcher behavior changes, rebuild or inspect the generated launcher:
sed -n '1,160p' codex-app/start.sh
If the change affects webview startup probes, run:
bash tests/webview_probe_equivalence.sh
Patch Registry And Linux Features
node --test scripts/patch-linux-window-ui.test.js
node --test linux-features/*/test.js
bash tests/scripts_smoke.sh
For upstream drift or protected surface analysis:
make inspect-upstream DMG=/path/to/Codex.dmg
make inspect-upstream-intel-devcontainer
For patch report validation:
scripts/ci/validate-patch-report.js codex-app/.codex-linux/patch-report.json
Rust Crates
Updater:
cargo check -p codex-update-manager
cargo test -p codex-update-manager
Linux Computer Use:
cargo check -p codex-computer-use-linux
cargo test -p codex-computer-use-linux
Read Aloud:
cargo check -p codex-read-aloud-linux
cargo test -p codex-read-aloud-linux
Record & Replay:
cargo check -p codex-record-replay-linux
cargo test -p codex-record-replay-linux
Package Payloads
Build the relevant package format and inspect metadata/layout:
./scripts/build-deb.sh
dpkg-deb -I dist/codex-desktop_*.deb
dpkg-deb -c dist/codex-desktop_*.deb | sed -n '1,80p'
Run other package formats when shared payload logic, package hooks, updater bundles, desktop files, permissions, or runtime helpers are touched:
./scripts/build-rpm.sh
./scripts/build-pacman.sh
./scripts/build-appimage.sh
Use a package version override when a deterministic package name helps review:
PACKAGE_VERSION=2026.03.24.120000+deadbeef ./scripts/build-deb.sh
Updater Runtime Checks
When updater behavior changes, inspect service and state:
systemctl --user status codex-update-manager.service
codex-update-manager status --json
sed -n '1,120p' ~/.local/state/codex-update-manager/state.json
sed -n '1,160p' ~/.local/state/codex-update-manager/service.log
For rebuild candidates:
./scripts/rebuild-candidate.sh
./scripts/rebuild-candidate.sh --install
Broad CI
Run broader local CI when a change affects multiple package formats, updater install flows, launcher/runtime behavior, Nix pins, or core patch policy:
./scripts/ci-local.sh pr
./scripts/ci-local.sh all
For Nix hash refreshes:
scripts/ci/update-nix-hashes.sh
scripts/ci/validate-nix-pins.sh