agentgui 1.0.1089 → 1.0.1090

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
+ ## Docstudio design-cue follow-up (2026-07-23) — fiftieth run
4
+
5
+ Eighth docstudio-cue pass. A fresh Explore-agent survey (told the full 49-run ported list) read every remaining unmined docstudio surface — admin-observability-{views,chart}.js, marketplace-{trending,card,flag}.js, documents/drive-picker.js, documents/file-upload.js, streaming/tts-player.js, thread-list-realtime.js, capture-page.js/capture-runner.js, and admin users/tags/archives/audit/moderation tabs — and came back near-exhausted: nearly everything was either already covered under a different name (docstudio's tts-player is *less* mature than the kit's own `voice.js`), pure business logic with no portable UI (drive-picker delegates to Google's native picker iframe; file-upload/thread-list-realtime have no render surface at all), or app-specific GCP wiring (the observability panels' Cloud Logging deep-links). One genuine, narrow gap survived: `admin-observability-views.js:132-161` `endpointsView()` color-codes percentile-latency/success-rate table cells (green >=99%, amber >=95%, red below) with no kit equivalent — `Table` had no notion of a value implying good/warn/bad. Ported the portable convention (not the GCP wiring) as `RateCell({value, tone})` in `design/src/components/data-density.js`, a plain tone-colored `<span>` over the existing `--success`/`--warn`/`--danger` tokens that drops into any `Table` cell, matching `Table`'s own onSort host-owns-the-logic convention (this component has no opinion on thresholds). While touching `data-density.js`, found and fixed a real, unrelated, previously-undiscovered gap: **its entire component set (`PhaseWalk`/`TreeNode`/`BarRow`/`StatTile`/`StatsGrid`/`SubGrid`/`SessionRow`/`DevRow`/`LiveLog`) was never wired into `src/components.js`'s barrel** — unreachable from the built bundle despite having real CSS in `data-density.css`, since before this run. Fixed by adding the barrel export line alongside the new `RateCell`. Kit built+tested (`bun test.js` all pass, 0 lint errors), docs regenerated (`docs/component-props.md`, 218 symbols, 0 drift). Kit pushed `72d88b6`, all 3 kit CI checks green (ci/Publish 247420 to npm/Deploy GH Pages). agentgui re-vendored both dist files; browser-witnessed live on `localhost:3009/gm/`: imported the live-served vendored bundle directly, confirmed `mod.components.RateCell`/`mod.components.StatTile` both callable, and mounted `RateCell({value:"UNIQ_99_4",tone:"good"})` into real DOM via `applyDiff` — rendered exactly `<span class="ds-rate-cell ds-rate-cell-good">UNIQ_99_4</span>`, confirming the CSS tone-class wiring works end-to-end live. **Real tooling defect diagnosed+fixed this run, not papered over**: mid-session, `browser` verb dispatches intermittently failed `"plugin gm not loaded"` — root-caused via `.gm/exec-spool/.watcher.log` to a **leftover stale `gm-plugkit` `supervisor.js` process** (pid alive since a prior session, `Jul19`) running independently alongside the healthy native `agentplug-runner` daemon, periodically trying to respawn the watcher via the *retired* JS `plugkit-wasm-wrapper.js` path (`Cannot find module './wrapper/wasi-shim.js'` — the exact historically-resolved npm-packaging defect from the 48th run, recurring here via a stale cached supervisor rather than a fresh regression) and crash-looping. A separately-wedged long-lived Chrome process for the agentgui project profile (alive since `Jul17`) was also found wedging evals to 60s timeouts. Killed both stale processes, rebooted a fresh daemon (`bun x gm-plugkit@latest spool`) — confirmed fixed via two clean subsequent dispatches, no further crash-loop lines. **Also newly confirmed: writing a spool verb input file under a task-number that collides with an existing `out/<verb>-<N>.json` from an earlier turn in the same session silently returns the STALE cached output instead of running the fresh dispatch** — the watcher appears to treat a pre-existing out-file as already-satisfied and skip reprocessing. Always pick a task number confirmed absent from `out/` (e.g. jump to a clearly-unused block like 100+) rather than trusting sequential same-session numbering, especially after a long session with many prior dispatches.
6
+
3
7
  ## Docstudio design-cue follow-up (2026-07-23) — forty-ninth run
4
8
 
5
9
  Seventh docstudio-cue pass, same directive repeated once more ("consider everything we haven't covered yet"). A fresh Explore-agent survey read every file in `/config/docstudio/public/js` (33 files not previously examined, including admin-observability, marketplace, drive-picker, file-upload, tts-player, thread-list-realtime, capture-page) against both the kit and the "already ported" list built up over 48 prior runs. Verdict: genuinely exhausted — the only survivor was the long-deferred `documents/xls-preview.js` tabbed spreadsheet/CSV inline preview, twice previously deferred across runs 48/47 as "a future initiative" without ever being detailed. Per the standing rule against documenting instead of implementing reachable work, specced and shipped it this run: new `design/src/components/spreadsheet-preview.js` `SpreadsheetPreview({workbook, activeSheet, onSheetChange, maxRows, maxCols, truncated, loading, error, errorActionLabel, onErrorAction})` — the kit does no parsing (no SheetJS dependency; host hands over an already-parsed `{sheetNames, sheets}` shape), renders a `role=tablist` sheet-switcher, a sticky-header `table.ds-sheet-preview-table` with `.num`-aligned numeric cells, and a persistent (non-hiding) truncation banner; loading/error states reuse the existing `Skeleton`/`Alert` primitives rather than inventing new visual language. Barrel-exported through `src/components.js` per the standing barrel rule. CSS landed in `src/css/app-shell/kits-appended.css` (tab underline uses the same neutral-at-rest/accent-only-on-active-state pattern as `Table`'s sortable headers). Kit built+tested (`bun test.js` all pass), docs regenerated (`docs/component-props.md`, 206 symbols, 0 drift). Kit pushed `3535f0a`, all 3 kit CI checks green (ci/Publish 247420 to npm/Deploy GH Pages). agentgui re-vendored both dist files; browser-witnessed live on `localhost:3009/gm/` (this sandboxed env has no display, so `.gm/browser-config.json` gained `{"headless":true}` — a real, durable per-project config need, not a one-off workaround): imported the live-served vendored bundle directly (`mod.components.SpreadsheetPreview`, not a top-level export — components live under a `components` namespace on the built ESM bundle), rendered all 5 states (loading/error/loaded/truncated/empty) without throwing, and mounted the truncated state into real DOM via `applyDiff` — confirmed a real `table.ds-sheet-preview-table` with 499 correctly-clamped body rows (`maxRows` default 500) plus a visible banner reading the accurate row count. agentgui pushed `35c5b77`→`4f0789a` (a PRD-state-only follow-up commit), all 4 CI checks green both pushes (Test/Auto-Declaudeify/Publish-and-Release/Deploy-GH-Pages). **Session-start tooling note: this run's `gm` spool watcher was stale (status.json `ts` ~4 days old, `busy_until` long past) — a plain `bun x gm-plugkit@latest spool` reboot recovered it cleanly, distinct from the 48th run's actual npm-packaging outage (which the watcher now reports as resolved: it boots via the native `agentplug-runner` daemon path, not the retired JS wasm-host wrapper the 48th run's blocker was about — that stale PRD row was resolved this run). A separate transient `"plugin gm not loaded"` error recurred a handful of times mid-session on both `browser` and `prd-add`/`prd-resolve` dispatches with no discernible trigger; a bare identical re-dispatch cleared it every time observed (not yet root-caused, but not a hard blocker either — recorded here rather than as a `blockedBy:external` PRD row since it never actually blocked forward progress, only cost a retry).** **Also confirmed: this repo's checked-out branch (`fix/ws-baseurl-on-main`) is not literally named `main` but IS main's true linear continuation — `git fetch origin main` showed `origin/main` HEAD exactly matched this branch's parent commit before any push, so `git_push {branch:"main"}` (explicit override of the git_finalize verb's default same-name-branch push, which the verb correctly refused since branch name != "main") was the correct, safe action, not a deviation.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.1089",
3
+ "version": "1.0.1090",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "electron/main.js",
@@ -4967,6 +4967,16 @@
4967
4967
  .ds-247420 .ds-stat-val.err-rate { font-size: clamp(24px, 7cqi, 32px); color: var(--warn); }
4968
4968
  .ds-247420 .ds-stat-lbl { font-size: var(--fs-micro); color: var(--fg-3); margin-top: 2px; }
4969
4969
 
4970
+ /* RateCell — tone-colored numeric table cell (success-rate / percentile-latency
4971
+ columns), ported from docstudio's endpointsView() success-rate coloring.
4972
+ Neutral at rest; color carries meaning only, matching Table's sortable-header
4973
+ restraint pattern. */
4974
+ .ds-247420 .ds-rate-cell { font-variant-numeric: tabular-nums; font-weight: 600; }
4975
+ .ds-247420 .ds-rate-cell-neutral { color: var(--fg-2); font-weight: 400; }
4976
+ .ds-247420 .ds-rate-cell-good { color: var(--success); }
4977
+ .ds-247420 .ds-rate-cell-warn { color: var(--warn); }
4978
+ .ds-247420 .ds-rate-cell-bad { color: var(--danger); }
4979
+
4970
4980
  /* Inline row — flex row with centered items and a small gap, for demo/kit
4971
4981
  markup that needs to lay siblings out horizontally without an inline style. */
4972
4982
  .ds-247420 .ds-inline-row { display: flex; align-items: center; gap: var(--space-2, 8px); }