From 4cb3a4aac8ffa1501e7222ef06249b98f5508eb9 Mon Sep 17 00:00:00 2001 From: Codeman maintainer Date: Mon, 15 Jun 2026 22:46:53 +0200 Subject: [PATCH] fix(ultracode): (x) Close fully hides the Ultracode Agents panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closeUltracodeAgentsPanel() only removed `open`, leaving the drawer in its collapsed peek state (header strip still visible) — so (x) looked like a no-op. Now also adds `hidden` (display:none), mirroring closeSubagentsPanel; does NOT flip showUltracodeAgents (that gates the watcher + floating windows). Verified in a real browser (post-close computed display:none). Bumps 1.1.4 -> 1.1.5. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 8 ++++++++ CLAUDE.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/web/public/ultracode-panel.js | 9 ++++++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dde4701e..67f715ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # aicodeman +## 1.1.5 + +### Patch Changes + +- Fix: the Ultracode Agents panel's (×) Close button now fully hides the panel. + + `closeUltracodeAgentsPanel()` only removed the `open` class, which drops the bottom-docked drawer to its collapsed _peek_ state (the 36px header strip stays visible) rather than closing it — so clicking (×) looked like it did nothing. It now also adds the `hidden` class (`display:none`), mirroring `closeSubagentsPanel()`. It deliberately does NOT flip the `showUltracodeAgents` setting (that also gates the run watcher and floating windows); the header launcher button reopens the panel. Verified in a real browser: after (×) the panel computes `display:none`. + ## 1.1.4 ### Patch Changes diff --git a/CLAUDE.md b/CLAUDE.md index f6cdc2ff..808d0b7b 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.1.4 (must match `package.json`) +**Version**: 1.1.5 (must match `package.json`) ## Project Overview diff --git a/package-lock.json b/package-lock.json index 51c88de2..afbb2301 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aicodeman", - "version": "1.1.4", + "version": "1.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "aicodeman", - "version": "1.1.4", + "version": "1.1.5", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index b4079892..b054edab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aicodeman", - "version": "1.1.4", + "version": "1.1.5", "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/ultracode-panel.js b/src/web/public/ultracode-panel.js index c3f20d21..4297b4b4 100644 --- a/src/web/public/ultracode-panel.js +++ b/src/web/public/ultracode-panel.js @@ -78,8 +78,15 @@ Object.assign(CodemanApp.prototype, { if (panel.classList.contains('open')) this.renderUltracodeAgentsPanel(); }, closeUltracodeAgentsPanel() { + // The X must FULLY hide the panel. Removing only `open` drops it to the + // collapsed peek state (header strip still visible), so add `hidden` + // (display:none) too — mirrors closeSubagentsPanel. Not the showUltracodeAgents + // setting: that also gates the watcher + floating windows; the launcher reopens. const panel = document.getElementById('ultracodeAgentsPanel'); - if (panel) panel.classList.remove('open'); + if (panel) { + panel.classList.remove('open'); + panel.classList.add('hidden'); + } }, // ----- Selection -----