You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fail sandbox CI when the Docker integration prerequisite is unavailable #406
Evidence: The required sandbox job runs npm test and assumes ubuntu-latest provides a working Docker daemon, but every real-container suite converts a failed docker info probe into describe.skip and the Vitest configuration explicitly keeps no-Docker hosts green. Reproduced by launching the installed Vitest with a child PATH containing Node but not Docker: exit code 0, 15 files passed, 1 file skipped, 164 tests passed, and 31 integration tests skipped. The required CI job has no Docker preflight or executed-integration sentinel, so this same degraded run satisfies merge readiness.
Impact: A runner Docker outage, daemon startup failure, permission regression, or image/runtime incompatibility can silently remove the only real isolation, mount, network, lifecycle, and teardown evidence while the sandbox contract reports green. Pure argv-builder tests cannot prove the untrusted-repository containment guarantees that the skipped suites own.
Recommendation: Give CI a required-integration mode: perform a failing docker info preflight and make Docker probe failures fatal when that mode is set, while retaining local self-skip behavior for developer machines. Emit and assert an integration sentinel or test count so the required job proves at least one real-container suite executed.
Acceptance criteria:
The ca-sandbox-tools CI job fails before tests when docker info is unavailable or non-zero.
The same test command remains optionally self-skipping for an explicitly local/non-required mode.
Required CI records a machine-checkable sentinel proving the real-container isolation, lifecycle, mount, network, and teardown layer executed rather than skipped.
A test that masks Docker from PATH reproduces a non-zero required-mode result.
Activity
fix(sandbox): bound every docker invocation and stop an orphaned exec (…
feat(ci): gate ca-codex on a real Codex host install (#408, credentia…