文件最后提交记录最后更新时间
chore: cleanup, fix Docker build, add URLs and skill acknowledgements - Remove 6 dead asset files (duplicates, old branding PNGs) - Replace "Claude Task Master" with "TaskMaster" in i18n, add zh-CN/tasks.json - Set README URLs to https://pilotdeck.openbmb.cn/ - Add skill source acknowledgements (Anthropic Skills, MiniMax-AI, Karpathy) - Fix Docker build: add pnpm-workspace.yaml, regenerate complete lockfile (2009→11033 lines), add pnpm.onlyBuiltDependencies for native modules Co-authored-by: Cursor <cursoragent@cursor.com> 7 天前
fix: allow workspace selection from any filesystem path (fixes #20) - Remove /tmp from FORBIDDEN_PATHS so /tmp subdirs can be workspaces - Change folder browser getParentPath('~') to return '/' instead of null, allowing navigation above home to reach /Volumes, /mnt, /tmp, etc. - Skip validateWorkspacePath in browse-filesystem endpoint — browsing is read-only; workspace creation endpoints still enforce the blacklist 5 天前
chore(branding): complete cleanup of legacy CloudCLI/Claude Code references - CLOUDCLI_DISABLE_LOCAL_AUTH → PILOTDECK_DISABLE_LOCAL_AUTH - CLOUDCLI_CRON_DAEMON_* → PILOTDECK_CRON_DAEMON_* - CLOUDCLI_GITHUB_STARS → PILOTDECK_GITHUB_STARS - ~/.claude-code-ui/plugins/ → ~/.pilotdeck/plugins/ - claudecodeui-server → pilotdeck-server - edgeClawConfig i18n key → pilotDeckConfig (248 refs in TSX + settings.json) - claude-code-main source provenance comments → generic descriptions - CloudCLI user-facing strings → PilotDeck - DEFAULT_PROVIDER_FALLBACK "edgeclaw" → "pilotdeck" - .claude/ config home → .pilotdeck/ in cron daemon services Co-authored-by: Cursor <cursoragent@cursor.com> 9 天前
fix(ui): broadcast websocket reconnect to all subscribers and remove debug logs Dispatch the websocket-reconnected message to all registered subscribers on reconnect, not just via React state. This ensures stream-delta accumulators immediately know about the reconnection. Also strip leftover debug fetch() instrumentation from chat hooks. Co-authored-by: Cursor <cursoragent@cursor.com> 19 天前
fix: align web session path sanitization Co-authored-by: Cursor <cursoragent@cursor.com> 6 天前
feat: add PilotDeck support to onboarding and authentication flows - Updated cliProviders to include 'pilotdeck'. - Added PilotDeck provider details in AgentConnectionsStep. - Extended CliProvider type to include 'pilotdeck'. - Implemented PilotDeck specific command and title in ProviderLoginModal. 6 天前
chore(branding): rename EdgeClaw / CloudCLI / CloudUI surface to PolitDeck Brings the UI's user-visible branding in line with the PolitDeck name across browser tab, PWA manifest, favicons, settings panel, login / loading / setup screens, sidebar app title, chat composer placeholder, push notifications, GitHub PR template, and internal localStorage keys. User-visible surfaces: * index.html: <title>, apple-mobile-web-app-title, favicon / icon links now carry a ?v=pd1 cache-buster so existing browsers re-fetch the new visuals on next load (the browser's native favicon DB is not cleared by Cmd+Shift+R). * manifest.json: name / short_name / description swapped to PolitDeck; icon URLs also carry ?v=pd1. * sw.js: CACHE_NAME bumped to "politdeck-v1" so the activate handler purges the old "claude-ui-v2" cache (incl. cached manifest); push- notification default title is now "PolitDeck". * favicon.svg, logo.svg: "EC" text glyph → "PD". * favicon.png, logo-128/256.png, icons/icon-{72,96,128,144,152,192, 384,512}.png: regenerated from logo.svg via sharp so every raster size matches the new glyph. * server startup banner: "CloudCLI Server - Ready" → "PolitDeck Server - Ready"; TIP message now suggests pilotdeck status. * GitHub PR template, push notification title fallback, downloaded permissions / memory bundle filenames updated. * i18n (en + zh-CN): sidebar.app.title, common.loading, chat.composer.{placeholder,welcomePlaceholder}, auth.signIn.description, settings.config.loading, settings.memory.description. npmUpgradeCommand switched to git pull && npm run build because PolitDeck isn't published on npm. * React components: AuthLoadingScreen, AuthScreenLayout, LoginForm, SetupForm (incl. logo alt), ChatInterfaceV2 placeholder fallback, AppShellV2 delete-project copy, MainAreaV2 comment. Internal type / file renames (cosmetic): * hooks/useEdgeClawConfig.ts → hooks/usePilotDeckConfig.ts * settings/view/tabs/EdgeClawConfigTab.tsx → PilotDeckConfigTab.tsx * EdgeClawConfig type → PilotDeckConfig; EdgeClawConfigLike → PilotDeckConfigLike. * localStorage keys: edgeclaw:customProjectNames → pilotdeck:customProjectNames, edgeclaw:customSessionTitles → pilotdeck:customSessionTitles, edgeclaw:configView → pilotdeck:configView. * PermissionsExport.source 'edgeclaw' → 'pilotdeck'. * onboarding default provider id 'edgeclaw' → 'pilotdeck'. Deliberately left as-is: * npm package edgeclaw-memory-core and its exported EdgeClawMemoryService class — third-party package, renaming requires a fork + republish. * DB path ~/.cloudcli/auth.db and memory data dir ~/.edgeclaw/memory — contain existing user data; moving them is a separate migration. * A handful of code comments referencing EdgeClaw history are kept so future readers can trace the migration provenance. Co-authored-by: Cursor <cursoragent@cursor.com> 22 天前
fix(onboarding): simplify first-run provider setup Co-authored-by: Cursor <cursoragent@cursor.com> 14 天前
chore: relicense to Apache 2.0 and align PilotDeck naming Switch project license and README badges from AGPL-3.0 to Apache 2.0, recognize ~/.pilotdeck as the general-chat cwd for skills, and use messageTypes.pilotdeck for assistant labels instead of the legacy claude key. Co-authored-by: Cursor <cursoragent@cursor.com> 6 天前
refactor(always-on): remove legacy web execution path, rewire retry through DiscoveryFire The old web-driven Always-On path (discovery trigger → auto-poll → web chat execution) raced with the DiscoveryFire pipeline, causing duplicate plan executions. This commit removes the entire legacy path: - Add alwaysOnRerunPlan gateway RPC so the UI retry button triggers DiscoveryFire phases 2-4 (workspace → execution → report) directly - Remove MainContent auto-poll, discovery trigger handler, execution lifecycle tracking, and all associated refs/callbacks/useEffects - Delete queueExecution, updateExecution, buildExecutionPrompt from DiscoveryPlanService and the PATCH execution REST endpoint - Unregister /ao slash command; delete alwaysOnSlashActions.ts - Delete discovery-trigger-client.js and its WS handler in index.js - Delete old web discovery prompt and utility files - Remove approvalMode field from WebPlanRecord, UI types, i18n, tests Co-authored-by: Cursor <cursoragent@cursor.com> 7 天前
fix(ui): prevent IME enter from submitting inputs 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 天前
fix(ui): tighten vertical spacing between consecutive tool-call rows Consecutive tool rows (bash, write_file, etc.) had 32px gaps identical to prose-to-prose spacing, making long agent conversations unnecessarily tall. Use CSS sibling selectors on the existing .ui-v2-legacy-row marker to apply differentiated margins: 2px tool-tool, 16px prose-tool transitions, 32px prose-prose unchanged. Co-authored-by: Cursor <cursoragent@cursor.com> 15 天前
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(config): remove deprecated contextWindow setting contextWindow is now fully derived from the model's native context limit or agent.maxContextTokens override. The UI form field, env variable injection, and hardcoded fallbacks are all removed. A deprecation warning is emitted if the old config key is still present. Co-authored-by: Cursor <cursoragent@cursor.com> 15 天前