-
Notifications
You must be signed in to change notification settings - Fork 29
🤖 feat: add Docker runtime support #1096
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
74ed9a0 to
4face12
Compare
1f7673c to
b7b1c96
Compare
d1c9380 to
2cd8268
Compare
4556c92 to
52d7003
Compare
55819bd to
481d2f0
Compare
- Add DockerRuntime implementation (docker exec-based runtime)\n- Add runtime parsing/config support for docker\n- Keep container naming compatible with existing workspaces\n\n_Generated with mux_
- Extract RemoteRuntime base class (shared exec + file ops)\n- Switch runtime selection UI/state to discriminated union (SSH host / Docker image)\n- Add Docker option to CreationControls and persist last-used host/image\n- Fix remote stdin.close idempotence and SSH tilde expansion edge cases\n\n_Generated with mux_
- Add DockerRuntime to runtime contract integration matrix (reusing ssh fixture container)\n- Make runtime contract tests sequential for remote fixtures to avoid timeouts\n- Avoid global bun module mocks leaking across tests\n- Make lockfile failure test deterministic in CI\n- Reduce sendMessage heavy test flake and ensure CI uses enough Jest workers\n\n_Generated with mux_
deletePlanFilesForWorkspace() used runtime.exec() without waiting for completion.\nAwait stdin.close() + exitCode so callers can assume plan files are gone when it resolves.\n\n_Generated with mux_
481d2f0 to
a7b2aa6
Compare
Add Docker runtime for running workspaces in isolated containers.
Key Features
mux-{projectName}-{workspaceName}, sanitized for Docker's naming requirements/srcfor workspace,/tmp/mux-bashesfor background processesgit bundle createlocally,docker cpto transfer, thengit clonefrom bundle inside containerUsage
This creates container
mux-myproject-my-featurewith workspace at/src.Schema
Docker runtime config only requires:
Changes
dockerto RuntimeModeSchema enumdocker <image>formatTest Results
make typecheck✅make lint✅bun test src/browser/utils/chatCommands.test.ts✅ (23 tests)bun test src/node/runtime/DockerRuntime.test.ts✅ (4 tests)bun test src/common src/browser✅ (968 tests)Generated with
mux