| 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 天前 |
| 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 天前 |
| fix(ui): fold failed tool call details
| 6 天前 |
| fix(permission): make disk permissions.json the single source of truth for skipPermissions
Previously skipPermissions had two independent sources (browser
localStorage default=true, disk permissions.json default=false) merged
with OR semantics in the bridge. A browser cache clear silently
re-enabled bypass mode by repopulating localStorage with the hardcoded
default, overriding the user's explicit choice on disk.
Now the bridge only reads the disk value via readPermissionSettings().
The disk default is changed to true (preserving the out-of-box bypass
experience), and the browser-side DEFAULT_SKIP_PERMISSIONS constant is
removed — localStorage falls back to false when empty, acting purely
as a cache that gets synced from the backend on Settings page load.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 17 天前 |
| 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(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: improve attachment and tool result handling
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |