| 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 天前 |
| feat(deferred-features): wave 3 — C4 file-history, C5 background tasks, C1 MCP runtime
C4 file-history:
- src/session/filesystem/{types,backupNaming,createBackup,restoreBackup,FileHistoryStore}
- 3-phase commit on edits, mtime-based versioning, snapshot rewind, diff stats,
configurable maxSnapshots eviction, oversize file skip, transcript replay
- editFile/writeFile track edits via ToolRuntimeContext.fileHistory sink
- new fileHistoryDir under chat/<sessionId>/file-history
C5 background task runtime:
- src/task/{protocol/types, storage/TaskOutputStore, runtime/BackgroundTaskRuntime}
- detached child processes, 1MB ring-buffer output store with optional disk spill
- killForAgent / killAll lifecycle, maxTasks cap, incremental getOutput slices
- task_create / task_list / task_output / task_stop builtin tools, opt-in via
createBuiltinRegistry({ backgroundTasks: { runtime } })
C1 MCP runtime:
- src/mcp/{protocol/types, runtime/{sanitize,wireName,truncate,McpRuntime,
PluginToToolBridge}, client/McpClient}
- @modelcontextprotocol/sdk client wrapper: stdio + streamable_http transports,
memoized connect, configurable handshake/call timeouts, LRU listTools cache,
one-shot reconnect on session-expired, M9 unicode sanitization, M10 mcp__id__name
wire format, M11 description truncation, M12 annotation→PolitDeck flag mapping
- bounded connect concurrency (M4), per-server status, per-server instructions
- PluginToToolBridge converts McpToolSpec → PolitDeckToolDefinition with mcp_*
error code propagation
tests:
- 19 new MCP tests (sanitize, wireName, truncate, in-memory client, runtime+bridge)
- file history backup-naming, create/restore-backup, FileHistoryStore, tool-integration
- task output-store, runtime-lifecycle, task-tools
- full suite: 441 tests, 437 pass, 4 skipped, 0 fail
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |
| fix: cross-platform Windows compatibility for core runtime
- paths.ts: normalize Windows backslashes and strip drive letters in project IDs
- createBackup/restoreBackup: guard fs.chmod on Windows (no Unix permissions)
- ProjectSessionStorage: sanitize illegal Windows filename characters (:, <, >, ", |, ?, *)
- JsonlTranscriptWriter: use path.join for subagent paths instead of hardcoded /
- BackgroundTaskRuntime: remove platform guard, let Windows use the same runtime
- commandRunner: Windows-compatible process termination (taskkill vs SIGTERM)
- listProjects: platform-aware project ID resolution
- createLocalGateway: sanitize session keys for browser screenshot paths
- pilotPaths.js: sync createLegacyProjectId with paths.ts normalization
- package.json: cross-platform build script using Node.js fs module
Co-authored-by: Cursor <cursoragent@cursor.com>
| 9 天前 |
| feat(deferred-features): wave 3 — C4 file-history, C5 background tasks, C1 MCP runtime
C4 file-history:
- src/session/filesystem/{types,backupNaming,createBackup,restoreBackup,FileHistoryStore}
- 3-phase commit on edits, mtime-based versioning, snapshot rewind, diff stats,
configurable maxSnapshots eviction, oversize file skip, transcript replay
- editFile/writeFile track edits via ToolRuntimeContext.fileHistory sink
- new fileHistoryDir under chat/<sessionId>/file-history
C5 background task runtime:
- src/task/{protocol/types, storage/TaskOutputStore, runtime/BackgroundTaskRuntime}
- detached child processes, 1MB ring-buffer output store with optional disk spill
- killForAgent / killAll lifecycle, maxTasks cap, incremental getOutput slices
- task_create / task_list / task_output / task_stop builtin tools, opt-in via
createBuiltinRegistry({ backgroundTasks: { runtime } })
C1 MCP runtime:
- src/mcp/{protocol/types, runtime/{sanitize,wireName,truncate,McpRuntime,
PluginToToolBridge}, client/McpClient}
- @modelcontextprotocol/sdk client wrapper: stdio + streamable_http transports,
memoized connect, configurable handshake/call timeouts, LRU listTools cache,
one-shot reconnect on session-expired, M9 unicode sanitization, M10 mcp__id__name
wire format, M11 description truncation, M12 annotation→PolitDeck flag mapping
- bounded connect concurrency (M4), per-server status, per-server instructions
- PluginToToolBridge converts McpToolSpec → PolitDeckToolDefinition with mcp_*
error code propagation
tests:
- 19 new MCP tests (sanitize, wireName, truncate, in-memory client, runtime+bridge)
- file history backup-naming, create/restore-backup, FileHistoryStore, tool-integration
- task output-store, runtime-lifecycle, task-tools
- full suite: 441 tests, 437 pass, 4 skipped, 0 fail
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |
| fix: cross-platform Windows compatibility for core runtime
- paths.ts: normalize Windows backslashes and strip drive letters in project IDs
- createBackup/restoreBackup: guard fs.chmod on Windows (no Unix permissions)
- ProjectSessionStorage: sanitize illegal Windows filename characters (:, <, >, ", |, ?, *)
- JsonlTranscriptWriter: use path.join for subagent paths instead of hardcoded /
- BackgroundTaskRuntime: remove platform guard, let Windows use the same runtime
- commandRunner: Windows-compatible process termination (taskkill vs SIGTERM)
- listProjects: platform-aware project ID resolution
- createLocalGateway: sanitize session keys for browser screenshot paths
- pilotPaths.js: sync createLegacyProjectId with paths.ts normalization
- package.json: cross-platform build script using Node.js fs module
Co-authored-by: Cursor <cursoragent@cursor.com>
| 9 天前 |
| 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 天前 |