feat: add clawctl open command - #84
paulcam206 wants to merge 1 commit into
Conversation
Require completed setup and a running managed gateway before opening OpenClaw's verified one-time Control UI handoff in the default browser. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 9ff501e8-3075-418e-9816-146dedceca22
|
🦞👀 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 18, 2026, 9:51 PM ET / September 19, 2026, 01:51 UTC. ClawSweeper reviewWhat this changesAdds Merge readiness⛔ Blocked before merge - 6 items remain This remains a useful, distinct addition absent from main. Two implementation defects need correction, and the new isolated-session-to-host browser boundary needs focused security proof. Priority: P2 Review scores
Verification
How this fits togetherThe Windows launcher manages OpenClaw inside an isolated agent account. This command retrieves a browser handoff from that account and passes it to the invoking user's Windows browser. flowchart LR
A[clawctl open] --> B[Check setup and managed gateway]
B --> C[Run packaged dashboard in isolated session]
C --> D[Capture authenticated handoff]
D --> E[Validate browser destination]
E --> F[Open host browser]
F --> G[Report result without credentials]
Before merge
Findings
Agent review detailsSecurityNeeds attention: Credential output is kept private, but destination authorization across the isolated-account-to-host-browser boundary remains unproven. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep upstream responsible for authentication, reuse the complete existing native-launch contract, and bind host browser delivery to the currently authorized managed gateway with final-effect proof. Do we have a high-confidence way to reproduce the issue? Yes, source establishes the shell-activation defect: successful activation without a process handle reaches the new failure branch. Native-launch fields are also demonstrably omitted; no Windows runtime reproduction was performed. Is this the best way to solve the issue? The upstream handoff is the right owner for endpoint and authentication decisions, but this implementation needs the existing native-launch contract and correct Windows shell semantics before it is reliable. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 9c2106647ebb. LabelsLabel changes:
Label justifications:
EvidenceSecurity concerns:
What 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
|
What Problem This Solves
The packaged
clawctlsurface has no safe command that opens the authenticated Control UI for its managed gateway.User Impact
User impact: after setup and gateway startup, users can run
clawctl opento open OpenClaw's verified one-time browser handoff without revealing the long-lived gateway token.Why This Change Was Made
clawctl openrequires completed setup and a positively observed running managed gateway, then delegates TLS, base-path, authentication, readiness, and one-time pairing resolution to packaged OpenClaw'sdashboard --jsonflow. The launcher accepts only an absolute loopback HTTP(S) handoff, opens it through the Windows default browser, and never writes the authenticated URL to human output, JSON, or logs.Gateway status output now directs users to
clawctl openinstead of recommending token disclosure. Missing or incomplete setup and non-running gateways fail without starting lifecycle work or opening a browser.Evidence
Validated at head
7f46faf914121196e7550496bfe1eeecd61d7184:.\scripts\Test-DotNetQuality.ps1— passed with 0 warnings and 0 errors.dotnet test .\OpenClaw.Gateway.MSIX.slnx --configuration Release --no-restore— 827 passed..\scripts\Test-NativeAotCli.Tests.ps1— 18 NativeAOT scenarios passed..\scripts\Test-DocReferences.ps1— 0 findings.Not run: signing and MSIX composition lanes, because this change does not modify package contents, manifest, signing inputs, or release policy.