Skip to content
Closed
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
470a541
chore(deps): standardize node 24 and npm 12
cv Sep 4, 2026
667c431
ci(e2e): bootstrap reviewed npm receipts
cjagwani Sep 4, 2026
eb3b31a
chore(deps): standardize on npm 12.0.2
cjagwani Sep 5, 2026
dcb345f
merge: update npm 12 migration from main
cjagwani Sep 5, 2026
7363df4
merge: include latest main updates
cjagwani Sep 5, 2026
e9778cb
fix(ci): make reviewed npm installation deterministic
cjagwani Sep 5, 2026
8232315
fix(ci): close npm 12 migration regressions
cjagwani Sep 5, 2026
4eb0ce2
fix(ci): finalize npm 12 qualification
cjagwani Sep 5, 2026
73d4425
fix(ci): complete npm 12 bootstrap
cjagwani Sep 5, 2026
6b94edc
Merge remote-tracking branch 'origin/main' into codex/npm12-push-ready
cjagwani Sep 5, 2026
d44835b
fix(ci): preserve rootless tmp permissions
cjagwani Sep 5, 2026
6f109e3
fix(ci): complete npm 12 consumer migration
cjagwani Sep 5, 2026
96a3bc6
fix(images): include npm cache helper closure
cjagwani Sep 5, 2026
f40a3fb
test(images): cover platform-qualified Node stages
cjagwani Sep 5, 2026
2356580
fix(images): regenerate messaging lock with npm 12
cjagwani Sep 5, 2026
018d426
test(images): verify npm identity staging
cjagwani Sep 5, 2026
a8f178a
fix(ci): close remaining npm bootstrap gaps
cjagwani Sep 5, 2026
54b38f5
fix(ci): bind PR audit receipts to npm 12
cjagwani Sep 5, 2026
859923a
fix(openclaw): accept npm 12 pack metadata
cjagwani Sep 5, 2026
ec04fe1
fix(images): preserve npm 12 offline metadata
cjagwani Sep 5, 2026
5e414b1
fix(ci): close npm 12 review gaps
cjagwani Sep 5, 2026
38bbaf2
fix(ci): align npm 12 qualification evidence
cjagwani Sep 5, 2026
138205d
docs(images): clarify Docker pin refresh command
cjagwani Sep 5, 2026
faed922
fix(openclaw): prove npm 12 real parser compatibility
cjagwani Sep 5, 2026
4e6b1fb
fix(ci): close npm 12 review findings
cjagwani Sep 5, 2026
bbc390c
Merge remote-tracking branch 'origin/main' into codex/npm12-push-ready
cjagwani Sep 5, 2026
aef6675
Merge branch 'main' into chore/node24-npm12
cv Sep 7, 2026
29b8a8b
merge: reconcile Node 24 migration with main
cv Sep 9, 2026
cce0e50
Merge branch 'main' into chore/node24-npm12
cv Sep 9, 2026
60c75d5
Merge branch 'main' into chore/node24-npm12
cv Sep 9, 2026
8eca314
merge: resolve conflicts with main
github-actions[bot] Sep 10, 2026
af83a98
merge: reconcile npm 12 migration with main
cjagwani Sep 11, 2026
98669f2
merge: reconcile npm 12 migration with latest main
cjagwani Sep 11, 2026
afffe9c
ci: finalize npm 12 migration evidence
cjagwani Sep 11, 2026
81fbda0
fix(ci): address npm 12 review feedback
cjagwani Sep 11, 2026
f179853
Merge remote-tracking branch 'origin/main' into codex/npm12-rfm-8eca
cjagwani Sep 11, 2026
c9a7862
fix(ci): finish npm 12 action migration
cjagwani Sep 11, 2026
6dbc408
merge: resolve conflicts with main
github-actions[bot] Sep 11, 2026
c4baadc
Merge branch 'main' into chore/node24-npm12
cv Sep 11, 2026
b595ade
merge: resolve conflicts with main
github-actions[bot] Sep 11, 2026
e2584a4
merge: reconcile npm 12 audit handoff with main
cjagwani Sep 11, 2026
4c6a8e1
merge: include latest main before npm 12 receipts
cjagwani Sep 11, 2026
89896da
merge: reconcile npm 12 with OpenShell 0.0.116
cjagwani Sep 11, 2026
b7e8c2d
chore: refresh Pi qualification receipts
cjagwani Sep 11, 2026
429568d
merge: include latest main test optimizations
cjagwani Sep 11, 2026
4992c16
merge: integrate npm 12 trust prerequisite
cjagwani Sep 11, 2026
8e57d6d
merge: resolve npm 12 conflicts with main
cjagwani Sep 12, 2026
3efbb2f
chore: refresh Pi qualification receipts
cjagwani Sep 12, 2026
4f5841f
merge: resolve conflicts with main
github-actions[bot] Sep 12, 2026
3fdc171
merge: reconcile npm 12 migration with main
cjagwani Sep 14, 2026
fc721b7
chore(ci): refresh Pi qualification receipts
cjagwani Sep 14, 2026
6d83637
fix(ci): refresh npm image inputs
cjagwani Sep 14, 2026
478d771
chore(ci): refresh Pi qualification receipts
cjagwani Sep 14, 2026
bf78ffe
Merge branch 'main' into chore/node24-npm12
cjagwani Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/actions/ci-cli-coverage-merge/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,12 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"
cache: npm

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

Comment thread
cjagwani marked this conversation as resolved.
Resolved
- name: Install dependencies
shell: bash
env:
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/ci-cli-coverage-shard/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,15 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"
cache: npm
cache-dependency-path: |
package-lock.json
nemoclaw/package-lock.json

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install pinned Pi search tools
shell: bash
env:
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/ci-compile-artifacts/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22.23.2"
node-version: "24.18.1"
cache: npm
cache-dependency-path: |
package-lock.json
nemoclaw/package-lock.json

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Identify compiled output
id: identity
shell: bash
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/ci-install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ if [ "$package_mode" = "registry" ] && [ -n "${NODE_AUTH_TOKEN:-}" ]; then
export NPM_CONFIG_USERCONFIG="$trusted_npmrc"
fi

npm ci --ignore-scripts --prefer-offline --no-audit --no-fund --cache "$npm_cache"
npm ci --allow-remote=root --ignore-scripts --prefer-offline --no-audit --no-fund --cache "$npm_cache"
if [ "$plugin_install_mode" != "none" ]; then
npm "${plugin_install_args[@]}" \
--ignore-scripts --prefer-offline --no-audit --no-fund --cache "$npm_cache"
--allow-remote=root --ignore-scripts --prefer-offline --no-audit --no-fund --cache "$npm_cache"
fi
5 changes: 4 additions & 1 deletion .github/actions/ci-installer-integration/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"
cache: npm
cache-dependency-path: |
package-lock.json
nemoclaw/package-lock.json

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install dependencies
shell: bash
env:
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/ci-plugin-coverage/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"
cache: npm
cache-dependency-path: |
package-lock.json
nemoclaw/package-lock.json

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install dependencies
shell: bash
env:
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/ci-reviewed-npm-audit/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ runs:
- name: Setup production-compatible Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22.23.2"
node-version: "24.18.1"

- name: Resolve npm audit cache buckets
id: cache-buckets
Expand Down Expand Up @@ -92,7 +92,7 @@ runs:
shell: bash
run: >-
env -u NODE_AUTH_TOKEN -u NPM_TOKEN -u NPM_CONFIG__AUTH_TOKEN
"$GITHUB_ACTION_PATH/verify-and-install-npm.sh"
"$GITHUB_ACTION_PATH/../setup-reviewed-npm/verify-and-install-npm.sh"
"$GITHUB_ACTION_PATH/../../../ci/reviewed-npm-audit.json"

- name: Materialize and audit production dependency graphs
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/ci-static-checks/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ runs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"
cache: npm
cache-dependency-path: |
package-lock.json
nemoclaw/package-lock.json

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install base-trusted createRequire verifier dependencies
shell: bash
run: npm ci --ignore-scripts --no-audit --no-fund --prefix "$GITHUB_ACTION_PATH"
Expand Down
5 changes: 4 additions & 1 deletion .github/actions/prepare-e2e/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@ runs:
- name: Set up Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
node-version: 24.18.1
cache: npm

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@470a5417558c65260d59cdb5eabb01d35834535e

- name: Install root dependencies
shell: bash
run: npm ci --ignore-scripts
Expand Down
15 changes: 15 additions & 0 deletions .github/actions/setup-reviewed-npm/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: setup-reviewed-npm
description: Install the exact npm release approved by the reviewed npm audit identity.
Comment thread
cjagwani marked this conversation as resolved.
Resolved

runs:
using: composite
steps:
- name: Download, verify, and install reviewed npm
shell: bash
run: >-
env -u NODE_AUTH_TOKEN -u NPM_TOKEN -u NPM_CONFIG__AUTH_TOKEN
"$GITHUB_ACTION_PATH/verify-and-install-npm.sh"
"$GITHUB_ACTION_PATH/../../../ci/reviewed-npm-audit.json"
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,18 @@ npm pack "npm@$version" \
--ignore-scripts --no-audit --no-fund >/dev/null

