Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
a3e9c6f
fix(onboard): diagnose incomplete custom plugin images
ericksoa Jul 3, 2026
8be68f5
fix(onboard): harden custom runtime diagnosis
ericksoa Jul 3, 2026
f46ff19
fix(e2e): install plugin from staging path
ericksoa Jul 3, 2026
5f5f0aa
docs: fix plugin guide links
ericksoa Jul 3, 2026
d41449b
test: keep plugin contract behavioral
ericksoa Jul 3, 2026
4414e81
fix(e2e): handle OpenClaw gateway pairing
ericksoa Jul 3, 2026
8b21175
test: keep gateway retry linear
ericksoa Jul 3, 2026
60c4888
fix(e2e): use authenticated plugin probes
ericksoa Jul 3, 2026
d433977
fix(e2e): resolve OpenClaw catalog binary
ericksoa Jul 3, 2026
63e979a
test: create lazy plugin cache before probe
ericksoa Jul 3, 2026
e6eaa0b
fix: address custom plugin review findings
ericksoa Jul 3, 2026
4e9471b
test: keep plugin restore cases linear
ericksoa Jul 3, 2026
5517f2f
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 3, 2026
4d140d9
test: update DCode rebuild restore contract
ericksoa Jul 3, 2026
ff2f9ef
fix: allow validated OpenClaw peer links
ericksoa Jul 3, 2026
80b6c14
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 3, 2026
29e2c13
fix: tolerate rebuild version cache updates
ericksoa Jul 3, 2026
1fbb8f8
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 3, 2026
178f44a
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 4, 2026
1de806c
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 4, 2026
347585a
fix: preserve tool disclosure in plugin image
ericksoa Jul 4, 2026
4dd26fe
Merge main into fix/discussion-6108-plugin-image
ericksoa Jul 4, 2026
6f58a29
fix: harden plugin rebuild diagnostics
ericksoa Jul 4, 2026
8fcd82c
test: keep plugin regressions branch-free
ericksoa Jul 4, 2026
c662222
fix: read OpenClaw plugin index from SQLite
ericksoa Jul 4, 2026
05afc91
fix: address plugin restore review findings
ericksoa Jul 4, 2026
50a22ff
test: isolate EXDEV probe from production policy
ericksoa Jul 4, 2026
29ce5b3
test: attest delegated OpenShell capabilities
ericksoa Jul 4, 2026
4b580f2
Merge origin/main into fix/discussion-6108-plugin-image
ericksoa Jul 4, 2026
60c031a
test(e2e): use portable tmpfs options
ericksoa Jul 4, 2026
66d1782
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 4, 2026
3010343
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
d36bec3
test(package): allow cold oclif discovery
ericksoa Jul 6, 2026
2e7ce01
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
cad32ae
test(rebuild): isolate prepared recovery notice state
ericksoa Jul 6, 2026
427728c
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
464bd4e
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
7df7ce6
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
d0dbecf
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
57f32d8
docs: align plugin links with current route
ericksoa Jul 6, 2026
bd45692
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
ec51a23
refactor(state): consolidate restore options
ericksoa Jul 6, 2026
eb7a193
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
ff99de2
test(e2e): skip dcode re-onboard for other agents
ericksoa Jul 6, 2026
052bf44
fix(state): bound plugin restore inputs
ericksoa Jul 6, 2026
50eec6a
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
04902e1
test: keep fixture review guard linear
ericksoa Jul 6, 2026
e43d85a
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
00d2883
fix(state): preserve image plugins across recreation
ericksoa Jul 6, 2026
7eadce1
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
3927277
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
5c2f9f2
test(e2e): allocate plugin context securely
ericksoa Jul 6, 2026
92e9f37
Merge origin/main into fix/discussion-6108-plugin-image
ericksoa Jul 6, 2026
8a08521
test(onboard): support plugin discovery in fixtures
ericksoa Jul 6, 2026
a3a88c3
refactor(state): isolate OpenClaw plugin restore planning
ericksoa Jul 6, 2026
fab9a63
fix(ci): keep onboard adapter net-neutral
ericksoa Jul 6, 2026
753deeb
test(state): keep restore planning assertion linear
ericksoa Jul 6, 2026
c1d4d06
Merge remote-tracking branch 'origin/main' into fix/discussion-6108-p…
ericksoa Jul 6, 2026
458b92d
fix(state): reconcile custom image plugin provenance
apurvvkumaria Jul 6, 2026
362730b
test(e2e): verify release-matched plugin lifecycle
apurvvkumaria Jul 6, 2026
d0dd1a4
fix(onboard): scope plugin provenance to custom images
apurvvkumaria Jul 6, 2026
a4d5031
test(e2e): require pinned openshell version
apurvvkumaria Jul 6, 2026
1cc994f
test(onboard): model empty image plugin registry
apurvvkumaria Jul 7, 2026
592939e
test(e2e): isolate release plugin fixture credentials
apurvvkumaria Jul 7, 2026
f95e167
chore(onboard): mark runtime diagnosis removal
apurvvkumaria Jul 7, 2026
08cccb0
merge(main): update PR with latest main
apurvvkumaria Jul 7, 2026
a08f498
merge(main): refresh PR after final review
ericksoa Jul 7, 2026
9f3df59
merge(main): refresh PR after v0.0.75 release notes
ericksoa Jul 7, 2026
393d5df
merge(main): refresh PR after v0.0.75 release-note correction
ericksoa Jul 7, 2026
091bc4f
merge(main): refresh PR after sessions routing fix
ericksoa Jul 7, 2026
fd2a1d0
merge(main): refresh PR after MCP lifecycle test optimization
ericksoa Jul 7, 2026
80d1038
merge(main): reconcile legacy recovery safeguards
ericksoa Jul 7, 2026
df81653
merge(main): refresh PR with current main
apurvvkumaria Jul 7, 2026
9e4c8b3
merge(main): include latest E2E inventory
apurvvkumaria Jul 7, 2026
23c961b
merge(main): refresh rebuild preflight integration
apurvvkumaria Jul 7, 2026
ad66272
docs(rebuild): clarify custom-image recovery
apurvvkumaria Jul 7, 2026
fcbd151
merge(main): refresh startup permission fixes
apurvvkumaria Jul 7, 2026
013c910
merge(main): refresh inference provider aliases
apurvvkumaria Jul 7, 2026
4632b94
merge(main): refresh route containment and docs variants
apurvvkumaria Jul 7, 2026
1b77afe
merge(main): refresh pairing and lifecycle docs
apurvvkumaria Jul 7, 2026
1541e3a
merge: sync main into plugin rebuild fix
apurvvkumaria Jul 8, 2026
f132725
Merge remote-tracking branch 'origin/main' into maintain/pr6250-current
cjagwani Jul 8, 2026
6423959
chore: merge main into fix/discussion-6108-plugin-image
cjagwani Jul 8, 2026
1b97977
test(ci): ratchet merged image test size
cjagwani Jul 8, 2026
e4c712e
test(ci): keep merged image test within ceiling
cjagwani Jul 8, 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
67 changes: 67 additions & 0 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3732,6 +3732,72 @@ jobs:
if: always()
uses: NVIDIA/NemoClaw/.github/actions/upload-e2e-artifacts@7768e15eb90d3ee2d33432f481dfe8747e4f6d57

