Repository navigation
Decisions
Gourav Mittal edited this page Oct 11, 2026
·
5 revisions
Architecture decision records live in docs/adr/. Add one for any choice a future
contributor might question; never edit an accepted one, supersede it.
| ADR | Decision | Instead of | Status |
|---|---|---|---|
| 0001 | Search runs in a Go daemon over JSON-RPC on stdio | Everything in the extension host; a TCP port | Accepted |
| 0002 | One JSON Schema generates all cross-process types | Hand-written types; Go as the source | Accepted |
| 0003 | In-house trigram index for the working tree | Zoekt; ripgrep per query | Accepted, revisit when modules can be fetched |
| 0004 | History index reuses the trigram package | SQLite FTS5; git log per query |
Accepted |
| 0005 | Code is colored by VS Code's grammar engine, in the extension host | A small lexer per language; the engine in the webview | Accepted |
| 0006 | Jupyter notebooks are searched by their cells, and diffed through a textconv filter | Notebooks as text; a doc per cell; diffing cells in the daemon | Accepted |
The implementation plan still describes Zoekt and SQLite; ADRs 0003 and 0004 replaced those parts.
Next: Glossary: the words the wiki and the code use.
More in the repo: docs/ · CONTRIBUTING.md · Design canvas
Start here
Query reference
- All operators
- Words, regex and logic
- Files and repos
- Definitions and code shape
- Commits and time
- Results and ranking
- Error index
The panel
How it works
Contributing
- Your first change
- Code map: Daemon · Extension Host · Webview
- Testing
- Screens