Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
49 changes: 48 additions & 1 deletion .github/workflows/nightly-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@
# openclaw-inference-switch-e2e
# Switches a running OpenClaw sandbox with `nemoclaw inference set`
# and verifies route, openclaw.json, hashes, and live requests.
# openclaw-tui-chat-correlation-e2e
# Verifies OpenClaw #3145 visible TUI messages are
# neither duplicated nor reordered after the version bump.
# credential-migration-e2e Validates legacy ~/.nemoclaw/credentials.json migration to the
# OpenShell gateway, secure zero-fill on unlink, allowlist filter
# on non-credential env keys, and symlink-safe deletion.
Expand Down Expand Up @@ -81,7 +84,7 @@ on:
issue-2478-crash-loop-recovery-e2e, hermes-e2e,
hermes-inference-switch-e2e, hermes-discord-e2e,
hermes-slack-e2e, sandbox-operations-e2e, inference-routing-e2e,
openclaw-inference-switch-e2e,
openclaw-inference-switch-e2e, openclaw-tui-chat-correlation-e2e,
network-policy-e2e, state-backup-restore-e2e, tunnel-lifecycle-e2e, diagnostics-e2e,
credential-migration-e2e,
snapshot-commands-e2e, shields-config-e2e, rebuild-openclaw-e2e,
Expand Down Expand Up @@ -1217,6 +1220,47 @@ jobs:
path: /tmp/nemoclaw-e2e-openclaw-inference-switch-install.log
if-no-files-found: ignore

# ── OpenClaw TUI duplicate-message regression E2E (#3145) ───
# Verifies the pinned OpenClaw version that contains the upstream #3145 fix,
# then drives the user path: `nemoclaw <sandbox> connect`, `openclaw tui`,
# rapid sequential messages, and rendered visible-screen assertions.
openclaw-tui-chat-correlation-e2e:
if: >-
github.repository == 'NVIDIA/NemoClaw' &&
(github.event_name != 'workflow_dispatch' ||
inputs.jobs == '' ||
contains(format(',{0},', inputs.jobs), ',openclaw-tui-chat-correlation-e2e,'))
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ inputs.target_ref || github.ref }}

- name: Run OpenClaw TUI duplicate-message E2E test
env:
NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }}
NEMOCLAW_NON_INTERACTIVE: "1"
NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1"
NEMOCLAW_SANDBOX_NAME: "e2e-openclaw-tui-correlation"
NEMOCLAW_RECREATE_SANDBOX: "1"
GITHUB_TOKEN: ${{ github.token }}
run: bash test/e2e/test-openclaw-tui-chat-correlation.sh

- name: Upload install log on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: openclaw-tui-chat-correlation-install-log
path: |
/tmp/nemoclaw-e2e-openclaw-tui-correlation-install.log
/tmp/nemoclaw-issue3145-tui-screen.log
/tmp/nemoclaw-issue3145-tui-raw.log
/tmp/nemoclaw-issue3145-tui-analysis.json
/tmp/nemoclaw-issue3145-tui-interesting.log
if-no-files-found: ignore

# ── Network policy E2E ───────────────────────────────────────
# TC-NET-01..07, TC-NET-09: deny-by-default, whitelist, live policy-add,
# dry-run, hot-reload, inference exemption, permissive mode, SSRF validation.
Expand Down Expand Up @@ -2156,6 +2200,7 @@ jobs:
sandbox-operations-e2e,
inference-routing-e2e,
openclaw-inference-switch-e2e,
openclaw-tui-chat-correlation-e2e,
network-policy-e2e,
state-backup-restore-e2e,
tunnel-lifecycle-e2e,
Expand Down Expand Up @@ -2251,6 +2296,7 @@ jobs:
sandbox-operations-e2e,
inference-routing-e2e,
openclaw-inference-switch-e2e,
openclaw-tui-chat-correlation-e2e,
network-policy-e2e,
state-backup-restore-e2e,
tunnel-lifecycle-e2e,
Expand Down Expand Up @@ -2403,6 +2449,7 @@ jobs:
sandbox-operations-e2e,
inference-routing-e2e,
openclaw-inference-switch-e2e,
openclaw-tui-chat-correlation-e2e,
network-policy-e2e,
state-backup-restore-e2e,
tunnel-lifecycle-e2e,
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.base
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ RUN printf '%s\n' \
# OpenClaw version: change the OPENCLAW_VERSION ARG default so CI rebuilds
# the base image on push to main, or use workflow_dispatch on base-image.yaml
# with the openclaw_version input for a one-off build without editing this file.
ARG OPENCLAW_VERSION=2026.4.24
ARG OPENCLAW_VERSION=2026.4.25

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

