Skip to content

Clarify the SandboxProvider contract and validate shared failure semantics - #198

Merged
SaladDay merged 3 commits into
codex/qualified-release-promotion-20260928from
codex/sandbox-provider-contract-20260929
Sep 28, 2026
Merged

SaladDay merged 3 commits into
codex/qualified-release-promotion-20260928from
codex/sandbox-provider-contract-20260929

Conversation

@SaladDay

@SaladDay SaladDay commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Sandbox Provider authors now start at sandbox/sandbox_provider.go and the README-linked onboarding guide. The shared interface is explicitly named SandboxProvider, with no compatibility alias. Checkpoint and observation capabilities remain separate.

The guide specifies allocation identity, creation settlement, unknown outcomes, retry and cleanup responsibility, explicit construction/registration, and the distinction between compute availability, Runtime connection, capability preparation and execution admission. Provider-specific deployment admission remains at construction/configuration boundaries; common lifecycle loading no longer hard-codes a vendor allowlist, and suspension selection uses the optional interface.

A reusable contract suite exercises Docker, E2B and microsandbox through native transport fixtures for failure, cancellation, ownership rejection, cleanup failure and no automatic replay. Existing node disconnect/reconnect tests validate fencing and cleanup ordering. These are controlled contract tests, not new live cloud/model qualification.

Validation: adapter/node packages pass with the race detector, common registration and managed setup tests pass, and git diff --check passes. Independent blind review found no actionable in-scope issues. Full make check was run on the remote hosts. Documentation, naming/distribution, SQL generation, Go/DB, provider helper, Claude SDK, web typecheck/unit/build gates passed. Browser acceptance completed with 76/77 passing; the unchanged baseline test apps/web/e2e/sandbox-reset.spec.ts:135 timed out because its injected deployment-read failure disabled Reset before the reset request. The same test failed in an isolated retry on an idle host; the trace contains no reset POST. Therefore the full gate is not green. The remaining check-mcode-harness (6 passed, 2 existing opt-in native tests skipped) and check-agents-executor (33 Rust tests, fmt and clippy) passed separately. No frontend or fixture files changed from baseline 19943a39; this blocker remains outside these protocol PRs.

Stack: this separate Sandbox Provider PR targets the PR191 integration branch, because it depends on the already completed Runtime preparation unification from PR195 (19943a39). It does not change the Core–Runtime wire protocol or implement platform support. Merging here does not itself merge the installation/release stack into main or publish a release.

@SaladDay
SaladDay marked this pull request as ready for review September 28, 2026 18:09
@SaladDay
SaladDay merged commit 521d98f into codex/qualified-release-promotion-20260928 Sep 28, 2026
2 checks passed
@SaladDay
SaladDay deleted the codex/sandbox-provider-contract-20260929 branch October 10, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant