文件最后提交记录最后更新时间
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 天前
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 2 — B1 elicitation, B2 web_fetch, B3 MCP instructions Wave 2 of the deferred-feature implementation guide: - B1 elicitation + ask_user_question: * New PolitDeckElicitationChannel protocol with InMemoryElicitationChannel * validateHtmlPreview port (legacy parity — fragments, no <script>/<style>) * Rebuilt ask_user_question tool with shouldDefer:true, full schema parity (1-4 questions, 2-4 options, uniqueness checks, header/option size limits, HTML preview validation), and elicitation-channel-driven user consent * Tool runtime context now exposes optional elicitation channel * 9 dedicated tests + skeleton test updated - B2 web_fetch full version: * Modular layout: web/{preapprovedHosts,urlValidation,urlContentCache, urlFetcher,secondaryPrompt}.ts * Behaviour parity for W1-W14 from §5.2: 2000-char URL limit, validation (no creds, multi-label hosts), HTTP→HTTPS upgrade, 10 MB content cap, 60s timeout, 10 redirect hops, ±www permitted-redirect, hand-rolled LRU cache with 15min TTL / 50 MB ceiling, turndown HTML→Markdown, 100 KB markdown cap, 167-entry preapproved-host list, secondary model call via context.model * Tool now requires both url and prompt; opt-in via createBuiltinRegistry * 16 dedicated tests covering all 13 behaviours * Adds turndown dependency - B3 MCP instructions read-only injection: * truncateMcpInstructionString helper (2048-char cap, parity with legacy) * PluginRuntime.getAllMcpInstructions aggregator: reads static instructions from manifest.mcpServers[*].instructions, deduplicates (first plugin wins), sorts by serverName for prompt-cache stability * PromptAssembler renders <mcp-instructions><server name="…">…</server> block, drops empty entries, omits the entire block when nothing to say * 8 PluginRuntime tests + 3 PromptAssembler tests Test status: 383 tests, 379 pass, 4 pre-existing skips, 0 fail. Co-authored-by: Cursor <cursoragent@cursor.com> 24 天前
refactor: rename Polit/PolitDeck to Pilot/PilotDeck across entire codebase Automated global rename covering all case variants: - PolitDeck → PilotDeck, politdeck → pilotdeck, POLITDECK → PILOTDECK - Polit → Pilot, polit → pilot, POLIT → PILOT, politDeck → pilotDeck Includes: - 648 content replacements across 200+ source files - 24 file renames + 3 directory renames (src/polit→pilot, tests/polit→pilot, docs/polit-config→pilot-config) - package.json name, bin, env vars updated - package-lock.json regenerated - "Politely" in server-manager.ts preserved via placeholder mechanism - All 587 unit tests pass, tsc --noEmit clean - E2E tests verified against real OpenRouter API (model, tool-use, context, lifecycle hooks) Co-authored-by: Cursor <cursoragent@cursor.com> 24 天前
feat(deferred-features): wave 2 — B1 elicitation, B2 web_fetch, B3 MCP instructions Wave 2 of the deferred-feature implementation guide: - B1 elicitation + ask_user_question: * New PolitDeckElicitationChannel protocol with InMemoryElicitationChannel * validateHtmlPreview port (legacy parity — fragments, no <script>/<style>) * Rebuilt ask_user_question tool with shouldDefer:true, full schema parity (1-4 questions, 2-4 options, uniqueness checks, header/option size limits, HTML preview validation), and elicitation-channel-driven user consent * Tool runtime context now exposes optional elicitation channel * 9 dedicated tests + skeleton test updated - B2 web_fetch full version: * Modular layout: web/{preapprovedHosts,urlValidation,urlContentCache, urlFetcher,secondaryPrompt}.ts * Behaviour parity for W1-W14 from §5.2: 2000-char URL limit, validation (no creds, multi-label hosts), HTTP→HTTPS upgrade, 10 MB content cap, 60s timeout, 10 redirect hops, ±www permitted-redirect, hand-rolled LRU cache with 15min TTL / 50 MB ceiling, turndown HTML→Markdown, 100 KB markdown cap, 167-entry preapproved-host list, secondary model call via context.model * Tool now requires both url and prompt; opt-in via createBuiltinRegistry * 16 dedicated tests covering all 13 behaviours * Adds turndown dependency - B3 MCP instructions read-only injection: * truncateMcpInstructionString helper (2048-char cap, parity with legacy) * PluginRuntime.getAllMcpInstructions aggregator: reads static instructions from manifest.mcpServers[*].instructions, deduplicates (first plugin wins), sorts by serverName for prompt-cache stability * PromptAssembler renders <mcp-instructions><server name="…">…</server> block, drops empty entries, omits the entire block when nothing to say * 8 PluginRuntime tests + 3 PromptAssembler tests Test status: 383 tests, 379 pass, 4 pre-existing skips, 0 fail. Co-authored-by: Cursor <cursoragent@cursor.com> 24 天前