Add read-only Gateway isolation status plugin - #28
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. Reviewed September 11, 2026, 6:32 PM ET / 22:32 UTC (Revision 4). ClawSweeper reviewWhat this changesAdds a bundled Gateway Isolation status tab, supplies its reported mode from the Windows launcher, and validates plugin loading during payload construction. Merge readiness⛔ Blocked before merge - 6 items remain The reporting feature remains absent from main, and related discussion now points to this PR as the packaging-owned implementation. The prior unsupported-command finding and package upgrade proof gap remain unresolved. Priority: P3 Review scores
Verification
How this fits togetherThe Windows launcher starts the packaged OpenClaw Gateway and supplies its selected session mode. A bundled plugin reads that value once and displays diagnostic status through an authenticated Control UI page. flowchart LR
A[Windows launcher] --> B[Launch-time session mode]
B --> C[Bundled status plugin]
C --> D{Recognized value?}
D -->|Yes| E[Reported isolation status]
D -->|No| F[Unavailable diagnostic]
E --> G[Authenticated Control UI tab]
F --> G
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Deliver packaging-owned diagnostic status with truthful availability guidance, preserved plugin preferences, and verified fresh-install and upgrade behavior. Do we have a high-confidence way to reproduce the issue? Yes for the remaining finding: following either displayed isolation command reaches the packaged parser's unknown-command branch. This is source-proven; no target code was executed during review. Is this the best way to solve the issue? The packaging-owned plugin is a suitable boundary, but the proposed UI should not present unfinished commands as usable instructions. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 52f2a53fb62b. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (3 earlier review cycles)
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Attach runtime and payload matrices, clipboard checks, regression results, and authenticated Control UI screenshots. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
What Problem This Solves
The packaged Windows Gateway needs to report the session mode selected by its launcher without giving the Gateway any ability to change, disable, or escape that isolation boundary. It also needs an obvious Control UI surface rather than relying on the generic plugin inventory.
Why This Change Was Made
CLAWCTL_GATEWAY_ISOLATION, with the exact valuesenabledanddisabled.dist/extensionsdirectory and asks the selected OpenClaw runtime to verify that the bundled plugin loads with exactly one HTTP route and no capability surfaces. This also rejects incompatible manualopenclaw_refoverrides.User Impact
The Control sidebar shows Gateway Isolation with Reported Gateway Isolation: Enabled or Disabled, plus the approved Change with CLI guidance. The current interactive-user-session launcher path truthfully reports
disabled; a future isolated agent-session launcher can pass the typedEnabledmode without changing the plugin.This is diagnostic reporting only. It does not claim cryptographic attestation or independently verify the security boundary.
Evidence
Validated the implemented launcher, plugin, authenticated Control UI, and payload composition contracts on this Windows machine. Production source is
9aa1df286c2b6fd59b4c101201ddae0ae6000324; validation commit084f6d6303ed97a93f66aded8cddb614c6c0b51badds reproducible harnesses, regression tests, sanitized results, hashes, and screenshots without changing production code.enabledinput and reported Disabled in the sidebar-selected sandboxed tabhello-okin every scenario;sandbox="allow-scripts"; exact state, tone, inverse command, and real clipboard readback for valid states. Invalid inputs displayed the diagnostic without stale status or controls. 6 additional browser capability fixtures passed for Clipboard API, legacy-copy fallback, and manual selectionEnvironment: Windows x64, .NET SDK 10.0.401, Node 24.16.0, Edge 152.0.4191.66. Expanded application layout with the published NativeAOT launcher, pinned OpenClaw 2026.8.2 (
0965053fe6b9341776df147a6934b7485c60b5ca), and bundled UI built from the same unmodified source using the Gateway's canonical timestamp2026-09-11T00:24:39.157Z. Authentication and build-admission checks ran normally. Launcher-input fixtures supply process input explicitly while retaining the real Gateway, plugin, and Control UI. Each run used an isolated profile; validation-owned processes were stopped and the port verified free.Contract-to-proof matrix, reproducible commands, and source provenance · SHA-256 fingerprints
Real launcher: Disabled, inherited input overridden, exact command copied
Enabled launcher-input fixture: exact status and inverse command copied
Invalid launcher-input fixture: fail-closed diagnostic in the authenticated Control UI