文件最后提交记录最后更新时间
feat(wave-1): A1-A5 deferred features — worktree lookup, tokenizer, structured output, cached/snip compaction Wave 1 of the deferred-feature implementation guide. All 5 A-tier features landed with behavior alignment to third-party/claude-code-main per the checklists in docs/politdeck-deferred-feature-implementation-guide.md. A1 worktree lookup - src/session/worktree/{findGitRoot,resolveCanonicalRoot,findCanonicalProjectRoot,LRUMap} - filesystem-only async resolution (no git subprocess), NFC-normalized, LRU(50) memoization, full security validations (layout + back-link + realpath compare), realpath-canonicalized result so /tmp and /private/tmp fold consistently on macOS. - createProjectIdAsync / getPolitProjectChatDirAsync entry points. A2 real tokenizer fallback - Math.round (not ceil) parity with legacy roughTokenCountEstimation. - bytesPerTokenForExt + estimateForFileType (JSON-like = 2, others = 4). - estimateForBlock covers all 8 PolitDeck block types incl. PolitDeck-only tool_result_reference; thinking ignores signature; image/pdf/audio use IMAGE_MAX_TOKEN_SIZE = 2000. - estimateForMessage adds perMessageOverhead, estimateForMessagesWithPadding multiplies by 4/3 (ceil) for warning gates. A3 structured_output (provider-native) - CanonicalOutputSchema on CanonicalModelRequest. - OpenAI: response_format={type:"json_schema", strict:true} by default. - Anthropic: forced hidden __output__ tool with tool_choice=tool. - extractStructuredOutput recognizes both, plus invalid_json, multiple_payloads, schema_mismatch via optional validator. A4 cached microcompact (Anthropic-only) - CachedMicroCompactionEngine with COMPACTABLE_TOOL_NAMES set. - Disabled by default; non-Anthropic / subagent → no-op. - Computes message indices for cache_control: ephemeral breakpoints; the Anthropic request builder emits cache_control on the marked messages' last content block. validateCacheHit reads cache_read_input_tokens. A5 snip compact - SnipEngine.snip(messages) with keepHeadTurns=2 / keepTailTurns=4 default. - Tool-pair integrity (strip dangling tool_call / tool_result across the snip boundary). Boundary marker via createSnipBoundary. - projectSnippedView for one-shot use, isSnipBoundaryMessage for replay. Tests: 348 total, 344 pass, 4 pre-existing skips. Co-authored-by: Cursor <cursoragent@cursor.com> 24 天前
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(wave-1): A1-A5 deferred features — worktree lookup, tokenizer, structured output, cached/snip compaction Wave 1 of the deferred-feature implementation guide. All 5 A-tier features landed with behavior alignment to third-party/claude-code-main per the checklists in docs/politdeck-deferred-feature-implementation-guide.md. A1 worktree lookup - src/session/worktree/{findGitRoot,resolveCanonicalRoot,findCanonicalProjectRoot,LRUMap} - filesystem-only async resolution (no git subprocess), NFC-normalized, LRU(50) memoization, full security validations (layout + back-link + realpath compare), realpath-canonicalized result so /tmp and /private/tmp fold consistently on macOS. - createProjectIdAsync / getPolitProjectChatDirAsync entry points. A2 real tokenizer fallback - Math.round (not ceil) parity with legacy roughTokenCountEstimation. - bytesPerTokenForExt + estimateForFileType (JSON-like = 2, others = 4). - estimateForBlock covers all 8 PolitDeck block types incl. PolitDeck-only tool_result_reference; thinking ignores signature; image/pdf/audio use IMAGE_MAX_TOKEN_SIZE = 2000. - estimateForMessage adds perMessageOverhead, estimateForMessagesWithPadding multiplies by 4/3 (ceil) for warning gates. A3 structured_output (provider-native) - CanonicalOutputSchema on CanonicalModelRequest. - OpenAI: response_format={type:"json_schema", strict:true} by default. - Anthropic: forced hidden __output__ tool with tool_choice=tool. - extractStructuredOutput recognizes both, plus invalid_json, multiple_payloads, schema_mismatch via optional validator. A4 cached microcompact (Anthropic-only) - CachedMicroCompactionEngine with COMPACTABLE_TOOL_NAMES set. - Disabled by default; non-Anthropic / subagent → no-op. - Computes message indices for cache_control: ephemeral breakpoints; the Anthropic request builder emits cache_control on the marked messages' last content block. validateCacheHit reads cache_read_input_tokens. A5 snip compact - SnipEngine.snip(messages) with keepHeadTurns=2 / keepTailTurns=4 default. - Tool-pair integrity (strip dangling tool_call / tool_result across the snip boundary). Boundary marker via createSnipBoundary. - projectSnippedView for one-shot use, isSnipBoundaryMessage for replay. Tests: 348 total, 344 pass, 4 pre-existing skips. Co-authored-by: Cursor <cursoragent@cursor.com> 24 天前
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 天前