[codex] add E2E and runtime test matrix - #34
Conversation
Node matrix execution reportI ran every Node.js version independently in local nvm and Docker modes. The full raw logs and Markdown reports are retained locally under
Docker Desktop was available (client 29.4.0, server 29.2.1), but every The run found and fixed a macOS Bash 3.2 empty-array issue in the Docker argument handling. It also changed the default matrix command so build, legacy, functional E2E, and package-consumer E2E phases all run and report their own status even when an earlier phase fails. Verified local cache layoutEach version uses approximately 88 MB and has an independent Report filesReproduction# Full local nvm matrix
bash scripts/test-node-matrix.sh
# One local runtime
NODE_MATRIX_VERSIONS="18" bash scripts/test-node-matrix.sh
# Full Docker matrix
NODE_MATRIX_USE_DOCKER=1 bash scripts/test-node-matrix.sh
# One Docker runtime
NODE_MATRIX_USE_DOCKER=1 NODE_MATRIX_VERSIONS="18" bash scripts/test-node-matrix.sh |
What changed
Why
Dependency upgrades need a repeatable compatibility gate that executes real media workflows. Older Node.js releases cannot run the latest pnpm, so each runtime now installs and tests with a compatible pnpm version instead of reusing dependencies installed by Node.js 24.
Impact
Local and CI test runs can validate supported Node.js versions independently. Each local runtime keeps its own
node_modulesand pnpm store cache under.cache/node-matrix.Validation
Stack
This PR is based on
codex/native-async-support-specand should be reviewed after PR #33.