Repository navigation
Preserve active search gates across self-play storage pauses - #8
Merged
arhancanli merged 1 commit intoOct 5, 2026
Conversation
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.
When storage pauses self-play, the available match cores change. The controller previously compared an existing gate with this new concurrency, failed to recognise its progress, and could start a ready training round before the gate finished. Storage recovery could similarly replace a full-budget gate or oversubscribe it with a new generator.
Keep the checkpoint's saved concurrency when every test input, setting and execution profile still matches and the allocation fits the current CPU budget. Plan generation around that allocation, and refuse to replace a matching gate when another generator leaves too few cores. New or changed tests retain the normal allocation and identity checks.
Validation: reproduced the bug read-only on the actual 5,056-game, nine-worker cont4 checkpoint: storage-ready was recognised, storage-paused was not. The fixed predicate recognises both states and preserves nine workers on the later 5,120-game checkpoint. All 46 controller tests pass, including four new regressions for storage pause, storage recovery, unchanged-input requirements and an integration test proving ready training stays deferred while the same gate advances. Two of the initial regressions failed before the fix. No playing binary, network, gate limits, completed games or search options change.