agentgui 1.0.1077 → 1.0.1079

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.
@@ -0,0 +1,8 @@
1
+ ---
2
+ key: mem-15c73aca528535cb-2183
3
+ ns: default
4
+ created: 1784299879288
5
+ updated: 1784299879288
6
+ ---
7
+
8
+ agentgui 46th run (2026-07-17): fourth docstudio design-cue pass, same directive repeated. Fresh Explore-agent survey of /config/docstudio (told what runs 42-45 already shipped) found only 1 genuinely new candidate after exhausting low-hanging fruit: chat.js's two role=log chat-thread containers (chat.js:533,581) and agent-chat.js's one (agent-chat.js:476) gained aria-live=polite aria-relevant=additions, matching docstudio chat-tabs.js:62-65, so new messages announce to screen readers without spamming on streamed tokens - verified via source that aria-relevant=additions only fires on new keyed-sibling insertion (agent-chat.js:582's per-message keyed map), not in-place text mutation during streaming, so no live-dispatch witness was needed for that corner case. A second candidate (self-retry dropdown trigger, docstudio chat-model-selector.js) was explicitly skipped since no async-populated dropdown exists in the kit yet to wire it to - avoided speculative unused plumbing. Also fixed an unrelated hygiene bug surfaced mid-rebase: kit test.js's lint-tokens.mjs spacing-report regex only matched the old "[lint-spacing] REPORT — N raw" format; upstream v0.0.349's ratcheted-spacing-lint change reformatted stdout to "PASS — N <= baseline N", silently breaking the regression check - widened regex to match both formats. Kit rebased cleanly onto v0.0.348/v0.0.349 (one dist-only conflict, resolved by rebuilding dist/247420.js fresh). Kit pushed 8436f0a->f81f93d, all 3 kit CI checks green. agentgui re-vendored, browser-witnessed live on localhost:3009/gm/ (bodyLen:19429, hasAgentgui:true, 0 console errors, .agentchat-thread confirmed via page.evaluate to carry role=log aria-live=polite aria-relevant=additions), pushed e84cf26->639b78e->fef8222, all 4 CI checks green each push. Standing observation: the Test workflow's bun-install step sometimes takes ~13 minutes (likely npm registry propagation delay for a freshly-published kit version) before completing green - not a hang, just slow; worth waiting rather than treating as stuck if the job's own step-by-step status (via gh api repos/.../actions/jobs/<id>) shows genuine progression rather than a frozen step.
@@ -0,0 +1,8 @@
1
+ ---
2
+ key: mem-cfd4d894370c63c3-1288
3
+ ns: default
4
+ created: 1784299896638
5
+ updated: 1784299896638
6
+ ---
7
+
8
+ agentgui-44th-run-docstudio-followup-full-detail: follow-up to 43rd run's docstudio design-cue pass. Fresh research agent surveyed docstudio source vs current kit (told what already existed). 5 candidates implemented: ChatMessage error/onRetry inline destructive-toned per-turn failure notice (chat.js); generic Avatar({name,src,fallback,size}) primitive in content.js consolidating duplicated letter-fallback-disc logic; FileSkeleton gained role=status/aria-busy/aria-label matching sibling skeletons. Verified no-change-needed: backdrop-dismiss dialogs already did strict e.target===e.currentTarget check. Real bug from mandatory browser witness: AgentChat's error/onRetry wiring was gated on !isAssistant but agentgui's sendChat() always pushes an eager assistant placeholder, so the gate was corrected to key on trailing-message-position instead of role; separately a stray closing brace from removing a redundant Alert banner caused a real SyntaxError blanking the live page, caught on first post-deploy witness dispatch, fixed, re-witnessed clean. Standing lesson: a same-session "verify no change needed" pass is not a substitute for re-running the live browser witness on code that WAS changed. Kit pushed 3417592->f362528->03c9028->17ee86c, agentgui pushed f08f698, all CI green.
package/.gm/prd.yml CHANGED
@@ -3147,3 +3147,8 @@
3147
3147
  subject: test.js lint-tokens.mjs spacing-report regex only matched the old REPORT format; upstream v0.0.349 changed lint-spacing output to PASS/baseline format, silently breaking the test's ability to catch regressions until this run's test execution surfaced it
3148
3148
  witness: bun test.js failed with 'lint-spacing report line not found' after rebasing onto origin/main (8436f0a); fixed by widening the regex to match both formats
3149
3149
  status: completed
3150
+ - id: toast-persistent-action-variant
3151
+ subject: Add onAction/actionLabel/duration:0-persistent support to the kit's toast() (editor-primitives.js:637-653), matching docstudio's update-check.js:18-30 click-to-reload pattern - currently toast() only supports message/kind/duration and always self-dismisses via setTimeout, with no way to render a non-auto-dismissing actionable CTA toast
3152
+ witness: 'Browser-witnessed live on localhost:3009/gm/: imported the vendored kit module directly and called toast({message,kind,duration:0,actionLabel:''Reload'',onAction}) - hasActionEl:true, btnText:''Reload'', clicking the button fired onAction with the dismiss callback (actionFired:true). Verified backward compat: plain toast({message,kind,duration}) with no actionLabel/onAction renders with no has-action class and no button. Kit built+tested (bun test.js all pass, node scripts/generate-component-docs.mjs --check clean, node scripts/build.mjs 0 lint errors). Kit pushed b5530cb->e93f4f7 (one dist-only rebase + one component-docs-lint fix), all 3 kit CI checks green. Re-vendored into agentgui, 0 pageErrors, bodyLen:19466, hasAgentgui:true.'
3153
+ status: completed
3154
+ commit_comment: persistent action-CTA toast variant (docstudio update-check.js cue, confirming-pass finding)
package/AGENTS.md CHANGED
@@ -10,7 +10,7 @@ Third docstudio-cue pass, same directive repeated. A fresh Explore-agent survey
10
10
 
11
11
  ## Docstudio design-cue follow-up (2026-07-17) — forty-fourth run
12
12
 
13
- Re-stated user directive ("if there's any further ideas we can bring across from that project, do it now") following the 43rd run's sidePanel/sortable-Table pass. A fresh research agent surveyed `/config/docstudio`'s source (app-shell.js, ds-chat-messages.css, utils/dialog.js, utils/state-views.js) against `../design`'s current components (explicitly told what the kit already had, to avoid re-suggesting solved gaps) and returned 5 concrete, file:line-cited candidates, confirming the kit still leads on toasts/Skeleton/Alert/Badge-tone/dialogs/breadcrumbs. Implemented: `ChatMessage` (`design/src/components/chat.js`) gained `error`/`onRetry` — an inline, destructive-toned per-turn failure notice (docstudio pins a failed message's error to that specific turn rather than a global toast), rendered alongside the existing neutral `stopped`/`incomplete` out-of-band notices but visually distinct (border-color `--danger`, a `.chat-msg-retry-btn`). `content.js` gained a generic `Avatar({name,src,fallback,size})` primitive (barrel-exported) consolidating the letter-fallback-disc logic previously duplicated ad hoc in `chat.js`'s local avatar span and `community.js`'s one-off. `FileSkeleton` (`files.js`) was `aria-hidden` with no busy signal, unlike every sibling skeleton (`Skeleton`, `AgentListSkeleton`) — added `role=status`/`aria-busy`/`aria-label`. Verified (no change needed): every existing backdrop-dismiss dialog (`editor-primitives.js`, `files-modals.js`) already does docstudio's strict `e.target === e.currentTarget` check. Skipped as too fragile/low-value per the survey's own low-priority flag: Badge icon-only collapse at narrow width (a CSS-only breakpoint hack risked clipping any Badge that's genuinely just a color dot with no label). **Real bug caught by the mandatory browser witness, not by any lens**: wiring `AgentChat`'s message-mapper (`design/src/components/agent-chat.js`) to forward `error`/`onRetry` was first gated on `!isAssistant`, but agentgui's `sendChat()` always pushes an eager assistant placeholder and attaches a send/stream error onto *that* message, never a dangling user turn — the gate was corrected to key only on trailing-message-position (`i === lastIdx`), independent of role. Separately, removing agentgui's now-redundant top-of-thread `chaterr` `Alert` banner (duplicate of the new inline signal) left a stray closing brace, producing a real `SyntaxError: Illegal return statement` at `app.js:2343` that fully blanked the live page (`bodyLen:149`, `hasAgentgui:false`) — caught on the FIRST post-deploy witness dispatch, fixed (`node --check app.js` confirmed locally), re-pushed, re-witnessed clean (`pageErrors:[]`, `hasAgentgui:true`, `bodyLen:18805`). **Lesson: a same-session "verify no change needed" pass (like the backdrop-dismiss check) is not a substitute for actually re-running the mandatory live browser witness on code that WAS changed — the crash here was caught only because VERIFY dispatched a real page load post-push, not from static reasoning about the diff.** Kit built+tested 3 times across the pass's 3 commits (`bun test.js` all pass each time, including the pre-existing byte-identical contract tests), 2 clean rebases + 1 dist-only rebuild-fresh rebase (concurrent upstream `v0.0.340`-`v0.0.343` releases landed mid-pass), pushed `3417592`→`f362528`→`03c9028`→`17ee86c`, all CI green every push. agentgui re-vendored + pushed `f08f698` (after the syntax-crash fix), all 4 CI checks green.
13
+ 5 candidates landed (ChatMessage error/onRetry, Avatar primitive, FileSkeleton aria-busy); a mandatory browser witness caught a real syntax-crash from a stray brace. Full detail in rs-learn (recall "agentgui-44th-run-docstudio-followup-full-detail"). Kit pushed `3417592`→`17ee86c`, agentgui pushed `f08f698`, all CI green.
14
14
 
15
15
  ## Docstudio design-cue pass (2026-07-17) — forty-third run
16
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.1077",
3
+ "version": "1.0.1079",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",
@@ -9048,6 +9048,23 @@
9048
9048
  .ds-247420 .ds-ep-toast.kind-warn { border-left-color: var(--warn); }
9049
9049
  .ds-247420 .ds-ep-toast.kind-error { border-left-color: var(--danger); }
9050
9050
  .ds-247420 .ds-ep-toast.leaving { opacity: 0; transform: translateY(-6px); }
9051
+ .ds-247420 .ds-ep-toast.has-action {
9052
+ display: flex; align-items: center; gap: var(--space-2);
9053
+ }
9054
+ .ds-247420 .ds-ep-toast-msg { flex: 1; }
9055
+ .ds-247420 .ds-ep-toast-action {
9056
+ flex-shrink: 0;
9057
+ background: transparent;
9058
+ color: var(--accent-ink, var(--accent));
9059
+ border: none;
9060
+ font: inherit;
9061
+ font-weight: 600;
9062
+ padding: var(--space-1) var(--space-1-75);
9063
+ border-radius: var(--r-1, 6px);
9064
+ cursor: pointer;
9065
+ }
9066
+ .ds-247420 .ds-ep-toast-action:hover { background: var(--panel-2, var(--panel-bg)); }
9067
+ .ds-247420 .ds-ep-toast-action:focus-visible { outline: 2px solid var(--accent-ink, var(--accent)); outline-offset: 1px; }
9051
9068
  @media (max-width: 480px) {
9052
9069
  .ds-247420 .ds-ep-toast-host { left: 16px; right: 16px; align-items: center; }
9053
9070
  .ds-247420 .ds-ep-toast { width: 100%; max-width: 100%; }