| 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(context): prevent multimodal content from accumulating in context
Separate PDF binary data from tool_result into supplementalMessages,
enforce a 10-page limit for PDFs without explicit pages parameter,
remove image duplication in projectToolResults, add COMPACTABLE_TOOLS
filtering to MicroCompactionEngine with proper multimodal size
estimation, and strip multimedia before full compaction summarization.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 10 天前 |
| 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(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 天前 |