文件最后提交记录最后更新时间
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): sidebar updates immediately on message send Previously the left sidebar only refreshed after the server's chokidar- debounced projects_updated event (and a guard in useProjectsState was even dropping that update whenever the in-flight session's metadata changed). So sending a message in an existing session left lastActivity / sort-by-date order stale, and a brand-new session didn't appear at all until the user manually refreshed. Two-part fix: 1. useProjectsState: stop discarding projects_updated while a session is streaming — apply setProjects so the sidebar reflects the new updated_at, and only skip replacing selectedProject / selectedSession (to avoid disturbing the chat pane). 2. Add optimistic bumpSessionActivity: handleSubmit now calls it the instant the user clicks send, before the attachment upload, so the row reorders or a new-session-* placeholder appears immediately. preserveLoadedSessions drops temp placeholders the moment the real session shows up. SidebarV2 renders optimistic rows as inert (no click / context menu) with a "Sending…" subtitle and italic title, and suppresses the legacy "+ New Session — not saved yet" draft row whenever an optimistic row already represents the in-flight conversation. Co-authored-by: Cursor <cursoragent@cursor.com> 13 天前
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 天前