test(remote): containerized clean-host e2e for daemon worktree provisioning#93
Merged
Merged
Conversation
…ioning Adds scripts/e2e/daemon-worktree-setup-e2e.sh: stands up a pristine Docker container as a headless host (no desktop, no dev environment), mounts the built codemux-remote binary, seeds a repo with a committed .codemux/config.json setup script and a gitignored .env, starts codemux-remote serve, and drives the real authed HTTP tool surface (tools/call worktree_create) exactly like the MCP bridge does. Asserts on the container filesystem that the worktree was created at the canonical path, the setup script ran with CODEMUX_BRANCH/CODEMUX_PORT injected, and the gitignored .env was copied from the main checkout. Complements the in-repo integration test (http_worktree_create_provisions_like_desktop), which runs the daemon on the dev machine: this harness validates the same provisioning pipeline on a clean host where only git and the runtime libs exist. Binary under test is overridable via CMX_WT_E2E_BIN. Verified passing against the current main daemon.
This was referenced Jun 10, 2026
Zeus-Deus
added a commit
that referenced
this pull request
Jun 10, 2026
- STATUS/PLAN: v0.8.0 is released (OpenCode sync, favicon cache-bust, dev mock runtime shipped); retag post-tag work as unreleased and add the perf pass (#72-#79), run checkpoints (#80), daemon worktree provisioning parity (#78) + containerized e2e (PR #93) - STATUS: PTY producer back-pressure is now engaged on the live path (issue #73) - drop the stale "inert in production" claims - TESTING: document scripts/e2e/ harnesses and the env-gated SSH round-trip integration tests - features: new project-avatars.md (sidebar image/color customization, favicon derivation + cache-bust, UI-state persistence); link it from INDEX and add the run-checkpoints bullet to FEATURES.md
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.
Salvaged from #92 (closed as superseded by #88–#91): the one artifact main doesn't already have.
Adds
scripts/e2e/daemon-worktree-setup-e2e.sh— an end-to-end harness for the #78 provisioning pipeline that runs on a pristine containerized host rather than the dev machine:archlinux:latestby default,CMX_WT_E2E_IMAGEto override), installs only git + the gtk/webkit runtime libs the debug binary links, and mounts the builtcodemux-remote..codemux/config.jsonsetup script (captures the injectedCODEMUX_*env) and a gitignored.env.codemux-remote serve, waits for the manifest, and drives the real authed HTTP tool surface (tools/call worktree_create) exactly like the MCP bridge does.~/.codemux/worktrees/<repo>/<branch>path, setup marker written with the rightCODEMUX_BRANCHand aCODEMUX_PORTmatching the response'ssetup.port, and the gitignored.envcopied from the main checkout.Complements the in-repo integration test (
http_worktree_create_provisions_like_desktop), which runs the daemon on the dev machine — this validates the same pipeline on a host with no dev environment at all. Binary under test is overridable viaCMX_WT_E2E_BIN.Test plan
main: PASS (setup_running: truein the response; marker capturedfeature/provision+ the allocated port;.envcontents intact in the new worktree).serve.logand exit non-zero.