Conversation
Reserve experiment ids before asynchronous preflight and release only the owning controller. Cancelled or disconnected preflight requests cannot start a runner, and failed or settled requests leave the id available for retry. Implements docs/specs/2026-09-17-experiment-run-ownership.md. A real HTTP preflight barrier reproduced two successful requests before the fix. Server tests passed 61, Studio tests passed 736 with one skip, and typecheck, doc-link and package verification passed. The root suite retained one unrelated local DSH baseline failure. Co-authored-by: Codex (GPT 5.6 Sol) <codex@openai.com>
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
Reserve experiment IDs before asynchronous preflight. Concurrent same-ID requests now receive one 200 and one 409, with only one runner. Cleanup releases only its own controller. Cancelled or disconnected preflight requests cannot start a runner.
Why
Focused concurrency fix: duplicate requests previously shared output directories and overwrote cancellation ownership. No issue is being closed.
Traceability and Scope
Spec: docs/specs/2026-09-17-experiment-run-ownership.md (AC-1 through AC-4).
Owners: Studio experiment routing and server integration tests.
Non-goals: cross-process locks, queues, scheduling, schema changes, or serializing different IDs.
Change Type
Test and Review Evidence
Windows Node 22.20.0 and npm 10.9.3.
Risk and Recovery
Ownership is in-process and retained until preflight or the runner settles. No stored-data migration is required. Revert the commit to restore prior behavior.
AI Involvement
Level: Assisted. Implementation and independent review used GPT-5.6 agents.
Checklist
Changelog unchanged under AGENTS.md scope rules.