agentgui 1.0.1017 → 1.0.1019

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.
package/AGENTS.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # AgentGUI — Agent Notes
2
2
 
3
+ ## Mobile sessions-drawer sliver fix (2026-07-03) — twenty-ninth run
4
+
5
+ Scoped negative-space/attention follow-up (not a full agent fan-out) to the explicit "looks very diy" feedback. Live-browser screenshot + DOM measurement at 420px found a real regression the prior two runs' screenshot audits missed: the closed `.ws-sessions` drawer left a ~35px sliver visibly overlapping the chat content on mobile. Root cause in `../design` `app-shell.css`: the `<=1100px` breakpoint's closed-state `transform: translateX(-110%)` assumes the drawer's `left` is `0`; the `<=900px` breakpoint then shifts the drawer's `left` to `var(--ws-rail-w-collapsed)` (60px) so it sits right of the icon-only rail, but never adjusted the closed-state translate to match — `-110%` of a 248px-wide drawer is only -272.8px, undershooting the needed -308px (left + width) by ~35px. Fixed by overriding the closed-state transform inside the 900px block: `translateX(calc(-100% - var(--ws-rail-w-collapsed)))`, which scales correctly with both the drawer width and the rail offset. Verified via `getBoundingClientRect` before (x:-212.8, rightEdge:35.2 — visible) and after (x:-248, rightEdge:0 — fully clear) plus before/after screenshots. **Standing rule: any drawer/overlay whose `left`/`inset` changes across breakpoints must re-derive its closed-state transform from that breakpoint's own offset — a transform tuned for one breakpoint's geometry silently breaks at the next if the offset shifts underneath it.** Kit pushed `76b2bac`, agentgui pushed `4bb9f3f`.
6
+
3
7
  ## Visual-polish pass — shell depth, composer weight, chat gutter (2026-07-03) — twenty-eighth run
4
8
 
5
9
  User feedback: the shipped GUI "looks very diy". A live-browser screenshot audit (not a full agent fan-out) named 3 concrete, high-leverage causes and fixed all 3 in the kit. (1) `.ws-sessions` used flat `--bg`, identical to the main content column — `.ws-rail` and `.ws-pane` both already use `--bg-2` (a recessed plane framing the elevated content column) for exactly this reason; sessions was the one column breaking that pattern, so the conversation list and chat thread read as ONE continuous surface with only a 1px hairline between them — the single flattest tell in the shell. Now consistent. (2) `.chat-composer` — the box the user types into every turn — had zero elevation at rest, a flat hairline box on a flat background; added the kit's own already-defined-but-unused `--shadow-1` token (the existing focus-within ring still overrides it on focus). (3) The chat tab opts out of `.ws-main`'s padding via `mainFlush` (so the thread can center at `--measure`), but that left the controls row, heading, empty-state, and composer all flush against the column edge on both sides with zero gutter — the crumb bar above kept its own padding, so everything below visibly touched the edge the crumb text did not. Added a uniform inline gutter to `.agentchat` itself; `--measure` centering is unaffected (it centers within the now-padded box). **Standing rule: `.ws-rail`/`.ws-sessions`/`.ws-pane` must all three use `--bg-2` for consistent shell depth — a future column added flat `--bg` would repeat this exact regression.** Also landed inherited uncommitted community-app reply/delete-message work sitting dirty in the kit tree. Browser-witnessed at 1280px and 420px before/after: visible depth/weight/gutter improvement, no wrap/overlap regression, 0 console errors. Kit pushed `anentrypoint-design` `53c8464`, agentgui pushed `42708ea`. `agentgui`'s Deploy GH Pages flaked once (the known "Deployment cancelled" pattern — see the 26th-run note) and succeeded on rerun after patient wait.
@@ -24,7 +28,7 @@ Landed the highest-severity finding deferred from the 24th run (gui-completion #
24
28
 
25
29
  ## GUI perceived-performance sweep (2026-07-02) — twenty-third run
26
30
 
27
- Small, targeted run landing the 22nd-run's deferred perceived-perf findings. `index.html` now `modulepreload`s the marked/dompurify ESM CDN modules (was preconnect-only) so the fetch starts in parallel with the kit/app module graph instead of waiting for `markdown.js`'s dynamic import on the first chat response's escaped-text-to-rendered-markdown swap. Settings server panel shows "checking…" instead of "unknown" for version/uptime/clients/projects-folder during the very first health probe (new `state.healthChecking` flag around `recheckHealth`'s await — "unknown" reads as a permanent broken-server fact, not in-flight loading). Settings agents panel title shows "agents · loading…" instead of the literal "agents · 0/0 installed" while the initial fetch is in flight. Still deferred (its own PRD row, re-scoped not dropped): first-render network-gating — the shell paints nothing between the boot-splash and health-probe completion, needing a render-architecture change (skeleton/optimistic shell) bigger than this run's slice. No kit changes this run. agentgui pushed `6a045ba`, 28/28 tests, 0 console errors.
31
+ Landed the 22nd-run's deferred perceived-perf findings (modulepreload for markdown CDN modules, "checking…"/"loading…" in-flight states instead of "unknown"/"0/0"); first-render network-gating re-scoped, not dropped. Full detail in rs-learn (recall "agentgui 23rd run perceived-performance sweep"). agentgui pushed `6a045ba`.
28
32
 
29
33
  ## GUI ux-craft sweep (2026-07-02) — twenty-second run
30
34
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## [Unreleased] - Mobile sessions-drawer sliver fix (kit 76b2bac, app 4bb9f3f)
2
+
3
+ - kit: fixed the closed sessions drawer's `translateX(-110%)` at the <=900px breakpoint, which was sized for a `left:0` drawer and undershot once the drawer's left offset shifted to the collapsed rail width, leaving a ~35px sliver of the closed drawer visibly overlapping content on mobile. Why: user-reported "looks very diy" prompted a live-browser negative-space review that caught the regression via DOM measurement (`getBoundingClientRect` showed the drawer's right edge at +35px instead of 0/off-screen).
4
+ - app: re-vendored the fixed kit build into `site/app/vendor/anentrypoint-design/`.
5
+
1
6
  ## [Unreleased] - GUI cohesion sweep: one-product chat-agent feel (kit 9ef409a, app 15b626c)
2
7
 
3
8
  - new workflow `.claude/workflows/gui-cohesion.js` (6 cohesion lenses -> adversarial verify -> ordered plan; 61 agents -> 40 confirmed gaps, `PUNCHLIST-COHESION.md`) — hunts the product-cohesion/feel gap vs claude.ai/code / cowork / Claude-Desktop, distinct from the audit/overhaul/predictability-polish workflows. Why: the shipped surfaces still read as a kit of parts.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.1017",
3
+ "version": "1.0.1019",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",
@@ -815,7 +815,16 @@ function sessionsColumn() {
815
815
  onInput: (v) => { state.searchQ = v; if (v.trim().length >= 2) debouncedSearch(); else { state.searchHits = null; } render(); },
816
816
  },
817
817
  onNew: () => { navTo('chat'); newChat(); },
818
- onSelect: (s) => { if (state.tab === 'chat') resumeInChat({ sid: s.sid }); else loadSession(s.sid); },
818
+ // On files/live/settings the rail still renders (keepSessionsTrack) and is
819
+ // captioned 'Browse a conversation's events', but loadSession() alone only
820
+ // populates state - nothing on those tabs renders events, so the click had
821
+ // zero visible effect. Land on history first so the caption's promise
822
+ // (browsing events) is kept from every tab the rail appears on.
823
+ onSelect: (s) => {
824
+ if (state.tab === 'chat') { resumeInChat({ sid: s.sid }); return; }
825
+ if (state.tab !== 'history') navTo('history', { writeHash: false });
826
+ loadSession(s.sid);
827
+ },
819
828
  loading: state.tab === 'history' && !state.sessions.length && !state.historyError,
820
829
  loadingText: state.historySlow ? 'Indexing your Claude history — the first load can take a minute…' : undefined,
821
830
  error: state.historyError,