fix(release): core-wasm publish via pnpm/OIDC — npm 10 + missing NPM_TOKEN dies ENEEDAUTH (LAB-831) - #86
Conversation
… NPM_TOKEN dies ENEEDAUTH (LAB-831) The repo has no NPM_TOKEN secret (auth moved to npm OIDC trusted publishing — that is how publish-cachekit succeeds via pnpm). The core-wasm job added in #85 wrote an empty token to an ~/.npmrc that setup-node's NPM_CONFIG_USERCONFIG shadows anyway, then ran Node 22's bundled npm 10, which has no OIDC support: recovery dispatch run 30180731767 packed fine and died ENEEDAUTH at publish. Align the job with the proven publish-cachekit invocation (pnpm 11 does OIDC). Note: first-ever publish of a NEW package also needs an org-level trusted publisher on npmjs.com — package-level config requires the package to exist (npm/cli#8544).
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 58 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Kody Review CompleteGreat news! 🎉 Keep up the excellent work! 🚀 Kody Guide: Usage and ConfigurationInteracting with Kody
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
Co-authored-by: multica-agent <github@multica.ai>
Problem (LAB-831 / LAB-780 follow-up)
The
publish-cachekit-core-wasmjob added in #85 has never successfully published. Recovery dispatch run 30180731767 (wasm_tag=cachekit-core-wasm-v0.1.1, 2026-07-26) built and packed the wasm artifact fine, then died at publish:So
@cachekit-io/cachekit@0.1.4remains uninstallable (its hard dep@cachekit-io/cachekit-core-wasm@0.1.1is still a 404 on npm) — and merging release PR #83 would ship an equally uninstallable 0.1.5.Root cause
Two stacked auth bugs in the job:
NPM_TOKENsecret (repo secrets are onlyAPP_ID/APP_PRIVATE_KEY; auth moved to npm OIDC trusted publishing — that is exactly whypublish-cachekitsucceeds with its ownNODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}resolving empty: pnpm 11 falls through to OIDC). The job'sConfigure npm authstep wrote an empty token into~/.npmrc, whichsetup-node'sNPM_CONFIG_USERCONFIGshadows anyway — a double no-op.npm publishused Node 22's bundled npm 10, which has no OIDC trusted-publishing support (needs npm ≥ 11.5). No token + no OIDC capability =ENEEDAUTH.Fix
Drop the dead token steps and publish with the exact invocation the proven
publish-cachekitjob uses:pnpm publish --access public --provenance --no-git-checks(pnpm 11.8 perpackageManagerdoes OIDC).@cachekit-io/cachekit-core-wasmhas never existed on npm, and package-level trusted publishers can only be configured on an existing package (npm/cli#8544). Creating a new package via OIDC requires an org-level trusted publisher on thecachekit-ionpm org (Settings → Trusted Publishers) pointing at this repo'srelease-please.yml. If that isn't configured, the alternative is one manual first publish ofcore-wasm@0.1.1, after which package-level config takes over. (Same consideration applies to #50's broader OIDC migration.)After merge
Re-run the recovery:
gh workflow run release-please.yml -f wasm_tag=cachekit-core-wasm-v0.1.1, verifynpm install @cachekit-io/cachekit@0.1.4succeeds cold, then merge #83 for 0.1.5. Consumer waiting: nem.api LAB-768 (PR 27b-io/nem.api#9).