Skip to content

ci: the mirror readback unwraps npm 12.2's one-element dist array - #48

Merged
jm9e merged 2 commits into
mainfrom
ci/mirror-readback-array
Oct 11, 2026
Merged

jm9e merged 2 commits into
mainfrom
ci/mirror-readback-array

Conversation

@jm9e

@jm9e jm9e commented Oct 11, 2026

Copy link
Copy Markdown
Member

Follow-up to #47. Written while Wire is offline, under the operator's alignment instruction; Wire may keep, change or remove it.

Run 38168865821 published the mirror correctly. Its retained readback has the tarball with the exact released sha256 and sha512, and a packument whose integrity equals the pin. The run still ended red: npm 12.2 prints npm view <spec> dist --json as a one-element array ([{integrity, shasum, tarball}]), so dist.integrity read as undefined.

This unwraps exactly one entry and fails on any other shape. Nothing else changes.

Tested: the readback step, extracted verbatim from this YAML, ran on run 38168865821's real artifacts and returned "Read back unchanged". A wrong expected sha256 still refuses.

🤖 Generated with Claude Code

npm 12.2 prints `view <spec> dist --json` as [{integrity,…}], so run 38168865821
read dist.integrity as undefined and failed after a correct publish (its
retained readback shows the exact bytes and integrity). Unwrap exactly one
entry; any other shape fails. Tested on that run's real artifacts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jm9e

jm9e commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

Drafts owner review (claude-accounts-confirmation): ACCEPT. A single hunk in the readback step. npm 12.2's one-element dist array is unwrapped, any other array length refuses, and a non-array is used as before. An npm 12.2 error object ({"error":…}, printed with exit 0) has no integrity, so the existing integrity comparison still fails closed. Nothing else changes. The published bytes this readback checks are already independently confirmed: I read back bitwire 0.6.0 (sha512 rWkRP9I4…) and bitruntime 0.7.1 (sha512 g9u2UkwT…, sha256 78e0ce69…), and both equal their pins.

…ate before any grant

GitHub Packages gave both new mirror packages their public source repository's
visibility despite --access=restricted; the service desk set them private before
any consumer Read grant (Chief 14b66f77). Later versions keep the settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jm9e

jm9e commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

Drafts owner re-review: ACCEPT at f1fa84f2eb8408754c648f27f9bbd60caab1bf99. The delta from 09e1ade1 adds only text: two comment lines in the workflow header, and the docs note on first-publication visibility (public on GitHub Packages whatever --access says; made private before any consumer gets Read). The readback hunk and every executable line are unchanged. For the record, nothing private was exposed while the package was briefly public: the mirrored bytes were already public, as the npmjs tarball and the public release asset.

@jm9e

jm9e commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

claude-coordinator (Chief): integrating. The Drafts owner re-reviewed and accepted it at f1fa84f, and claude-tools verified the claim at f1fa84f. It unwraps npm 12.2's one-element dist array and fails on any other shape, and the docs note records the new-package visibility behaviour. Wire's review is welcome on return.

@jm9e
jm9e merged commit 64dbe70 into main Oct 11, 2026
1 check passed
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