diff --git a/src/web/public/index.html b/src/web/public/index.html index 4d54096a..9734ec06 100644 --- a/src/web/public/index.html +++ b/src/web/public/index.html @@ -2629,6 +2629,7 @@
Runs this case in a hardened, isolated container. The base image is built automatically on first use. Docker/Podman must be installed. + Already have a container running? — Codeman only docker execs in and never touches its lifecycle.
Container settings (optional, sensible defaults) diff --git a/src/web/public/session-ui.js b/src/web/public/session-ui.js index 9da4990d..8cedd647 100644 --- a/src/web/public/session-ui.js +++ b/src/web/public/session-ui.js @@ -2341,6 +2341,8 @@ Object.assign(CodemanApp.prototype, { if (adoptToggle) adoptToggle.onchange = () => this._syncDockerAdoptMode(); const adoptCheck = document.getElementById('dockerAdoptCheckBtn'); if (adoptCheck) adoptCheck.onclick = () => this._dockerAdoptPreflight(); + const adoptJump = document.getElementById('dockerAdoptJumpBtn'); + if (adoptJump) adoptJump.onclick = () => this.jumpToDockerAdopt(); this._syncDockerAdoptMode(); // Scroll-into-view on focus for mobile keyboard visibility modal.querySelectorAll('input[type="text"]').forEach(input => { @@ -2913,6 +2915,20 @@ Object.assign(CodemanApp.prototype, { else modal.removeAttribute('data-docker-adopt'); }, + /** + * Cross-link from the Create New tab's "Run in an isolated Docker container" + * row. Adoption lives on the Docker tab, but the place users actually look for + * anything container-shaped is that checkbox, so this jumps them there with the + * toggle already on rather than leaving the feature undiscoverable. + */ + jumpToDockerAdopt() { + this.switchCaseModalTab('case-docker'); + const toggle = document.getElementById('dockerAdoptExisting'); + if (toggle) toggle.checked = true; + this._syncDockerAdoptMode(); + document.getElementById('dockerContainerName')?.focus(); + }, + /** * Read-only preflight against an existing container. It links nothing, so the * user can find out "not running" / "no tmux" / "codex present, claude missing"