From a9ae141eecef5cc91e4cf459b898f255eb8540db Mon Sep 17 00:00:00 2001 From: Codeman maintainer Date: Thu, 16 Jul 2026 23:34:03 +0200 Subject: [PATCH] chore: version packages --- CHANGELOG.md | 6 ++++++ CLAUDE.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/web/public/session-ui.js | 9 ++++++--- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 978b55e8..dda95fc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # aicodeman +## 1.3.4 + +### Patch Changes + +- Fix "Run Shell" not switching the terminal to the newly created shell session. Clicking Run Shell created the shell tab but left the previous session's terminal on screen, so you had to manually click the new tab to actually enter it. Root cause: `runShell()` pre-set `activeSessionId` to the new session's id right before calling `selectSession()`, and `selectSession()` early-returns when the requested id already matches the active one, so it skipped the terminal buffer load, tab activation, and focus. Removed the premature assignment in both the local and remote-SSH shell branches so `selectSession()` runs to completion (matching `runClaude`/`runCodex`/`runGemini`/`runOpenCode`, which already avoid this). Verified end-to-end in a real browser with a negative/positive control. + ## 1.3.3 ### Patch Changes diff --git a/CLAUDE.md b/CLAUDE.md index 52c2eb0c..92ebd9ce 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -56,7 +56,7 @@ When user says "COM": CI runs `npm run check:lockfile` on every push/PR, so lockfile drift fails the build even if the `version-packages` script is bypassed. -**Version**: 1.3.3 (must match `package.json`) +**Version**: 1.3.4 (must match `package.json`) ## Project Overview diff --git a/package-lock.json b/package-lock.json index e9d506bd..121d0baa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aicodeman", - "version": "1.3.3", + "version": "1.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aicodeman", - "version": "1.3.3", + "version": "1.3.4", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index 72351ab7..022344ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aicodeman", - "version": "1.3.3", + "version": "1.3.4", "description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence", "type": "module", "main": "dist/index.js", diff --git a/src/web/public/session-ui.js b/src/web/public/session-ui.js index 7855ae28..14b30693 100644 --- a/src/web/public/session-ui.js +++ b/src/web/public/session-ui.js @@ -712,7 +712,8 @@ Object.assign(CodemanApp.prototype, { remoteIds.push(data.data.sessionId); } if (remoteIds[0]) { - this.activeSessionId = remoteIds[0]; + // Don't pre-set activeSessionId — selectSession early-returns when the + // IDs match, skipping the buffer load, tab activation, and focus (see runCodex). await this.selectSession(remoteIds[0]); } this.terminal.focus(); @@ -770,9 +771,11 @@ Object.assign(CodemanApp.prototype, { )); } - // Switch to first session + // Switch to first session. Don't pre-set activeSessionId — selectSession + // early-returns when the IDs match, skipping the buffer load, tab + // activation, and focus (see runCodex), which left the new shell tab + // created but not shown until the user manually clicked it. if (sessionIds.length > 0) { - this.activeSessionId = sessionIds[0]; await this.selectSession(sessionIds[0]); }