Local Repo Ingest into the Code Knowledge Graph

One-command ingest of any local git checkout into an isolated, incrementally-refreshed per-repo knowledge graph of files, symbols, and structural edges.

Overview

Description

Ingest any local git checkout into the code knowledge graph with one command: dots repo ingest <path>. The ingester parses the repo's files and symbols, derives a stable repo identity from the remote URL, and lands three connected layers in the workspace — a Repos row, one Repo Files row per file, and one Code Symbols row per function/class/type — joined by structural edges (contains / defines / imports_module / calls / inherits). Against a hosted API it uploads the resolved graph as a single compressed object and applies it through a durable, checkpointed background job; re-ingest is content-hash incremental, so an unchanged repo is a no-op. Multiple repos coexist in one workspace with fully isolated graphs.

Selling Points

  • One command turns any codebase into a queryable knowledge graph — no CI integration, no language server, no config.
  • Incremental by content hash: day-to-day refreshes cost seconds, not a rebuild.
  • Durable hosted apply: a dropped connection never leaves a half-written graph; the job checkpoints and resumes.
  • Multi-repo safe: every file and symbol is keyed by repo identity, so graphs never bleed into each other.
  • The ingested graph powers downstream agent tooling (callers_of, impact, trace) that would otherwise need a bespoke code-intelligence service.

User Story

A developer (or an agent on their behalf) runs dots repo ingest D:/apps/myrepo after cloning or after a batch of commits. Minutes later, every agent connected to the workspace can answer "who calls this function", "what breaks if I change this", and "how does this symbol connect back to the spec that designed it" through the CLI (dots graph …) or MCP tools — grounded in rows and edges the whole platform (search, edges, views) treats as first-class knowledge.

Extension Surface

Automatable, not pluggable: the parsing pipeline and language classification are internal, but the whole lifecycle is drivable end-to-end from the outside — dots repo ingest / reset / guided-ingest in shells and CI, detect_changes over MCP for staleness checks, and the standard rows/edges/search surfaces for reading the result. There is no extension point for adding a custom language parser today.

Capabilities & Limits

  • Extracts files, symbols, and structural edges; embeds symbols when embedding is enabled.
  • Repo identity survives machine moves (remote-URL keyed, path-hash fallback for remote-less repos).
  • dots repo reset <path> purges exactly one repo's graph (dry-run by default, --yes to execute).
  • Limits: no cross-repo edges are drawn automatically; friendly path refs require uniqueness across the workspace's repos; re-ingest freshness is enforced fail-closed against server state.

Implementation Map

  • packages/ingestion/src/repo/
  • detect/source-key.ts
  • local.ts
  • incremental/
  • host/job.ts
  • store/reset.ts
  • packages/cli/src/commands/repo-graph-upload.ts
  • dots repo ingest
  • packages/api/src/jobs/repo-apply-job.ts
  • repo.apply
  • packages/knowledge-graph/
  • createInternalSystemEdgeWriter

Properties

Property
Value
product
dots-platform
extensibility
automatable
module
Repo Graph, CLI
packages
ingestion, cli, api, knowledge-graph
status
shipped
surface
cli
summary
One-command ingest of any local git checkout into an isolated, incrementally-refreshed per-repo knowledge graph of files, symbols, and structural edges.

Connections

Local Repo Ingest into the Code Knowledge Graph · Explore connections

Connected Records2

Documented by
2 connections.

Documents