Repository navigation
Clarify the SandboxProvider contract and validate shared failure semantics - #198
Merged
SaladDay merged 3 commits intoSep 28, 2026
Conversation
SaladDay
marked this pull request as ready for review
September 28, 2026 18:09
SaladDay
merged commit Sep 28, 2026
521d98f
into
codex/qualified-release-promotion-20260928
2 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sandbox Provider authors now start at
sandbox/sandbox_provider.goand the README-linked onboarding guide. The shared interface is explicitly namedSandboxProvider, 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 --checkpasses. Independent blind review found no actionable in-scope issues. Fullmake checkwas 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 testapps/web/e2e/sandbox-reset.spec.ts:135timed 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 remainingcheck-mcode-harness(6 passed, 2 existing opt-in native tests skipped) andcheck-agents-executor(33 Rust tests, fmt and clippy) passed separately. No frontend or fixture files changed from baseline19943a39; 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.