mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-31 05:09:33 +01:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29ffc62536 | ||
|
|
4cb3a4aac8 |
No files matched your search
@@ -1,5 +1,23 @@
|
|||||||
# aicodeman
|
# aicodeman
|
||||||
|
|
||||||
|
## 1.1.6
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Fix: ultracode floating run windows now pop on a fresh device/browser that loads while a run is already active.
|
||||||
|
|
||||||
|
`ultracodeFloatingWindows` syncs from the server (it's a non-display setting), but on a first-time device the SSE `getLightState` run snapshot can seed the run list BEFORE the async settings load resolves — so the floating-window gate read `false` at that instant and skipped any already-active run, leaving the window un-popped until the next ~10s watcher tick. The app now re-runs `syncAllUltracodeFloatingWindows()` once server settings finish loading (in the `loadAppSettingsFromServer().then()` callback), so an in-flight run pops its window immediately. Idempotent: open windows are left as-is, and if the setting is off any premature windows are torn down. Verified end-to-end against a real in-flight run on an isolated instance — a pristine browser (empty localStorage) seeds the setting from the server and pops the active run's window ~0.4s after first paint.
|
||||||
|
|
||||||
|
Also corrected a stale `@fileoverview` comment in `ultracode-windows.js` that claimed the floating windows are gated on `showUltracodeAgents`; they are gated on the dedicated `ultracodeFloatingWindows` toggle (only the docked "Ultracode Agents" panel uses `showUltracodeAgents`).
|
||||||
|
|
||||||
|
## 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
|
## 1.1.4
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -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.
|
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.6 (must match `package.json`)
|
||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.1.4",
|
"version": "1.1.6",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.1.4",
|
"version": "1.1.6",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "aicodeman",
|
"name": "aicodeman",
|
||||||
"version": "1.1.4",
|
"version": "1.1.6",
|
||||||
"description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
|
"description": "Mission control for AI coding agents - run 20 autonomous agents with real-time monitoring and session persistence",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
|||||||
@@ -665,6 +665,16 @@ class CodemanApp {
|
|||||||
this.applySkin();
|
this.applySkin();
|
||||||
this.applyTabWrapSettings();
|
this.applyTabWrapSettings();
|
||||||
this.applyMonitorVisibility();
|
this.applyMonitorVisibility();
|
||||||
|
// ultracodeFloatingWindows syncs from the server (non-display key), but on a
|
||||||
|
// FRESH device the getLightState run snapshot can seed workflowRuns BEFORE this
|
||||||
|
// async settings load resolves — so the floating-window gate read false then and
|
||||||
|
// skipped any already-active run. Re-sync now that the real setting is loaded so
|
||||||
|
// an in-flight run pops its window immediately instead of waiting for the next
|
||||||
|
// ~10s SSE tick. Idempotent: open windows are left as-is; if the setting is off
|
||||||
|
// it tears any premature windows down.
|
||||||
|
if (typeof this.syncAllUltracodeFloatingWindows === 'function') {
|
||||||
|
this.syncAllUltracodeFloatingWindows();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
// Hide loading skeleton now that the app shell is ready
|
// Hide loading skeleton now that the app shell is ready
|
||||||
document.body.classList.add('app-loaded');
|
document.body.classList.add('app-loaded');
|
||||||
|
|||||||
@@ -78,8 +78,15 @@ Object.assign(CodemanApp.prototype, {
|
|||||||
if (panel.classList.contains('open')) this.renderUltracodeAgentsPanel();
|
if (panel.classList.contains('open')) this.renderUltracodeAgentsPanel();
|
||||||
},
|
},
|
||||||
closeUltracodeAgentsPanel() {
|
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');
|
const panel = document.getElementById('ultracodeAgentsPanel');
|
||||||
if (panel) panel.classList.remove('open');
|
if (panel) {
|
||||||
|
panel.classList.remove('open');
|
||||||
|
panel.classList.add('hidden');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// ----- Selection -----
|
// ----- Selection -----
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
*
|
*
|
||||||
* This is the "floating thing" companion to the docked master-detail panel in
|
* This is the "floating thing" companion to the docked master-detail panel in
|
||||||
* `ultracode-panel.js` (the dock panel stays — these windows are ADDITIONAL).
|
* `ultracode-panel.js` (the dock panel stays — these windows are ADDITIONAL).
|
||||||
* When the `showUltracodeAgents` setting is on, a small floating window pops up
|
* When the `ultracodeFloatingWindows` setting is on (a DEDICATED toggle, separate
|
||||||
|
* from the dock panel's `showUltracodeAgents` — see `_ultracodeFloatingEnabled`),
|
||||||
|
* a small floating window pops up
|
||||||
* for each ACTIVE ultracode/Workflow run (status not completed/killed/failed),
|
* for each ACTIVE ultracode/Workflow run (status not completed/killed/failed),
|
||||||
* mirroring the live agent grid, and is connected by a glowing line to the
|
* mirroring the live agent grid, and is connected by a glowing line to the
|
||||||
* Codeman tab whose `claudeSessionId` matches the run's `sessionUuid` — the same
|
* Codeman tab whose `claudeSessionId` matches the run's `sessionUuid` — the same
|
||||||
|
|||||||
Reference in new issue
Block a user