feat: add ASCII Box provider#157
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed May 30, 2026, 4:20 PM ET / 20:20 UTC. Summary Reproducibility: not applicable. this is a new built-in provider PR, not a bug report. The relevant verification gap is runtime proof, and the PR body currently shows doctor plus Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land this after maintainer acceptance of the built-in provider surface, redacted successful live lifecycle proof from a paid or trial-enabled account, and removal of the release-owned changelog edit. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a new built-in provider PR, not a bug report. The relevant verification gap is runtime proof, and the PR body currently shows doctor plus Is this the best way to solve the issue? Unclear until live proof lands; the CLI-backed SSH-lease design is a narrower and more maintainable direction than the earlier guessed REST execution surface, but the branch is not ship-ready without successful lifecycle proof and the changelog cleanup. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 190257b0f609. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
ClawSweeper PR egg 🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat. Where did the egg go?
|
Working ProofPushed proof commit What it proves:
Local verification run before push:
GitHub CI after push:
Note: this is deterministic provider proof against the HTTP contract. A live ASCII Box smoke still requires an |
PR #157 proof checkI rechecked this PR at head No-secret local proof passed: No-secret live probes: What this proves: the harness/config/registration path still passes, the provider refuses to run without a key, and no secrets/spend were used. What it does not prove: real ASCII Box create/upload/write/exec-stream/delete behavior. The public no-auth probes do not validate the PR's |
PR #157 proof recheckRechecked head No-secret local proof still passes: No-secret public probes: This validates the local provider harness, REST-shape parser path, config/env loading, registration, and missing-key refusal. It still does not prove real ASCII Box create/upload/write/exec-stream/delete behavior. The remaining author/maintainer action is to provide redacted live smoke output with |
PR #157 ready updatePushed What changed:
Validation:
The previous blocker was valid: the old provider shipped guessed private execution endpoints. This update removes that surface and keeps the provider on lifecycle API + SSH only. |
Add ASCII Box as a direct SSH-lease provider using the documented box CLI JSON surface. Co-authored-by: Yossi Eliaz <zozo123@users.noreply.github.com>
dd71c8a to
f870823
Compare
|
@clawsweeper re-review Updated this branch on current |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
Summary
provider: ascii-boxas a direct SSH-lease provider for ASCII Box Ubuntu sandboxesbox --jsonCLI as the control plane instead of private/guessed REST routesbox ssh <id> -- true, then use standard Crabbox SSH sync/run behaviorDesign Notes
The first version of this PR guessed private REST execution/upload routes. This version intentionally removes that surface. ASCII Box docs call the CLI the stable automation surface, so Crabbox shells out to
box --jsonfor lifecycle operations and keeps command execution in Crabbox over SSH.When an API key is configured, Crabbox does not pass it as a command-line argument. It writes a private Box CLI config under
CRABBOX_ASCII_BOX_HOMEor Crabbox's state directory with mode0600, then runs the CLI with that isolated home. The default SSH key is the CLI-managed key under that same private home.Config / Secrets
CRABBOX_ASCII_BOX_API_KEYorASCII_BOX_API_KEYCRABBOX_ASCII_BOX_CLIorBOX_CLICRABBOX_ASCII_BOX_HOMEasciiBox.baseUrl,asciiBox.cliPath,asciiBox.workdirascii,asciibox,ascii-boxVerification
Local proof on the rebased branch:
Redacted live proof with a real ASCII Box API key:
What is proven:
doctorreaches the real Box CLI/account limits endpoint successfullyRemaining live blocker:
billing_requiredfor Box creation.