文件最后提交记录最后更新时间
fix(security): Windows permission compatibility - Add Windows dangerous command deny patterns: Remove-Item -Recurse, del /s, rd /s, Format-Volume, iex+iwr, Start-Process RunAs, Set-ExecutionPolicy, Stop-Process -Force - Add Windows safe-read patterns: Get-ChildItem, Get-Content, dir, type, etc. - Block Windows device paths: CON, NUL, COM, LPT, PhysicalDrive, \\.\, \\?\ - Platform-aware quick-block shortcuts in permissions settings UI - SnapshotCopyProvider: use PowerShell for directory size on Windows Co-authored-by: tp <tp@t14-windows> Co-authored-by: Cursor <cursoragent@cursor.com> 9 天前
feat(tool): align edit_file/read_file with robust edit design - Partial reads now register write snapshots, allowing edits after ranged read_file calls instead of requiring a full read - Layered stale check: full-read snapshots fall back to content hash comparison; partial-read snapshots reject on mtime change directly - Persist writeSnapshots and readFileState across session recreation via AgentLoop.snapshotFileState → TurnRunner → AgentSession → createLocalGateway.recreateSession seedState pipeline - Two-level old_string matching: exact match first, then curly-quote normalized match via new editNormalization.ts module - Pre-process new_string: strip trailing whitespace (except markdown) - Improved error messages: echo old_string on not-found, show match count on ambiguous matches - Tool descriptions now explicitly state read-before-write constraint and character-exact old_string requirement - Updated and added tests covering all new behavior (30 tests pass) Co-authored-by: Cursor <cursoragent@cursor.com> 8 天前
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 天前
fix(tools): align ask_user_question model schema copy Co-authored-by: Cursor <cursoragent@cursor.com> 16 天前
fix(tools): make bash command required and remove empty-command fallback Change the command parameter from optional to required in the BashInput type. Remove the empty-command soft-return since the schema now rejects calls without a command at validation time. Co-authored-by: Cursor <cursoragent@cursor.com> 16 天前
feat(tool): align edit_file/read_file with robust edit design - Partial reads now register write snapshots, allowing edits after ranged read_file calls instead of requiring a full read - Layered stale check: full-read snapshots fall back to content hash comparison; partial-read snapshots reject on mtime change directly - Persist writeSnapshots and readFileState across session recreation via AgentLoop.snapshotFileState → TurnRunner → AgentSession → createLocalGateway.recreateSession seedState pipeline - Two-level old_string matching: exact match first, then curly-quote normalized match via new editNormalization.ts module - Pre-process new_string: strip trailing whitespace (except markdown) - Improved error messages: echo old_string on not-found, show match count on ambiguous matches - Tool descriptions now explicitly state read-before-write constraint and character-exact old_string requirement - Updated and added tests covering all new behavior (30 tests pass) Co-authored-by: Cursor <cursoragent@cursor.com> 8 天前
feat(tool): align edit_file/read_file with robust edit design - Partial reads now register write snapshots, allowing edits after ranged read_file calls instead of requiring a full read - Layered stale check: full-read snapshots fall back to content hash comparison; partial-read snapshots reject on mtime change directly - Persist writeSnapshots and readFileState across session recreation via AgentLoop.snapshotFileState → TurnRunner → AgentSession → createLocalGateway.recreateSession seedState pipeline - Two-level old_string matching: exact match first, then curly-quote normalized match via new editNormalization.ts module - Pre-process new_string: strip trailing whitespace (except markdown) - Improved error messages: echo old_string on not-found, show match count on ambiguous matches - Tool descriptions now explicitly state read-before-write constraint and character-exact old_string requirement - Updated and added tests covering all new behavior (30 tests pass) Co-authored-by: Cursor <cursoragent@cursor.com> 8 天前
fix(tools): align glob copy with runtime behavior Bring the glob tool description closer to the legacy style while keeping the wording accurate for PilotDeck's workspace-scoped and stable-sorted behavior. Co-authored-by: Cursor <cursoragent@cursor.com> 15 天前
feat(tools): align grep with ripgrep behavior Wrap grep with ripgrep, expand the tool schema, and make pagination consistent across content, file, and count modes so agent search behaves closer to Claude Code. Co-authored-by: Cursor <cursoragent@cursor.com> 15 天前
feat(tool): add property-level descriptions to all builtin tool schemas Add description fields to every parameter in the inputSchema of bash, edit_file, glob, grep, mcp_resources, plan_mode, read_file, structured_output, task_create/list/output/stop, and write_file. This helps weaker models (e.g. DeepSeek) understand parameter semantics directly from the JSON Schema, reducing invalid_tool_input errors and improving first-attempt accuracy. Co-authored-by: Cursor <cursoragent@cursor.com> 17 天前
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 天前
fix(plan): let agents manage plan files Allow plan mode agents to create and choose markdown plan files under .pilotdeck/plans, and require exit_plan_mode to submit an explicit plan_file_path. Co-authored-by: Cursor <cursoragent@cursor.com> 14 天前
feat(plan): pass planTitle/planSummary as structured data from backend to plan card Extract plan title and summary on the backend (planMode.ts) and thread them through the gateway event, bridge, and useChatMessages into the PlanApprovedCard component, replacing the previous approach of parsing truncated resultPreview text on the frontend. Co-authored-by: Cursor <cursoragent@cursor.com> 7 天前
feat(tool): align edit_file/read_file with robust edit design - Partial reads now register write snapshots, allowing edits after ranged read_file calls instead of requiring a full read - Layered stale check: full-read snapshots fall back to content hash comparison; partial-read snapshots reject on mtime change directly - Persist writeSnapshots and readFileState across session recreation via AgentLoop.snapshotFileState → TurnRunner → AgentSession → createLocalGateway.recreateSession seedState pipeline - Two-level old_string matching: exact match first, then curly-quote normalized match via new editNormalization.ts module - Pre-process new_string: strip trailing whitespace (except markdown) - Improved error messages: echo old_string on not-found, show match count on ambiguous matches - Tool descriptions now explicitly state read-before-write constraint and character-exact old_string requirement - Updated and added tests covering all new behavior (30 tests pass) Co-authored-by: Cursor <cursoragent@cursor.com> 8 天前
feat(skills): add read_skill builtin tool for on-demand skill loading Add read_skill tool that loads SKILL.md content by name, register it as an opt-in option in createBuiltinRegistry, and update PromptAssembler to instruct the model to use the tool for skills listed in the prompt. Co-authored-by: Cursor <cursoragent@cursor.com> 20 天前
fix(tool): add missing type field to structured_output value schema Some model providers reject tool schemas when a property lacks an explicit type. Add a union type covering all JSON-serializable kinds so the tool definition is accepted universally. Co-authored-by: Cursor <cursoragent@cursor.com> 10 天前
feat(tool): add property-level descriptions to all builtin tool schemas Add description fields to every parameter in the inputSchema of bash, edit_file, glob, grep, mcp_resources, plan_mode, read_file, structured_output, task_create/list/output/stop, and write_file. This helps weaker models (e.g. DeepSeek) understand parameter semantics directly from the JSON Schema, reducing invalid_tool_input errors and improving first-attempt accuracy. Co-authored-by: Cursor <cursoragent@cursor.com> 17 天前
feat(todo): add TodoWrite plan execution flow Require plan-driven sessions to initialize and refresh TodoWrite checklists before side-effecting tools run, and render markdown todo updates in the web UI. Co-authored-by: Cursor <cursoragent@cursor.com> 15 天前
fix(tools): align web tool model descriptions Clarify web_fetch's model-visible contract so it matches the fallback-to-raw-markdown path, and expand web_search's description to reflect PilotDeck's real SerpAPI/Tavily behavior without introducing Claude-only fields. Co-authored-by: Cursor <cursoragent@cursor.com> 16 天前
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 天前
feat(tool): align edit_file/read_file with robust edit design - Partial reads now register write snapshots, allowing edits after ranged read_file calls instead of requiring a full read - Layered stale check: full-read snapshots fall back to content hash comparison; partial-read snapshots reject on mtime change directly - Persist writeSnapshots and readFileState across session recreation via AgentLoop.snapshotFileState → TurnRunner → AgentSession → createLocalGateway.recreateSession seedState pipeline - Two-level old_string matching: exact match first, then curly-quote normalized match via new editNormalization.ts module - Pre-process new_string: strip trailing whitespace (except markdown) - Improved error messages: echo old_string on not-found, show match count on ambiguous matches - Tool descriptions now explicitly state read-before-write constraint and character-exact old_string requirement - Updated and added tests covering all new behavior (30 tests pass) Co-authored-by: Cursor <cursoragent@cursor.com> 8 天前