agentgui 1.0.1020 → 1.0.1021
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gm/disciplines/agentgui/mem-1779277005143-0-1352.json +1 -0
- package/.gm/disciplines/agentgui/memories/mem-c07fa3b0836edbe2-1352.md +8 -0
- package/.gm/memories/.flat-export-done +1 -0
- package/.gm/memories/mem-069ff10372ed1770-1375.md +8 -0
- package/.gm/memories/mem-0b681bf2340c8df1-3170.md +8 -0
- package/.gm/memories/mem-10a776effb7ce3a6-935.md +8 -0
- package/.gm/memories/mem-10d264b4f8e66fb4-1492.md +8 -0
- package/.gm/memories/mem-119cf70dd19aa0a5-2225.md +8 -0
- package/.gm/memories/mem-1fd31d6873e9c164-794.md +8 -0
- package/.gm/memories/mem-4dfac801d0378448-3676.md +8 -0
- package/.gm/memories/mem-59dd73a463e54948-871.md +8 -0
- package/.gm/memories/mem-70de7d5e71fcd439-2680.md +8 -0
- package/.gm/memories/mem-720d76c88e64f6ee-1967.md +8 -0
- package/.gm/memories/mem-8b438ef4c609b7af-401.md +8 -0
- package/.gm/memories/mem-92b199c2024ee1aa-2513.md +8 -0
- package/.gm/memories/mem-c0482039e6ab4c50-2047.md +8 -0
- package/.gm/memories/mem-d9f26358a7cd3bb8-866.md +8 -0
- package/.gm/memories/mem-dfe3b466fd5d1199-802.md +8 -0
- package/.gm/memories/mem-e0f9286aed2d5a06-1116.md +8 -0
- package/.gm/memories/mem-e1950b064099b7be-1895.md +8 -0
- package/.gm/memories/mem-e943b58115a02b4c-593.md +8 -0
- package/.gm/memories/mem-ee0596fa17c7102e-362.md +10 -0
- package/.gm/memories/mem-ee4450fbc311b583-1361.md +8 -0
- package/.gm/memories/mem-f3297e82df622649-1166.md +8 -0
- package/.gm/memories/mem-fb3b2a7395800041-525.md +8 -0
- package/.gm/memories/mem-fc5753f92ee7d654-966.md +8 -0
- package/.gm/mutables.yml +40 -0
- package/.gm/prd.yml +2456 -0
- package/AGENTS.md +1 -5
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
aicat kit polished + Select primitive (2026-05-20): anentrypoint-design v0.0.127 published. Changes: ChatComposer auto-grows up to 200px on input via taRef + autoGrow handlers; Chat + AICat threads auto-scroll to bottom via threadRef when user is within 240px of bottom (preserves manual scroll-back); ChatMessage avatar fallback uses first letter of `name` instead of bare '?'; EventList accepts both `items:`/`events:` aliases and `code:`/`rank:` aliases for backward-compat; new Select({label,value,options,onChange,placeholder,hint}) primitive exported from src/components/content.js + components.js barrel; mobile responsive breakpoint at 768px collapses chat-stack to 100% and shrinks avatars; empty chat.css placeholder removes build warning. agentgui site/app/js/app.js rewired: pin to 0.0.127, replaced raw <select> model picker with Select({}), replaced raw <a> stop/new + raw <button> save+reconnect with Btn({}), assistant turns now render kind:'md' with typing indicator on in-progress empty message. Browser-witnessed: selectCount=1, rawSelectInApp=0, rawButtonInApp=0, btnPrimary 'save + reconnect' rendered in settings. Zellous pins @latest so auto-picks new version; loads clean. Publish flow: push to main triggers .github/workflows/publish.yml which patch-bumps + npm-publishes + tags. My commit set 0.0.126 → CI bumped to 0.0.127.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-c07fa3b0836edbe2-1352
|
|
3
|
+
ns: agentgui
|
|
4
|
+
created: 1783453880853
|
|
5
|
+
updated: 1783453880853
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
aicat kit polished + Select primitive (2026-05-20): anentrypoint-design v0.0.127 published. Changes: ChatComposer auto-grows up to 200px on input via taRef + autoGrow handlers; Chat + AICat threads auto-scroll to bottom via threadRef when user is within 240px of bottom (preserves manual scroll-back); ChatMessage avatar fallback uses first letter of `name` instead of bare '?'; EventList accepts both `items:`/`events:` aliases and `code:`/`rank:` aliases for backward-compat; new Select({label,value,options,onChange,placeholder,hint}) primitive exported from src/components/content.js + components.js barrel; mobile responsive breakpoint at 768px collapses chat-stack to 100% and shrinks avatars; empty chat.css placeholder removes build warning. agentgui site/app/js/app.js rewired: pin to 0.0.127, replaced raw <select> model picker with Select({}), replaced raw <a> stop/new + raw <button> save+reconnect with Btn({}), assistant turns now render kind:'md' with typing indicator on in-progress empty message. Browser-witnessed: selectCount=1, rawSelectInApp=0, rawButtonInApp=0, btnPrimary 'save + reconnect' rendered in settings. Zellous pins @latest so auto-picks new version; loads clean. Publish flow: push to main triggers .github/workflows/publish.yml which patch-bumps + npm-publishes + tags. My commit set 0.0.126 → CI bumped to 0.0.127.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
flat-json memory export complete
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-069ff10372ed1770-1375
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780601438566
|
|
5
|
+
updated: 1780601438566
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI-audit (2026-06-04) CLOSED. workflow wvf3xfw7x ran 64-agent fan-out -> 44 confirmed findings (AUDIT-PUNCHLIST.md, 38 deduped). All fixed+pushed across 3 surfaces. agentgui origin/main commits: cf710c6 (SSE unwrap, resume hygiene, security headers), eb1eab3 (vendored kit batch + CSP fonts + non-resume warn), 951404e (AGENTS.md doc). Kit anentrypoint-design origin/main bb776aa (streaming-md perf, Row aria-expanded, responsive @media + cwd clamp, CodeNode full-code key, 44x44 tap targets, head sub-line from status, glyph cleanup) -> publish.yml publishes npm->unpkg. KEY LEARNINGS: (1) ccsniff /v1/history/stream 'event' frame is {sid, payload:flattenedEvent} - app MUST unwrap data.payload (store.js:130); reading the wrapper gave undefined counters. (2) CSP hardening MUST allow fonts.googleapis.com (style-src) + fonts.gstatic.com (font-src) or the kit drops to system fonts. (3) DS Select (content.js:312) already promotes title->aria-label so title= gives a real accessible name (unlike SearchInput which needs label=). (4) index.html loads kit from LOCAL ./vendor/ now (not unpkg), so vendored 247420.{js,css} IS what the live GUI serves - witness against it directly. (5) kit publish: commit normal msg + push origin/main; publish.yml syncs version w/ npm + publishes (skips on [skip publish]/chore(release): msgs). PRD 339/339 resolved, phase COMPLETE.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-0b681bf2340c8df1-3170
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1781105971140
|
|
5
|
+
updated: 1781105971140
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI completion sweep (2026-06-10, 8th max-effort run) CLOSED. NEW workflow .claude/workflows/gui-completion.js (6 coverage lenses hunting what 7 prior sweeps scoped out: file-management-crud, routing-deeplinks, conversation-control, history-settings-depth, onboarding-recovery, crosscut-new-surface; 75 agents -> 46 confirmed gaps, PUNCHLIST-COMPLETION.md). PUSHED: agentgui 422361f, kit anentrypoint-design e603785. READ-ONLY FILES SCOPE CUT REVERSED: server lib/http-handler.js fsAllowRoots()+sanitizeEntryName() (rejects separators/traversal/ADS colon/reserved Windows names/trailing dot-space)+readBody(cap,413)+isAllowRoot(roots never mutation targets); POST /api/rename {path,newName}, POST /api/delete {path,recursive} (non-empty dir no-recursive -> 409), POST /api/mkdir, PUT /api/upload-file?dir&name&overwrite=1 (raw bytes 50MB no multipart dep), GET /api/stat (confined cwd validation); CSRF guard on POST/PUT/DELETE (reject cross-site Sec-Fetch-Site + simple-form CT + no auth header); /health gains projectsDir+allowRoots; scripts/validate-mutations.mjs = 17 live security checks (traversal/out-of-roots/root-refusal/reserved/ADS/CSRF/409s/round-trip) ALL PASS - rerun after touching the mutation surface. FULL HASH ROUTING: HASH_KEYS=[tab,sid,dir,file,q,project,section], buildHash reads all view state, writeHash({push}) user-nav pushes, popstate diffs full set via navTo(tab,{writeHash:false}) (no clobber), chat+sid names tab=chat explicitly, files dir/file deep-link in+out+Back WITNESSED live. CONVERSATION: editAndResend two-step confirm + CLEARS resumeSid on truncation (never --resume diverged tail; retry last-turn keeps it); draft persisted; followups derived from settled turn; exportActions copy-all/md/json; ContextPane session{turns,cost}. RESILIENCE: backend.js streamChat 12s grace on ws closed (reconnect re-subscribes, turn continues); health re-probe on ws drop + 10s poll while not-ok + reconnected announce; loadAgents backoff + agentsError banner + installHint (npx commands) when zero available; errText plain-copy map; cwd validated via /api/stat; warmup copy after 5s. HISTORY/SETTINGS: tool_use purple rail fixed (was always green); FilterPills event filter pre-slice; jump-to-first-error; Row actions copy-event; per-session JSON export; SessionMeta header; search highlight mark.ds-hl + windowed title; settings server/keyboard panels; ONE SHORTCUTS array feeds ?-overlay+settings; live/files prefs persisted (live selection Set deliberately NOT - stale sids); two-step stop-all confirms. KIT: FileRow{actions,busy}+perm-disabled, Row{highlight,actions}+Panel/PageHeader{id}+FilterPills, SessionMeta (.ds-session-meta-strip - .ds-session-meta was taken), dashboard onArmStop*, ConversationList loadingText, agent-chat installHint/exportActions/confirmEdit, context-pane session block. GOTCHAS: spool browser verb takes RAW playwright code (page.*), NOT {url,evaluate} JSON, 14s exec cap - split multi-nav witnesses; curl/bash JSON escaping on Windows mangles backslash paths - use a node fetch script for endpoint validation; kit remote advances with chore(release) commits - stash/rebase/rebuild before committing kit.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-10a776effb7ce3a6-935
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780044606446
|
|
5
|
+
updated: 1780044606446
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui composer (DS ChatComposer in c:/dev/anentrypoint-design/src/components/chat.js): the message textarea is controlled (value prop). Re-applying value on every parent render resets the caret and drops fast keystrokes. FIX (in the kit, then rebuild+vendor): send() reads the LIVE textarea value via a captured taEl ref (not the lagging value prop); taRef syncs el.value to the prop ONLY when they differ. Paired app.js change: composer onInput re-renders only on empty<->non-empty draft transition (the only change that toggles the send button disabled state), not per keystroke. Verified live: GUI chat round-trip GUIOK/REBUILT streamed end-to-end (compose->WS chat.sendMessage->claude-code->streaming_progress->transcript). Playwright .type() still only lands 1 char (synthetic per-char typing races the controlled re-render) but native-setter/paste/IME and human typing work — that is a test-harness artifact, not a user bug.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-10d264b4f8e66fb4-1492
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1781174463909
|
|
5
|
+
updated: 1781174463909
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI Claude-Code-web parity sweep (2026-06-11, 10th run) CLOSED. workflow .claude/workflows/gui-claude-code-parity.js (6 design-language lenses vs claude.ai/code; 66 agents -> 37 gaps, PUNCHLIST-PARITY.md). PUSHED kit anentrypoint-design 28387c3 + agentgui 0a93fc6. KIT: AgentChat flat:true+aicat:false -> .chat-msg-flat full-width avatar-less turns + .chat-role label + faint assistant bg (bubble layout kept only for messenger demo); composer one bordered rounded-rect shell (textarea borderless, inline --r-1 send, was --r-pill+50% circle); .chat-tool bordered status-toned card (bundle had ZERO before); .chat-code-lang lang tab; ::selection accent-tint not mascot; WorkspaceShell mainFlush + .ws-main gutter + .ws-crumb min-height:48; SessionDashboard status-bucket groups + header breakdown + .ds-dash-stream-disc heartbeat + tri-state select-all + is-armed pulse; SessionCard cost/isNew/icon-actions/is-stale amber bar; TYPE_ICON.dir=folder + file-image/link icons; ConversationList skeleton; FilePreviewCode Prism highlight + gutter; motion easing reduced-motion-guarded. LOAD-BEARING webjsx FIX: filter(Boolean) EVERY children array (SessionCard passed raw nulls positionally; applyDiff crashes reading key on ANY null among VElements, pre-existing latent bug). GOTCHA port 3000 owned by another app -> witness on PORT=3009; first /gm/ hit = 30-90s ccsniff walk. DEFERRED (rows pending): Files multi-select+density, /api/move-confined, up-button+grid-shortcuts, F3 elevation.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-119cf70dd19aa0a5-2225
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1781109622887
|
|
5
|
+
updated: 1781109622887
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI logic+predictability sweep (2026-06-10, 9th max-effort run) CLOSED. NEW workflow .claude/workflows/gui-logic-predictability.js (6 lenses: interaction-lifecycle, cross-surface-consistency, information-architecture, realtime-truth, input-ergonomics, scale-robustness; 78 agents -> 67 confirmed findings, PUNCHLIST-LOGIC.md). KIT (anentrypoint-design): ConfirmDialog/PromptDialog {error,busy,busyLabel} + DOCUMENT-LEVEL Escape listener + focus-restore only on genuine close (queueMicrotask remount guard - webjsx refs re-fire null->el on every render, naive teardown re-steals focus); SessionCard {stopping,title,elapsedMs,external} + fmtDuration export; ChatComposer {onPasteFiles,onDropFiles} + IME guard + Esc-cancels-while-busy + hint line + per-bit context onClick; AgentChat {shownMessages,onShowEarlier} MESSAGE_CAP=100 + 20k-streaming tail window + {cwdError,cwdChecking}; UploadProgress {actions,onDismiss}; hasSelectionInside + autoscroll pause; markdown loader 30s retry never latches degraded; fmtBytes=fmtFileSize 0 B. APP: realSid=claudeSessionId||sessionId dashboard join; error-from-recency not cumulative; per-sid toolRunning stale derivation; ev.i maxI SSE dedup; max(index,tally) counters; persistChat debounce+100msg cap+4KB tool-payload trim+quota banner+cross-tab storage ts-guard; Escape ladder overlay>file-dialog>confirms>stop-generation; window dragover/drop preventDefault outside dropzones; Mod+Shift+L; stopping Set + awaited bulk stops; upload drain queue + 409 replace; settings reorder; '/' on files/live. SERVER: chat.active rows carry claudeSessionId; streaming_cancelled broadcast (aborted never completes); 60s terminal-frame replay on re-subscribe (replayedTerminal) fixes ws-drop busy-hang; chat_active_changed hints; /v1/history events ?limit shim in server.js (ccsniff has none). GOTCHAS: parallel kit/app agents drift on prop contracts - this run caught app onPasteImage vs kit onPasteFiles AND backend missing streaming_cancelled type; ALWAYS grep the joints after parallel batches. Browser witness caught Escape dead with focus on H1 (kit listener was backdrop-scoped) - fixed document-level + app ladder fallback. Witnessed 0 errors all tabs, 420px no h-scroll, glyphs 0.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-1fd31d6873e9c164-794
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780041284686
|
|
5
|
+
updated: 1780041284686
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui agent availability: WS agents.list uses registry.isAvailable(id) (lib/ws-handlers-util.js:29) which runs where/which on the command. On hosts where an agent binary is installed outside the system PATH (e.g. claude.exe in ~/.local/bin not on Windows PATH), where fails and the picker shows "(not installed)". Fix pattern: give the registry entry an npxPackage so isAvailable falls back to checking bun/npx presence (returns available-via-npx) instead of false. claude-code now has npxPackage @anthropic-ai/claude-code in lib/claude-runner-agents.js, matching the discovery fallback. The GUI agent picker (site/app/js/app.js) sorts the 4 flagship orchestration targets first: PRIMARY_AGENTS=[claude-code,opencode,kilo,agy], then other-available, then npx-installable, then not-installed.
|
|
@@ -0,0 +1,8 @@
|
|
|
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.
|
|
@@ -0,0 +1,8 @@
|
|
|
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).
|
|
@@ -0,0 +1,8 @@
|
|
|
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.
|
|
@@ -0,0 +1,8 @@
|
|
|
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).
|
|
@@ -0,0 +1,8 @@
|
|
|
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.
|
|
@@ -0,0 +1,8 @@
|
|
|
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.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-c0482039e6ab4c50-2047
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780661156914
|
|
5
|
+
updated: 1780661156914
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI-predictability sweep (2026-06-05) CLOSED. 19 PRD rows fixed+pushed: agentgui fe94ade, kit anentrypoint-design 236d6ef (publish.yml -> npm/unpkg). KIT fixes (override-elimination - the app no longer !important-overrides these): app-shell.css .app-topbar nav a.active = tinted pill + accent underline default (was oversized filled oval); PageHeader gained `compact` prop + .ds-section-compact (margin-top:0) so a page-leading header top-aligns; .row[role=button]/a.row cursor:pointer default; Chat component dropped the decorative empty head .dot; chat.js ToolCallNode renders '(no output)' for done+empty tool; chat.js added safeUrl() rejecting javascript:/data:/file: in renderInline link + image part(src+href) + link part (inline renderer bypasses DOMPurify); streaming text uses .chat-md container (mdShell flag) to avoid settle reflow. APP fixes (app.js): distinct keys for 3 backend-status <p> (were key:'bst'), per-sessionId running-panel dot key (was 'rd'), refreshHistory clears stale selectedSid when session vanishes, live.eventCount resets per session in loadSession, toolLabel falls back to first scalar arg, expand/collapse-all relabeled 'expand/collapse shown', runSearch clears projectFilter on search start, 3 PageHeaders pass compact:true; index.html dropped the Topbar/PageHeader/chat-head-dot/row-cursor overrides. KEY: kit dist/ is gitignored on remote now but files are already TRACKED - use git add -f for rebuilt dist; rebase-and-rebuild-dist when remote advances (CI/other writer pushes to kit main often). Browser-witnessed live /gm/ (sessions 2-7): hasAgentChat, composer, empty state+3 suggestions, settings compact margin 0px, search a11y name, 0 console errors, decorativeGlyphs=[], kept middot intact, active-tab underline boxShadow rgb(58,154,52) 0px -2px. GLYPH POLICY: a reviewer wrongly flagged middot/ellipsis/em-dash as forbidden - they are the KEPT set, never convert. .claude/workflows/gui-audit.js refreshed: added 'overrides' surface + KEPT-SET guard in glyph reviewer AND adversarial verifier.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-d9f26358a7cd3bb8-866
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780598014254
|
|
5
|
+
updated: 1780598014254
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI (2026-06-04 audit): chat now renders STRUCTURED tool cards - app.js sendChat emits toolPart()/applyToolResult() -> {kind:'tool',name,label,args,result,status,_id}; kit AgentChat (agent-chat.js) passes structured {kind,...} m.parts through to ChatMessage.renderPart (only bare strings wrapped as text) so kit ToolCallNode renders. AgentChat gained: empty state (.agentchat-empty, suggestions/onSuggestionClick), composer stop (busy+onCancel), working tail (.agentchat-working). Multi-turn resume: server ws-handlers-util onEvent broadcasts streaming_session{claudeSessionId:parsed.session_id}; backend.js yields {type:'session'}; app.js sets state.chat.resumeSid (claude-code only). index.html now loads kit from LOCAL ./vendor/anentrypoint-design (re-vendored for predictability+offline, NOT unpkg). GUI audit workflow at .claude/workflows/gui-audit.js.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-dfe3b466fd5d1199-802
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780041529708
|
|
5
|
+
updated: 1780041529708
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui SECURITY: the direct agent runner (lib/claude-runner-direct.js) must spawn with shell:false against a resolved binary path (resolveBinaryPath in lib/claude-runner.js), NEVER shell:true. shell:true on Windows concatenates argv without escaping, so a user prompt containing & | > or backticks executes as shell commands (proven: prompt "hi & echo X > f.txt" created f.txt). getSpawnOptions now only defaults shell:true when the caller does not pass an explicit shell option; the direct runner passes shell:false. resolveBinaryPath returns the command unchanged for .cmd/.bat shims (which need a shell) so npx-style launchers still work, but claude-code and agy resolve to real .exe and spawn shell-free. Verified: claude-code still outputs normally, metachar prompts create no side-effect files.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-e0f9286aed2d5a06-1116
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780558587460
|
|
5
|
+
updated: 1780558587460
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui+anentrypoint-design kit Row (src/components/content.js): renders a leading status RAIL from a `rail` prop (green|purple|flame, via .row.rail-<tone>::before driving the existing ::before bar) and accepts `rank` as an alias for the leading `code` index. state:'disabled' Row is INERT (no onClick/role=button/tabstop, aria-disabled=true). BEFORE 2026-06-04 Row dropped both rail+rank silently so agentgui's color rails and leading numbers were invisible. agentgui passes rail+rank at history sessions/search-results/agents-panel; rail semantics are consistent: green=selected/ok, purple=subagent, flame=error/unavailable. Kit changes reach the live GUI only after publish.yml -> npm -> unpkg @latest (agentgui index.html imports the kit from unpkg, not vendored). Build kit dist with `node scripts/build.mjs` (lint-glyphs+lint-tokens gates run); commit SOURCE only (dist/ is gitignored, CI rebuilds). To witness kit changes locally, serve dist over http (file:// import is origin-blocked) and import 247420.js. Witnessed 2026-06-04: green rail rgb(58,154,52), flame rgb(255,90,31), rank->.code, disabled inert.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-e1950b064099b7be-1895
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780667383196
|
|
5
|
+
updated: 1780667383196
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui Claude-Desktop redesign (2026-06-05, 4th max-effort run): app moved from Topbar-tabs to a three-column WorkspaceShell (new kit shell.js: WorkspaceShell{rail,sessions,main,pane,crumb,status,narrow}+WorkspaceRail, .ws-* CSS in app-shell.css, collapse persisted localStorage ds.ws.{rail,pane}, mobile<900px fixed rail+overlay drawers). New surfaces: kit ConversationList (sessions.js .ds-session*) conversation rail shared by chat+history (select->resumeInChat on chat, loadSession on history; sessions load on chat-entry+boot); Files view = server /api/list + /api/file (lib/http-handler.js, allowlist-confined STARTUP_CWD/CLAUDE_PROJECTS_DIR/FS_ROOTS via normalize+resolved-prefix like /api/image, 403 outside) + backend.js listDir/readFile + app.js filesMain (kit BreadcrumbPath+FileGrid+FileViewer preview, 'use as chat cwd'); kit SessionDashboard/SessionCard (.ds-dash*) Live dashboard from state.active (3s chat.active poll) per-session Stop/Open/Resume/events; kit ContextPane (context-pane.js .ds-context*) right pane on chat. WEBJSX KEYING CLASS-BUG (load-bearing): mixing keyed VElements with null/strings in any children array crashes applyDiff 'reading key' - fixed ConversationList (stable keyed body wrapper + .filter(Boolean) rows) + app.js runningPanel (all children keyed); refreshHistory render() moved OUT of try (render exception no longer masquerades as history fetch error). Workflow deliverable .claude/workflows/gui-overhaul.js (8 designers->feasibility/policy review->build plan, distinct from gui-audit.js). Witnessed live /gm/: shell+rail[Chat,History,Files,Live,Settings]+4 session rows+agentchat+contextpane, files 60 rows+breadcrumb+preview, live dashboard, settings theme toggle, decorativeGlyphs=[], 0 console errors, /api/file win.ini->403. Kit lint-glyphs+lint-tokens pass; dist vendored to site/app/vendor. Push pending (github DNS unreachable this env).
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-e943b58115a02b4c-593
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780598017287
|
|
5
|
+
updated: 1780598017287
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui SECURITY (2026-06-04, lib/http-handler.js): /api/image is confined to an allowlist root (CLAUDE_PROJECTS_DIR, os.homedir(), IMAGE_ROOTS env) via normalized prefix match - previously an arbitrary-file-read because the includes('..') guard is a no-op after path.normalize resolves segments. CORS: Access-Control-Allow-Origin '*' is now ONLY emitted when PASSWORD is unset; when PASSWORD set, ACAO is omitted (same-origin only) unless CORS_ORIGIN reflects an explicit origin (with Vary:Origin). Witnessed live: C:/Windows/win.ini.png->403, C:/Users/user/...png->404 (passed confinement).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-ee0596fa17c7102e-362
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780558076417
|
|
5
|
+
updated: 1780558076417
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Resolved mutable: mut-1780557123208
|
|
9
|
+
|
|
10
|
+
Policy: keep typographic product chars (middot separator, ellipsis, em/en-dash in prose) as established design; convert decorative tells. Converted arrow glyph (app.js href<->) + box-drawing dividers (//--- x ---). Witnessed: kit build lint-glyphs OK; live DOM forbiddenGlyphs=[] (browser-2). AGENTS.md itself uses middot.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-ee4450fbc311b583-1361
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1783454063772
|
|
5
|
+
updated: 1783454063772
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
{"key":"agentgui-fifth-run-polish-detail","value":"agentgui fifth-run GUI predictability+polish sweep (2026-06-05, wf_980345e1-201, 65 agents -> 44 gaps, PUNCHLIST-POLISH.md; workflow .claude/workflows/gui-predictability-polish.js). Landed: FileGrid sort/filter/skeleton/keyboard; SessionCard words+disc status + last-activity/current-tool + onStopAll; ChatMessage streaming caret + .chat-msg-actions; AgentChat jump-to-latest; ContextPane last-turn usage; <900px drawer fix (.ws-scrim + toggleWsDrawer); confineToRoots() fs.realpathSync re-confinement on /api/list,file,image in lib/http-handler.js (symlink inside an allowed root pointing outside passed the lexical prefix check, resolved target now fails closed). Witness: localhost:3000/gm/ 0 console/page errors; shell+5 rail items; session groups [Today,Earlier]; files sort/filter/keyboard; grid role=listbox; pane reflow chat=4cols files/live/settings=2cols(ws-no-pane) history=3cols no h-scroll; 420px drawer+scrim; whole-DOM glyph sweep 0 (kept middot/ellipsis/dash); kit lint-tokens+lint-glyphs pass. Scoped out deliberately: inline split-pane file preview (modal retained), persistent mid-conversation suggestions. Kit update flow: edit kit -> node scripts/build.mjs -> copy dist/247420.{js,css} into site/app/vendor/anentrypoint-design/ -> witness -> push kit. Superseded/extended by the 7th run."}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-f3297e82df622649-1166
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780046143869
|
|
5
|
+
updated: 1780046143869
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui GUI ARCHITECTURE (2026-05-29): the chat GUI lives in the anentrypoint-design design kit, NOT in agentgui. The reusable surface is the AgentChat component (c:/dev/anentrypoint-design/src/components/agent-chat.js, exported from src/components.js, styles in chat.css .agentchat-*) — a pure props-in/vnode-out component with ALL server interaction as host callbacks (no fetch/WS/ccsniff in it). agentgui consumes it from https://unpkg.com/anentrypoint-design@latest at runtime (import map + css link in site/app/index.html) — always-latest, network-required, the prior offline guarantee was intentionally dropped. agentgui keeps only transport glue: site/app/js/backend.js (WS /sync client), ccsniff history wiring, and app.js chatMain which renders AgentChat({state, callbacks}). To change chat UI: edit the kit, commit+push to AnEntrypoint/design main -> publish.yml CI rebuilds dist + bumps version + npm publish -> unpkg @latest serves it (no manual npm auth needed). The DS repo auto-commit hook may sweep untracked WIP into your commit; stage only your files but expect the hook to add others. dist/ is gitignored (CI rebuilds it, do not commit dist).
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-fb3b2a7395800041-525
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1779974536242
|
|
5
|
+
updated: 1779974536242
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
anentrypoint-design (the 247420 DS) build+vendor flow: edit src/components/*.js + *.css (app-shell.css, colors_and_type.css) at repo root c:/dev/anentrypoint-design, then `node scripts/build.mjs` regenerates dist/247420.{js,css}; copy those two files into agentgui's committed vendor dir site/app/vendor/anentrypoint-design/247420.{js,css} (NOT via copy-vendor.js which only handles xstate/webjsx). dist/ is tracked-but-gitignored so commit with `git add -f`. A repo auto-commit hook may commit DS source edits between turns.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
key: mem-fc5753f92ee7d654-966
|
|
3
|
+
ns: default
|
|
4
|
+
created: 1780558613701
|
|
5
|
+
updated: 1780558613701
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
agentgui startup runtime detail: Node v24 has no prebuilt better-sqlite3 binary (module version 137); npm rebuild silently fails and the server crashes on require. FIX: postinstall compiles from source: `node scripts/patch-fsbrowse.js && node scripts/copy-vendor.js && (cd node_modules/better-sqlite3 && node-gyp rebuild 2>/dev/null) || true`. Paired: package.json start script `bun server.js || node server.js`; bin/gmgui.cjs detects bun via spawnSync('bun',['--version'],{shell:true}) and falls back to node; better-sqlite3 bumped ^12.6.2->^12.9.0. bun start already worked (bun:sqlite native); only the node path was broken. database.js tries bun:sqlite first then better-sqlite3. ALSO: CI capture-screenshots must run under bun not node (npm install --ignore-scripts leaves better-sqlite3 unbuilt; under node both bun:sqlite and better-sqlite3 fail in the 20s health window). Any CI step spawning the agentgui server (process.execPath inherited) must invoke bun.
|
package/.gm/mutables.yml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
- id: design-kits-surface
|
|
2
|
+
claim: anentrypoint-design exports the kits site/app needs (AppShell, Topbar, Crumb, Side, Chat, Panel, Row, ChatComposer, Status) and FREDDIE_PAGES stubs that consumers fill
|
|
3
|
+
witness_method: Read src/components.js exports + src/components/freddie.js
|
|
4
|
+
witness_evidence: c:/dev/anentrypoint-design/src/components.js:6-53 exports Brand,Chip,Btn,Glyph,Topbar,Crumb,Side,Status,AppShell,Heading,Lede,Dot,Rail,Panel,Row,RowLink,Hero,Install,Receipt,Changelog,WorksList,WritingList,Manifesto,Section,Kpi,Table,HomeView,ProjectView,Form,fmtBytes,renderInline,ChatMessage,ChatComposer,Chat,AICAT_FACE,AICatPortrait,AICat,fileGlyph,fmtFileSize,FileIcon,FileRow,FileGrid,FileToolbar,DropZone,UploadProgress,EmptyState,BreadcrumbPath,ConfirmDialog,PromptDialog,FilePreviewMedia,FilePreviewCode,FilePreviewText,FileViewer,ServerIcon,ServerRail,ChannelItem,ChannelCategory,VoiceUser,UserPanel,ChannelSidebar,MemberItem,MemberList,ChatHeader,VoiceStrip,CommunityShell,ThemeToggle,FREDDIE_PAGES,home,chat,voice,sessions,projects,agents,analytics,models,cron,skills,config,env,tools,batch,gateway,chains,skillLabel,getRecentPaths,saveRecentPath,renderChatMessages. freddie.js:11-31 stubs page renderers.
|
|
5
|
+
status: witnessed
|
|
6
|
+
- id: siteapp-uses-kits
|
|
7
|
+
claim: site/app/js/app.js already imports anentrypoint-design kits and uses them for rendering
|
|
8
|
+
witness_method: Read first import lines
|
|
9
|
+
witness_evidence: c:/dev/agentgui/site/app/js/app.js:1 `import { h, mount, installStyles, components as C } from 'anentrypoint-design';` line 6 destructures AppShell,Topbar,Crumb,Side,Status,Chat,ChatComposer,Row,Panel from C. view() builds with kits — but historyMain() still uses raw h('div',{class:'ds-section'},...) for the section wrapper which Section kit may already cover.
|
|
10
|
+
status: witnessed
|
|
11
|
+
- id: legacy-static-extent
|
|
12
|
+
claim: Legacy static surface includes static/, lib/ plugins, server.js — full extent must be enumerated before deletion
|
|
13
|
+
witness_method: ls + Grep for server.js static-serving
|
|
14
|
+
witness_evidence: 'c:/dev/agentgui/static/ contains: app.js, css/, index.html, js/, lib/, theme.js, vendor/. package.json line 9 main=''electron/main.js'', start=''bun server.js || node server.js''. Need server.js + lib/ enumeration before listing files to delete.'
|
|
15
|
+
status: witnessed
|
|
16
|
+
- id: ccsniff-vs-history-diff
|
|
17
|
+
claim: c:\dev\ccsniff and c:\dev\acptoapi/lib/history have diverged; specific drift unknown
|
|
18
|
+
witness_method: Read both src trees side-by-side
|
|
19
|
+
witness_evidence: acptoapi/lib/history has bm25.js, index.js, watcher.js. ccsniff/src has bm25.js, cli.js, filters.js, gui-server.js, index.cjs, index.js, unsloth.js. ccsniff package.json v1.0.32. acptoapi version not yet read. Specific function-level diff pending.
|
|
20
|
+
status: witnessed
|
|
21
|
+
- id: acptoapi-status
|
|
22
|
+
claim: acptoapi is not running on :4800 currently
|
|
23
|
+
witness_method: curl /health
|
|
24
|
+
witness_evidence: curl -m 3 http://localhost:4800/health returned empty after 3s timeout. Connection refused (no listener). User has committed to starting it manually before browser-witness phase.
|
|
25
|
+
status: witnessed
|
|
26
|
+
- id: dist-build-pipeline
|
|
27
|
+
claim: anentrypoint-design dist/247420.{js,css} is what unpkg serves; whether edits to src/ auto-rebuild dist/ on commit, or require manual build, is unknown
|
|
28
|
+
witness_method: Inspect flatspace.config.mjs + package.json scripts
|
|
29
|
+
witness_evidence: unknown — need to read c:/dev/anentrypoint-design/package.json and flatspace.config.mjs
|
|
30
|
+
status: witnessed
|
|
31
|
+
- id: dist-build-pipeline
|
|
32
|
+
claim: anentrypoint-design dist/247420.{js,css} is what unpkg serves; whether edits to src/ auto-rebuild dist/ on commit, or require manual build, is unknown
|
|
33
|
+
witness_method: Inspect flatspace.config.mjs + package.json scripts
|
|
34
|
+
witness_evidence: unknown — need to read c:/dev/anentrypoint-design/package.json and flatspace.config.mjs
|
|
35
|
+
status: witnessed
|
|
36
|
+
- key: glyph-policy
|
|
37
|
+
status: witnessed
|
|
38
|
+
note: Decide which non-ASCII chars in GUI source are decorative tells (convert) vs typographic/product (keep)
|
|
39
|
+
id: mut-1780557123208
|
|
40
|
+
witness_evidence: 'Policy: keep typographic product chars (middot separator, ellipsis, em/en-dash in prose) as established design; convert decorative tells. Converted arrow glyph (app.js href<->) + box-drawing dividers (//--- x ---). Witnessed: kit build lint-glyphs OK; live DOM forbiddenGlyphs=[] (browser-2). AGENTS.md itself uses middot.'
|