# Scheduled coverage for #6108 / #3513 / #3127. This exercises the complete
# managed v0.0.71 runtime with a custom plugin, then proves restart/rebuild
# persistence and target-side runtime-dependency replacement across devices.
openclaw-plugin-runtime-exdev:
needs: generate-matrix
if: ${{ (github.event_name != 'workflow_dispatch' || (inputs.jobs == '' && inputs.targets == '')) || contains(format(',{0},', inputs.jobs), ',openclaw-plugin-runtime-exdev,') || contains(format(',{0},', inputs.targets), ',openclaw-plugin-runtime-exdev,') }}
runs-on: ubuntu-latest
permissions:
contents: read
# Three bounded 25-minute onboards plus the 20-minute rebuild and 15-minute
# Vitest buffer need 110 minutes; allow 20 more for setup and teardown.
timeout-minutes: 130
env:
E2E_JOB: "1"
E2E_TARGET_ID: "openclaw-plugin-runtime-exdev"
E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts/live/openclaw-plugin-runtime-exdev
NEMOCLAW_CLI_BIN: ${{ github.workspace }}/bin/nemoclaw.js
NEMOCLAW_RUN_LIVE_E2E: "1"
NEMOCLAW_NON_INTERACTIVE: "1"
NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1"
NEMOCLAW_SANDBOX_NAME: "e2e-openclaw-plugin-exdev"
OPENSHELL_GATEWAY: "nemoclaw"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

- *dockerhub-auth

