feat(pty): arena mode with shared Docker primitives#90
Merged
Conversation
Extract Docker container/shared-container/IO bridges from pty/adapters/test_container/ into reusable pty/docker/ module. Add DockerExecSession replacing both ArenaPtySession and TestContainerPtySession. Introduce arena feature flag with ArenaScenario enum, ScenarioManifest parsing, and CLI --arena flag. Remove simulation fixture code from shell.rs.
Reflect the Docker module extraction (pty/docker/), DockerExecSession unification, arena feature flag hierarchy, and scenario-based CLI.
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
pty/adapters/test_container/into sharedpty/docker/module (Container,SharedContainer,DockerExecSession, IO bridges)DockerExecSessionreplacing bothArenaPtySessionandTestContainerPtySession(~80 lines of duplication removed)arena→docker→bollard) withArenaScenarioenum,ScenarioManifestparsing, and--arenaCLI flagContainerConfigfor flexible container creation (cmd, tty, open_stdin)agent/adapters/rig/shell.rsTest plan
cargo check/cargo check --features arena/cargo check --features pty-test_container/cargo check --all-features— all compile cleanlycargo clippy --all-features -- -D warnings— no warningscargo test --all-features— 383 tests passcargo run --features arena -- --arena the-502-cascade— pulls scenario image, displays prompt, interactive shell workscargo run --features pty-test_container -- --use-pty-test-container— existing test container backend still workscargo run— default local PTY unaffected🤖 Generated with Claude Code