agentgui 1.0.1001 → 1.0.1002

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/AGENTS.md +12 -2
  2. package/package.json +1 -1
package/AGENTS.md CHANGED
@@ -1,8 +1,18 @@
1
1
  # AgentGUI — Agent Notes
2
2
 
3
- ## CRITICAL ACP is managed ONLY by `lib/acp-sdk-manager.js` (2026-06-20) — twentieth run
3
+ ## GUI cohesion sweep (2026-07-02) — twenty-first run
4
4
 
5
- A destructive quality run found a second, redundant ACP path: `lib/plugins/acp-plugin.js` eager-spawned all four ACP tools at boot on **conflicting/mismatched ports** (it mapped gemini=18101 / kilo=18102 / codex=18103, but the canonical `acp-sdk-manager.js` uses opencode=18100 / kilo=18101 / codex=18102), implemented no restart/health logic despite a `/api/acp/status` route that promised `restarts`, and **crashed server boot** with `[FATAL] Uncaught exception: Executable not found in $PATH: "codex"` whenever an ACP binary was missing. Its route was consumed by nobody (the client `acpStatusFor` reads `state.health.acp` from `getACPStatus()` → `acp-sdk-manager.js`); no plugin declared an `acp` dependency. **Deleted the file.** Rule: ACP lifecycle (on-demand start, health via `/provider`, restart-backoff, status) lives in `lib/acp-sdk-manager.js` alonenever add a second eager-spawn ACP manager. Also: `spawn()` for a missing binary surfaces ENOENT as an **async `'error'` event** under Bun (it escapes a synchronous try/catch), so every `spawn()` callsite needs a `proc.on('error', …)` handler. `acp-sdk-manager.js startProcess` was the only remaining callsite missing it (every other terminal.js, claude-runner-direct.js, gm-agent-configs.js, claude-runner-acp.js already had one); added `proc.on('error')` routing into the CRASHED + `scheduleRestart` backoff path. Witnessed: clean boot (0 FATAL), `[PLUGINS] Loaded extensions` no longer lists `acp`, `/api/acp/status` 404, tests 46/46, browser localhost:3009/gm/ 0 console errors. Pushed this run.
5
+ `gui-cohesion` workflow wf_6b9f1890-320 (25 agents, 12 confirmed). Kit (`../design`): `WorkspaceRail` items gain an optional `rail` attention-dot tone (a background surface, e.g. an errored Live session, can flag its nav item even while the user is elsewhere) new `.ws-rail-item-flag` CSS. `WorkspaceShell` extends the pane-track `stableFrame` treatment to the sessions column (`keepSessionsTrack`, mirrors `keepPaneTrack`) so navigating chat/history/files/live/settings no longer reflows the 4-column grid to 3 and back. Mobile `ws-sessions`/`ws-pane` drawers now trap Tab/Shift+Tab focus (exported `trapTab` from `overlay-primitives.js`, reused in `shell.js`'s `toggleWsDrawer`)previously Tab could walk focus out into the scrim. `ConversationList` rows accept a richer optional `status` ('error'|'stale'|'running'|'stopping') mirroring `SessionCard`'s `STATUS_DISC`, so a session pinned to the rail's "Running" group shows stuck-vs-busy. `ContextPane` gains a `recentFiles`/`onOpenFile` "recent files" panel. Also picked up inherited uncommitted 19th/20th-run work sitting dirty in the kit tree (agent-chat/chat/files-modals/files a11y+dropzone fixes) commit and push before starting new work if `git status --porcelain` is non-empty at PLAN entry.
6
+
7
+ App (`site/app/js/app.js`): new `computeLiveSessions()` is the single source of truth for the live session set (owned `chat.active` rows + external SSE-observed sessions) — shared by the `WorkspaceRail` Live badge count/error-flame tone AND `liveMain()`'s dashboard, closing a prior gap where the nav badge undercounted external sessions the dashboard showed. Sessions rail now renders on the Live tab too (previously only chat/history), so the "jump between conversations" rail and "all sessions at once" oversight view coexist. Follow-up chip "Open X in files" relabeled "Explain X" — it only ever called `sendChat`, never navigated, so the label lied about its behavior. `recentSessionFiles()` scans Edit/Write/MultiEdit/Read/NotebookEdit tool-call args for `file_path`/`path`/`notebook_path`, deduped, most-recent-first, feeding `ContextPane`. "disconnected" -> "offline" in two remaining spots (live-stream reconnect banner, ACP agent status) to match the connected/connecting/offline vocabulary used everywhere else. `refreshActive()` now skips its network poll while `document.hidden` (resumes immediately on `visibilitychange`) instead of polling every ~3.3s from backgrounded tabs.
8
+
9
+ Server (`lib/http-handler.js`): `/health` now reports `corsWildcardOpen` (true when `CORS_ORIGIN=*` and no `PASSWORD`); the settings panel renders a persistent error `Alert` from it instead of relying on the console-only boot warning an operator not tailing logs would never see.
10
+
11
+ Witnessed: kit build (`node scripts/build.mjs`) — lint-tokens/lint-glyphs/lint-null-children/lint-classes all OK; `test.js` 28/28; browser localhost:3010/gm/ chat/live/settings tabs, 0 console errors, sessions column confirmed present on Live tab post-fix. Kit pushed `anentrypoint-design` `6cfd115` (rebased onto concurrent-writer `fe50db5`, dist regenerated rather than hand-merging the conflicting minified bundle). agentgui pushed `3410178`. Both repos' CI (Test/Publish/Deploy GH Pages) green.
12
+
13
+ ## CRITICAL — ACP is managed ONLY by `lib/acp-sdk-manager.js`
14
+
15
+ Twentieth run deleted a redundant eager-spawn `lib/plugins/acp-plugin.js` (conflicting ports, no restart logic, crashed boot on a missing binary). Rule: ACP lifecycle lives in `lib/acp-sdk-manager.js` alone; every `spawn()` callsite needs a `proc.on('error', …)` handler (ENOENT surfaces async under Bun). Full detail in rs-learn (recall "agentgui 20th run ACP redundant manager").
6
16
 
7
17
  ## GUI quality sweep (2026-06-19) — nineteenth run
8
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.1001",
3
+ "version": "1.0.1002",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",