Skip to content

feat(environments): add group and session Docker isolation - #242

Merged
KaiEureka merged 8 commits into
mainfrom
codex/session-docker-isolation
Oct 24, 2026
Merged

KaiEureka merged 8 commits into
mainfrom
codex/session-docker-isolation

Conversation

@KaiEureka

@KaiEureka KaiEureka commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Adds docker-group and docker-session providers to the isolation strategy interface in #241. A group owns one container with independent worktrees; session isolation owns one container per acquired execution environment.

The providers copy the actual candidate state into private container Git metadata, preserve release tags used by version-dependent builds and the existing boundaries of shallow histories, retain patches and recovery locations before cleanup, and preserve caller-owned source environments. Public Docker options configure the image, network, CPU, memory, PID limit and read-only mounts. Existing Docker helper defaults remain compatible.

Validation includes real Docker resource inspection, group/session container identity, private workspaces, review-source handoff, interrupted-command recovery and cleanup. Independent review reproduced and repaired source object-format handling and cancellation of snapshot-copy operations. Provider-owned containers use Docker's init process so ordinary command cancellation can reap descendants while preserving the existing recovery behavior for genuinely unquiescent commands. The latest independent Docker review passed 57 focused and native checks, 14 import/cancellation cases and 94 adjacent regressions. Tagged-build controls cover both isolation strategies, annotated and lightweight tags and historical release files. Shallow-import controls cover ordinary repositories, linked worktrees, initialized submodules, Docker sources and SHA-1/SHA-256, preserving the source history without network retrieval. Python 3.10 cancellation assertions use the repository's existing compatibility helper. Ruff, import-linter and deptry pass. All final-head GitHub checks pass, including complete Python 3.10–3.14 suites, package verification and macOS checks. Python 3.10 passed on retry after an unchanged short-timeout fixture failed before its controlled write started. Both fixture variants also passed eight local repetitions.

This is the second part of the runtime feature series, building on #241. Model routing and managed member-authored runs follow in #243 and #244.

@KaiEureka
KaiEureka force-pushed the codex/session-docker-isolation branch from cb78bc2 to 1e71d65 Compare October 24, 2026 03:23
@KaiEureka
KaiEureka marked this pull request as ready for review October 24, 2026 04:19
Base automatically changed from codex/session-isolation-strategies to main October 24, 2026 05:13
Include source tag references in workspace bundles and restore them alongside
HEAD so container builds retain Git-based version discovery. Preserve both
lightweight and annotated tags with their release history.

Verify native group and session builds, historical release reads, tag object
types, and linked source imports in SHA-1 and SHA-256 repositories.
Copy each source repository's existing shallow boundary into its private Git
metadata before fetching the workspace bundle. Resolve the boundary through
Git so linked worktrees and initialized submodules retain their own history.

Cover shallow SHA-1 and SHA-256 repositories, linked worktrees, submodules,
and native group/session review handoffs while preserving source boundaries.
@KaiEureka
KaiEureka merged commit 4281deb into main Oct 24, 2026
20 of 21 checks passed
@KaiEureka
KaiEureka deleted the codex/session-docker-isolation branch October 24, 2026 06:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant