reference
Living

ingest

The pipeline that turns outside material — a code repository, a media upload, a Claude.ai conversation export — into entries in the substrate graph, queryable the same way anything written live is.

A session doesn't only build up memory by writing as it goes. It can also start from material that already exists — a repository someone else wrote, a conversation exported from somewhere else, an image dropped in — and have ingest carry that material into the graph as entries, in the shape the rest of the substrate already understands.

§01 · what ingest does

Outside material, in. Substrate entries, out.

Ingest takes material that exists outside the graph — an existing code repository, an uploaded media file, a Claude.ai conversation export — and turns it into entries inside the graph. Once it's in, it reads the same as anything a session wrote live: searchable, linkable, part of the same substrate.

That matters most for the repository case. A codebase a team has been building for years carries structure a fresh session has no way to know about on turn one. Ingest puts that structure in front of it, instead of leaving the session to rediscover the shape of the repo from scratch every time.

§02 · what becomes queryable

Files, structure, and how the pieces connect.

Run ingest against a repository and what comes out the other side is more than a pile of file contents. The files themselves are in the graph, but so is their structure — how the repo is organized, what depends on what — and the relationships between pieces, so a session can ask about the shape of a codebase and get an answer instead of having to walk the directory tree itself.

A media upload or a conversation export lands the same way: as entries a session can search and link against, not as a file sitting untouched in a folder waiting to be opened.

§03 · a real repo, not a demo

gin-gonic/gin went through the pipeline, and it found real bugs.

The first end-to-end proof of the ingestion pipeline wasn't a synthetic fixture built to make the demo work. It was gin-gonic/gin, a real public Go repository, walked through ingest start to finish (#6228).

Two real bugs surfaced during that run, and both got fixed: a clustering bug in the repo-resolution step, and a density bug in how the scanner weighted .rst documentation files. A fixture built to make a demo work doesn't turn up bugs like that; a real repository run through the pipeline does. A third finding — no automatic trigger yet for ingesting a fresh project — got logged as a gap rather than quietly patched over (#6228).

§04 · privacy by construction

The server never sees your source.

Ingest was confirmed built end to end with privacy as a structural property, not a promise layered on afterward. The raw repository is never stored on the server. The clone made to run ingestion is ephemeral — created, used, discarded — and the embeddings built from it are computed locally rather than sent off for someone else to compute (#5876).

None of that is hosted-only convenience. The whole pipeline is self-hostable, so trusting a server with your raw source was never part of the design in the first place (#5876).

§05 · the receipt

What the first real run actually proved.

gin-gonic/gin is a real, public Go repository, and running it through the pipeline surfaced two genuine bugs — a clustering bug in repo resolution, a density bug in .rst file weighting — both fixed, plus one honestly logged gap: no automatic trigger yet for a fresh project (#6228). Separately, the pipeline's privacy architecture was confirmed: no raw-repo storage, ephemeral clones, local embeddings, self-hostable end to end (#5876).

What happenedDetail
test repositorygin-gonic/gin, a real public Go project
bug found & fixedclustering bug in the repo-resolution step
bug found & fixeddensity bug in how the scanner weighted .rst documentation files
gap found & loggedno automatic trigger yet for a fresh project
raw repository storagenone — clones are created, used, and discarded
embeddingscomputed locally
self-hostableyes, end to end
sourceVinculum substrate entries #6228, #5876
§06 · common questions

Common questions.

Does the raw repository get stored anywhere?

No. The clone made for ingestion is ephemeral: created, used, and discarded. The server never keeps a copy of your source, and the embeddings built from it are computed locally, not shipped off to sit on a disk somewhere (#5876).

What kinds of source material can I ingest?

A code repository, an uploaded image or other media file, or a Claude.ai conversation export. All three land as entries in the same graph, queryable the same way anything written live is.

Does ingest work if I'm self-hosting?

Yes. The pipeline is self-hostable end to end — the ephemeral-clone and local-embedding architecture isn't a hosted-only convenience, it's how the pipeline is built (#5876).

see also

Related entries.

architectureingest
watch it happen1
the dashboard