| 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 天前 |
| refactor: move cron/always-on business logic from ui/server/ to src/
Enforce backend-bug-locality rule: ui/server/ is a thin protocol
adapter and must not host business logic. This commit extracts ~1600
lines of algorithms into src/always-on/web/ and src/cron/, slimming
ui/server/ files to delegation-only wrappers.
- Discovery plan status machine, lifecycle, and context aggregation
→ src/always-on/web/{DiscoveryPlanStatus,Service,Context}.ts
- Run-history event merging and transcript recovery algorithms
→ src/always-on/web/AlwaysOnRunHistoryService.ts
- Unified "run cron now" via Gateway RPC (cronRunNow) replacing the
dual sendCronDaemonRequest / gateway.cronCreate paths
- mapCronRunOutcome centralised in src/cron/protocol/types.ts
- Deleted dead code: cron-daemon-client-lease.js, cron-session-bridge.js
- 42 new unit tests covering all extracted modules
Co-authored-by: Cursor <cursoragent@cursor.com>
| 19 天前 |
| fix(cron): hide tools and reject task creation when cron is disabled
CronRuntime.getTools() now returns an empty array when config.enabled
is false, preventing the agent from seeing cron tools. createTask()
also throws an explicit error as a defensive guard for CLI/API callers.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 18 天前 |
| 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(cron): expose scheduled runs as dedicated chat sessions
Give each cron task its own stable cron: session so scheduled work no longer pollutes the originating conversation and can appear in the Web UI like a normal chat.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 19 天前 |
| feat(always-on): add Dashboard sub-tab with cross-workspace event timeline
Emit phase-level events (discovery/plan/execution/report) from
DiscoveryFire and CronFire into a per-project events.jsonl, aggregate
them via a new GET /api/always-on/events endpoint, and render a
Dashboard tab inside the Always-On view showing stats cards and a
chronological event feed across all workspaces.
Co-authored-by: Cursor <cursoragent@cursor.com>
| 19 天前 |