| 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(ui): unify WS command type to pilotdeck-command, eliminate SessionProvider multi-branch
Replace four provider-specific WS message types (claude-command, cursor-command,
codex-command, gemini-command) with a single pilotdeck-command. This fixes several
bugs caused by the four-way branching: cursor not passing permissionMode, codex
stripping plan mode, claude-only image support, and codex-specific cyclePermissionMode.
- New sessionLauncher.ts replaces claudeSessionLauncher.ts with unified options
- Merge four per-provider model states into single model/setModel
- Remove __provider tag, cursorSessions/codexSessions/geminiSessions from types
- Unify session deletion to single api.deleteSession() path
- Remove cursor-specific sessionStorage tracking
- cyclePermissionMode now includes plan mode for all providers
- Backend keeps deprecated command types for back-compat
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 天前 |