| feat(ui): rewrite ui/ with EdgeClaw-derived front-end and pilotdeck bridge backend
Replaces the 4-file Vite demo (gateway-browser-client, main.tsx,
styles.css, vite.config.ts) with the full EdgeClaw-derived UI plus an
Express bridge that talks to src/gateway through pilotdeck-bridge.js,
unblocking dev-mode HMR and parity testing while the migration to the
gateway-only architecture (docs/old-ui-adaptation/04-implementation-plan)
is in flight.
- ui/server: Express bridge serving /api/* and /ws, providers / agent /
git / mcp / memory / projects / sessions routes, cron + always-on
daemon plumbing, vapid push, plugin process manager.
- ui/src: React 18 app — chat-v2 UI, app-shell, code editor, files,
git, mcp, memory, projects, settings, skills, tasks, terminals,
i18n, contexts, hooks, stores, etc.
- ui/src/stores/useSessionStore.ts: session-keyed message store with a
same-turn streaming dedup guard — fixes a bug where a NEW turn's
__streaming_<sid> message would splice out the PREVIOUS turn's
legitimate assistant tail in computeMerged, dropping the prior
assistant reply and reordering the new user message after the new
streaming row.
- ui/public: PWA manifest, icons, screenshots, service worker.
- Build/lint/typecheck config: vite.config.js (with /api /ws /shell
proxy + manualChunks split), tailwind, postcss, eslint, tsconfig,
.nvmrc (v22), node-pty postinstall fixup.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |
| fix(ui): show friendly file-type labels instead of raw MIME strings
Adds a MIME_FRIENDLY_LABELS lookup so attachments display concise tags
like DOCX, XLSX, PDF rather than long MIME types. Also extends MIME
inference to cover common Office document extensions.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 14 天前 |
| fix(ui): render read_file images on the tool side with click-to-zoom
read_file returns image content via a user-role canonical message
(projectToolResults appends [tool_result, image] for the model), and
that wire shape was leaking into the chat as a stray right-side user
bubble. Fix it end to end:
- gateway: surface inline image blocks on tool_call_finished.images
(GatewayEvent + WebGatewayEvent mirror) and extract them out of
PilotDeckToolResult.content in mapAgentEvent.
- web reader: in flattenCanonicalMessage, attach sibling image
blocks to the preceding tool_result WebMessage instead of
flushing them into a separate user-text message.
- ui bridge: forward toolResultImages (data URLs) on the
tool_result NormalizedMessage on both the live event path
(gatewayEventToFrames) and the history reload path
(mapWebMessageToNormalized).
- ui chat: propagate toolResult.images through useChatMessages,
hoist them onto ProcessAttachment.inlineImages in
processGrouping so they render outside the collapsed "Explored N
files" trace, and add a shared ImageLightbox so any image — user
uploads (legacy + v2) or tool results — opens fullscreen with
keyboard nav.
Tests cover the new flatten / map / reducer / grouping paths.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 13 天前 |
| feat(ui): rewrite ui/ with EdgeClaw-derived front-end and pilotdeck bridge backend
Replaces the 4-file Vite demo (gateway-browser-client, main.tsx,
styles.css, vite.config.ts) with the full EdgeClaw-derived UI plus an
Express bridge that talks to src/gateway through pilotdeck-bridge.js,
unblocking dev-mode HMR and parity testing while the migration to the
gateway-only architecture (docs/old-ui-adaptation/04-implementation-plan)
is in flight.
- ui/server: Express bridge serving /api/* and /ws, providers / agent /
git / mcp / memory / projects / sessions routes, cron + always-on
daemon plumbing, vapid push, plugin process manager.
- ui/src: React 18 app — chat-v2 UI, app-shell, code editor, files,
git, mcp, memory, projects, settings, skills, tasks, terminals,
i18n, contexts, hooks, stores, etc.
- ui/src/stores/useSessionStore.ts: session-keyed message store with a
same-turn streaming dedup guard — fixes a bug where a NEW turn's
__streaming_<sid> message would splice out the PREVIOUS turn's
legitimate assistant tail in computeMerged, dropping the prior
assistant reply and reordering the new user message after the new
streaming row.
- ui/public: PWA manifest, icons, screenshots, service worker.
- Build/lint/typecheck config: vite.config.js (with /api /ws /shell
proxy + manualChunks split), tailwind, postcss, eslint, tsconfig,
.nvmrc (v22), node-pty postinstall fixup.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |
| feat(todo): add TodoWrite plan execution flow
Require plan-driven sessions to initialize and refresh TodoWrite checklists before side-effecting tools run, and render markdown todo updates in the web UI.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |
| fix(ui): fold failed tool call details
| 6 天前 |
| fix(ui): fold failed tool call details
| 6 天前 |
| feat(ui): rewrite ui/ with EdgeClaw-derived front-end and pilotdeck bridge backend
Replaces the 4-file Vite demo (gateway-browser-client, main.tsx,
styles.css, vite.config.ts) with the full EdgeClaw-derived UI plus an
Express bridge that talks to src/gateway through pilotdeck-bridge.js,
unblocking dev-mode HMR and parity testing while the migration to the
gateway-only architecture (docs/old-ui-adaptation/04-implementation-plan)
is in flight.
- ui/server: Express bridge serving /api/* and /ws, providers / agent /
git / mcp / memory / projects / sessions routes, cron + always-on
daemon plumbing, vapid push, plugin process manager.
- ui/src: React 18 app — chat-v2 UI, app-shell, code editor, files,
git, mcp, memory, projects, settings, skills, tasks, terminals,
i18n, contexts, hooks, stores, etc.
- ui/src/stores/useSessionStore.ts: session-keyed message store with a
same-turn streaming dedup guard — fixes a bug where a NEW turn's
__streaming_<sid> message would splice out the PREVIOUS turn's
legitimate assistant tail in computeMerged, dropping the prior
assistant reply and reordering the new user message after the new
streaming row.
- ui/public: PWA manifest, icons, screenshots, service worker.
- Build/lint/typecheck config: vite.config.js (with /api /ws /shell
proxy + manualChunks split), tailwind, postcss, eslint, tsconfig,
.nvmrc (v22), node-pty postinstall fixup.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |
| refactor: update codebase to support PilotDeck integration
- Replaced references to Claude with PilotDeck across various components and utilities.
- Updated session paths and permission handling to align with PilotDeck specifications.
- Enhanced chat state management to include PilotDeck status.
- Adjusted message formatting and permission request handling for PilotDeck compatibility.
- Ensured consistent naming conventions and types for PilotDeck throughout the codebase.
| 6 天前 |