Harden package-manager install policy#19163
Merged
Merged
Conversation
bolinfest
reviewed
Apr 24, 2026
bolinfest
reviewed
Apr 24, 2026
bolinfest
approved these changes
Apr 24, 2026
viyatb-oai
approved these changes
Apr 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR hardens package-manager usage across the repo to reduce dependency supply-chain risk. It also removes the stale
codex-cliDocker path, which was already broken onmain, instead of keeping a bitrotted container workflow alive.What changed
codex-cliDocker assets instead of trying to keep a broken local container path alive.uv sync.Why
This is primarily a security hardening change. It reduces package-install and supply-chain risk by ensuring dependency installs go through pinned package managers, committed lockfiles, release-age settings, and reviewed build-script controls.
For
codex-cli, the right follow-up was to remove the local Docker path rather than keep patching it:codex-cli/Dockerfileinstalledcodex.tgzwithnpm install -g, which bypassed the repo lockfile and age-gated pnpm settings.codex-cli/scripts/build_container.shhelper was already broken onmain: it calledpnpm run build, butcodex-cli/package.jsondoes not define abuildscript.Gaps addressed
codex-cli/Dockerfileandcodex-cli/bin/codex.js.--frozen-lockfile, but the repo was missing stricter pnpm workspace settings for dependency build scripts.pyproject.tomlmetadata but no committeduv.lockcoverage or uv age/index settings insdk/pythonandsdk/python-runtime.codex-cliDocker helper was already broken onmain, so this PR removes that stale Docker path instead of preserving a broken surface.Verification
pnpm install --frozen-lockfile.devcontainer/codex-install:pnpm install --prod --frozen-lockfile.devcontainer/codex-install:./node_modules/.bin/codex --versionsdk/python:uv lock --check,uv sync --locked --all-extras --dry-run,uv buildsdk/python-runtime:uv lock --check,uv sync --locked --dry-run,uv build --wheelpnpm -r --filter ./sdk/typescript run buildpnpm -r --filter ./sdk/typescript run lintpnpm -r --filter ./sdk/typescript run testnode --check codex-cli/bin/codex.jsdocker build -f .devcontainer/Dockerfile.secure -t codex-secure-test .cargo build -p codex-cli