- name: Pre-pull release-matched Docker Hub builder image
shell: bash
run: |
set -euo pipefail
docker pull node:22-trixie-slim@sha256:2d9f5c76c8f4dd36e8f253bee5d828a83a6c09f36188f0b0414325232e0b175d

- name: Remove Docker auth before release-pinned fixture
if: always()
shell: bash
run: |
set -euo pipefail
bash .github/scripts/docker-auth-cleanup.sh

- name: Prepare E2E workspace
uses: NVIDIA/NemoClaw/.github/actions/prepare-e2e@50281ee84c4a6fc759da95ea28fc0b7d9c378a28

- name: Run OpenClaw custom-plugin lifecycle and runtime-deps EXDEV live test
run: |
set -euo pipefail
test -n "${DOCKER_CONFIG:-}"
test ! -e "${DOCKER_CONFIG}"
test -z "${DOCKERHUB_USERNAME:-}"
test -z "${DOCKERHUB_TOKEN:-}"
env -u DOCKER_CONFIG -u DOCKERHUB_USERNAME -u DOCKERHUB_TOKEN \
npx vitest run --project e2e-live \
test/e2e/live/openclaw-plugin-runtime-exdev.test.ts \
--silent=false --reporter=default

- name: Upload OpenClaw plugin runtime-deps EXDEV artifacts
if: always()
uses: NVIDIA/NemoClaw/.github/actions/upload-e2e-artifacts@7768e15eb90d3ee2d33432f481dfe8747e4f6d57

- name: Clean up Docker auth
if: always()
shell: bash
run: bash .github/scripts/docker-auth-cleanup.sh

# The #2603/#3145 OpenClaw websocket protocol/history contract.
openclaw-tui-chat-correlation:
needs: generate-matrix
Expand Down Expand Up @@ -4694,6 +4760,7 @@ jobs:
diagnostics,
snapshot-commands,
gateway-drift-preflight,
openclaw-plugin-runtime-exdev,
openclaw-tui-chat-correlation,
gateway-guard-recovery,
issue-4434-tui-unreachable-inference,
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/regression-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,6 @@ jobs:
/tmp/nemoclaw-e2e-openshell-version-pin-downloads.log
if-no-files-found: ignore


# ── Gateway drift preflight E2E ─────────────────────────────
# Coverage guard for #3399 / #3423. A stale OpenShell gateway image can
# make sandbox-state RPCs fail with protobuf invalid-wire decode errors.
Expand Down Expand Up @@ -268,8 +267,8 @@ jobs:
/tmp/nemoclaw-e2e-model-router-response.log
if-no-files-found: ignore

# ── OpenClaw plugin runtime-deps EXDEV E2E ────────────────────
# Coverage guard for #3513 / #3127. On Ubuntu/OpenShell sandbox layouts
# ── OpenClaw custom-plugin lifecycle and runtime-deps EXDEV E2E ─
# Coverage guard for #6108 / #3513 / #3127. On Ubuntu/OpenShell sandbox layouts
# where /tmp and /sandbox can live on different filesystems, OpenClaw's
# first CLI bootstrap must not fail plugin runtime dependency installation
# with EXDEV cross-device rename errors.
Expand All @@ -281,7 +280,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
timeout-minutes: 45
# Three bounded 25-minute onboards plus the 20-minute rebuild and 15-minute
# Vitest buffer need 110 minutes; allow 20 more for setup and teardown.
timeout-minutes: 130
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
Expand All @@ -300,7 +301,7 @@ jobs:
- name: Build CLI
run: npm run build:cli

- name: Run OpenClaw plugin runtime-deps EXDEV Vitest test
- name: Run OpenClaw custom-plugin lifecycle and runtime-deps EXDEV Vitest test
env:
E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts/live/openclaw-plugin-runtime-exdev
NEMOCLAW_RUN_LIVE_E2E: "1"
Expand Down
4 changes: 2 additions & 2 deletions ci/test-file-size-budget.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
"test/generate-openclaw-config.test.ts": 1941,
"test/install-preflight.test.ts": 3934,
"test/nemoclaw-start.test.ts": 4826,
"test/onboard-messaging.test.ts": 2062,
"test/onboard-messaging.test.ts": 2049,
"test/onboard-selection.test.ts": 4774,
"test/onboard.test.ts": 4043,
"test/onboard.test.ts": 4039,
"test/policies.test.ts": 2243
}
}
Loading
Loading