| 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 天前 |
| 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 天前 |
| refactor: replace Claude references with PilotDeck across the codebase
- Updated various components and utilities to use 'PilotDeck' instead of 'Claude'.
- Adjusted session paths, command handling, and configuration file references to align with PilotDeck specifications.
- Enhanced error messages and validation to reflect the new provider.
- Ensured consistent naming conventions for PilotDeck throughout the application.
| 6 天前 |
| feat(tools): add configurable web search providers
Add GLM, Tavily, and custom provider support for the web_search tool so deployments can choose a single search backend from settings.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 15 天前 |
| refactor: replace Claude references with PilotDeck across the codebase
- Updated various components and utilities to use 'PilotDeck' instead of 'Claude'.
- Adjusted session paths, command handling, and configuration file references to align with PilotDeck specifications.
- Enhanced error messages and validation to reflect the new provider.
- Ensured consistent naming conventions for PilotDeck throughout the application.
| 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 天前 |
| chore(ui): remove Claude references from comments
Drop legacy Claude wording from UI comments while leaving runtime identifiers,
protocol strings, and real CLI/model references unchanged.
| 6 天前 |
| chore(repo): prepare for public release
Bulk cleanup ahead of open-sourcing:
- Move edgeclaw-memory-core into src/context/memory/edgeclaw-memory-core
- Drop legacy docs/, old_ui/, .test_skills/ and third-party/ snapshots
- Refresh BOUNDARY.md and desktop release/verify scripts
- Add bilingual README (zh-CN + English) and competitor comparison asset
Co-authored-by: Cursor <cursoragent@cursor.com>
| 12 天前 |
| fix(plan): persist plan card data through history reload path
Thread planTitle/planSummary/planFilePath from JSONL raw.data through
the readSessionMessages -> routes/messages history read path so the
plan card retains its content after a browser refresh.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 7 天前 |
| 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: 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 天前 |
| fix(permissions): unify skip prompt handling
Persist permission settings through the backend and apply per-turn bypass mode in the gateway so skip prompts consistently reaches tool execution while preserving hard safety denies.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 20 天前 |
| 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 天前 |
| 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(dev): bootstrap placeholder pilotdeck.yaml on first npm run dev
Fresh clones (or anyone who rm'd ~/.pilotdeck/pilotdeck.yaml) couldn't run
npm run dev because the gateway crashes on missing config and
concurrently --kill-others then takes down the web UI, leaving no path to
finish onboarding.
- Add scripts/bootstrap-pilotdeck-config.mjs: idempotent script that writes
a minimal V2 yaml at $PILOT_HOME/pilotdeck.yaml (default ~/.pilotdeck/) if
one does not already exist. The yaml resolves through parseModelConfig
(anthropic provider + claude-sonnet-4.6) and uses the sentinel apiKey
PLACEHOLDER_RUN_ONBOARDING_TO_REPLACE so the gateway can boot.
- Wire predev hook on both root and ui workspace so the bootstrap runs
regardless of which directory npm run dev is launched from.
- Teach hasUsablePilotDeckConfig() to recognise the sentinel apiKey as
"not configured" so the Web UI redirects users to the onboarding flow
instead of pretending the placeholder is real.
Set PILOTDECK_SKIP_BOOTSTRAP=1 to opt out (e.g. in CI).
Co-authored-by: Cursor <cursoragent@cursor.com>
| 20 天前 |