Expand Down
2 changes: 1 addition & 1 deletion agents/openclaw/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ homepage: "https://openclaw.ai"
install_method: npm # npm install -g openclaw@<version>
binary_path: /usr/local/bin/openclaw
version_command: "openclaw --version"
expected_version: "2026.4.24"
expected_version: "2026.4.25"
gateway_command: "openclaw gateway run"

# ── Health probe ────────────────────────────────────────────────
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ Existing sandboxes do not auto-upgrade when a newer NemoClaw release ships a new
```console
$ nemoclaw my-assistant status
...
Agent: OpenClaw v2026.4.24
Agent: OpenClaw v2026.4.25
...
```

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ Existing sandboxes do not auto-upgrade when a newer NemoClaw release ships a new
```console
$ nemoclaw my-assistant status
...
Agent: OpenClaw v2026.4.24
Agent: OpenClaw v2026.4.25
...
```

Expand Down
2 changes: 1 addition & 1 deletion nemoclaw-blueprint/blueprint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
version: "0.1.0"
min_openshell_version: "0.0.39"
max_openshell_version: "0.0.39"
min_openclaw_version: "2026.4.24"
min_openclaw_version: "2026.4.25"
# Mirrors the components.sandbox.image manifest digest below. Lets a
# downstream consumer (or release tooling) verify the blueprint declares
# a specific sandbox image without parsing the components tree, and
Expand Down
53 changes: 53 additions & 0 deletions test/e2e/docs/parity-map.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7378,6 +7378,59 @@ scripts:
reason: legacy assertion is obsolete or negative cleanup behavior after scenario migration
reviewer: e2e-maintainers
approved_at: '2026-05-13'
test-openclaw-tui-chat-correlation.sh:
scenario: ''
status: deferred
bucket: providers-messaging
assertions:
- &openclaw_tui_correlation_deferred
legacy: Pre-cleanup complete
status: deferred
reason: "live #3145 regression guard retained until scenario framework has a visible TUI duplicate-message suite"
owner: e2e-maintainers
runner_requirement: Docker-capable sandbox runner with NemoClaw/OpenShell CLIs and NVIDIA_API_KEY
- <<: *openclaw_tui_correlation_deferred
legacy: Docker is running
- <<: *openclaw_tui_correlation_deferred
legacy: Docker is not running
- <<: *openclaw_tui_correlation_deferred
legacy: NVIDIA_API_KEY is set
- <<: *openclaw_tui_correlation_deferred
legacy: NVIDIA_API_KEY not set or invalid
- <<: *openclaw_tui_correlation_deferred
legacy: NEMOCLAW_NON_INTERACTIVE=1
- <<: *openclaw_tui_correlation_deferred
legacy: NEMOCLAW_NON_INTERACTIVE=1 is required
- <<: *openclaw_tui_correlation_deferred
legacy: Third-party software acceptance is set
- <<: *openclaw_tui_correlation_deferred
legacy: NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 is required
- <<: *openclaw_tui_correlation_deferred
legacy: 'Could not cd to repo root: $REPO'
- <<: *openclaw_tui_correlation_deferred
legacy: install.sh completed
- <<: *openclaw_tui_correlation_deferred
legacy: install.sh failed (exit ${install_exit})
- <<: *openclaw_tui_correlation_deferred
legacy: nemoclaw not found on PATH
- <<: *openclaw_tui_correlation_deferred
legacy: openshell not found on PATH
- <<: *openclaw_tui_correlation_deferred
legacy: nemoclaw and openshell are on PATH
- <<: *openclaw_tui_correlation_deferred
legacy: Sandbox uses OpenClaw ${expected_openclaw_version}
- <<: *openclaw_tui_correlation_deferred
legacy: 'OpenClaw expected_version must stay pinned to 2026.4.25 for #3145, got: ${expected_openclaw_version:-unset}'
- <<: *openclaw_tui_correlation_deferred
legacy: 'Sandbox OpenClaw version mismatch; expected ${expected_openclaw_version:-unknown}, got: ${plain_openclaw_version:0:240}'
- <<: *openclaw_tui_correlation_deferred
legacy: OpenClaw TUI rendered five messages once and in order
- <<: *openclaw_tui_correlation_deferred
legacy: OpenClaw TUI reported duplicate, missing, or out-of-order visible messages
- <<: *openclaw_tui_correlation_deferred
legacy: Sandbox ${SANDBOX_NAME} still in registry after destroy
- <<: *openclaw_tui_correlation_deferred
legacy: Sandbox ${SANDBOX_NAME} removed
test-openclaw-slack-pairing.sh:
scenario: ubuntu-repo-cloud-openclaw
status: deferred
Expand Down
Loading
Loading