From 71c436be75b89fa6b102c66b1093d4236422b854 Mon Sep 17 00:00:00 2001 From: Ignat Date: Wed, 3 Jun 2026 17:20:21 -0300 Subject: [PATCH 1/4] ci(release): add npm@latest preflight for OIDC trusted publishing npm OIDC trusted publishing requires npm CLI >= 11.5.1. Node 24's bundled npm may be older. Install latest npm globally after setup-node and before pnpm changeset publish. --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf48f34..8117cc5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,6 +19,8 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: Install wasm-pack 0.14.0 run: cargo install wasm-pack --version 0.14.0 --locked + - name: Upgrade npm for OIDC trusted publishing (requires >= 11.5.1) + run: npm install -g npm@latest - run: pnpm install --frozen-lockfile - run: pnpm -r build - run: pnpm changeset publish From 322d81312447770d02f79a1aed7be8017cf2154f Mon Sep 17 00:00:00 2001 From: Ignat Date: Wed, 3 Jun 2026 17:20:28 -0300 Subject: [PATCH 2/4] chore(release): consume vestigial changeset into CHANGELOG entries (Design A) The initial-release-0-1-0.md changeset was vestigial: its intent (minor bump to 0.1.0) is already encoded in the package.json versions. Deleting it prevents a `changeset version` double-bump to 0.2.0 (Design A manual versioning). Content preserved: codec CHANGELOG consolidated from two stub entries into one clean ## 0.1.0 section; types and networks CHANGELOGs expanded with changeset description text so the record is not lost. --- .changeset/initial-release-0-1-0.md | 11 ----------- packages/codec/CHANGELOG.md | 8 +------- packages/networks/CHANGELOG.md | 2 +- packages/types/CHANGELOG.md | 2 +- 4 files changed, 3 insertions(+), 20 deletions(-) delete mode 100644 .changeset/initial-release-0-1-0.md diff --git a/.changeset/initial-release-0-1-0.md b/.changeset/initial-release-0-1-0.md deleted file mode 100644 index 993a970..0000000 --- a/.changeset/initial-release-0-1-0.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@void-layer/codec": minor -"@void-layer/types": minor -"@void-layer/networks": minor ---- - -Initial 0.1.0 release of the @void-layer monorepo. - -- `@void-layer/codec`: Canonical TLV + Brotli wire codec (WASM + JS shim). Includes `encodeInvoiceCanonical`, `decodeInvoiceCanonical`, `encodeInvoiceWire`, `decodeInvoiceWire`, and `receiptHash` (keccak-256 content hash). 18 golden vectors in v4-codec.json schema_version=1. -- `@void-layer/types`: TypeScript type definitions for Invoice, InvoiceItem, InvoiceFrom, InvoiceClient, NetworkConfig, ChainId, FrameContext, FrameState, PaymentProof, PaymentRequiredResponse. Zero runtime dependencies. -- `@void-layer/networks`: Chain configs for 5 EVM networks (Ethereum, Base, Arbitrum, Optimism, Polygon) with public RPC URLs. `SUPPORTED_TOKENS` is empty at 0.1.0 (@alpha — populated in a future release from Uniswap Token List). diff --git a/packages/codec/CHANGELOG.md b/packages/codec/CHANGELOG.md index 223eaa8..c35c4d7 100644 --- a/packages/codec/CHANGELOG.md +++ b/packages/codec/CHANGELOG.md @@ -6,7 +6,7 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning: [S --- -## [Unreleased] — 0.1.0 pre-publish (PR #7 in review) +## 0.1.0 ### Added @@ -51,9 +51,3 @@ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Versioning: [S - Unit tests: ~135 → 211 (post R1-R9 + T6 hardening). - Golden vectors: 27 (Tier 1 frozen) + 54 corpus entries (Tier 2 parametric). - ---- - -## [0.1.0] — Unreleased - -Initial package structure. No published npm or crates.io release yet (Phase 3 target). diff --git a/packages/networks/CHANGELOG.md b/packages/networks/CHANGELOG.md index dd494bb..44226dd 100644 --- a/packages/networks/CHANGELOG.md +++ b/packages/networks/CHANGELOG.md @@ -4,4 +4,4 @@ ### Minor Changes -- Initial release. +- Initial 0.1.0 release. Chain configs for 5 EVM networks (Ethereum, Base, Arbitrum, Optimism, Polygon) with public RPC URLs. `SUPPORTED_TOKENS` is empty at 0.1.0 (@alpha — populated in a future release from the Uniswap Token List). diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index c38622f..e49a0c3 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -4,4 +4,4 @@ ### Minor Changes -- Initial release. +- Initial 0.1.0 release. TypeScript type definitions for Invoice, InvoiceItem, InvoiceFrom, InvoiceClient, NetworkConfig, ChainId, FrameContext, FrameState, PaymentProof, and PaymentRequiredResponse. Zero runtime dependencies. From fab537ab2d2d65220007bf70df29f74a5598ea52 Mon Sep 17 00:00:00 2001 From: Ignat Date: Wed, 3 Jun 2026 17:39:20 -0300 Subject: [PATCH 3/4] ci(release): pnpm 11.5.1 + correct checkout pin + rm npm preflight (Shade review) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P0-1: bump packageManager to pnpm@11.5.1 (OIDC trusted publishing requires pnpm >= 11.0.7; .npmrc placeholder fix >= 11.1.3). pnpm/action-setup reads packageManager from root package.json — no explicit version: in workflows. engines.pnpm bumped to >=11 to match. pnpm 11 migration side-effects (required for frozen-lockfile to pass): - pnpm.overrides moved from package.json "pnpm" field to pnpm-workspace.yaml - allowBuilds added for @swc/core and esbuild (pnpm 11 build-approval gate) - pnpm install ran clean; lockfile unchanged (resolution skipped, up-to-date) P0-2: remove "npm install -g npm@latest" step — pnpm publishes, not npm; upgrading npm CLI version has no effect on OIDC trusted publishing. P1-1: re-pin actions/checkout to 9f698171 (real v6.0.3 SHA; prior pin df4cb1c resolved to mutable v6 tag but comment falsely said v6.0.3). --- .github/workflows/release.yml | 5 +---- package.json | 9 ++------- pnpm-workspace.yaml | 7 +++++++ 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8117cc5..28a8b41 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,9 +8,8 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + - uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - with: { version: 10.24.0 } - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: { node-version: 24, cache: pnpm, registry-url: 'https://registry.npmjs.org' } - uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6 # v1 @@ -19,8 +18,6 @@ jobs: - run: rustup target add wasm32-unknown-unknown - name: Install wasm-pack 0.14.0 run: cargo install wasm-pack --version 0.14.0 --locked - - name: Upgrade npm for OIDC trusted publishing (requires >= 11.5.1) - run: npm install -g npm@latest - run: pnpm install --frozen-lockfile - run: pnpm -r build - run: pnpm changeset publish diff --git a/package.json b/package.json index 5cbdd79..d5301e0 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "engines": { "node": ">=24", - "pnpm": ">=10" + "pnpm": ">=11" }, "scripts": { "build": "pnpm -r --filter './packages/*' build", @@ -20,10 +20,5 @@ "typescript": "^6.0.3", "typescript-eslint": "^8.60.1" }, - "packageManager": "pnpm@10.24.0", - "pnpm": { - "overrides": { - "uuid": ">=11.1.1" - } - } + "packageManager": "pnpm@11.5.1" } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dee51e9..a29d6de 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,9 @@ packages: - "packages/*" + +allowBuilds: + '@swc/core': true + esbuild: true + +overrides: + uuid: ">=11.1.1" From 33bef4ed8c012bb1b1ce745edd4d01ddf5d56176 Mon Sep 17 00:00:00 2001 From: Ignat Date: Wed, 3 Jun 2026 17:46:03 -0300 Subject: [PATCH 4/4] ci: remove explicit pnpm version: from all action-setup steps (single source) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ERR_PNPM_BAD_PM_VERSION fired in CI because pnpm/action-setup had version: 10.24.0 hardcoded while packageManager is now pnpm@11.5.1. Remove the version: input from all three pnpm/action-setup steps in ci.yml (lint-and-build, vector-parity, ts-rust-parity jobs) so action-setup reads the version from packageManager — one source, no conflict. release.yml was already fixed in the prior commit. --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 875ffef..3edaa2a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,6 @@ jobs: steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - with: { version: 10.24.0 } - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: { node-version: 24, cache: pnpm } - uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6 # v1 @@ -41,7 +40,6 @@ jobs: steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - with: { version: 10.24.0 } - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: { node-version: 24, cache: pnpm } - uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6 # v1 @@ -76,7 +74,6 @@ jobs: src/features/invoice-codec src/shared/lib/tlv-codec - uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8 - with: { version: 10.24.0 } - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: { node-version: 24, cache: pnpm } - uses: actions-rust-lang/setup-rust-toolchain@46268bd060767258de96ed93c1251119784f2ab6 # v1