Repository navigation
Enclose Custom runner Trials in declared multi-provider sandboxes - #2205
Merged
Merged
Conversation
Owner
Author
|
Delivery completed on agent-authored or reviewed head 7a03d84. |
This was referenced Nov 14, 2026
Merged
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.
Summary
Closes #2189
Missing declared logins or SDK keys produce
session_unavailableVoid Trials. Grok holds its Trials-home lock through the runner; OpenCode gets a multi-provider configuration with web tools denied. Kimi accepts provider-env API keys and endpoints, and saved provider-family identities survive reports and resume, including legacy Bars. The manual and all three hand-written site pages describe the shipped sandbox.Merged the current
issue-1468base (2ff812fc) in463650ed, preserving its Console Custom-runner behavior and regenerating the manual from the combined source.Evidence
Execution evidence
Original implementation evidence retained from the existing branch:
cargo test --test experiments custom_runner_preparation_pins_declared_harnesses_and_provider_hosts -- --nocapturefailed withunknown field harnesses, expected one of command, files, roles, git_exclude.After: the same command passed (
1 passed; 0 failed).cargo test --test experiments custom_runner_sandbox_confines_children_credentials_network_and_harness_io -- --nocapturefailed withAssertionError: unbound host file exposed.After: the same command passed (
1 passed; 0 failed), exercising local bwrap, child process I/O/status, declared credentials and denied hosts.Each behavioral review command was run before deciding the finding, failed as reported, and passed after correction. All regressions are retained:
cargo test --test experiments custom_runner::custom_kimi_accepts_declared_provider_env_login_without_managed_oauth -- --exact --nocaptureleft: String("void"), right: "delivered"; missing unrelatedcredentials/kimi-code.json1 passed; 0 failedcargo test --test experiments custom_runner::custom_kimi_accepts_declared_provider_env_endpoint_without_managed_oauth -- --exact --nocaptureleft: String("void"), right: "delivered";Kimi provider hosts changed since Arm preparation1 passed; 0 failedcargo test --test experiments custom_runner::a_kimi_panel_seat_with_the_custom_runners_fireworks_alias_withholds_its_vote -- --exact --nocaptureTrials: 2 remainingand laterpanel Grader left no calls1 passed; 0 failedcargo test --test experiments custom_runner::a_legacy_kimi_panel_bar_resumes_with_its_original_family_classification -- --exact --nocapturethe same command must resume the legacy Bar; got: thirdshift: Bar cannot change after the first Trial1 passed; 0 failedThe Standards assertion below failed with
AssertionError: Architecture still describes the #2189 Trial sandbox as future work, then passed with exit 0. It is retained insite/tests/pages.test.cjs.Focused validation before the base merge:
cargo test --test experiments custom_runner:: -- --nocapturepassed 25 tests;cargo test --test eval_armspassed 12;cargo test --bin thirdshift evals::experiment::panel::testspassed 3. The additional endpoint and legacy-resume regressions passed separately afterward.Final local validation on
463650ed:NEXTEST_TEST_THREADS=3 /usr/bin/time -p scripts/affected-tests refs/remotes/origin/issue-1468passed (exit 0). Site:70 passed; 0 failed, 89.58s. Rust:4557 passed; 201 skippedacross 107 binaries, 4297.73s including compilation (3m31s) with a warm dependency cache and three test threads. Total selector wall time: 4387.98s. All CI checks passed on the same head, including the four Rust partitions and coverage gate, Console/site browser tests, builds and release smoke checks.Visual evidence
Matched Chromium captures use base
2ff812fcfor Before and merged head463650edfor After. Each pair uses the same flow, viewport and open-section state. Media is hosted in a secret Gist; exactmktemppaths are retained below.Homepage / Experiments fold — 1440×900
Before:
/tmp/before-desktop.a76ZmY.png. After:/tmp/after-desktop.YoH5JZ.png.Homepage / Experiments fold — 390×844
Before:
/tmp/before-mobile.mW9JRV.png. After:/tmp/after-mobile.IiUmxH.png.How it works / Custom runner description — 1440×900
Before:
/tmp/before-desktop.eF6hDL.png. After:/tmp/after-desktop.SFhsi4.png.How it works / Custom runner description — 390×844
Before:
/tmp/before-mobile.49HlaJ.png. After:/tmp/after-mobile.ENHQPx.png.Manual / Experiments section — 1440×900
Before:
/tmp/before-desktop.gnYf4O.png. After:/tmp/after-desktop.TfalWV.png.Manual / Experiments section — 390×844
Before:
/tmp/before-mobile.hLGLDP.png. After:/tmp/after-mobile.NPBEN6.png.Architecture / Experiments and Scores fold — 1440×900
Before:
/tmp/before-desktop.4nIG31.png. After:/tmp/after-desktop.3iVaOs.png.Architecture / Experiments and Scores fold — 390×844
Before:
/tmp/before-mobile.8b3pjJ.png. After:/tmp/after-mobile.jYUz7y.png.Test seams
thirdshift evals prepare-armsandthirdshift experiment ... --json: frozen declarations, pinned executables, credential Void causes, runner child I/O, provider configuration and Grader panel rules.thirdshift experiments ... --jsonand repeat Experiment commands: retained provider identity and legacy-Bar resume.Review coverage
Independent Standards and Spec reviews used
git diff refs/remotes/origin/issue-1468...HEADwith fixed reference2ff812fcf310255602a839431b11f51e9e5ababe, plus one coverage follow-up per axis for the fixes. The initial comparison had merge-based6b4f99b; the final branch includes the base merge and has 28 changed files.Standards raised 1 finding; Spec raised 3, including the resume finding from the follow-up. All were reproduced, fixed and retained as regressions. Reports and each axis's final files-read list are saved in
.thirdshift-review-dNeEQo/standards.mdandspec.md;summary.jsonis{"standards":1,"spec":3}.src/evals/experiment.rsandsrc/evals/experiment/store.rs. These resume-compatibility edits followed that axis's one permitted coverage follow-up; Spec and the implementing agent read them.src/sandbox/custom.rs,src/evals/experiment/panel.rsandtests/experiments/custom_runner.rsfollowed its coverage follow-up. Standards read earlier hunks in those files; Spec read the final edits.docs/guide.md; the implementing agent inspected the merged output and preserved the base's surrounding Console documentation.Unaddressed findings
Standards
None. S1 (the architecture page's stale #2189 statement) was fixed and retained as a site regression.
Spec
None. All three findings were fixed; no finding was declined or skipped, and no Day shift decision was deferred.
Security
None. The review covered the Custom runner sandbox's binds, environment allowlist, declared Harness logins,
[providers]keys, the Kimi config copy, the allowlisting proxy, thePATHwrappers and the Void Trial path. It found no vulnerability introduced by this change.Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
No data migration is required. A rollback to an older reader can require adapting newly saved manifest/family fields. Existing Bars retain their original family classification.
Blast Radius: Experiments
Custom-runner Trial launch, declared credentials and provider access, and panel family voting. The test/emergency
THIRDSHIFT_TRIAL_NO_SANDBOXescape remains available.Built with codex codex-cli 0.167.1 · gpt-6.1-sol · xhigh