Container E2E Runtime Validation (REHOR-62)¶
This document tracks the REHOR-62 runtime validation harness that closes the
multi-container startup and entrypoint.sh gap intentionally deferred by
REHOR-107.
Scope¶
The harness validates container runtime behavior, not only build-time tooling:
- bot starts through real
entrypoint.shwith proxy + memory-server sidecars, - executor socket readiness and memory-server health dependencies are exercised,
- Python imports and core runtime tooling are validated from inside the image,
- env-specific checks are fixture-driven (
minimal,full-stack,browser-only).
Harness layout¶
tests/container-e2e/sync-devbot.shtests/container-e2e/test-container.shtests/container-e2e/lib/common.shtests/container-e2e/checks/*.shtests/container-e2e/fixtures/*
CI wiring¶
- PR/default workflow:
.github/workflows/container-e2e.yml e2e-minimaljob- Manual workflow:
.github/workflows/container-e2e-manual.yml e2e-full-stack(node + go + container-scan)e2e-browser(browser-only)
This staged approach keeps PR checks stable while preserving a path for deeper preset coverage.
Local runbook¶
Run explicit fixture:
Keep logs and temporary context:
Collect logs into a specific directory:
Known behavior captured during initial rollout¶
minimalfixture passes end-to-end locally.- Browser coverage can fail when runner/build-host disk is constrained because
Playwright Chromium download and browser runtime packages are large; browser
checks are isolated in
browser-onlyso core full-stack validation stays deterministic. - Heavy fixtures now perform a Docker-engine free-space preflight and fail fast with an explicit disk-headroom message instead of failing late in long build steps.