-
Notifications
You must be signed in to change notification settings - Fork 0
Never Stale Live Reconstruction
The single most important property of Columbus:
It cannot go stale, because it never stores your code.
The database holds metadata, git anchors and embedding vectors only — never your code. Every snippet and exact line range is rebuilt at query time by re-parsing the working tree; the vectors are a derived retrieval index, not your source. The answer always matches the code as it is right now.
Index a project, then look at a symbol:
$ columbus show symbol parseConfig
1. parseConfig [function] src/config.ts:4-6Now insert two blank lines at the top of src/config.ts and do not reindex:
$ columbus show symbol parseConfig
1. parseConfig [function] src/config.ts:6-8The range moved from 4-6 to 6-8 on its own. A tool that cached code (or a
vector index of embeddings) would have returned the old lines until you
re-embedded. Columbus reconstructs from the live file every time.
A coding agent acts on what context tells it. Stale context is worse than no context — it's confidently wrong. If the agent is told a function lives at lines 4–6 but it has moved, an edit lands in the wrong place. Live reconstruction makes that class of error structurally impossible.
The index can lag the working tree (you added a file, haven't reindexed). That affects discovery — whether a brand-new symbol is found yet — but never the accuracy of a result you do get back. Freshness is surfaced explicitly:
$ columbus graphs
...
index: fresh, last indexed 2026-06-07T12:31:18ZThe --json projection includes a freshness block (indexed_head, dirty,
last_indexed_at, stale) so an agent can decide whether to reindex. Keeping it
current is cheap and incremental — see Keeping the Index Fresh.
Durable memories carry evidence anchors (e.g. src/config.ts:4-6). When the
underlying code changes, the mismatch surfaces as a drift warning on the item
instead of silently lying:
$ columbus show memory mem_001
mem_001 [decision] Default port is 8080
evidence src/config.ts:4-6 (stale: anchor moved)Drift is always a warning, never fatal — see Project Memory.
Columbus — the navigator your coding agent has been missing · local-only, deterministic code context · Repository · Issues · MIT License
Getting started
Concepts
Guides
- Using Columbus with Your Agent
- Searching Effectively
- Navigating Code
- Project Memory
- Tracking Work: Epics, Stories & Tasks
- Keeping the Index Fresh
Command reference
Reference
- Output Modes
- JSON Contract & Errors
- Exit Codes
- Configuration
- Supported Languages
- Color & Environment
Project