Problem Statement
The OpenClaw dashboard on port 18789 is the primary user-facing surface after a successful onboard, but no active E2E test verifies that it actually returns HTTP 200. Existing coverage stops at CLI plumbing (nemoclaw list/status/connect) and has no open an HTTP connection to the gateway.
This means regressions in the openclaw gateway process, the OpenShell host → pod port-forward, Landlock hardening, or config-integrity checks can ship to main silently and break the documented quickstart (http://127.0.0.1:18789) without any CI signal.
Proposed Design
Add a E2E script at test/e2e/test-dashboard-reachability.sh that verifies the full host → pod serving chain in one flow.
Flow:
- Pre-cleanup + prerequisites (Docker, API key, env vars).
- Run
install.sh --non-interactive and assert the sandbox is Ready.
- Establish the port-forward via
openshell forward start --background <port> <sandbox>.
- Poll
http://127.0.0.1:${DASHBOARD_PORT}/ (30 × 1 s) and assert HTTP 200.
- Body-signature check (HTML grep →
<title> → /api/version fallback) to reject unrelated services binding the port.
Alternatives Considered
No response
Category
enhancement: feature
Checklist
Problem Statement
The OpenClaw dashboard on port 18789 is the primary user-facing surface after a successful onboard, but no active E2E test verifies that it actually returns HTTP 200. Existing coverage stops at CLI plumbing (
nemoclaw list/status/connect) and has no open an HTTP connection to the gateway.This means regressions in the
openclaw gatewayprocess, the OpenShell host → pod port-forward, Landlock hardening, or config-integrity checks can ship tomainsilently and break the documented quickstart (http://127.0.0.1:18789) without any CI signal.Proposed Design
Add a E2E script at
test/e2e/test-dashboard-reachability.shthat verifies the full host → pod serving chain in one flow.Flow:
install.sh --non-interactiveand assert the sandbox isReady.openshell forward start --background <port> <sandbox>.http://127.0.0.1:${DASHBOARD_PORT}/(30 × 1 s) and assert HTTP 200.<title>→/api/versionfallback) to reject unrelated services binding the port.Alternatives Considered
No response
Category
enhancement: feature
Checklist