fix(release): accept package tarballs with large entry lists#111672
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 20, 2026, 1:33 AM ET / 05:33 UTC. Summary PR surface: Tests +31, Other +3. Total +34 across 2 files. Reproducibility: yes. —source reproduction is high confidence: a valid tarball whose Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land the bounded listing-buffer fix after a release owner confirms that the existing 64 MiB package-check ceiling is the intended operational limit. Do we have a high-confidence way to reproduce the issue? Yes—source reproduction is high confidence: a valid tarball whose Is this the best way to solve the issue? Yes. Applying a finite AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a22ede72e494. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Tests +31, Other +3. Total +34 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
b335470 to
bf47ade
Compare
|
Merged via squash.
|
What Problem This Solves
Fixes an issue where release and package-acceptance checks rejected otherwise valid self-contained OpenClaw tarballs when their archive entry listing exceeded Node's default child-process capture buffer.
Why This Change Was Made
The checker now gives only
tar -tfa bounded 64 MiB capture buffer, matching the existing npm release-check capture limit, while keeping the current synchronous inventory-validation path. Spawn failures also retain the child error message when no exit status or stderr is available; package contents and plugin bundling are unchanged.User Impact
Release operators can validate larger self-contained deployment artifacts without the checker terminating at Node's 1 MiB default output limit. Malformed archives and nonzero tar exits continue to fail with actionable diagnostics.
Evidence
tar -tfoutput measured 1,160,784 bytes failed with status 1 andtar -tf failed ...: null.OpenClaw package tarball integrity passed.git diff --check upstream/main...HEADandnode --check scripts/check-openclaw-package-tarball.mjspassed after the final rebase.$autoreview --mode branch --base upstream/mainreturned no accepted/actionable findings on the final diff.Real behavior proof
Behavior addressed: Valid package tarballs no longer fail validation solely because their entry listing exceeds Node's default 1 MiB
spawnSynccapture limit.Real environment tested: Local macOS tar/Node execution and delegated Blacksmith Linux Node 24 Testbox.
Exact steps or command run after this patch: Generated a valid OpenClaw fixture with 8,000 additional archive entries, measured
tar -tfoutput, rannode scripts/check-openclaw-package-tarball.mjs <fixture.tgz>, then ranpnpm test test/scripts/check-openclaw-package-tarball.test.ts -- --reporter=verboseon Testbox.Evidence after fix: The real listing was 1,160,784 bytes; the checker exited 0, and all 35 focused tests passed on Testbox run 29719088844.
Observed result after fix: The large valid tarball passed; malformed tarballs and the existing fake nonzero extraction path still failed with their tar diagnostics, and failed extraction cleanup remained green.
What was not tested: The full release-validation or Package Acceptance workflow was not dispatched because this change is isolated to the checker process buffer and its direct test project.