Skip to content

fix(ci): make npm packages reproducible across Linux runner permissions - #291

Merged
AetherAI3 merged 1 commit into
mainfrom
codex/npm-reproducible-pack-modes-20261006
Oct 6, 2026
Merged

AetherAI3 merged 1 commit into
mainfrom
codex/npm-reproducible-pack-modes-20261006

Conversation

@AetherAI3

@AetherAI3 AetherAI3 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

VPS6 checks out and builds public package files with mode 0600; ordinary Linux builders use 0644. npm preserves those permissions, so identical file contents from the same source failed the mandatory preparation/publisher digest guard.

Both npm jobs now pack from a private staging copy of the validated production inventory, with fixed 0644/0755 modes. The helper follows only the two reviewed workspace links, rejects unsafe paths and other symlinks, and requires the final inventory to match. It leaves source permissions and runner umask unchanged. Hosted publishing, provenance, required artifacts and the exact-byte guard remain required.

Validation at c2a0c3a717781b7ae34b37b2f0177bc0e0fb0d91: all 78 scoped packaging/release tests and 20 manual gates passed, including audit, production policy, docs, source integrity, independent rebuild, installed version/help and stalled-auth recovery. Manual private ATS parity passed 110 Node tests and 16 Python tests with no skips. Both workflow files passed actionlint.

The final PR package on VPS3 and the same helper applied to unchanged main package inputs on VPS6 reproduce the same 996-file tarball: SHA-256 a3550c7de43109c12b27fc3dbd5d3933091b58e87ed87cc454e6491305823229. VPS6's source file permissions were unchanged. The five changed files are packaging, workflows and documentation; runtime package bytes are unchanged. The full platform suites were not repeated for this CI-only change. Native Actions remain subject to the account billing/storage and private-repository gates. No package has been published.

@AetherAI3
AetherAI3 marked this pull request as ready for review October 6, 2026 11:42
@AetherAI3
AetherAI3 merged commit 3cf3f72 into main Oct 6, 2026
1 of 8 checks passed
@AetherAI3
AetherAI3 deleted the codex/npm-reproducible-pack-modes-20261006 branch October 6, 2026 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant