agentgui 1.0.1116 → 1.0.1117
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/lib/ws-handlers-util.js +63 -0
- package/package.json +1 -1
- package/site/app/js/app.js +118 -1
- package/site/app/js/backend.js +19 -0
- package/.gm/browser-config.json +0 -1
- package/.gm/claim-audit-fired +0 -1
- package/.gm/disciplines/agentgui/mem-1779277005143-0-1352.json +0 -1
- package/.gm/disciplines/agentgui/memories/.flat-export-done +0 -0
- package/.gm/disciplines/agentgui/memories/mem-c07fa3b0836edbe2-1352.md +0 -8
- package/.gm/gm.db +0 -0
- package/.gm/memories/.flat-export-done +0 -1
- package/.gm/memories/mem-0131ff4869d86085-370.md +0 -10
- package/.gm/memories/mem-04049d11cb8c1661-2135.md +0 -8
- package/.gm/memories/mem-069ff10372ed1770-1375.md +0 -8
- package/.gm/memories/mem-08a4a9e050a4deff-3048.md +0 -8
- package/.gm/memories/mem-09597ee0df9c9224-965.md +0 -8
- package/.gm/memories/mem-0993d156f571b619-1059.md +0 -8
- package/.gm/memories/mem-0b681bf2340c8df1-3170.md +0 -8
- package/.gm/memories/mem-0c444abde86202f6-1681.md +0 -8
- package/.gm/memories/mem-0d1408fa048b9923-1159.md +0 -8
- package/.gm/memories/mem-0dad5d82fec829ba-887.md +0 -8
- package/.gm/memories/mem-10a776effb7ce3a6-935.md +0 -8
- package/.gm/memories/mem-10d264b4f8e66fb4-1492.md +0 -8
- package/.gm/memories/mem-118c35ac67541d98-2909.md +0 -8
- package/.gm/memories/mem-119cf70dd19aa0a5-2225.md +0 -8
- package/.gm/memories/mem-15a07cd761b337c4-4320.md +0 -8
- package/.gm/memories/mem-15c73aca528535cb-2183.md +0 -8
- package/.gm/memories/mem-166f52796185e0e7-1487.md +0 -8
- package/.gm/memories/mem-1a148cf9c3126df5-3963.md +0 -8
- package/.gm/memories/mem-1a459001058f618e-567.md +0 -8
- package/.gm/memories/mem-1af3e13f7618e668-2146.md +0 -8
- package/.gm/memories/mem-1fd31d6873e9c164-794.md +0 -8
- package/.gm/memories/mem-21f551be092fd77d-2340.md +0 -8
- package/.gm/memories/mem-231ff5de003f20f0-586.md +0 -8
- package/.gm/memories/mem-2567393d3adb03ab-347.md +0 -8
- package/.gm/memories/mem-27faf41cdd050c80-1261.md +0 -8
- package/.gm/memories/mem-28889e43e8ce64cc-3663.md +0 -8
- package/.gm/memories/mem-2f4fd06515abf439-2562.md +0 -8
- package/.gm/memories/mem-34a749430303c5f7-544.md +0 -8
- package/.gm/memories/mem-3602d11d7bce9446-1057.md +0 -8
- package/.gm/memories/mem-38b7e24dbcba2f3e-639.md +0 -8
- package/.gm/memories/mem-39a7cc2f887a90b1-1079.md +0 -8
- package/.gm/memories/mem-40d6169c8759061d-806.md +0 -8
- package/.gm/memories/mem-4420e6d00e5c8632-2318.md +0 -8
- package/.gm/memories/mem-447e5a54ddc9357a-654.md +0 -8
- package/.gm/memories/mem-455b3beb4afabe14-591.md +0 -8
- package/.gm/memories/mem-4845ee594759151c-560.md +0 -8
- package/.gm/memories/mem-4a1254c60b868b88-374.md +0 -8
- package/.gm/memories/mem-4bafafa47a0e4b6c-3237.md +0 -8
- package/.gm/memories/mem-4c06c45b4d31bc60-1202.md +0 -8
- package/.gm/memories/mem-4dfac801d0378448-3676.md +0 -8
- package/.gm/memories/mem-4ecd3b713e384170-122.md +0 -10
- package/.gm/memories/mem-51d8992a3c6f6c9c-1073.md +0 -8
- package/.gm/memories/mem-539eee7e8c6c10ee-2557.md +0 -8
- package/.gm/memories/mem-559b8b2abc4b1091-1665.md +0 -8
- package/.gm/memories/mem-59dd73a463e54948-871.md +0 -8
- package/.gm/memories/mem-5b99b882ffe1a3c2-2262.md +0 -8
- package/.gm/memories/mem-5feb252a5244149c-1791.md +0 -8
- package/.gm/memories/mem-6224f8d185797f2b-1047.md +0 -8
- package/.gm/memories/mem-6434ee8261a6a6a2-3126.md +0 -8
- package/.gm/memories/mem-66b0947b946f3437-1155.md +0 -8
- package/.gm/memories/mem-6bdf783a1f6be7c2-1062.md +0 -8
- package/.gm/memories/mem-6d49f08bebac54c9-744.md +0 -8
- package/.gm/memories/mem-70d96acb736af2d7-685.md +0 -8
- package/.gm/memories/mem-70de7d5e71fcd439-2680.md +0 -8
- package/.gm/memories/mem-713614f12d7029da-1577.md +0 -8
- package/.gm/memories/mem-720d76c88e64f6ee-1967.md +0 -8
- package/.gm/memories/mem-7535f34f430fc196-1340.md +0 -8
- package/.gm/memories/mem-861a588d2773681a-1311.md +0 -8
- package/.gm/memories/mem-8af7980a92e09959-891.md +0 -8
- package/.gm/memories/mem-8b438ef4c609b7af-401.md +0 -8
- package/.gm/memories/mem-8f59884039787ef3-743.md +0 -8
- package/.gm/memories/mem-92b199c2024ee1aa-2513.md +0 -8
- package/.gm/memories/mem-9329105b05b9c0f6-324.md +0 -10
- package/.gm/memories/mem-94f30cec3c283f97-782.md +0 -10
- package/.gm/memories/mem-956d4813319f65a3-1710.md +0 -8
- package/.gm/memories/mem-96fffbb6615e031b-1263.md +0 -8
- package/.gm/memories/mem-993ab31f7a10aefa-718.md +0 -8
- package/.gm/memories/mem-a3e440db285f655a-995.md +0 -8
- package/.gm/memories/mem-a52933cd6495e6f5-2624.md +0 -8
- package/.gm/memories/mem-a86426ac44138c96-1606.md +0 -8
- package/.gm/memories/mem-a95b1d49d71133ce-1007.md +0 -8
- package/.gm/memories/mem-a9968a186368b022-1150.md +0 -8
- package/.gm/memories/mem-aaeae38d8eb01809-1076.md +0 -8
- package/.gm/memories/mem-ade01d9c02677c55-1557.md +0 -8
- package/.gm/memories/mem-b06b8c85b81663e6-1250.md +0 -8
- package/.gm/memories/mem-b451e5e17e555202-1490.md +0 -8
- package/.gm/memories/mem-b64ad00dcb6f909e-937.md +0 -8
- package/.gm/memories/mem-b7d6018ceca55b6f-2220.md +0 -8
- package/.gm/memories/mem-bdf466854032cac9-1509.md +0 -8
- package/.gm/memories/mem-c0482039e6ab4c50-2047.md +0 -8
- package/.gm/memories/mem-c4aaec5c4e6f80c2-920.md +0 -8
- package/.gm/memories/mem-c66976ddacb4fbe8-1454.md +0 -8
- package/.gm/memories/mem-c7c5bc263850c332-1844.md +0 -8
- package/.gm/memories/mem-cda639547932c796-713.md +0 -8
- package/.gm/memories/mem-cdf04ff6a6a0aa6f-671.md +0 -8
- package/.gm/memories/mem-cf8472c84d9e04c4-1883.md +0 -8
- package/.gm/memories/mem-cfd4d894370c63c3-1288.md +0 -8
- package/.gm/memories/mem-d060480435f92eec-1146.md +0 -8
- package/.gm/memories/mem-d347c921b79e6d44-1099.md +0 -8
- package/.gm/memories/mem-d3c8ea6c861bfbb8-1457.md +0 -8
- package/.gm/memories/mem-d5e928c552cd87f9-214.md +0 -10
- package/.gm/memories/mem-d63bc3b8a0269844-406.md +0 -10
- package/.gm/memories/mem-d9c19257abc2fa5e-1061.md +0 -8
- package/.gm/memories/mem-d9f26358a7cd3bb8-866.md +0 -8
- package/.gm/memories/mem-da1c91acf63d81d3-863.md +0 -8
- package/.gm/memories/mem-dc1ac3b04d22317e-664.md +0 -8
- package/.gm/memories/mem-dceeae20bc56d407-711.md +0 -8
- package/.gm/memories/mem-dd98b21c0896dc04-1557.md +0 -8
- package/.gm/memories/mem-df74674eec7745ac-178.md +0 -10
- package/.gm/memories/mem-dfe3b466fd5d1199-802.md +0 -8
- package/.gm/memories/mem-e0f9286aed2d5a06-1116.md +0 -8
- package/.gm/memories/mem-e1950b064099b7be-1895.md +0 -8
- package/.gm/memories/mem-e1d5431ae2542872-961.md +0 -8
- package/.gm/memories/mem-e490a181de6469fc-487.md +0 -8
- package/.gm/memories/mem-e72c6efbb27326fb-392.md +0 -8
- package/.gm/memories/mem-e943b58115a02b4c-593.md +0 -8
- package/.gm/memories/mem-e9bc5f9ed6edbcf7-1580.md +0 -8
- package/.gm/memories/mem-eae1e383927854fb-2649.md +0 -8
- package/.gm/memories/mem-ebbe6c0694c526f0-1392.md +0 -8
- package/.gm/memories/mem-ebf85becc23410b0-1633.md +0 -8
- package/.gm/memories/mem-ee0596fa17c7102e-362.md +0 -10
- package/.gm/memories/mem-ee4450fbc311b583-1361.md +0 -8
- package/.gm/memories/mem-ee8858162518f144-1252.md +0 -8
- package/.gm/memories/mem-f3297e82df622649-1166.md +0 -8
- package/.gm/memories/mem-f3f317c083d979ee-1210.md +0 -8
- package/.gm/memories/mem-f714a86465fba158-2041.md +0 -8
- package/.gm/memories/mem-f786bc1626d92845-204.md +0 -10
- package/.gm/memories/mem-f9f0dc8895b21e18-1217.md +0 -8
- package/.gm/memories/mem-fb3b2a7395800041-525.md +0 -8
- package/.gm/memories/mem-fc5753f92ee7d654-966.md +0 -8
- package/.gm/memories/mem-fe3faa1652f07239-480.md +0 -8
- package/.gm/memories/mem-ff8669e527e5c427-2788.md +0 -8
- package/.gm/mutables.yml +0 -53
- package/.gm/prd.yml +0 -3342
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-231ff5de003f20f0-586
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783842773069
|
|
5
|
-
updated: 1783842773069
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"claim":"All grants for opened docs + derived/created docs are pre-accepted","scope":"feedback","why":"Tiffany hit SCOPE_NEEDED on sheets_read because URL-heuristic grant fired for converted /spreadsheets/d/ URL but her OAuth lacked sheets scope. User rule: opening a doc implies all access needed to work with it AND any derivative is approved upfront.","witness_evidence":"public/js/streaming/acp-client.js DOC_TYPE_CATEGORIES broadened to read+write across doc-domain; created docs auto-tracked via docAccess.addCreated in functions/streaming/modules/anthropic-gemini-proxy.js:129"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-2567393d3adb03ab-347
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783683350732
|
|
5
|
-
updated: 1783683350732
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-32nd-run-ux-craft-sweep","value":"see prior fire this turn (mem key already stored) - agentgui 32nd run (2026-07-10) gui-ux-craft workflow wf_0225607d-511, 35 agents 22 confirmed, typography/copy-tone/perf/contrast/interaction-density fixes across app.js and design kit, kit pushed ad000b6 agentgui pushed 5ccaa8a, all CI green."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-27faf41cdd050c80-1261
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783687082067
|
|
5
|
-
updated: 1783687082067
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-28th-run-visual-polish","value":"agentgui 28th run (2026-07-03): visual-polish pass responding to explicit user feedback that the GUI 'looks very diy'. 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 main content column while .ws-rail/.ws-pane already use --bg-2 (a recessed plane framing the elevated content column) - sessions was the one column breaking that pattern, read as ONE continuous surface with only a 1px hairline. Fixed. (2) .chat-composer had zero elevation at rest - added the kit's own already-defined-but-unused --shadow-1 token. (3) chat tab's mainFlush left controls/heading/empty-state/composer flush against column edge with zero gutter while the crumb bar above kept its own padding - added uniform inline gutter to .agentchat itself, --measure centering unaffected. Standing rule: .ws-rail/.ws-sessions/.ws-pane must all three use --bg-2 for consistent shell depth. Also landed inherited uncommitted community-app reply/delete-message work sitting dirty in the kit tree. Browser-witnessed 1280px/420px before/after, 0 console errors. Kit pushed anentrypoint-design 53c8464, agentgui pushed 42708ea."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-28889e43e8ce64cc-3663
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783891625733
|
|
5
|
-
updated: 1783891625733
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-41st-run-gui-logic-predictability-sweep","value":"agentgui 41st run (2026-07-12): gui-logic-predictability workflow wf_c645ba95-c6a (23 agents, 192 tool calls, 0 errors) - 10 confirmed findings, all implemented, plus one real kit bug found+fixed mid-verification. App (site/app/js/app.js): runningPanel title retitled 'all running sessions · N' (was scoping-ambiguous 'running · N') plus a '(refreshing…)' suffix while a backgrounded-tab poll catches up (new state._activeStale flag); runningRowTitle() gained the same 3s 'indexing…' carve-out computeLiveSessions() already had, so a brand-new session no longer reads Untitled in one panel and indexing in another; Live dashboard elapsed/activity sort now freezes to the last-computed order while a pointer is held down anywhere in the dashboard (new module-level _livePointerDown flag) so cards stop reordering under a mid-click; agy gained a composer disclosure ('continues most recent conversation') matching claude-code's resume banner; History's ConversationList mapper now reads a real agent/model badge sourced from ccsniff (previously hardcoded agent:undefined). Kit (design/src/components/{chat,content}.js, chat.css, sessions.js): ChatMessage's per-message copy action gained the same label/icon click-feedback flip its sibling copy controls already had; .agentchat-followup chips gained a dashed border to visually distinguish contextual follow-ups from generic empty-state seed chips; flashComposerNote's single shared DOM node now queues notes instead of silently overwriting an unread one; SessionDashboard's filter SearchInput now forwards resultCount to its aria-live region - wiring this up SURFACED a real pre-existing bug: SearchInput conditionally returned either a bare <input> or a wrapping <span> depending on whether resultCount/clearBtn were set, and since resultCount now toggles between renders, webjsx's applyDiff corrupted the DOM (a merged select+input node, the real input vanishing entirely) - fixed by always returning the .ds-search-input-wrap shape (confirmed display:contents, layout-transparent, safe everywhere). ccsniff (separate repo, github:AnEntrypoint/ccsniff#main, cloned to /config/workspace/ccsniff-work): Store.sessions() folds in the most-recent-by-ts model per session; index.js's assistant-event ingestion never actually populated model on pushed blocks (only system/init events carried it) - fixed to inherit message.model from the real Claude Code JSONL shape. node test.js ALL TESTS PASS both ccsniff commits (11f6c3b, then 26bbfcc/beff5e7 after a remote-advanced rebase), CI green. Reinstalling required deleting bun.lock entirely (a --force reinstall alone kept resolving to the stale pinned git sha even after rm -rf node_modules/ccsniff). The local buildesk server process needed an explicit SIGTERM restart for the new node_modules/ccsniff to load (Node/Bun caches modules in-process) - the env's custom /opt/gmweb-startup supervisor auto-respawned it within ~20s via bunx agentgui@latest, which correctly resolves to the local workspace's own bin/gmgui.cjs (workspace-linked, confirmed via the 'Workspace mode: skipping npm version checker' startup log line), not the published npm package. Kit pushed 71ee4e4, agentgui pushed 7ad7b4f then b32836e (PRD-resolve residual), all CI green all three repos (agentgui/design/ccsniff). Browser-witnessed every finding live on buildesk: Live filter input/select intact + working post-fix, aria-live '0 results'; .chat-msg-action.is-copied/.agentchat-followup CSS rules live in CSSOM; History rows reading real agent+model badges (18/18 sessions, claude-sonnet-5); 0 pageErrors throughout."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-2f4fd06515abf439-2562
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784292263392
|
|
5
|
-
updated: 1784292263392
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-44th-run-docstudio-followup","value":"agentgui 44th run (2026-07-17): follow-up to the 43rd run's docstudio design-cue pass, user asked for further ideas from docstudio. Fresh research agent surveyed docstudio source vs current kit state (told explicitly what already existed, avoiding re-suggesting solved gaps) - 5 candidates: (1) inline per-turn error/retry instead of global toast [implemented], (2) generic Avatar primitive [implemented, consolidates chat.js/community.js duplicated letter-fallback logic], (3) FileSkeleton missing aria-busy [implemented, other skeletons already had it], (4) backdrop-dismiss strict e.target===e.currentTarget check [verified already correct everywhere, no change], (5) Badge icon-only collapse at narrow width [skipped as fragile/low-value per survey's own flag]. Kit: ChatMessage (chat.js) gained error/onRetry rendering inline on the specific failed turn, destructive-toned, distinct from the existing neutral stopped/incomplete notices. content.js gained Avatar({name,src,fallback,size}), barrel-exported. files.js FileSkeleton gained role=status/aria-busy/aria-label. REAL BUG caught by browser witness, not any lens: agent-chat.js's message-mapper first gated the new error/onRetry forwarding on `!isAssistant`, but agentgui's sendChat() always attaches an error onto the eager ASSISTANT placeholder it pushes, never a dangling user message - the gate was wrong and would never have fired; fixed to key on trailing-position (i===lastIdx) regardless of role. Separately, removing agentgui's now-redundant chaterr banner left a stray brace causing 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 browser witness dispatch (not from any lens/static check), fixed via node --check, re-verified clean (pageErrors:[], hasAgentgui:true, bodyLen:18805). KEY LESSON: a same-session 'verify no change needed' conclusion about one part of a diff (the backdrop-dismiss check) must never substitute for the mandatory live re-witness of the ACTUAL code that changed - the crash was only caught because VERIFY genuinely re-loaded the live page post-push rather than reasoning statically that the change 'looked safe'. Kit built+tested 3x across 3 commits, 2 clean rebases + 1 dist-rebuild-fresh rebase (concurrent v0.0.340-343 releases mid-pass), pushed 3417592->f362528->03c9028->17ee86c all CI green. agentgui re-vendored+pushed f08f698 (post-crash-fix), all 4 CI checks green, live-witnessed working."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-34a749430303c5f7-544
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784892533381
|
|
5
|
-
updated: 1784892533381
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui CI/GitHub Actions detail: capture-screenshots must run under bun, not node. npm install --ignore-scripts in gh-pages.yml skips native compilation, leaving better-sqlite3 without a compiled .node binding; database.js tries bun:sqlite first, then falls back to better-sqlite3. Under Node both fail and the server crashes silently within the 20s health-check window. Fix: bun run scripts/capture-screenshots.mjs (not node ...) -- process.execPath becomes bun, so the spawned child server also runs under bun and loads bun:sqlite natively.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-3602d11d7bce9446-1057
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783677456828
|
|
5
|
-
updated: 1783677456828
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui Live History Stream Wiring (2026-05-05): site/app/js/app.js opens an SSE EventSource on navTo('history') via B.streamHistory(base, onEvent) and closes it on tab exit; state.live = {es, connected, lastEventTs, error, eventCount}. Event dispatch loop: 'hello' sets connected=true; 'event' pushes into state.events + increments the matching session counter only when data.sid===selectedSid; 'conversation' calls refreshHistory() to reload the session list; 'error' sets live.error. Renders are throttled via requestAnimationFrame to avoid an event-storm during burst loads. The FIRST request to any /v1/history/* endpoint triggers ccsniff's loadOnce(), a synchronous walk of every JSONL file under ~/.claude/projects (override via CLAUDE_PROJECTS_DIR) - in the original test env this was 299 files/80MB/69k events, a 30-90s startup latency during which health-check timeouts are normal and expected; subsequent requests are fast (cached index). The endpoints are served by ccsniff's Express router mounted in-process from server.js, no external proxy.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-38b7e24dbcba2f3e-639
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783844902974
|
|
5
|
-
updated: 1783844902974
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
HISTORICAL/SUPERSEDED (do not trust): agentgui briefly (2026-05-29) loaded anentrypoint-design from unpkg@latest at runtime instead of a local vendored copy, for always-latest tracking at the cost of requiring network + drift on upstream publish. This was REVERTED - as of the 2026-06-04/06-05 runs, index.html loads the DS kit from the LOCAL ./vendor/anentrypoint-design/247420.{js,css} again (re-confirmed live via browser witness on the 37th run, 2026-07-12: <link href='./vendor/anentrypoint-design/247420.css'>). AGENTS.md's 'DS load = LOCAL vendor' section is the current truth; any memory claiming unpkg is the live source is stale.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-39a7cc2f887a90b1-1079
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783075545903
|
|
5
|
-
updated: 1783075545903
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 21st run (2026-07-02): GUI cohesion sweep. gui-cohesion workflow wf_6b9f1890-320 (25 agents, 12 confirmed). Kit: WorkspaceRail rail attention-dot tone flag, WorkspaceShell keepSessionsTrack (sessions column no longer reflows the 4-column grid on tab switch, mirrors keepPaneTrack), mobile drawer Tab focus-trap (exported trapTab from overlay-primitives.js), ConversationList richer status prop (error/stale/running/stopping) for the Running rail group, ContextPane recentFiles panel. App: computeLiveSessions() single source of truth for WorkspaceRail badge+tone and liveMain (fixed nav-badge undercounting external sessions), sessions rail rendered on Live tab too, follow-up chip label fix, recentSessionFiles() from tool-call file_path args, disconnected->offline vocab fix, refreshActive() visibility-gated polling. Server: /health corsWildcardOpen + settings error banner. Kit pushed 6cfd115 (rebased onto concurrent fe50db5, regenerated dist rather than hand-merging minified bundle conflict). agentgui pushed 3410178. Both CI green, 28/28 tests, 0 console errors.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-40d6169c8759061d-806
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783680462136
|
|
5
|
-
updated: 1783680462136
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-30th-run-sessions-rail-dead-click","value":"agentgui 30th run (2026-07-03): sessions-rail dead-click fix. ConversationList stays mounted on files/live/settings via keepSessionsTrack but onSelect only special-cased the chat tab; every other tab's click loaded state but never navigated, since only historyMain() renders state.events. Fixed: non-chat-tab selection now navigates to history first. Verified live (state.tab live->history, selectedSid set, events fetched). STANDING RULE: a persistent-across-tabs component kept mounted via keepXTrack whose interaction effect renders on only ONE tab must have every OTHER tab's handler produce the same visible effect (usually navigate to the rendering tab) - inert-but-visible is worse than not shown. App-only fix, agentgui pushed c1e4915."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4420e6d00e5c8632-2318
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781943726445
|
|
5
|
-
updated: 1781943726445
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 10th run (2026-06-11) Claude-Code-web parity sweep (workflow .claude/workflows/gui-claude-code-parity.js, 6 design-language lenses visual-language/layout-composition/chat-thread-craft/file-browser-fidelity/live-session-command/motion-microinteraction; 66 agents -> 37 confirmed PUNCHLIST-PARITY.md; kit 28387c3, agentgui 0a93fc6). Chat reads like Claude Code not messenger: AgentChat passes flat:true+aicat:false; flat turns full-width avatar-less capped at --measure led by .chat-role label, assistant turn faint color-mix(--fg 3%) bg (.chat-msg-flat); bubble/avatar kept only for messenger demo. Composer ONE bordered rounded-rect (.chat-composer border --rule +--r-2, :focus-within ring) borderless textarea + inline --r-1 send. Tool calls = bordered status-toned card (.chat-tool de-frames .chat-bubble, head icon/name/label/status-pill, running->accent error->flame); bundle shipped ZERO .chat-tool CSS before. injectCodeCopy reads <code> language-* class -> .chat-code-lang header tab. ::selection accent-tint. Layout: kit WorkspaceShell gains mainFlush; .ws-main padding space-4/space-5, chat opts out via .ws-main--flush; .ws-crumb min-height 48px+left gutter. Live dashboard command center: SessionDashboard status-bucketed grid, header breakdown N running/M idle/K errors, .ds-dash-stream-disc heartbeat, tri-state select-all, is-armed stop pulse; SessionCard cost/token stat, is-new arrival cue, icon-led actions, is-stale amber inset. Files TYPE_ICON.dir=folder + file-image/link/folder-open icons; ConversationList loading skeleton; FilePreview Prism highlightAllUnder + .ds-preview-gutter line numbers + image fit/actual toggle + checkerboard. Motion all prefers-reduced-motion:no-preference guarded (.ws-shell grid-template-columns ease, thread scroll-behavior smooth, .ws-scrim opacity fade, copy->copied flip, is-new fade-in). LOAD-BEARING webjsx fix: SessionCard passed raw nulls positionally in children arrays -> applyDiff crashes reading 'key' on ANY null among VElement siblings; fix .filter(Boolean) EVERY children array + Btn spreads array children. Kit-wide rule: never pass conditional x?h():null positionally - build array and filter(Boolean). Deferred to 11th: Files multi-select+BulkBar+density-thumbnail, /api/move-confined, toolbar up-button+grid keys, F3 elevation unification.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-447e5a54ddc9357a-654
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784892490926
|
|
5
|
-
updated: 1784892490926
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentplug daemon fix (2026-07-24): persistent plugin gm not loaded error on the shared agentplug-runner daemon root-caused in registry.rs dispatch_and_evict_on_error, which permanently clears a plugin pool slot on any dispatch error with no reload path on DispatchHandle. Fixed by threading Engine+Module through DispatchHandle so dispatch self-heals a missing slot via re-instantiation. Also found+fixed a second real bug: browser.rs was missing the CommandExt trait import for its Windows CREATE_NO_WINDOW flag, breaking the Windows release build. Both pushed to AnEntrypoint/agentplug main (b981b67, d388d81), CI-verified green across all 6 platforms.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-455b3beb4afabe14-591
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780592707612
|
|
5
|
-
updated: 1780592707612
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui plugin tool provisioning on Windows: lib/tool-spawner.js must iterate bun->npx fallback. BUNX_RUNNERS=['bun','npx'] tries each in sequence; on Windows hosts without bun the missing-command error arrives via stderr+close (not the 'error' event), so isMissingCmdError regex matches /not recognized|ENOENT|command not found|cannot find/i on BOTH error.message and captured stdout+stderr. Only falls through to next runner when missing flag set. Pattern: binary-might-not-exist -> runner fallback + check both error.message and process output streams + cross-platform regex alternation.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4845ee594759151c-560
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780592706754
|
|
5
|
-
updated: 1780592706754
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui WebSocket /sync endpoint testing: server sends sync_connected with clientId on connect. Legacy handler lib/ws-legacy-handlers.js handles ping->pong, subscribe->subscription_confirmed, get_subscriptions->subscriptions, unsubscribe, latency_report. All responses use codec encode/decode (lib/codec.js). Message ordering requires registering the ws.on('message') handler BEFORE sending. Test pattern: const queued=[]; let waiting; ws.on('message',...); queued.forEach(m=>ws.send(m)); waiting.resolve(...) — ensures handler is live before messages flow.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4a1254c60b868b88-374
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784816756384
|
|
5
|
-
updated: 1784816756384
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
TEST_EMBED_FIX_VERIFY_900: agentplug bert/libsql/treesitter wasm plugins were manually installed via gh release download into /config/.agentplug/plugins/ after confirming they were never auto-downloaded (403 from unauthenticated GitHub API rate limit on agentplug-runner's own fetch_latest_plugin_version call); sha256-verified against each release's sidecar before install.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4bafafa47a0e4b6c-3237
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781793216567
|
|
5
|
-
updated: 1781793216567
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 12th run (2026-06-11) UX-craft sweep + empirical-witness-first (workflow .claude/workflows/gui-ux-craft.js, 6 new lenses typography-rhythm/copy-tone/perceived-performance/kit-DX/light-theme-contrast/interaction-density; 46 agents -> 40 confirmed, PUNCHLIST-UX.md; ALL 58 implemented). Server runs PORT=3009 (3000 owned by another app). LOAD-BEARING shipped-bug discoveries via the live page as debugger: (1) live tab '1 running over No-live-sessions' was a webjsx applyDiff CRASH (reading key) - SessionDashboard swapped UNKEYED empty-state body for keyed group children; fix = ONE stable keyed .ds-dash-groups body across empty/grouped/flat + Btn passes key through (was dropping it) + kit emptyAction CTA. (2) mobile drawers dead in prod: base .ws-drawer-toggle/.ws-scrim{display:none} sat AFTER media blocks - base-hidden rules must PRECEDE media reveals. (3) composer cwd bit invisible: app passed {label}, kit read .text - prop-name-contract failure; ChatComposer now normalizes text||label, drops empty bits before separators. (4) 11th-run multi-select checkbox hover-clipped by a stale duplicate .ds-file-check absolute-overlay block later in app-shell.css. (5) lint-null-children.mjs (new build gate) caught 14 latent crash sites in freddie.js. Layout staged column yield: .ws-shell yields pane->drawer @<=1480, sessions->drawer @<=1100, rail->60px icon strip <900 (labels hidden unconditionally; clipped 'age'/'Ne' was the 420px regression); chat thread 245px->776px at 1304px. PageHeader dense prop (24px not 180px) on all 5 tabs. DropZone-with-children = passive wrapper (overlay only on drag). Files: ONE breadcrumb, compact ghost toolbar 32px/r-1, FileGrid skeleton only on cold load (refresh dims in place is-refreshing). History rail flame = error DENSITY sessionErrorDense (errors>=3 AND >15% events). Theme: --flame/--amber theme-tuned pairs (light #C53E00/#8A6512 AA on paper; dark #FF5A1F/#D9A93A); --amber was referenced 8x but never defined; 5 --code-* syntax aliases; destructive ACTIONS=warn, flame=error STATUS only. Control craft: one 32px/r-1 metric for controls/dash/toolbar/BulkBar; focus rings unified inset accent; .ds-select ellipsizes+:focus-visible. Perceived perf: index.html 3x modulepreload+jsdelivr preconnect+static boot-splash; AgentChat warms markdown stack on mount, MdNode paints raw text synchronously while loader in flight; EventList loading skeleton; agents panel tri-state. Server: POST /api/move (dual realpath confinement, root/self-nesting refusal, 409-unless-overwrite, EXDEV mapped) + BulkBar move-selected -> runBulkMove; validate-mutations.mjs 26 checks (9 move). Kit DX: COMPONENT_API.md Workspace Surfaces section (AgentChat onPasteFiles-not-onPasteImage trap, WorkspaceShell stableFrame/mainFlush, FileGrid selection/density, DropZone wrapper); FileGrid canonical selected/onToggleSelect (marked/onMark aliases); 22 Btn primary:true -> variant:'primary'; AgentChat who->role; FOUR build lints (tokens/glyphs/null-children/classes). Witness caveats this env: spool out/ keeps STALE responses (re-read on mismatch); plugkit browser sessions expire between dispatches (fresh session needs full goto); first git_status after heavy churn can report stat-cache false positives.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4c06c45b4d31bc60-1202
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783077058750
|
|
5
|
-
updated: 1783077058750
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
gm-method lesson: a responsive drawer/overlay whose left/inset offset changes across CSS breakpoints must re-derive its closed-state transform (translateX/translateY) at each breakpoint that changes the offset. A transform tuned as a percentage of the element's own width (e.g. translateX(-110%)) assumes left:0; if a later, narrower breakpoint shifts left to make room for a persistent sibling rail (icon-only nav strip), the same percentage no longer clears the viewport and leaves a visible sliver of the closed drawer overlapping content. Fix pattern: override the closed-state transform inside the narrower breakpoint's media query using calc(-100% - <the offset variable>), not a hardcoded percentage. Caught via live-browser DOM measurement (getBoundingClientRect on the drawer element) showing a nonzero right-edge when the drawer should be fully off-screen — a screenshot alone can be ambiguous at ~35px, but the measured rect makes the regression unambiguous. General takeaway: when auditing a multi-breakpoint responsive shell, check every off-screen/closed positioning rule at EVERY breakpoint that touches that element's left/inset, not just the breakpoint that introduced the transform.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-4dfac801d0378448-3676
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781100435367
|
|
5
|
-
updated: 1781100435367
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI cohesion sweep (2026-06-10, 7th max-effort run) CLOSED. NEW workflow .claude/workflows/gui-cohesion.js (6 cohesion lenses: chat-agent-feel, fsbrowse-file-view, simultaneous-live-sessions, shell-navigation, visual-system, crosscut-perf-a11y-sec; benchmark->adversarial-verify(kept-typography guard)->ordered plan; distinct from gui-audit/overhaul/predictability-polish - hunts the ONE-PRODUCT cohesion/feel gap vs claude.ai/code/cowork/Claude-Desktop). Ran 61 agents -> 40 confirmed gaps (PUNCHLIST-COHESION.md). PUSHED: kit anentrypoint-design 9ef409a, agentgui 15b626c. KIT: chat.js injectCodeCopy() per-block code copy (.chat-code-block wrap+.chat-code-copy reveal-on-hover, copy->copied 1.6s, idempotent data-copy-wired) + CodeNode head copy + actionRow label+copy icon (was page) + ChatComposer context prop (.chat-composer-context agent middot model middot cwd); agent-chat.js streaming fence detection (preShell:true -> chat.js text renderer monospaced <pre>, no prose->block reflow) + followups prop + avatar threading; sessions.js SessionCard status:stale->idle word + .status-dot-stale (STATUS_WORD/DISC maps) + selectable checkbox(role=checkbox) + active card, SessionDashboard sort/filter Select+SearchInput(label:)+errors-only + stop-selected + streamState line + header-at-0-sessions, ConversationList caption prop; files.js FILE_GRID_CAP=200+shown/onShowMore + role=group (was invalid listbox, rows host buttons) + FileRow permissions/locked->read-only/no-access tag + RootsPicker tablist; files-modals.js FilePreviewPane(non-modal split-view region)+previewHead() shared ASCII prev/next stepper+onPrev/onNext+ArrowLeft/Right + FilePreviewCode header+copy; context-pane.js empty state; shell.js WorkspaceShell stableFrame prop->keepPaneTrack (ws-no-pane+ws-pane-collapsed keeps 4-track grid pane-width-0, stable geometry across tabs) + copy/clipboard ICON_PATHS. CSS chat.css+app-shell.css: ONE canonical .status-dot-disc (-live accent+status-disc-pulse color-mix/-error/-connecting/-stale + reduced-motion), unified rail tones (.ds-session-row.rail-* = .row.rail-* accent/purple-2/flame), H4 touch @media(pointer:coarse)/640/600px 44px floors, all new-class CSS. APP app.js: WorkspaceShell stableFrame:true+pane every tab; filesMain FilePreviewPane into pane(modal only <900px)+previewNeighbours prev/next+RootsPicker+FileToolbar+onAction download+W9 403/404 plain copy; liveMain stale(now-last>45s&&!tool)+error/stale-first sort+state.live.tally per-sid SSE increment(new sessions show motion)+streamState+sort/filter/selected Set/errorsOnly+activeSid; chatMain avatar(forum SVG)+composerContext+followups; ConversationList caption; rail footer ThemeToggle; sentence-case titles; index.html DELETED .status-dot override block (kit owns disc), view() dot uses kit modifier classes. SERVER http-handler.js /api/list per-entry permissions(fs.accessSync W_OK)+ new /api/download confined(realpathSync,50MB cap,403 out-of-roots+traversal VERIFIED live)+backend.js r.status+downloadUrl(). KEY: app.js destructure MUST list Icon/RootsPicker/FilePreviewPane from C - browser-witness caught 'Icon is not defined'/'RootsPicker is not defined' (added to kit components.js export AND app destructure). Kit dist tracked - git add -f after rebuild; rebase-and-rebuild-dist when remote advances (it did: f3b58fe). Witnessed localhost:3000/gm/ 0 console/page errors chat/files/live/settings/history, preview pane opens(_e.err.log)+stepper, decorativeGlyphCount=0, no h-scroll, a11y skip-link/role=group/checkbox/44px. SCOPE CUTS documented in punch-list: rename/delete (read-only browser), upload (legacy routes-upload conversationId-keyed), retry last-turn-only.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-51d8992a3c6f6c9c-1073
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783071833056
|
|
5
|
-
updated: 1783071833056
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 22nd run (2026-07-02): GUI ux-craft sweep. gui-ux-craft workflow wf_48cd6bae-6ae (35 agents, 20 confirmed). Kit: accent-on-paper contrast fix - var(--accent) lime used as TEXT color in 7 sites + non-text FILL in 3 more, ~1.07:1 contrast on paper theme (WCAG needs 4.5:1/3:1), swapped to --accent-ink (borders/outlines stayed on --accent). 4 typography-rhythm fixes (dash-title/ContextPane-meta-sub/session-group-label sizing parity, .ws-crumb height derived from --app-crumb-h). Session-head search-input 36px height match, .ds-file-act focus-visible ring added. App: 5 copy-tone fixes (clear-history button noun, conversation->chat vocab, npx jargon->plain language, provider error truncated+prefixed, disabled export-chat keeps action label), search-result sid fallback to 'session <8char>...', synchronous theme-flash-prevention inline script in index.html. Deferred: kit README/ui_kits docs gaps, perceived-performance work (both larger-scope, landed in later runs 23). Kit pushed 3f50e7a, agentgui pushed 06f108d, both CI green, 28/28 tests, 0 console errors.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-539eee7e8c6c10ee-2557
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781779376189
|
|
5
|
-
updated: 1781779376189
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 13th run (2026-06-18): design-content consolidation - ALL design now lives in the kit (../design = /config/workspace/design), none in the app. site/app/index.html NO LONGER has an inline <style> block; the ~240-line block (28 classes: .pill/.cwd-bar/.resume-banner/.health-chip/.settings-grid/.history-empty/.boot-splash/.chat-controls/.status-dot/.ds-event-list overrides+event-flash keyframe+scrollbars+focus+responsive+print) moved to a NEW kit file ../design/app-surfaces.css (wired into scripts/build.mjs CSS_FILES, scoped .ds-247420, reads kit tokens directly, NO --agentgui-* fallbacks - those local color vars deleted incl dead status-connecting/-offline). app.js has ZERO inline style= props (6 margins -> .agentgui-field-mb/.agentgui-field-my kit utils; mainStyle layout string -> .agentgui-main/.agentgui-main-chat kit rules). RULE: no design content in agentgui - new surface styling is a kit CSS rule, never inline. app-surfaces.css selectors are PRE-SCOPED `.ds-247420 ...` so the build prefixer (which mis-compounds [attr]/* and handles :root/html/body specially) leaves them untouched (line 107 startsWith(prefix+space)). 247420.css is render-blocking <link> + <html class=ds-247420> static, so NO FOUC moving base/boot-splash to kit. Workflow .claude/workflows/gui-design-consolidation.js (residue-first, 6 lenses) 44 agents -> 19 findings (PUNCHLIST-DESIGN.md) ALL landed in kit: .chat-composer-toolbar, role-monotonic chat hover, tool-done success tone, .chat-empty-suggestion variant, error-card flame inset rail, .ds-check-box (CSS-DRAWN multi-select checkbox replacing [x]/[ ] bracket text in files.js+sessions.js - border-drawn tick on .is-marked/[aria-checked], NOT a glyph, AT keeps role=checkbox state), thin 26px status strip, status-item ellipsis, ws-crumb gutter, fluid clamp() shell widths, :focus->:focus-visible, --warn/--sky dark pairs, unified --focus-* tokens, reduced-motion skeleton static-fill, color-blind rail SHAPE diff + sr-only word in Row(). lint-glyphs extended with SCAN_ROOT_FILES (root bundled CSS escaped it; 39 box-drawing comment dividers in app-shell.css slipped in, converted to ASCII). CONCURRENT WRITER on kit landed SAME status-strip+fluid-width fixes; rebase conflict in app-shell.css resolved by adopting theirs (HEAD) per AGENTS.md rule, kept my distinct ds-check-box/glyph/token work. Pushed: kit 1aa7926, agentgui 9305b00. Server PORT=3009; restart via Bash run_in_background:true (pkill+inline nohup got SIGTERM'd). Witnessed: 0 console errors, migrated classes resolve from kit bundle.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-559b8b2abc4b1091-1665
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781946705210
|
|
5
|
-
updated: 1781946705210
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 20th run iteration 2 (2026-06-20): verification iteration, NO code change warranted. Booted fresh server PORT=3009: clean (0 FATAL, iteration-1 ACP fix holds), 46/46 tests, 0 TODO/FIXME/HACK, 0 decorative glyphs. INVESTIGATED startup-log oddity: [discoverAgents] 'Adding CLI wrapper for cli-opencode/...' then final list shows cli-* found:false even though opencode/gemini/kilo ARE installed. ROOT: lib/agent-discovery.js discoverAgents() replaces each found ACP agent with a CLI_WRAPPER object carrying NO path so found:!!a.path=false (line 142-143 wrappedAcpIds filter). BUT that is a SEPARATE internal subsystem (discoveredAgents, used by descriptors/process-message.js:35/server-startup acpPort map). The CLIENT picker uses the canonical registry (lib/claude-runner-agents.js, ids opencode/gemini/kilo/codex real commands); agents.list (ws-handlers-util.js:45) returns registry.list() with available:registry.isAvailable(id) running 'which command'. WITNESSED via WS probe (msg {m,r,p}; resp {r,d:{agents}}): client availability CORRECT - opencode:true gemini:true kilo:true codex:false agy/goose:false. NO user-facing bug. Dual agent-registry (agent-discovery cli-wrapper/discoveredAgents vs claude-runner-agents registry, id schemes opencode vs cli-opencode) is a real SMELL + likely partially-dead (process-message cli-wrapper branch never matches client-sent registry ids), but consolidation needs deliberate consumer tracing+testing, unsafe blind autonomous removal. For a future deliberate run. Env: pkill -f server.js self-matches shell (exit 144) - kill explicit pid via /proc/PID/cmdline guard; WS probe needs {m,r,p} keyed by r with d.agents.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-59dd73a463e54948-871
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780040264818
|
|
5
|
-
updated: 1780040264818
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui agy/Antigravity agent: agy.exe (Go CLI, v1.0.x) at ~/AppData/Local/agy/bin/agy.exe is a DIRECT-protocol agent (NOT acp). Correct invocation: agy --print "<prompt>" --dangerously-skip-permissions [--continue]. CRITICAL: --print is a VALUE flag (prompt is its argument); a POSITIONAL prompt exits code 2. agy emits PLAIN TEXT not stream-json and prints no session_id (resume via --continue only, no per-id resume). It needs an authenticated Antigravity session (G1 credits/quota); WITHOUT auth it exits 0 with EMPTY output (or hangs to --print-timeout 5m default). agentgui wires it in lib/agent-discovery.js BINARIES (protocol cli), lib/claude-runner-agents.js registry (protocol direct, parseOutput wraps each line into {type:assistant,message:{content:[{type:text,text}]}}), lib/agent-descriptors.js. agy changelog works without auth (good binary-health probe).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-5b99b882ffe1a3c2-2262
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783683346727
|
|
5
|
-
updated: 1783683346727
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-31st-run-maximal-usability-sweep","value":"agentgui 31st run (2026-07-10): user asked to max gui usability/practicality/predictable/negative-space via wfgy-method critique. gui-ux-craft workflow (32 agents, 19 confirmed) + targeted live-browser negative-space audit agent in parallel. Kit: ConfirmDialog destructive prop was dead code (delete confirms always primary, never danger) - fixed + browser-witnessed btn-primary danger. Settings panels had 56px gap (32px .panel margin + 24px grid gap) vs 24px elsewhere - zeroed margin in .settings-grid. .ds-page-header-dense-lede and .chat-composer-context hard-clipped nowrap+ellipsis at <=480px - now wrap at that breakpoint. History empty-state sub-line used misapplied .lede (fs-xl), rendering larger than its own title - removed misapplied class + fixed title's hardcoded 1.05rem to var(--fs-lg). Small-caps section labels (panel-head, table th) drifted from canonical .t-label size - unified. FileRow/FileCell internal selection props renamed marked/onMark -> selected/onToggleSelect (FileGrid's own marked/onMark stay as documented public alias). ConversationList search-mode blew away visible rows to full skeleton on every debounced re-search - guarded on !sessions.length. App copy-tone: sidebar->the rail, external session->other tool, session->conversation vocabulary unified, raw sid slice in resume banner replaced with resumeSidLabel() human lookup, settings projects-folder fact gained copy button. Perf: prism-core.min.js rel=preload as=script hint, History tab re-fetch gated on staleness (>5s), bulk file delete/move patch state.files.entries locally + render immediately (backgrounded reconciliation). Kit docs: README multi-agent chat shell bullet, COMPONENT_API.md documents FileRow move action + freddie.js demo-site-only scope. A concurrent gm session independently worked the same ../design repo this run - its commits (df5b566..68b615b) landed kit edits before reaching CONSOLIDATE, verified via git log/rev-parse rather than re-pushing. Browser-witnessed every fix at 1280px+420px on no-PASSWORD localhost:3010: 0 console errors. Standing rule: prd-resolve witness_evidence must be distinct per row - byte-identical witness across rows is refused as a rubber-stamp tell."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-5feb252a5244149c-1791
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784294077108
|
|
5
|
-
updated: 1784294077108
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 45th run (2026-07-17): third docstudio design-cue pass. Fresh Explore-agent survey (told what 43rd/44th runs already shipped) found 5 new gaps, all implemented in the design kit: ChatComposer/AgentChat streamingSince prop -> role=status tabular-nums elapsed counter next to stop control while streaming (docstudio chat-input.js:71-96), self-ticking via interval keyed off passed timestamp; Enter-to-send gated behind module-cached matchMedia('(pointer:coarse)') check (docstudio chat-input.js:116-125), coarse-pointer shows 'Tap Send to send'; CountdownDialog({title,message,seconds,onExpire,actions}) added to files-modals.js (docstudio google-reconnect.js:41-75 sign-out countdown) - composes over the same Modal()/Backdrop() shell ConfirmDialog/PromptDialog already use there, NOT editor-primitives.js's Dialog (deviation from initial spec once actual pattern traced); PermissionMenu({categories,approved,onToggle,onToggleAll}) added to overlay-primitives.js (docstudio tool-approval-panel.js roving-tabindex menuitemcheckbox list), mirrors Dropdown's open/close/outside-click wiring; ChatComposer detectAttachment(text)=>{type,label,id}|null prop renders dismissible .chat-composer-detected-badge above textarea (docstudio chat-input.js:49-62 pasted-URL sniff), imperative DOM matching flashComposerNote's style. Implementation delegated to a background worktree agent. bun test.js 38/38 pass, node scripts/build.mjs 0 lint errors. Concurrent upstream v0.0.344/v0.0.345 (RTL applyDirection/getDirection) landed mid-pass - rebased clean, dist rebuilt fresh. Kit pushed 5c0571e->1d46202. agentgui re-vendored, browser-witnessed live localhost:3009/gm/ (bodyLen:19739, hasAgentgui:true, 0 pageErrors), grep-confirmed all 5 feature strings present in re-vendored bundle before push.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-6224f8d185797f2b-1047
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781863050878
|
|
5
|
-
updated: 1781863050878
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 18th run (2026-06-19): 18th-run GUI quality sweep. gui-audit wf_7cd243d2-753 (53 agents, 29 confirmed). Applied: app.js - thinking branch in sendChat loop, saveBackend deep health probe, aria-live guard (lastAnnouncedStatus), history sidebar close WorkspaceShell fix, O(1) SSE dedupe Set, sessionDuration reduce, tool_use rail flame (purple=subagent), ACP vocabulary connected/connecting/disconnected, ACP unhealthy rail flame, skip-link in index.html. kit - showWorkingTail status=running (was done/error), focus ring 2px outline-offset, ws-sessions-toggle aria-expanded dynamic, DOMPurify version-pinned (no ESM SRI), FORCE_BODY on sanitize, 360px buttons fill, agentcwd-btn 44px coarse. lib/http-handler.js - CORS credentials guard, token masking in logs. Also applied pre-workflow: history tool_result (result)/(tool call) prefix, multi-turn preamble for non-resume agents. validate-mutations 29/29; test.js 10/0. deferred: resume-transcript-load (#3), ACP force-restart (#4). Commits: 817c64a, b8d2eab, d41fab5, 8427afc; kit a16120c.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-6434ee8261a6a6a2-3126
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784285790686
|
|
5
|
-
updated: 1784285790686
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-43rd-run-docstudio-design-cue-pass","value":"agentgui 43rd run (2026-07-17): user repeated the docstudio design-cue directive more emphatically after the 42nd run's conclusion (docstudio less mature) was pushed back on. Dispatched a deep opus research agent (full file reads + a locally-served docstudio static render via python3 http.server since docstudio's real chat UI is gated behind Google OAuth the agent couldn't bypass) which again concluded the kit was more mature architecturally (docstudio: wholesale Gemini design copy, 359 inline styles, one contrast comment total vs the kit's 3-tier token system, 4 themes, near-universal WCAG documentation). User then provided two REAL screenshots of docstudio's actual authenticated chat UI the agent had no way to see: a split-pane PDF/document viewer live beside the chat with page nav, inline highlighted data chips in structured responses, a dense real-conversation thread list, and a genuinely dense sortable admin data-table (role-badge chips, destructive-red reserved for delete only). KEY LESSON: when a human says 'look at the actual screenshots,' the screenshots are ground truth over even a thorough source-only comparison - visual/UX claims must be checked against rendered pixels. Re-examined both screenshots pixel-by-pixel including live CSSOM tracing to test my own 'color overload' hypothesis (traced the acid-lime accent appearing on: primary New-chat CTA, active-nav-state, and file-row directory borders - confirmed via a live mixed dir/image directory listing that non-dir file types get non-accent colors, i.e. NOT overload, a deliberate per-type color-coding system I'd misread from an all-folders screenshot). Concluded: 2 genuine gaps (no inline split-pane content viewer for chat; Table had no sort support) implemented; other candidates (color usage, thread-list density) re-investigated and found already-correct deliberate decisions. Kit changes: AgentChat gained optional sidePanel/sidePanelTitle/onCloseSidePanel (renders host content vnode in the existing SplitPanel primitive beside the thread, resizable, stacks vertical under 900px, byte-identical when omitted); Table gained opt-in sortable/sortKey/sortDir/onSort (real aria-sort header buttons, chevron indicator via a new chevron-up icon, restrained color: neutral at rest, accent only on active sort). User also clarified scope mid-run: improve the WHOLE kit, not just agentgui-consumed pieces - confirmed via src/components.js barrel that Table/SplitPanel/Badge were already generic exports before extending, so both additions are reusable kit capabilities, not agentgui-specific wiring. bun test.js all pass (including the pre-existing Table byte-identical contract test), node scripts/build.mjs 0 lint errors (glyph lint confirmed the sort indicator used a real Icon(), not a raw arrow glyph). Kit pushed 3a72aeb (clean, no rebase conflict), agentgui pushed 254eb74 then 89121d5 (AGENTS.md), all CI green both repos. Browser-witnessed the default no-sidePanel AgentChat path unaffected on buildesk (bodyLen:1304 matches pre-change baseline exactly, 0 pageErrors)."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-66b0947b946f3437-1155
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781191150589
|
|
5
|
-
updated: 1781191150589
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 11th run (2026-06-11, linux env): kit lives at ../design = /config/workspace/design (same repo as c:\dev\anentrypoint-design). Landed: FileGrid multi-select (marked Set keyed by path, shift-range via onMark({range}), tri-state select-all over SHOWN rows, Ctrl+A) + BulkBar export + density list/compact/thumb (FileCell tiles; thumbUrl MUST be downloadUrl not imageUrl - /api/image has a narrower allowlist and 403s repo files; img ignores attachment disposition). CRITICAL fix: PASSWORD-gated deploys could never boot the SPA (static assets 401; index 200) - http-handler now sets/accepts an HttpOnly SameSite=Lax agentgui_token cookie. Shipped-jank fixes: .ds-file-open had zero CSS since run 5 (row now flex + button reset); filesMain dropped permissions from entries (EACCES UI dead); Crumb narrow collapse keyed on .app @container that does not exist under WorkspaceShell (crumb overflowed 420px - mirrored into ws 900px media block); webjsx attr diff leaves null-valued attrs unset when toggling (always set data-* concretely). validate-mutations.mjs made portable (ROOT env/cwd, posix targets, Bearer auth; csrf expects 401 gated/403 open).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-6bdf783a1f6be7c2-1062
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781197688031
|
|
5
|
-
updated: 1781197688031
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI audit pass (2026-06-04, structured chat run) details: app.js sendChat emits structured parts - toolPart() builds {kind:'tool',name,label,args,status,_id} and applyToolResult() matches tool_result back to tool_use by id; kit AgentChat passes {kind,...} parts straight to ChatMessage.renderPart (bare strings wrapped as text) so collapsible ToolCallNode renders. Multi-turn resume: chat.sendMessage is one-shot (ephemeral chat- id per call); claude real session id arrives as parsed.session_id; ws-handlers-util onEvent broadcasts streaming_session{claudeSessionId} once; backend.js yields {type:'session'}; app captures into state.chat.resumeSid (claude-code only) so next turn --resumes. Streaming render is rAF-coalesced (scheduleStreamRender). Kit AppShell main#app-main has tabindex=-1 so the skip-link moves focus. /api/image confined to allowlist roots (the .. check was a no-op after path.normalize); CORS no wildcard when PASSWORD set. History: eventsLimit default 300 + load-older; search hits carry focusEventI/focusEventTs -> scroll+flash.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-6d49f08bebac54c9-744
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784300719472
|
|
5
|
-
updated: 1784300719472
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui-45th-run-docstudio-full-detail: third docstudio design-cue pass. Fresh Explore-agent survey (told what 43rd/44th runs already shipped) found 5 new gaps, all implemented: ChatComposer/AgentChat streamingSince prop (role=status tabular-nums elapsed counter while streaming); Enter-to-send gated behind matchMedia('(pointer:coarse)'); CountdownDialog primitive in files-modals.js; PermissionMenu roving-tabindex menuitemcheckbox list in overlay-primitives.js; ChatComposer detectAttachment pasted-URL sniff badge. bun test.js 38/38 pass, 0 lint errors. Rebased cleanly onto concurrent v0.0.344/v0.0.345 (RTL support). Kit pushed 5c0571e->1d46202, agentgui re-vendored+pushed, browser-witnessed bodyLen:19739 hasAgentgui:true 0 pageErrors.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-70d96acb736af2d7-685
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781197681553
|
|
5
|
-
updated: 1781197681553
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GM plugin autonomy blocker (recorded 2026-05): the gm plugin pre-tool-use-hook enforces a 'must invoke gm:gm first' gate via .gm/needs-gm marker, fragmenting multi-tool autonomy. A bypass patch in c:/dev/gm gm-starter/hooks (commit e300acf7) did NOT propagate after /plugin update gm because hook content is TEMPLATED from elsewhere in the gm codebase (likely lib/cli-adapter.js, platforms/cli-config-shared.js, or lib/template-builder.js), not sourced from gm-starter/hooks/ files. To fix for real: locate the generator, patch it to unlink needs-gm when .gm/prd.yml exists, rebuild via node c:/dev/gm/cli.js c:/dev/gm/gm-starter c:/dev/gm/build, push, then /plugin update gm.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-70de7d5e71fcd439-2680
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780670024421
|
|
5
|
-
updated: 1780670024421
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI predictability+polish sweep (2026-06-05, 5th max-effort run) CLOSED. workflow wf_980345e1-201 (65 agents -> 44 adversarially-confirmed gaps, PUNCHLIST-POLISH.md). New workflow .claude/workflows/gui-predictability-polish.js. PUSHED: agentgui b72efef, kit anentrypoint-design e8e13a0. KIT (rebuilt+vendored): files.js FileGrid sort{key,dir,onSort}+FileSortHeader(ASCII asc/desc)+filter+loading->FileSkeleton+keyboard role=listbox roving focus Arrow/Home/End/Backspace->onUp, exports FileSkeleton/sortFiles(dirs-first); sessions.js SessionCard .ds-dash-status words+disc (WCAG was colour-only)+lastActivity/currentTool .ds-dash-activity, SessionDashboard onStopAll .ds-dash-header bulk; chat.js ChatMessage streaming->.chat-stream-caret + actions[]->.chat-msg-actions; agent-chat.js .agentchat-thread-wrap+.agentchat-jump scroll-anchored jump-to-latest + onCopy/Retry/EditMessage; context-pane.js usage prop->last-turn panel (tokens/cost/turns/duration, was dropped result event); shell.js LOAD-BEARING mobile fix - <900px sessions/pane drawers were DEAD (.ws-sessions-open/.ws-pane-open never toggled,no scrim): added toggleWsDrawer/closeWsDrawers+.ws-scrim+crumb drawer toggles+Esc-close+auto-close-on-select, pane mobile reveal keys off .ws-pane-open not :not(.ws-pane-collapsed), rail/pane toggle aria flip expand/collapse; chat.css .ds-session-group/-rows/sticky-label + new/search 44px. APP app.js: sessionGroups() Running-pin+Today/Yesterday/This-week/Earlier->kit groups; chat-tab search shows hits in rail BOTH tabs (was dead); liveMain per-session metrics/last-activity/currentTool from sessionsBySid + stopAllActive + startLiveTick() 1s; filesMain sort/filter/skeleton/rootsRow-picker/always-toolbar/keyboard, initial loadDir+preview-fetch moved OUT of render (navTo effect+microtask) render pure; sendChat captures result.usage->state.chat.usage; copyMessageText/retryLastTurn/editAndResend; refreshActive activeSig() change-diff so 3s poll re-renders only on change. SECURITY lib/http-handler.js confineToRoots() fs.realpathSync re-check on /api/list,/api/file,/api/image - symlink-inside-root escaping root now fails closed. WITNESSED localhost:3000/gm 0 console errors: groups[Today,Earlier], files sort size-asc/filter-narrows/keyboard-focus-moves grid role=listbox, pane reflow chat=4cols files/live/settings=2cols(ws-no-pane) history=3cols no h-scroll, 420px mobile drawer opens+scrim+no-hscroll, glyph sweep count:0. SCOPED-OUT (not gaps): inline split-pane preview (modal kept) + persistent suggestions (empty-only). Build flow: edit kit->node scripts/build.mjs->copy dist/247420.{js,css} into site/app/vendor/anentrypoint-design/->witness->push kit.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-713614f12d7029da-1577
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781943682617
|
|
5
|
-
updated: 1781943682617
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 20th run (2026-06-20): destructive quality run, real-input discovery via live server boot. FOUND + FIXED two robustness bugs. (1) lib/plugins/acp-plugin.js was a SECOND redundant ACP manager: eager-spawned all 4 ACP tools at boot on conflicting/mismatched ports (gemini=18101/kilo=18102/codex=18103 vs canonical acp-sdk-manager opencode=18100/kilo=18101/codex=18102), no real restart/health logic despite /api/acp/status route promising restarts, and CRASHED boot with '[FATAL] Uncaught exception: Executable not found in $PATH: codex' on any missing ACP binary. Its route consumed by nobody (client acpStatusFor reads state.health.acp from getACPStatus -> acp-sdk-manager); no plugin declared 'acp' dep; exports nothing. DELETED the file. Rule: ACP lifecycle lives ONLY in lib/acp-sdk-manager.js. (2) spawn() of a missing binary emits ENOENT as an ASYNC 'error' event under Bun (escapes synchronous try/catch) -> uncaught exception kills server. acp-sdk-manager.js startProcess was the only spawn callsite missing proc.on('error') (terminal.js/claude-runner-direct.js/gm-agent-configs.js/claude-runner-acp.js all had it); added proc.on('error') routing to CRASHED+scheduleRestart. Witnessed: clean boot 0 FATAL, [PLUGINS] Loaded extensions drops acp, /api/acp/status 404, tests 46/46 (27 unit + 19 integration), browser localhost:3009/gm/?token 0 console errors hScroll 0. Env note: gm browser verb chromium needs /etc/chromium.d/no-sandbox (write via sudo here); pkill -f 'server.js' self-matches the shell (exit 144) - kill by explicit pid instead. Pushed agentgui.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-720d76c88e64f6ee-1967
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780600280455
|
|
5
|
-
updated: 1780600280455
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI audit (2026-06-04, workflow wvf3xfw7x): gui-audit fan-out ran 64 agents -> 44 adversarially-confirmed findings, punch-list at AUDIT-PUNCHLIST.md (38 deduped items). BATCH 1 LANDED+COMMITTED (cf710c6): server lib/http-handler.js (/api/image dropped os.homedir from allowRoots + 403 non-image ext no octet-stream; always Referrer-Policy:no-referrer + CSP self+unpkg/jsdelivr; lib/ws-handlers-util.js cwd statSync validate before spawn) and app site/app/js/app.js (SSE unwrap data.payload||data - ccsniff store.js:130 emits {sid,payload:fl}; dedupe events by .i; sessionsBySid Map; scrollChatToBottom->.agentchat-thread cached; resumeSid cleared on non-claude-code switch + banner/status/forward gated; normalizeBackend origin; clearLocalData reload; status 'connected' not 'live'; 'running healthy'; db online/offline/unknown; agentsPanel rail green/flame). Browser-witnessed live (session 9): boots, 'connected', no '...' literal, 0 glyphs, 0 errors. chat-interleave-parts + chat-orphan-toolresult APP side already done in prior session (appendText coalesces ordered parts; applyToolResult byId||running fallback) - KIT half (agent-chat.js drop forced m.content prepend, render parts in order) still pending. REMAINING = KIT batch in c:/dev/anentrypoint-design: chat.js MdNode O(n^2) streaming md (render inline text while streaming, md on settle); chat.css responsive @media .agentchat-controls/.agentchat-cwd-text + cwd max-width min(60ch,60vw) + .agentchat-cwd-btn :focus-visible; delete dead .chat-controls/.cwd-bar in index.html; content.js EventList Row expanded->aria-expanded; agent-chat.js Select label + head sub-line from status prop; 247420.css touch targets 44x44; CodeNode cache key full code; os/app-panes.css box-drawing-> ---; then node scripts/build.mjs, copy dist/247420.{js,css} to site/app/vendor/anentrypoint-design/, browser-witness, publish to npm->unpkg. Also sec-marked-dompurify-vendor (vendor markdown stack + script-src self).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-7535f34f430fc196-1340
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1782994678180
|
|
5
|
-
updated: 1782994678180
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 21st run (2026-07-02): GUI cohesion sweep. gui-cohesion workflow wf_6b9f1890-320 (25 agents, 12 confirmed). Kit (../design): WorkspaceRail rail-tone attention flag on nav items, WorkspaceShell keepSessionsTrack (sessions column no longer removed/reflowed on files/live/settings, mirrors pane keepPaneTrack), mobile drawer Tab focus-trap (exported trapTab from overlay-primitives.js), ConversationList richer status prop (error/stale/running/stopping) for the Running rail group, ContextPane recentFiles panel. Also committed inherited dirty 19th/20th-run kit work (agent-chat/chat/files-modals/files a11y fixes). App: computeLiveSessions() single source of truth for WorkspaceRail badge+tone and liveMain (fixed nav-badge undercounting external sessions), sessions rail now renders on Live tab, follow-up chip 'Open X in files'->'Explain X' (label matched actual sendChat behavior), recentSessionFiles() from tool-call file_path args, 'disconnected'->'offline' vocab fix (2 sites), refreshActive() visibility-gated polling. Server: /health corsWildcardOpen + settings error banner (was console-only). Kit pushed 6cfd115 (rebased onto concurrent fe50db5, regenerated dist rather than hand-merging minified bundle conflict). agentgui pushed 3410178 then 44a9e2c (docs). Both CI green, 28/28 tests, browser-witnessed 0 console errors.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-861a588d2773681a-1311
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1782999839466
|
|
5
|
-
updated: 1782999839466
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 24th run (2026-07-02): GUI completion sweep. gui-completion workflow wf_4a731841-832 (33 agents, 17 confirmed). Landed 5: Live-tab dashboard state (sort/filter/errors-only) round-trips through URL hash (lsort/lfilter/lerr) and localStorage - previously lv.filter wasn't persisted at all. Shortcuts overlay wraps content in kit's existing FocusTrap component instead of bare role=dialog div (Tab could escape). History event rows expose copy even collapsed. Settings agents panel gives not-installed direct-runner agents a re-check button. Caught a real bug: adding a CSRF regression test for the upload-PUT route, first draft included Authorization header matching the file's other test patterns but testing the wrong scenario (stolen-token not real CSRF), passed trivially at 200. Corrected to omit auth (real attacker capability); server's guard correctly rejects it. LESSON for gm-method: any CSRF/auth regression test must match the real attacker's capability set exactly - copying a nearby test's header pattern can silently test the wrong threat model and give false confidence. 12 findings deferred as their own re-scoped row (mid-thread retry/fork, file-move UX, event permalinks, context-size indicator). No kit changes. Pushed d3e2d1e, 28/28 tests, 17/17 validate-mutations, 0 console errors.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-8af7980a92e09959-891
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1784278284245
|
|
5
|
-
updated: 1784278284245
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-37th-run-punchlist-cleanup-detail","value":"agentgui 37th-run confirming pass (2026-07-12): removed 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) - all their findings had already landed and merged in earlier commits, and their content duplicated what AGENTS.md already recorded 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 were updated to point at AGENTS.md alone."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-8b438ef4c609b7af-401
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1779974532856
|
|
5
|
-
updated: 1779974532856
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui server: default PORT is 3000 (server.js:61) and the app is served under BASE_URL /gm/ — so the live app is http://localhost:3000/gm/ NOT :3056. /health and / (200) are at root; the SPA is under /gm/. AGENTS.md's '3056' is stale. First request to /gm/ or /v1/history/* triggers a 30-90s ccsniff JSONL walk so curl with short timeout returns 000 during warmup — wait or use long --max-time.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-8f59884039787ef3-743
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780592686732
|
|
5
|
-
updated: 1780592686732
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui live validation target: https://buildesk.acc.l-inc.co.za/gm — nginx basic-auth user 'abc' password '123,slam,123,slam' (also satisfies the app's own PASSWORD gate). App listens PORT=9897 BASE_URL=/gm behind nginx (proxy_pass 127.0.0.1:9897). For the gm browser verb, use the DEFAULT session (NOT 'session new <name>' which uses an extension bridge that cannot reach external HTTPS) and set page.setExtraHTTPHeaders Authorization Basic (embedding creds in the URL breaks the app's fetch('/health') with 'URL that includes credentials'). Static site/app edits go live immediately (etag-keyed asset cache, no restart). Playwright reuses page across goto so clearCookies/about:blank to defeat session caching when verifying fresh edits.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-92b199c2024ee1aa-2513
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781261774335
|
|
5
|
-
updated: 1781261774335
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI screen-real-estate + density sweep (2026-06-12, 11th run) CLOSED. workflow .claude/workflows/gui-screen-realestate.js (6 density lenses; 50 agents -> 17 gaps, PUNCHLIST-DENSITY.md). PUSHED kit anentrypoint-design 97dc646 + agentgui e7d01cf. KIT: fluid shell columns (--ws-rail-w/sessions-w/pane-w clamp() replacing fixed 232/296/320 ~848px chrome); shell.js keyboard+pointer .ws-resizer separators (role=separator, ArrowLeft/Right 16px + pointer-drag write clamped inline --ws-<col>-w persisted ds.ws.w.<col>, seeded on mount via ref seedWsWidths); desktop sessions-collapse .ws-sessions-toggle (toggleWs extended sessions->ws-sessions-collapsed, .ws-desktop-toggle CSS inverse of mobile drawer-toggle); .btn --r-pill->--r-1 (8/14 pad 32 min-h, 44 coarse floor); .app-status thin 26px strip (--app-status-h:26 + single-line ellipsis); .chat-msg-flat centered max-width:var(--measure) margin-inline:auto + density-scaled padding via --density token; ultrawide 84ch measure @1600; .ds-dash-grid denser minmax 240 + 220 tier @1500. CONCURRENT-WRITER RECONCILIATION (load-bearing): kit anentrypoint-design has an active concurrent writer, origin/main advances mid-run; a parallel writer shipped Files multi-select + density-thumbnail on main while this run built the same - DROPPED mine, adopted theirs, adapted agentgui app.js to THEIR contract: FileGrid {selectable, selected:Set keyed path||name, onToggleSelect(file,{range}), onSelectAll(keys), onClearSelection, density:list|compact|thumb, onDensity, thumbUrl} + render kit BulkBar {count,noun,actions:[{label,onClick,danger}],onClear}. Drag-to-move NOT in concurrent kit -> deferred; move capability via confined server POST /api/move-confined (mirrors /api/rename guard: confineToRoots both, refuse allow-root src, 409 exists, EACCES/EPERM->403 ENOENT->404, global CSRF) + backend.moveConfined + BulkBar move… prompt. validate-mutations +7 move checks (25 pass). F3 elevation already done by concurrent writer (.panel flat hairline --rule) - skipped. Kit now has 4 build lints: lint-tokens/glyphs/null-children/classes. GOTCHAS: port 3000 owned by another app -> witness PORT=3009; vendored CSS URL stable so browser caches stale bundle across rebuilds - use CDP Network.setCacheDisabled in witness; AGENTS.md gets @.gm/next-step.md re-injected by the gm watcher - strip before committing. Witnessed 0 errors chat/files, btn 10px, status 26px, 3 resizers, sessions toggle, fluid rail 256@1600, checkboxes+density+select-all+BulkBar, no h-scroll.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-9329105b05b9c0f6-324
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781775260292
|
|
5
|
-
updated: 1781775260292
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Resolved mutable: kit-css-host-file
|
|
9
|
-
|
|
10
|
-
/config/workspace/design/scripts/build.mjs:51-59 CSS_FILES list bundles app-shell.css/chat.css/community.css etc scoped under .ds-247420; new file added there. Server not running: ps aux has no bun/node server proc and no listener on :3009 - start PORT=3009 bun server.js for witness.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-94f30cec3c283f97-782
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781783796659
|
|
5
|
-
updated: 1781783796659
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Resolved mutable: kit-base-reset-exists
|
|
9
|
-
|
|
10
|
-
Kit owns the margin reset (app-shell.css:11 'html, body { margin:0; padding:0 }' + app-surfaces.css:26 '.ds-247420, .ds-247420 body { margin:0; height:100% }') and tokens (colors_and_type.css:15 --paper #F6F5F1, :18 --ink #131318, :58 --bg:var(--paper), :61 --fg:var(--ink)). But grep finds NO rule painting the body surface (no 'body{background/color/font-family}' anywhere in root css). So theme.mjs cannot simply drop its inline reset - the kit must FIRST gain a canonical '.ds-247420 body { background:var(--bg); color:var(--fg); font-family:var(--ff-body) }' base-surface rule, and theme.mjs must add a render-blocking kit CSS <link> (it currently loads the kit via JS importmap only, so the inline <style> is its pre-JS FOUC guard).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-956d4813319f65a3-1710
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1782999885820
|
|
5
|
-
updated: 1782999885820
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 9th run (2026-06-10): GUI logic+predictability sweep. Workflow gui-logic-predictability.js (6 lenses: interaction-lifecycle, cross-surface-consistency, information-architecture, realtime-truth, input-ergonomics, scale-robustness). 78 agents -> 67 confirmed findings, all implemented. Interaction lifecycles: kit ConfirmDialog/PromptDialog gain error+busy/busyLabel props, Backdrop Escape listener is document-level with focus-restore queueMicrotask guard, per-session stop via state.live.stopping Set + kit session.stopping, upload drain loop with 409->replace+dismiss, new-chat/backend-change/stop confirms arm-only with 4s reset. Realtime truth: dashboard joins on realSid=claudeSessionId||sessionId, streaming_cancelled broadcast, 60s per-session terminal-frame replay buffer, error status derives from recency not cumulative count, SSE counters take max(index,tally) never regress, persistChat 500ms debounce/100-msg cap/>4KB trim, cross-tab storage listener with ts guard. Input ergonomics: IME guards (isComposing||keyCode===229), Escape ladder order = shortcuts overlay > file dialog > confirmingEdit > new-chat arm > stop-arms > stop generation, window-level dragover/drop preventDefault outside .ds-dropzone, Mod+Shift+L focuses composer. Scale: AgentChat windowed thread MESSAGE_CAP=100, >20k streaming part renders 4k tail window, history events sliced to last 5000 via server ?limit=N shim. Consistency: ONE fmtDuration + ONE fmtBytes kit-wide, STREAM_WORD offline vocabulary, settings order backend->server->agents->appearance->keyboard->data. Witness: localhost:3000/gm/ 0 console errors, joint risk after parallel agent runs is prop-name contract drift (app/kit prop naming mismatches).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-96fffbb6615e031b-1263
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1783683343936
|
|
5
|
-
updated: 1783683343936
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
{"key":"agentgui-31st-run-light-theme-contrast","value":"agentgui 31st run confirming-pass addendum (2026-07-10): gui-ux-craft workflow's failures array named hunt:light-theme-contrast as crashed (API connection error), caught during gm-continue confirming pass. Follow-up agent computed real WCAG ratios and found 6 failures: chat avatar initials on raw --mascot/--accent-ink over tinted bg (2.03:1/3.65:1), tool-done status text on --success/--green-2 (3.18:1 paper/2.88:1 on actual card bg), --amber measuring 4.26:1 on --bg-2 despite tuned for 4.5+:1 on --paper, --danger same shape (4.25:1 on --bg-2, PASSWORD-gate auth-error banner), raw --mascot as button/CLI text (3.11:1), --sun unusable everywhere (1.1-1.5:1) - retired in favor of --amber. Same fix pattern as 22nd run's --accent->--accent-ink: separate text-safe darkened token for text, original stays for fills/borders (3:1 threshold). Standing rule: check a color token's contrast against the ACTUAL background it renders on in the real DOM, not just the page base --paper. gm-continue standing rule: a workflow failures array naming a crashed lens is unaudited scope, not a null result - goes into confirming PLAN pass as its own row. Kit pushed df04d69, agentgui pushed 03002cf, all 4 CI green."}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-993ab31f7a10aefa-718
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1780593487331
|
|
5
|
-
updated: 1780593487331
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui DS loading: index.html loads anentrypoint-design from unpkg @latest (247420.css + 247420.js) at RUNTIME, not the local vendor/ copy. Deliberate (commit 947086e) because the chat surface uses the load-bearing AgentChat kit component which exists in @latest (0.0.186) but NOT in the older locally-vendored bundle. So: GUI needs network, shifts on upstream publish, local vendoring bypassed, and the vendored bundle's si/ri/_s jsdelivr markdown imports (marked@15/dompurify@3/prismjs) are moot while on unpkg. To restore offline: re-vendor 0.0.186+ (has AgentChat) + re-localize (gzip Ha blob, fonts, CDN consts) + rewire si/ri/_s to ../cdn/ + point index.html back to ./vendor/. PRD row revendor-ds-186-offline.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-a3e440db285f655a-995
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1779979137157
|
|
5
|
-
updated: 1779979137157
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui GUI styling (site/app): The anentrypoint-design DS bundle (vendor/anentrypoint-design/247420.js) exposes CSS vars --ff-display (='Inter, system-ui' in this bundle version — NOT Space Grotesk) and --ff-mono (='JetBrains Mono'); there is NO --font-sans. index.html body must use var(--ff-display). CRITICAL CASCADE GOTCHA: installStyles() injects the DS bundle CSS into a runtime <style data-247420> appended AFTER index.html's head <style>, so equal-specificity local overrides LOSE on source order. To override a DS component rule (.app-topbar nav a.active, .chat-head .sub, focus rings, etc) you must out-specify the .ds-247420-prefixed DS selector OR use !important. The offline vendoring mechanism (gzip Ha CSS blob in 247420.js + 3 CDN string consts Us/Za/_a) is still valid. DS Chat component ignores its sub prop and renders its own zero-padded '00 msgs' count in .chat-head .sub — hide via CSS. EventList rows are div.row[role=button] (click-to-expand) inside .ds-event-list.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-a52933cd6495e6f5-2624
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781793133390
|
|
5
|
-
updated: 1781793133390
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 15th run (2026-06-18): design-maturity sweep + dead-code + server-hardening, tracked by two Workflow-tool runs. gui-design-15 (wf_7ba315a1-9a9, 8 lenses, 59 agents -> 35 confirmed -> 33 applied in ../design kit) + gui-design-15b (wf_5b2861b2-717, 3 lenses history-settings/server-boundary/security, 25 agents -> 18 confirmed). Kit pushed 5251ffe; agentgui pushed 50d78bf. KIT design fixes: shape-distinct status discs + --stale token, composer cwd-input focus/invalid + .send.cancel neutral tone + code-card, --on-color saturated fills, collapsed-track resizer hide guards, 4 reduced-motion opt-in guards, NEW ShortcutList export (consumes orphaned .ds-shortcuts-hint/.ds-kbd legend CSS), Row detail prop (.ds-row-detail monospace pre - expanded history events no longer dump JSON into bold title), icon-led density picker (3 new shell.js icons rows/rows-tight/grid), pane-toggle relocated into .ws-crumb. DEAD CODE removed: static/ tree (webjsx.js+xstate.umd.min.js, referenced nowhere - SPA gets webjsx from kit dist), scripts/build-rippleui.mjs (self-ref only), scripts/copy-vendor.js (only built dead static/) + dropped copy-vendor from package.json postinstall. SERVER HARDENING (lib/, all preserve localhost-PASSWORD witness): terminal /api/terminal/* + WS-attach fail-closed unless PASSWORD+ENABLE_TERMINAL=1 (was open RCE) + drops client shell/env; /api/file+list fsAllowRoots includes server cwd only under PASSWORD/FS_ALLOW_CWD + secret-file block + env/conf/cfg/ini dropped from TEXT_EXTS (was exposing server tree+secrets); CSRF json-only + Origin==Host (dropped octet-stream/empty-CT bypass); constant-time SHA-256 token compare in http-handler _checkToken AND ws-setup; chat.sendMessage cwd confined via confineToRoots realPath; cookie conditional Secure+Max-Age; rate-limit honors XFF only under TRUST_PROXY=1 + failed-auth bucket penalty; health endpoint omits memory/projectsDir/allowRoots under health-exemption; CSP script-src drops unsafe-inline for per-request nonce threaded via asset-server.js onto bootstrap+hot-reload+importmap scripts (style-src keeps unsafe-inline for DS runtime style); agents.models wired through getModelsForAgent. confineToRoots/fsAllowRoots now EXPORTED from http-handler.js. Witnessed browser-4 localhost:3009/gm/?token: 0 console errors, CSP nonce did NOT break importmap/boot, ShortcutList 11 rows in overlay+settings, dark surface, 3 resizers, no h-scroll. validate-mutations 26/26 PASS live. test.js 10pass/0fail. RULE confirmed: git verbs target the agentgui repo only; the sibling kit repo (../design) is pushed via direct git (rebase onto concurrent writer).
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
key: mem-a86426ac44138c96-1606
|
|
3
|
-
ns: default
|
|
4
|
-
created: 1781966498992
|
|
5
|
-
updated: 1781966498992
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
agentgui 20th run iter13 (2026-06-20): verification + dependency audit. After the big removals (plugins etc), re-ran the dead-export scan -> 0 newly-orphaned exports (clean). DEPENDENCY AUDIT found package.json deps with ZERO references anywhere in source (lib/server/scripts/bin/electron/site, .js/.mjs/.cjs, no import/require, no bun-x/spawn-by-name): pure libraries execa, form-data, p-retry, zod, @agentclientprotocol/sdk (ACP impl is hand-rolled in acp-protocol.js, doesn't use the SDK) - these are DEFINITIVELY unused (libraries require an import). Plus CLI-named candidates ccfollow, @lanmower/ccf, webtalk (zero refs, but lower certainty - could be invoked by an external deploy wrapper). Agent CLI packages (@anthropic-ai/claude-code, @google/gemini-cli, @kilocode/cli, opencode-ai) are runtime binaries - KEEP. DID NOT remove autonomously: there are TWO lockfiles (bun.lock + package-lock.json); editing package.json without updating both drifts the lockfiles and breaks CI under --frozen-lockfile/npm ci, and doing it cleanly needs bun remove/install which triggers node-gyp rebuild + network (risky in sandbox). Flagged for DELIBERATE removal: run 'bun remove execa form-data p-retry zod @agentclientprotocol/sdk' (+ verify ccfollow/ccf/webtalk unused), update both lockfiles, confirm CI green. Run state at iter13: 9 substantive commits pushed (93773e2 acp-plugin, 4454082 models, c7de4f5 external-acp, 80d4b7c cli-wrapper, 509bf01 dead-exports, b076541 files-plugin, c5fd860 agents-plugin, e73ed0e plugin-system, af87d73 docs); ~860 lines removed; server/client/security/tests/docs all clean.
|