Repository navigation
feat(environments): allocate virtual machines by group or session - #246
Merged
Merged
Conversation
KaiEureka
force-pushed
the
codex/vm-isolation-pools
branch
from
October 24, 2026 09:26
0723957 to
e093fa2
Compare
KaiEureka
force-pushed
the
codex/vm-isolation-pools
branch
from
October 24, 2026 09:38
e093fa2 to
979052c
Compare
Keep cancellation type, lease ownership and subsequent acquisition checks on all supported Python versions. Match the forwarded message on Python 3.11 and later, where asyncio documents propagation to task awaiters. Native 3.10 and 3.11 control probes confirm this runtime difference.
KaiEureka
marked this pull request as ready for review
October 24, 2026 10:42
# Conflicts: # opencollab/adapters/_env_vm.py
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.
Adds
vm-groupandvm-sessionproviders for existing Linux guests. Stable resource IDs and SQLite transactions coordinate allocation across controllers sharing a lease database. Session allocation proceeds concurrently, capacity waiting is cancellable, and nested exhaustion produces an explicit error.The pool reuses candidate workspaces and Git snapshot transfer, exports candidate artifacts, then performs configured guest reset before releasing its lease. Unknown execution and failed export or reset retain the resource for recovery. VM resource and connection configuration share
adapters/vm_config.pyand are assembled throughbootstrap/vm.py.Independent review repaired retry recovery for the candidate capture controller. Lost replies during capture or post-export cleanup now recover before the next release attempt. Active candidate commands retain cancellation semantics, while unresolved operations retain their lease.
Validation includes independent controllers competing for resources, two real Linux VMs, group and session workspaces, binary Git patches, submodules and symlinks, complete exports, reset recovery, both lost-reply stages and cancellation of an unbounded command. The VM lifecycle fixes from #245 are included. #247 exposes these providers through the SDK and CLI.