archive="$download_dir/npm-$version.tgz"
IFS=$'\t' read -r actual_sha512 actual_sha256 < <(node -e '
actual_hashes="$download_dir/actual-hashes"
node -e '
const fs = require("node:fs");
const crypto = require("node:crypto");
const archive = fs.readFileSync(process.argv[1]);
process.stdout.write(
crypto.createHash("sha512").update(archive).digest("base64") + "\t" +
crypto.createHash("sha512").update(archive).digest("base64") + "\n" +
crypto.createHash("sha256").update(archive).digest("hex") + "\n",
);
' "$archive")
' "$archive" >"$actual_hashes"
IFS= read -r actual_sha512 <"$actual_hashes"
IFS= read -r actual_sha256 < <(sed -n '2p' "$actual_hashes")
actual_integrity="sha512-$actual_sha512"
if [ "$actual_integrity" != "$expected_integrity" ] || [ "$actual_sha256" != "$expected_sha256" ]; then
echo "ERROR: npm@$version archive integrity mismatch." >&2
Expand All @@ -71,3 +74,9 @@ fi
npm install --global "$archive" \
--userconfig /dev/null \
--ignore-scripts --no-audit --no-fund --offline

installed_version="$(npm --version)"
if [ "$installed_version" != "$version" ]; then
echo "ERROR: installed npm@$installed_version does not match reviewed npm@$version." >&2
exit 1
fi
1 change: 1 addition & 0 deletions .github/workflows/base-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ on:
- "test/e2e/live/managed-image-activation-e2e.test.ts"
- "test/e2e/live/managed-image-activation-e2e-helpers.ts"
- ".github/actions/ci-reviewed-npm-audit/**"
- ".github/actions/setup-reviewed-npm/**"
- ".github/actions/publish-managed-image-digest/**"
- ".github/actions/build-base-image-platform/**"
- ".github/actions/publish-base-image-manifest/**"
Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/candidate-compatibility.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,10 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"

- name: Install reviewed npm
uses: ./controller/.github/actions/setup-reviewed-npm

- id: identity
name: Resolve official candidate provenance
Expand Down Expand Up @@ -142,10 +145,13 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"
cache: npm
cache-dependency-path: candidate-source/package-lock.json

- name: Install reviewed npm
uses: ./controller/.github/actions/setup-reviewed-npm

- name: Install repository dependencies
working-directory: candidate-source
run: npm ci --ignore-scripts
Expand Down Expand Up @@ -270,10 +276,13 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"
cache: npm
cache-dependency-path: candidate-source/package-lock.json

- name: Install reviewed npm
uses: ./controller/.github/actions/setup-reviewed-npm

- name: Install repository dependencies
working-directory: candidate-source
run: npm ci --ignore-scripts
Expand Down Expand Up @@ -304,7 +313,7 @@ jobs:
continue-on-error: true
working-directory: candidate-source
env:
DOCKER_GRPC_PROBE_IMAGE: node:22-trixie-slim@sha256:db8a96a63e5264607ada2d206758876ebbed6a12be2ada7517793cbfb0c2a29c
DOCKER_GRPC_PROBE_IMAGE: node:24.18.1-trixie-slim@sha256:ac39e4b5fcb2b1b34b20364fd58b2e898f3bb80731ee6f62a7536f9df3d6aadc
E2E_ARTIFACT_DIR: ${{ github.workspace }}/candidate-source/e2e-artifacts/live/openshell-gateway-auth-contract
E2E_JOB: "1"
E2E_TARGET_ID: openshell-gateway-auth-contract
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/code-scanning.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22.19.0
node-version: 24.18.1

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install ShellCheck
run: |
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/codebase-growth-guardrails.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ jobs:
ref: ${{ github.event.pull_request.base.sha }}
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.18.1

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Install trusted dependencies
run: npm ci --ignore-scripts --no-audit --no-fund

Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/commit-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"
cache: npm

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Install dependencies
run: npm install --ignore-scripts

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-pin-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# Weekly check that the pinned Dockerfile base-image digest is still current.
# Fails with an actionable message when a newer node:22-trixie-slim is available.
# Fails with an actionable message if the node:24.18.1-trixie-slim digest changes.

name: Images / Check Docker Base Image Pins

Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/docs-cli-parity-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "22"
node-version: "24.18.1"

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Install dependencies
run: npm install --ignore-scripts
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/docs-preview-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
node-version: "24.18.1"

- name: Install reviewed npm
uses: NVIDIA/NemoClaw/.github/actions/setup-reviewed-npm@7363df49a5f25b0dd1c20c80905917c31760a27e

- name: Install docs dependencies
run: npm ci --ignore-scripts
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/docs-publish-public.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,12 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
node-version: "24.18.1"
package-manager-cache: false

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Install docs dependencies
run: npm ci --ignore-scripts

Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/docs-publish-staging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
node-version: "24.18.1"

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Install docs dependencies
run: npm ci --ignore-scripts
Expand Down Expand Up @@ -109,7 +112,11 @@ jobs:
if: ${{ steps.previews.outputs.has_previews == 'true' }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
node-version: "24.18.1"

- name: Install reviewed npm
if: ${{ steps.previews.outputs.has_previews == 'true' }}
uses: ./.github/actions/setup-reviewed-npm
Comment thread
cjagwani marked this conversation as resolved.
Resolved

- name: Delete Fern previews
if: ${{ steps.previews.outputs.has_previews == 'true' }}
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/e2e-main-retry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Evaluate main E2E retry
env:
Expand Down Expand Up @@ -96,7 +99,10 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ">=22.19.0 <23"
node-version: "24.18.1"

- name: Install reviewed npm
uses: ./.github/actions/setup-reviewed-npm

- name: Build advisory same-commit reliability report
env:
Expand Down
Loading
Loading