Description
Coding Agent Source Detection inventories supported coding-agent history locations on a user’s machine before an import begins. It recognizes Claude Code project histories, Codex session folders, and Cursor conversation stores at their operating-system-specific locations, returning one source per session-bearing folder. Detection produces stable source identities while leaving the consent decision to the calling surface.
The detection boundary is privacy-sensitive. It finds folders and counts or discovers top-level sessions without treating every sibling directory as implicitly approved. Cursor’s preliminary count is metadata-only, and subagent or workflow histories are excluded from the normal top-level session inventory. The result supports a consent screen that can default individual sources independently.
Selling Points
- Finds supported local coding-agent histories without manual path entry.
- Separates source discovery from consent and content ingestion.
- Assigns stable folder-scoped identities for retries, checkpoints, and error reporting.
- Supports Claude Code, Codex, and Cursor through one provider-neutral inventory.
- Avoids silently importing sibling folders or nested agent workflows.
User Story
As a developer setting up conversation import, I want Dots to show which coding-agent history sources exist on my machine before it reads them. I can approve the folders I recognize and leave other workspaces unchecked, confident that discovery alone did not upload their session contents.
Extension Surface
The rating is fixed_core because the shipped platform roster and location rules are implemented in packages/ingestion/src/coding-agent/detect/index.ts, with DB-free discovery exported through packages/ingestion/src/coding-agent/local.ts. The broader orchestration uses adapter contracts, but there is no user-installed provider registration mechanism for detection locations in this feature.
Capabilities & Limits
Capabilities include platform-specific root detection, stable source-key generation, top-level session enumeration, Cursor store counting, and folder-level consent granularity. The DB-free leaf is safe for an Electron main process. Limits are honest: the detector supports the coded provider roster only, makes no consent choice, and does not promise that every discovered Cursor schema contains importable content until the consented full reader validates it.
Implementation Map
packages/ingestion/src/coding-agent/detect/index.tspackages/ingestion/src/coding-agent/normalize/discover.tspackages/ingestion/src/coding-agent/normalize/cursor-store.tspackages/ingestion/src/coding-agent/local.ts