Add Run Cloud sandbox provider - #1233
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed August 4, 2026, 7:26 PM ET / 23:26 UTC. ClawSweeper reviewWhat this changesAdds a Run Cloud SSH-lease provider with configuration, CLI lifecycle handling, live-smoke coverage, and provider documentation. Merge readiness⛔ Blocked until stronger real behavior proof is added - 11 items remain Keep this draft open: it adds a new built-in provider, but the selected default image cannot yet complete its required SSH workflow and repository configuration can redirect execution to an arbitrary local CLI binary. Priority: P1 Review scores
Verification
How this fits togetherCrabbox providers create remote execution leases from CLI configuration. This adapter creates a Run Cloud sandbox and sends its proxied SSH connection into Crabbox’s normal sync, command, status, and cleanup workflow. flowchart LR
A[Crabbox CLI and config] --> B[Run Cloud provider]
B --> C[Run Cloud CLI lifecycle]
C --> D[Persistent sandbox]
D --> E[Authenticated SSH proxy]
E --> F[Crabbox sync and commands]
F --> G[Lease cleanup]
Decision needed
Why: A built-in provider creates an ongoing compatibility and support contract that source review cannot establish from the proposed implementation alone. Before merge
Findings
Agent review detailsSecurityNeeds attention: The new repository-configurable CLI path can execute an attacker-controlled local binary in a workflow that uses the local Run Cloud credential store. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Land a built-in provider only after its CLI path is trust-gated, its default image supports the released SSH bridge, and a redacted live run proves warmup, SSH, sync, command execution, and cleanup end to end. Do we have a high-confidence way to reproduce the issue? Yes for the security finding: an untrusted repository config can set runCloud.cliPath and the provider executes that value directly. The advertised complete SSH workflow remains unprovable until the published image gains its required bridge. Is this the best way to solve the issue? No: the current implementation should not ship with a repository-controlled local CLI path or a default image known to fail the core execution path. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against e73b02f6455f. LabelsLabel changes:
Label justifications:
EvidenceSecurity concerns:
What I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (6 earlier review cycles)
|
Summary
runcloud/agent-baseimageruncloud sandbox proxyand support sync/run/inspect/list/stop lifecycle operationsrunclouduser, Git, and rsyncWhy
Run Cloud's retired
runcloud/boximage is no longer available. Crabbox therefore targetsruncloud/agent-baseexplicitly and uses the authenticated Run Cloud SSH proxy rather than assuming a public SSH endpoint.The live investigation also found a production image issue: the currently published agent-base guest lacks the guest-agent SSH WebSocket bridge on port 2222. The companion Newly PR #3553 fixes that image and its SSH path.
Validation
go test -race -count=1 ./internal/providers/runcloud ./internal/providers/allgo build ./cmd/crabboxscripts/check-docs.shscripts/live-smoke.test.js, including a retained-lease lifecycle proving warmup → status/inspect/ssh/cache/run → exactly one stopRemaining live boundary
Keep this draft until Newly #3553 is merged and its normally tested
runcloud/agent-baseartifact is published. Then rerunscripts/live-smoke.sh --provider runcloudto prove the Crabbox binary's complete SSH/sync/run path against the released image. The provider tests and Run Cloud lifecycle prerequisites are green; the integrated Crabbox-over-edge-SSH proof is intentionally not claimed yet.