Repository navigation
Add resumable Experiment Command and Trial workers - #1128
Merged
Merged
Conversation
This was referenced Oct 23, 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
thirdshift experimentcompares two Arms on private Eval suites, records the Bar before Trials start, and resumes interrupted work.thirdshift experiments [id] --jsonreads saved results.Command records, Command logs and Activity logs use thirdshift's repository. Trial artifacts stay under
~/.thirdshift/evals/experiments/. The guide and site pages describe the workflow. Sandbox isolation is #1014; this ticket reports Trial outcomes before the separate grading/Verdict work.Closes #1003
Evidence
cargo test --test experiments experiment_records_both_arms_the_bar_logs_stages_and_each_trial -- --exactfailed becauseexperimentwas parsed as an Issue URL.After: The same test passes, checking Arms, Bar, stages, logs, Inbox and saved Trial results.
distinct_suite_task_pairs_keep_distinct_trial_resultstest failed with two saved results for four Trials, then passed after distinct suite/task identities received distinct paths. The regression is retained. A further retained regression verifies Stop during a retry keeps the original Void Trial budget./usr/bin/time -p env CARGO_BUILD_JOBS=2 scripts/affected-tests 85dd246df97ecd5c042cc0e4494ba9c1d2cd9bdapassed on4eb682b: all 43 site browser tests and all 2,421 Rust tests passed; Nextest skipped 58 existing tests. Wall time was 1,402.95s including compilation and site checks; Rust execution took 1,207.731s after 2m09s compilation. CI on that head also passed.issue-977base,2b318f3passescargo check --all-targets,cargo fmt --check,cargo clippy --all-targets -- -D warnings, andcargo test --test experiments --test evals --test eval_arms --test command_surface(48 passed, 2 ignored).npm test --prefix sitepasses all 43 browser tests. The merge preserves the upstream setup-token credentials and private replay importer; imported tasks leave optional Trial inputs unset until configured for an Experiment.2b318f3, including the full Rust tests, formatting, Clippy, and site and Console browser checks. Linux and macOS release builds also pass.Merge Danger
Door: two-way
Adds Experiment commands and private versioned artifacts; no migration of existing Command records.
Blast Radius: Experiments
Unaddressed findings
src/evals/experiment.rs:60takes the standing statistical defaults directly fromverdict::Bar::default, so those defaults already have one source. This is the implementation's design decision; no Spec or Day shift decision is deferred. The state/result enums and the typed return from Arm preparation address the other two suggestions.Review coverage
Independent Standards and Spec reviews initially compared against issue-977 at
85dd246df97ecd5c042cc0e4494ba9c1d2cd9bda, with a follow-up on4eb682b. After upstream reconciliation, fresh independent reviewers compared the final head2b318f3against issue-977 atdf4bb1ba2ae62173f159a6e396e96e232c96013b. Both axes read all 29 current changed files, including the generated manual output, and found no new findings. Generated-output exclusions: none. Unread changed files: none under either axis.Test seams
experimentandexperimentsCLI, with real Git repositories, a private fixture suite, cached Arm builds and fake Harnesses.showandstopCLI surfaces.--trialprocess protocol, including timeout and interruption cleanup.Built with codex · gpt-6.1-sol · xhigh