Skip to content

chore(release): v0.24.2 — add the repository field provenance requires - #308

Merged
ralyodio merged 1 commit into
mainfrom
release/v0.24.2
Aug 6, 2026
Merged

chore(release): v0.24.2 — add the repository field provenance requires#308
ralyodio merged 1 commit into
mainfrom
release/v0.24.2

Conversation

@ralyodio

@ralyodio ralyodio commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What broke

The v0.24.1 publish authenticated fine, signed provenance, published the attestation to the transparency log — and was then rejected by the registry:

npm error code E422
npm error 422 Unprocessable Entity - PUT https://registry.npmjs.org/moshcode
  Error verifying sigstore provenance bundle: Failed to validate repository
  information: package.json: "repository.url" is "", expected to match
  "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/moshcoder/moshcode" from provenance

package.json had no repository field at all. npm checks the attestation's source repository against that field and refuses the tarball when they disagree — and "" disagrees with everything.

It never surfaced when I published 0.24.0 by hand, because that publish had no --provenance to verify.

Fix

  • repository: git+https://github.com/moshcoder/moshcode.git — normalizes to exactly the URL provenance expects (verified)
  • homepage and bugs added while here; both were missing and npm surfaces them on the package page

Why 0.24.2 and not 0.24.1

Provenance ties the tarball to the commit it was built from. Publishing 0.24.1 from this commit would leave an attestation pointing at a commit that is not tagged v0.24.1 — misleading to anyone auditing it. So 0.24.1 stays unpublished; a hole in the sequence costs nothing.

Verification

  • full suite: 1087 passed, 0 failed
  • moshcode --version reports 0.24.2
  • repository.url normalizes to https://github.com/moshcoder/moshcode — asserted, not eyeballed

Publishing this release is the last untested step of the pipeline: everything either side of the actual PUT has now run for real.

🤖 Generated with Claude Code

The v0.24.1 publish reached the registry and was rejected:

  E422 Error verifying sigstore provenance bundle: Failed to validate
  repository information: package.json: "repository.url" is "", expected to
  match "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/moshcoder/moshcode" from provenance

package.json had no `repository` at all. npm checks the attestation's source
repository against that field and refuses the tarball when they disagree —
and "" disagrees with everything. It never came up publishing 0.24.0 by hand,
because that publish had no --provenance to verify.

Bumped to 0.24.2 rather than publishing 0.24.1 from this commit: provenance
ties the tarball to the commit it was built from, so publishing 0.24.1 from a
commit that is not tagged v0.24.1 would leave an attestation pointing at the
wrong place. 0.24.1 stays unpublished — a hole in the sequence, which costs
nothing.

Also adds `homepage` and `bugs`, which npm shows on the package page and which
were likewise missing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

92 finding(s)

HIGH/CRITICAL: 50 | MEDIUM: 42

Severity Rule Location
HIGH manifest-typosquat apps/pwa/package.json:19
HIGH js-ssrf-outbound-request apps/pwa/public/sw.js:45
HIGH secret-generic-credential apps/pwa/test/apikey-bearer-scheme.test.mjs:30
HIGH secret-generic-credential apps/pwa/test/apikey-mask.test.mjs:38
HIGH secret-generic-credential apps/pwa/test/apikey-reveal.test.mjs:35
HIGH secret-generic-credential apps/pwa/test/approvals-context.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/approvals-credits.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/approvals-notify.test.mjs:26
HIGH secret-generic-credential apps/pwa/test/approvals-resolve-race.test.mjs:20
HIGH secret-generic-credential apps/pwa/test/auth-form-email.test.mjs:29
HIGH secret-generic-credential apps/pwa/test/auth-form-email.test.mjs:33
HIGH secret-generic-credential apps/pwa/test/auth-page-error.test.mjs:36
HIGH secret-generic-credential apps/pwa/test/cli-device-token.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/cli-pages-balance.test.mjs:32
HIGH secret-generic-credential apps/pwa/test/cli-token.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/credits-pack.test.mjs:51
HIGH secret-generic-credential apps/pwa/test/credits-webhook-event-match.test.mjs:35
HIGH secret-generic-credential apps/pwa/test/credits-webhook.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/csrf-input-escaping.test.mjs:31
HIGH secret-generic-credential apps/pwa/test/csrf-input-escaping.test.mjs:101
HIGH secret-generic-credential apps/pwa/test/logout-csrf.test.mjs:29
HIGH secret-generic-credential apps/pwa/test/moshpit-api-key.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/moshpit-bulk-claim.test.mjs:23
HIGH secret-generic-credential apps/pwa/test/moshpit-claim-full-name.test.mjs:29
HIGH secret-generic-credential apps/pwa/test/moshpit-crawlable.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/moshpit-ending-page.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/moshpit-pins.test.mjs:22
HIGH secret-generic-credential apps/pwa/test/moshpit-pit-page.test.mjs:33
HIGH secret-generic-credential apps/pwa/test/moshpit-records-page.test.mjs:23
HIGH secret-generic-credential apps/pwa/test/moshpit-records.test.mjs:23
HIGH secret-generic-credential apps/pwa/test/moshpit-registry.test.mjs:20
HIGH secret-generic-credential apps/pwa/test/moshpit-related-endings.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/moshpit-sales.test.mjs:16
HIGH secret-generic-credential apps/pwa/test/moshpit-search.test.mjs:74
HIGH secret-generic-credential apps/pwa/test/moshpit-terms.test.mjs:19
HIGH secret-generic-credential apps/pwa/test/moshpit-tlds-pagination.test.mjs:28
HIGH secret-generic-credential apps/pwa/test/passkey-register-duplicate.test.mjs:38
HIGH secret-generic-credential apps/pwa/test/require-auth-next.test.mjs:31
HIGH secret-generic-credential apps/pwa/test/require-auth-next.test.mjs:35
HIGH secret-generic-credential apps/pwa/test/sessions-output-seq.test.mjs:30
HIGH secret-generic-credential apps/pwa/test/sessions-paste.test.mjs:24
HIGH secret-generic-credential apps/pwa/test/sessions-stream-replay.test.mjs:34
HIGH secret-generic-credential apps/pwa/test/sessions.test.mjs:24
HIGH secret-generic-credential apps/pwa/test/signature.test.mjs:6
HIGH secret-generic-credential test/auth.test.mjs:13
HIGH secret-generic-credential test/auth.test.mjs:63
HIGH secret-generic-credential test/console-cookie-malformed.test.mjs:15
HIGH secret-generic-credential test/console.test.mjs:12
HIGH secret-generic-credential test/mirror.test.mjs:37
HIGH secret-generic-credential test/mirror.test.mjs:77

…and 42 more. Full results in the Security tab.

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 073d14c into main Aug 6, 2026
4 checks passed
@ralyodio
ralyodio deleted the release/v0.24.2 branch August 6, 2026 04:38
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