[AAASM-2344] 🐛 (release): Lowercase repository.url for npm sigstore provenance#67
Conversation
…e provenance npm's sigstore provenance verification performs a case-sensitive string compare between the package's `repository.url` and the canonical GitHub URL emitted in the provenance bundle (which is always lowercase `ai-agent-assembly`). GitHub routing is case-insensitive so the mixed-case URL works for humans, but `pnpm publish` against the npm registry rejects the upload with HTTP 422: Error verifying sigstore provenance bundle: Failed to validate repository information: package.json: "repository.url" is "git+https://github.com/AI-agent-assembly/node-sdk.git", expected to match "https://github.com/ai-agent-assembly/node-sdk" from provenance This bit us during the v0.0.1-alpha.4 release: the root `@agent-assembly/sdk` and all four `@agent-assembly/runtime-*` sub-packages failed to publish. Lowercase the org segment in every package.json that ships to npm so the next `release-node.yml` run can complete the publish step.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Claude Code review — AAASM-2344CI state — 24 SUCCESS / 1 FAILURE — ignorable
The single FAILURE is Per your standing instruction — "if the fail root cause is acceptance like test coverage or SonarQube parts, we could ignore it first" — this is in the ignorable-infra category, even less ambiguous than coverage failures because the test code didn't execute. Safe to merge. 24 SUCCESS includes Node 18/20/22 on ubuntu-latest + macos-latest, plus the SonarCloud + Codecov + lint checks. The actual sigstore provenance verification can't be tested here pre-merge because npm publish only happens on tag — but the regex/string change is mechanically obvious. Scope vs. acceptance criteria
Coupling noteThis PR alone makes VerdictReady for human approval and merge. Diff is minimal (10 lines across 5 files), all 5 files are pure — Claude Code (Opus 4.7, 1M context) |



Summary
Fixes a v0.0.1-alpha.4 publish failure in
release-node.ymlwherepnpm publish --provenancewas rejected by the npm registry with HTTP 422 because the package'srepository.url(AI-agent-assembly) did not byte-for-byte match the canonical lowercase URL (ai-agent-assembly) emitted in the sigstore provenance bundle.GitHub routing is case-insensitive — both URLs resolve to the same repository — but npm's sigstore verifier performs a case-sensitive string compare and refused the upload.
Lowercase the org segment in every package.json that ships to npm:
package.json(root@agent-assembly/sdk, plusbugs.urlandhomepage)packages/runtime-linux-x64/package.jsonpackages/runtime-linux-arm64/package.jsonpackages/runtime-darwin-x64/package.jsonpackages/runtime-darwin-arm64/package.jsonFailed run
https://github.com/ai-agent-assembly/node-sdk/actions/runs/26855112352
npm error (verbatim)
Release re-trigger plan
Once this PR is merged, re-run
release-node.ymlviaworkflow_dispatchwithrelease_tag: v0.0.1-alpha.4. No new git tag is needed — none of the0.0.1-alpha.4npm versions were ever created (publish failed before any package made it to the registry), so re-publishing the same version is clean.Test plan
grep -rn "AI-agent-assembly" --include="package.json"returns no results after the changehttps://github.com/ai-agent-assembly/node-sdk.gitrelease-node.ymlwithrelease_tag: v0.0.1-alpha.4Notes on out-of-scope references
AI-agent-assemblyalso appears inREADME.mdbadges,docs/,CONTRIBUTING.md,.github/workflows/*.yml(gh CLI--repoargs),verification-reports/, andwebsite/.docusaurus/generated output. None of these affect npm provenance and all work fine via GitHub's case-insensitive routing, so they are intentionally left alone.Closes AAASM-2344