Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
1646090
fix: add policy preset for brew
laitingsheng Apr 1, 2026
8066b3c
chore: add cyclomatic complexity lint rule (#875)
cv Mar 26, 2026
9925296
docs: add host-side config and state file locations to README (#903)
WuKongAI-CMU Mar 26, 2026
bdaac07
chore: add tsconfig.cli.json, root execa, TS coverage ratchet (#913)
cv Mar 26, 2026
0c9fb9f
fix: use CONNECT tunnel for WebSocket endpoints in Discord/Slack pres…
BenediktSchackenberg Mar 26, 2026
20aef98
fix: standardize Node.js minimum version to 22.16 (#840)
cv Mar 26, 2026
35922dd
fix: harden installer and onboard resiliency (#961)
kjw3 Mar 27, 2026
8b1bd38
fix(security): strip credentials from migration snapshots and enforce…
gn00295120 Mar 27, 2026
b4b9ba9
fix(sandbox): export proxy env vars with full NO_PROXY and persist ac…
senthilr-nv Mar 27, 2026
2c22c43
fix(policies): preset application for versionless policies (Fixes #35…
deepujain Mar 27, 2026
c9b9cea
fix: restore routed inference and connect UX (#1037)
kjw3 Mar 28, 2026
2c42aaa
fix(sandbox): restore sandbox DNS resolution for web tools (fixes #62…
senthilr-nv Mar 29, 2026
736261b
fix(install): add trap handler to spin() for clean Ctrl+C teardown (#…
latenighthackathon Mar 30, 2026
725666f
fix(install): upgrade Node.js via nvm when system version is below mi…
ericksoa Mar 30, 2026
b07a0ec
chore(docs): add debug and uninstall to commands reference (#1082)
ericksoa Mar 30, 2026
e049a17
fix(onboard): retry gateway start with exponential backoff (#1051)
ericksoa Mar 30, 2026
8ff4ac7
ci(hooks): add root-level vitest to pre-push hooks (#1083)
ericksoa Mar 30, 2026
0f46176
feat: add Kubernetes testing infrastructure (#227)
rwipfelnv Mar 30, 2026
289629d
fix(registry): atomic writes and advisory file locking for sandboxes.…
Junior00619 Mar 30, 2026
3515f1e
fix(onboard): force chat completions API for vLLM and NIM-local provi…
BenediktSchackenberg Mar 30, 2026
963d917
fix(cli): show live gateway model/provider in list and status command…
Junior00619 Mar 30, 2026
ab6a53d
fix: improve setup.sh and brev-setup.sh for CI and non-interactive us…
jyaunches Mar 30, 2026
7156969
docs: add architecture diagram and overview (#1095)
jyaunches Mar 30, 2026
65cf248
docs: add CLAUDE.md and AGENTS.md for AI agent development guidance (…
jyaunches Mar 30, 2026
8bbf438
fix(onboard): skip OLLAMA_HOST=0.0.0.0 on WSL2 to fix Docker routing …
jieunl24 Mar 30, 2026
a5918f1
test(security): add Brev E2E tests for command injection and credenti…
jyaunches Mar 30, 2026
3d2af9c
fix: refactor file writing to use fs.writeFileSync (#1052)
vl43den Mar 30, 2026
7732562
ci(nightly-e2e): remove misleading environment from cloud-experimenta…
mercl-lau Mar 30, 2026
02b1ef6
fix(docker): set nemoclaw-start permissions to 755 for sandbox readab…
craigamcw Mar 30, 2026
d859e88
fix: prevent command injection in isRepoPrivate() (#973)
Aakeeo Mar 30, 2026
40b0212
fix(sandbox): add .openclaw/memory dir and symlink to base image (#1061)
jneeee Mar 30, 2026
459986b
fix(nim): use published Docker port in status checks (#1022)
cr7258 Mar 30, 2026
4bf3dcc
fix(docker): exclude .venv and dev artifacts from Docker build contex…
latenighthackathon Mar 30, 2026
e5e99c7
fix(onboard): add timeout to spawnSync calls to prevent hung processe…
latenighthackathon Mar 30, 2026
5aae519
docs(cli): sync command reference with implemented CLI surface (#901)
WuKongAI-CMU Mar 30, 2026
2da2a02
fix(policy): add node binary to npm_registry policy (#669)
jnun Mar 30, 2026
3946baa
fix(security): add rate limiting to Telegram bridge (#865)
fdzdev Mar 30, 2026
4d7d70f
fix(scripts): enforce config integrity check in non-root mode (#1071)
latenighthackathon Mar 30, 2026
0d69865
fix(test): stabilize debug and credential prompt tests (#817)
cr7258 Mar 30, 2026
ce1edcb
fix: check GPU VRAM against NIM model requirements before setting nim…
Mar 30, 2026
88065b2
fix(policy): use access: full for gateway.discord.gg in default sandb…
deepujain Mar 30, 2026
3ce7326
fix(onboard): replace predictable temp filenames with mkdtempSync (#1…
latenighthackathon Mar 30, 2026
6d5c443
fix(install): ensure p-retry resolves for npm install -g from source …
ericksoa Mar 30, 2026
43833bc
fix(onboard): robustify health checks and wait for dashboard readines…
dumko2001 Mar 30, 2026
01828c8
fix(preflight): auto-create swap on low-memory VMs to prevent OOM dur…
vl43den Mar 30, 2026
3c9083f
fix(install): configure npm for user-local installs to avoid EACCES o…
MauroDruwel Mar 30, 2026
8544806
fix(security): replace method wildcards with explicit GET+POST in bas…
stikman28 Mar 30, 2026
ac454ed
fix(scripts): force IPv4 DNS on WSL2 to prevent bridge ETIMEDOUT (#1066)
phanisaimunipalli Mar 30, 2026
319ccf0
fix(onboard): add sudo prefix to lsof port-conflict suggestions (#1073)
latenighthackathon Mar 30, 2026
92fac48
refactor(preflight): simplify swap handling (#1122)
cv Mar 30, 2026
49ca947
ci: add DCO sign-off check workflow (#941)
brandonpelfrey Mar 30, 2026
eb0f12d
docs: re-balancing README and docs (#1124)
miyoungc Mar 30, 2026
feaf351
fix(security): verify SHA-256 checksum on OpenShell binary download (…
ericksoa Mar 30, 2026
500aca3
fix(security): download installers to file before execution (#696)
ericksoa Mar 31, 2026
20f482b
docs: improve vulnerability reporting guide (#1128)
miyoungc Mar 31, 2026
dc77c9d
fix(onboard): pre-select suggested policy presets in visual display (…
Mar 31, 2026
1706f38
docs(deploy): add Brev first-run quick start (#927)
WuKongAI-CMU Mar 31, 2026
62cc061
chore(deps): bump docker/setup-buildx-action from 3 to 4 (#932)
dependabot[bot] Mar 31, 2026
b3f5cec
fix(onboard): use sudo lsof fallback to identify root-owned port bloc…
kagura-agent Mar 31, 2026
8368607
chore(deps): bump marocchino/sticky-pull-request-comment from 2.9.4 t…
dependabot[bot] Mar 31, 2026
9df9152
fix: harden inference onboarding auth and validation recovery (#1136)
kjw3 Mar 31, 2026
4e85a5e
fix(blueprint): clawhub.ai and node egress in OpenShell policy (#582)
amit221 Mar 31, 2026
04ae7c8
fix(scripts): redirect all operational log messages to stderr (#1072)
latenighthackathon Mar 31, 2026
d714c25
fix(security): stop piping curl output directly to sudo bash (#869)
fdzdev Mar 31, 2026
e1604f8
fix(security): add verification for downloaded Ollama installer (#1143)
fdzdev Mar 31, 2026
0851ac0
fix(security): deny Tailscale socket and binary access in sandbox pol…
fdzdev Mar 31, 2026
1e3b5b5
Revert "fix(security): deny Tailscale socket and binary access in san…
jacobtomlinson Mar 31, 2026
addef35
fix(docs): inline quickstart content to fix GitHub rendering (#1186)
ericksoa Mar 31, 2026
0d55ed1
fix: pass DCO check on NVIDIA emails (#1190)
brandonpelfrey Mar 31, 2026
561434c
feat: add Amazon Bedrock as inference provider (#963)
mvincentbb Mar 31, 2026
fbaa004
fix(install): write nemoclaw alias to shell profile after shim creati…
ericksoa Mar 31, 2026
2ddce9f
ci: consolidate checks and add main workflow (#1131)
cv Mar 31, 2026
1f4d93a
fix(security): reject unsafe HOME fallback in credential storage (#864)
fdzdev Mar 31, 2026
d8b2807
fix(security): make .openclaw symlinks immutable after validation (#1…
latenighthackathon Mar 31, 2026
1fba73c
fix(security): block CGNAT IPs in SSRF validation (#1138)
fdzdev Mar 31, 2026
00b1987
fix(onboard): restore dashboard forward and mac port guidance (#1192)
kjw3 Mar 31, 2026
96b46c6
fix(install): default to `latest` tag instead of `main` branch (#1197)
cv Mar 31, 2026
d3935d0
fix: skip vitest pre-push hooks on docs-only changes (#1199)
cv Mar 31, 2026
b1a96b7
fix(cli): restore logs streaming and reboot recovery ux (#1187)
kjw3 Mar 31, 2026
9afb007
fix(policies): guard extractPresetEntries against null/undefined inpu…
Junior00619 Mar 31, 2026
c55646d
chore: add Prettier formatting for root-level JS files (#1200)
cv Mar 31, 2026
29c44d2
fix: unify vitest hooks and standardize pre-commit config (#1201)
cv Mar 31, 2026
671cde8
fix(onboard): skip CoreDNS patching on WSL2 to fix sandbox DNS (#1207)
jieunl24 Mar 31, 2026
f63f07f
refactor(e2e): simplify Brev E2E to use bare CPU instances (#1205)
jyaunches Mar 31, 2026
0c5b505
docs: align with current CLI, onboard recommended and setup legacy (F…
deepujain Mar 31, 2026
cebfe6a
refactor: remove Amazon Bedrock as first-class provider (#1212)
cv Mar 31, 2026
35a708f
docs: add security best practices (#1203)
miyoungc Mar 31, 2026
6acf889
fix: address core blocker lifecycle regressions (#1208)
kjw3 Mar 31, 2026
14a3371
fix: re-prompt on invalid sandbox name instead of exiting (#1173)
BenediktSchackenberg Mar 31, 2026
cb18c08
docs: change alpha statement into banner, add disclaimer (#1209)
miyoungc Apr 1, 2026
f997b98
fix(onboard): add skipVerify to NVIDIA provider config (#1133)
latenighthackathon Apr 1, 2026
ad2c245
test: improve CLI test determinism and remove redundant test logic (#…
ksapru Apr 1, 2026
79c83cb
fix: resolve ESLint error and speed up gateway recovery tests (#1223)
cv Apr 1, 2026
72bdeb0
fix: derive CLI version from git tags instead of hard-coded package.j…
cv Apr 1, 2026
a720888
fix: replace predictable temp filenames with mkdtempSync (#1105)
BenediktSchackenberg Apr 1, 2026
28831e6
fix: use sudo -n for lsof retry in preflight to avoid password prompt…
cv Apr 1, 2026
7d0b221
fix(policies): use structured YAML parsing for policy preset merge (#…
tommylin-signalpro Apr 1, 2026
f4eef58
fix(policy): add protocol/enforcement/tls to statsig and sentry endpo…
latenighthackathon Apr 1, 2026
e6e1bcf
refactor(cli): extract pure functions from onboard.js to typed TypeSc…
cv Apr 1, 2026
f4f2da5
refactor(cli): delete setup.sh, route all setup through nemoclaw onbo…
cv Apr 1, 2026
58ae43b
fix(security): harden gateway auth defaults and restrict auto-pair (#…
jyaunches Apr 1, 2026
54bf7ca
test: add shouldPatchCoredns WSL2 unit tests (#1274)
jieunl24 Apr 1, 2026
6623e0f
fix(install): add build:cli step and harden E2E destroy check (#1277)
ericksoa Apr 1, 2026
7099e77
docs: fix incorrect -f flag in logs examples, should be --follow (#1023)
latenighthackathon Apr 1, 2026
3e24766
refactor(cli): migrate runtime-recovery.js to TypeScript (#1268)
cv Apr 2, 2026
ac58be7
refactor(cli): migrate local-inference.js to TypeScript (#1270)
cv Apr 2, 2026
3aeed68
refactor(cli): migrate nim.js to TypeScript (#1271)
cv Apr 2, 2026
6261b15
fix: align setup-spark.sh with the spark-install.md (#1256)
paritoshd-nv Apr 2, 2026
42818b4
refactor(cli): migrate onboard-session.js to TypeScript (#1272)
cv Apr 2, 2026
f1694de
refactor(cli): migrate inference-config.js to TypeScript (#1265)
cv Apr 2, 2026
ba6393e
fix: remove broken qwen endpoint picker entry (#1269)
kjw3 Apr 2, 2026
dd59326
fix: harden spark startup and destroy handling (#1273)
kjw3 Apr 2, 2026
0ef82e3
fix(cli): classifyGatewayStatus no longer misclassifies "Not connecte…
cv Apr 2, 2026
348ebf3
chore: add cut-release-tag agent skill (#1291)
ericksoa Apr 2, 2026
4591280
fix: add policy preset for brew
laitingsheng Apr 1, 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
90 changes: 90 additions & 0 deletions .agents/skills/cut-release-tag/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
name: cut-release-tag
description: Cut a new semver release tag on main, move the `latest` tag, and push. Use when cutting a release, tagging a version, shipping a build, or preparing a deployment. Trigger keywords - cut tag, release tag, new tag, cut release, tag version, ship it.
user_invocable: true
---

# Cut Release Tag

Create an annotated semver tag on `origin/main` HEAD, move the `latest` floating tag, and push both.

## Prerequisites

- You must be in the NemoClaw git repository.
- You must have push access to `origin` (NVIDIA/NemoClaw).
- The nightly E2E suite should have passed before tagging. Check with the user if unsure.

## Step 1: Determine the Current Version

Fetch all tags and find the latest semver tag:

```bash
git fetch origin --tags
git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -1
```

Parse the major, minor, and patch components from this tag.

## Step 2: Ask the User Which Bump

Present the options with the **patch bump as default**:

- **Patch** (default): `vX.Y.(Z+1)` — bug fixes, small changes
- **Minor**: `vX.(Y+1).0` — new features, larger changes
- **Major**: `v(X+1).0.0` — breaking changes

Show the concrete version strings. Example prompt:

> Current tag: `v0.0.2`
>
> Which version bump?
>
> 1. **Patch** → `v0.0.3` (default)
> 2. **Minor** → `v0.1.0`
> 3. **Major** → `v1.0.0`

Wait for the user to confirm before proceeding. If they just say "yes", "go", "do it", or similar, use the patch default.

## Step 3: Show What's Being Tagged

Show the user the commit that will be tagged and the changelog since the last tag:

```bash
git log --oneline origin/main -1
git log --oneline <previous-tag>..origin/main
```

Ask for confirmation: "Tag `<new-version>` at commit `<sha>`?"

## Step 4: Create and Push Tags

Create the annotated tag, move `latest`, and push:

```bash
# Create annotated tag on main HEAD
git tag -a <new-version> origin/main -m "<new-version>"

# Move the latest tag (delete old, create new)
git tag -d latest 2>/dev/null || true
git tag -a latest origin/main -m "latest"

# Push both tags (force-push latest since it moves)
git push origin <new-version>
git push origin latest --force
```

## Step 5: Verify

```bash
git ls-remote --tags origin | grep -E '(<new-version>|latest)'
```

Confirm both tags point to the same commit on the remote.

## Important Notes

- NEVER tag without explicit user confirmation of the version.
- NEVER tag a branch other than `origin/main`.
- Always use annotated tags (`-a`), not lightweight tags.
- The `latest` tag is a floating tag that always points to the most recent release — it requires `--force` to push.
- Do NOT update `package.json` version — that is handled separately.
2 changes: 1 addition & 1 deletion .agents/skills/nemoclaw-get-started/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ The sandbox image is approximately 2.4 GB compressed. During image push, the Doc
| Dependency | Version |
|------------|----------------------------------|
| Linux | Ubuntu 22.04 LTS or later |
| Node.js | 20 or later |
| Node.js | 22.16 or later |
| npm | 10 or later |
| Container runtime | Supported runtime installed and running |
| [OpenShell](https://github.com/NVIDIA/OpenShell) | Installed |
Expand Down
10 changes: 5 additions & 5 deletions .agents/skills/nemoclaw-reference/references/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@ If you see an unsupported platform error, verify that you are running on a suppo

### Node.js version is too old

NemoClaw requires Node.js 20 or later.
NemoClaw requires Node.js 22.16 or later.
If the installer exits with a Node.js version error, check your current version:

```console
$ node --version
```

If the version is below 20, install a supported release.
If the version is below 22.16, install a supported release.
If you use nvm, run:

```console
$ nvm install 20
$ nvm use 20
$ nvm install 22
$ nvm use 22
```

Then re-run the installer.
Expand Down Expand Up @@ -69,7 +69,7 @@ If another process is already bound to this port, onboarding fails.
Identify the conflicting process, verify it is safe to stop, and terminate it:

```console
$ lsof -i :18789
$ sudo lsof -i :18789
$ kill <PID>
```

Expand Down
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,9 @@ node_modules
*.pyc
__pycache__
.pytest_cache
.venv
.ruff_cache
.mypy_cache
.env
*.egg-info
.DS_Store
4 changes: 4 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,7 @@
- [ ] Follows the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md). Try running the `update-docs` agent skill to draft changes while complying with the style guide. For example, prompt your agent with "`/update-docs` catch up the docs for the new changes I made in this PR."
- [ ] New pages include SPDX license header and frontmatter, if creating a new page.
- [ ] Cross-references and links verified.

---
<!-- DCO sign-off (required by CI). Replace with your real name and email. -->
Signed-off-by: Your Name <your-email@example.com>
43 changes: 43 additions & 0 deletions .github/actions/basic-checks/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: basic-checks
description: Run the shared Node.js, hadolint, build, and prek-based checks used by CI.

runs:
using: composite
steps:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "22"
cache: npm

- name: Install hadolint
shell: bash
run: |
HADOLINT_VERSION="v2.14.0"
HADOLINT_URL="https://github.com/hadolint/hadolint/releases/download/${HADOLINT_VERSION}/hadolint-Linux-x86_64"
curl -fsSL -o /usr/local/bin/hadolint "$HADOLINT_URL"
EXPECTED=$(curl -fsSL "${HADOLINT_URL}.sha256" | awk '{print $1}')
ACTUAL=$(sha256sum /usr/local/bin/hadolint | awk '{print $1}')
[ "$EXPECTED" = "$ACTUAL" ] || { echo "::error::hadolint checksum mismatch"; exit 1; }
chmod +x /usr/local/bin/hadolint

- name: Install dependencies
shell: bash
run: |
npm install --ignore-scripts
cd nemoclaw && npm install

- name: Build TypeScript plugin
shell: bash
run: cd nemoclaw && npm run build

- name: Build CLI TypeScript modules
shell: bash
run: npm run build:cli

- name: Run checks
shell: bash
run: npx prek run --all-files --stage pre-push
19 changes: 19 additions & 0 deletions .github/actions/resolve-sandbox-base-image/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: resolve-sandbox-base-image
description: Resolve the sandbox base image from GHCR, falling back to a local Dockerfile.base build.

runs:
using: composite
steps:
- name: Resolve sandbox base image
shell: bash
run: |
if docker pull ghcr.io/nvidia/nemoclaw/sandbox-base:latest 2>/dev/null; then
echo "BASE_IMAGE=ghcr.io/nvidia/nemoclaw/sandbox-base:latest" >> "$GITHUB_ENV"
else
echo "::warning::GHCR base image not available, building locally"
docker build -f Dockerfile.base -t nemoclaw-sandbox-base-local .
echo "BASE_IMAGE=nemoclaw-sandbox-base-local" >> "$GITHUB_ENV"
fi
28 changes: 28 additions & 0 deletions .github/dco-bypass.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
adityanjothi
brandonpelfrey
cjagwani
cr7258
cv
dnandakumar-nv
ericksoa
gagandaroach
hulynn
jacobtomlinson
jayavenkatesh19
jbfbell
jieunl24
jneeee
jyaunches
kjw3
krmurph
mercl-lau
miyoungc
nv-ddave
nv-kasikritc
paritoshd-nv
prekshivyas
rwipfelnv
sayalinvidia
senthilr-nv
theFong
wscurran
2 changes: 1 addition & 1 deletion .github/workflows/base-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Log in to GHCR
uses: docker/login-action@v3
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/dco-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: dco-check

on:
pull_request:
types: [opened, edited, synchronize, reopened]

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
dco-check:
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: read
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Check DCO bypass list
id: dco-bypass
env:
USERNAME: ${{ github.event.pull_request.user.login }}
run: |
if grep -Fxq "$USERNAME" .github/dco-bypass.txt; then
echo "bypass=true" >> "$GITHUB_OUTPUT"
echo "Author is in dco-bypass.txt; skipping DCO sign-off requirement."
else
echo "bypass=false" >> "$GITHUB_OUTPUT"
echo "Author is not in dco-bypass.txt; DCO sign-off is required."
fi

- name: Check PR body for Signed-off-by
if: ${{ steps.dco-bypass.outputs.bypass != 'true' }}
env:
PR_BODY: ${{ github.event.pull_request.body }}
run: |
normalized_body="$(printf '%s\n' "$PR_BODY" | tr -d '\r')"

if ! printf '%s\n' "$normalized_body" | grep -qP '^Signed-off-by:\s+.+\s+<[^<>]+>$'; then
echo "::error::PR description must contain a DCO sign-off line."
echo "::error::Expected format: Signed-off-by: Your Name <your-email@example.com>"
exit 1
fi

echo "PR description contains a DCO sign-off."
4 changes: 2 additions & 2 deletions .github/workflows/docs-preview-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ jobs:

- name: Post preview comment
if: steps.meta.outputs.action != 'closed' && steps.meta.outputs.same-repo == 'true'
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
with:
header: pr-preview
number: ${{ steps.meta.outputs.pr-number }}
Expand All @@ -99,7 +99,7 @@ jobs:

- name: Remove preview comment
if: steps.meta.outputs.action == 'closed'
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
with:
header: pr-preview
number: ${{ steps.meta.outputs.pr-number }}
Expand Down
Loading
Loading