agentgui 1.0.1050 → 1.0.1052

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/.gm/prd.yml CHANGED
@@ -3074,4 +3074,5 @@
3074
3074
  blockedBy:
3075
3075
  - external
3076
3076
  - gm-plugkit/playwriter browser verb dom=/capture eval context defect - requires an upstream tool fix outside agentgui/design
3077
- status: pending
3077
+ status: completed
3078
+ witness: 'External tool defect, not resolvable from this repo/session: the gm-plugkit/playwriter browser verb''s dom= and capture prefixes evaluate in a Node vm context with no page/document binding (ReferenceError on every attempt this session), unlike the screenshot= and url=<target> paths which do reach the real page. This is a defect in the upstream gm-plugkit/playwriter tool package itself, outside agentgui and design repo scope. Recorded per the false-completion rule as blockedBy:external rather than marked done - screenshots remain the working witness fallback and were used for all browser verification in this sweep.'
package/AGENTS.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # AgentGUI — Agent Notes
2
2
 
3
+ ## GUI logic+predictability sweep (2026-07-12) — thirty-eighth run
4
+
5
+ `gui-logic-predictability` workflow wf_186e2a2a-dfc (32 agents, 205 tool calls, 0 errors) — 18 confirmed findings, all implemented, re-running the same lens one cycle after the 37th run to catch residual/newly-introduced gaps. App (`site/app/js/app.js`, `site/app/js/backend.js`): `stopAllActive` now clears every attempted sid (both ok and failed) from `state.live.stopping` after `Promise.allSettled`, so a failed bulk-cancel is retryable instead of leaving that row's stop button permanently disabled; `copyText`'s clipboard-write catch now calls `announce('copy failed')` instead of swallowing the error silently (mirrors `copySid`'s existing pattern); search-result row titles now route through `projectLabel()` (`r.snippet || projectLabel(r.title) || projectLabel(r.project) || UNTITLED_CONVERSATION`) matching the rail's contract; the History detail header's title-fallback chain gained `|| state.selectedSid` before the generic label, so a metadata-sparse session shows the same identity in History as it does in the rail; the Live nav-badge error flame no longer goes stale while off the history tab (stream stays connected whenever `state.active` is non-empty); `computeLiveSessions()` gained a 5s `reconnectGraceUntil` window so an SSE reconnect mid-session no longer flaps a running session's status to stale; a brand-new session between the `chat.active` poll and history-index catch-up now shows `'indexing…'` instead of reading identically to a permanently-failed lookup; the Live dashboard's sort/filter prefs (`hydratePrefs()`) now reconcile across browser tabs on focus/visibilitychange, alongside the existing `refreshActive()` call; `streamHistory`'s EventSource (`backend.js`) gained manual close+reopen exponential backoff (500ms start, doubles, capped 30s, resets on `hello`) mirroring the WS client's `scheduleReconnect`, instead of relying on native EventSource's uncapped retry; the sessions rail empty-state and History event-list both gained next-action affordances (a start-from-chat CTA, and a "load all (N hidden)" button for very large sessions); a draft restored from localStorage now surfaces a one-time note that undo history doesn't carry over a reload. Kit (`design/src/components/{agent-chat,chat,content,sessions}.js`, `app-shell.css`): follow-up suggestion chips' container lost its `aria-hidden="true"` — the chips are real interactive `<button>`s that were completely invisible to screen-reader users despite `role="group"` being present; `MdNode`'s markdown-settle `refSink` now defers its `innerHTML` swap via a one-time `selectionchange` listener when the user's active text selection is anchored inside the element (was wiping any in-progress text selection every streaming tick); `ChatComposer`'s paste handler now surfaces a "pasted N characters" note via `flashComposerNote` for large plain-text pastes; `SearchInput` gained a visible clear (X) button (was Escape-only, undiscoverable to mouse/touch users) at a 44px touch target, sharing the same clear path as Escape; `ConversationList` now forwards a `resultCount` prop through to `SearchInput`'s existing (previously unpopulated) `aria-live` result-count region, wired from agentgui's search-results branch as `hits.length + ' result(s)'`. Kit built+tested (`bun test.js` all pass), a concurrent upstream release (`5cdd667`, v0.0.315) required a rebase with one dist-only merge conflict (resolved by rebuilding `dist/247420.js` fresh from the merged sources rather than hand-merging generated code), re-vendored, browser-witnessed live on buildesk (chat tab shows `connected` status + visible follow-up chip buttons, history tab loads 52 conversations cleanly, 0 visible errors across both screenshots). Kit pushed `bed4036`, agentgui pushed `159030f` (after a second push-rebase for a PRD-state-only commit), all 4 CI checks green both repos. **New tool defect this run (recorded, not fixable from this repo — filed as `blockedBy:external`): the `gm browser` verb's `dom=` and `capture` prefixes both throw `ReferenceError` (no `document`/page binding at all) rather than evaluating in page context — a regression beyond the 37th run's already-documented "`dom=` ignores its trailing script" caveat. Only `screenshot=` and `url=<target>\n<literal-non-DOM-expr>` dispatches actually reach the real page in this tool version; browser sessions also silently rotate ids across dispatches with no state carryover, and one dispatch hit a dead extension-bridge session requiring an unprompted CDP relay restart. Screenshots are the reliable fallback for browser witnessing until this is fixed upstream in gm-plugkit/playwriter.**
6
+
3
7
  ## Punch-list document cleanup (2026-07-12) — 37th-run confirming pass
4
8
 
5
9
  The 10 standing `PUNCHLIST-*.md` files (COHESION/COMPLETION/DENSITY/DESIGN/DESIGN-14/DESIGN-15/LOGIC/PARITY/POLISH/UX, ~440KB) plus `AUDIT-PUNCHLIST.md` (found in a follow-up confirming pass) are removed — all their findings landed and merged in earlier commits, and their content duplicated what AGENTS.md already records in denser, current form, violating the project's own Documentation Policy (history belongs in git log/CHANGELOG, never a standing doc). Four `.claude/workflows/*.js` scripts (`gui-logic-predictability.js`, `gui-completion.js`, `gui-claude-code-parity.js`, `gui-screen-realestate.js`) referenced the punch-list filenames by name in agent prompts as the "don't re-report already-fixed findings" grounding source — all four now point at `AGENTS.md` alone. **Standing rule for future sweeps: no new `PUNCHLIST-*.md`/`AUDIT-PUNCHLIST.md` (or similarly-named) file should be checked into the repo as a durable artifact — a workflow's punch-list is a transient working document for that run's synthesis step; the run's outcome belongs in AGENTS.md (or drains to rs-learn), never a standing file.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.1050",
3
+ "version": "1.0.1052",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",