Indexing & readiness
Indexing builds vector and keyword indexes for hybrid search. Chat uses progressive retrieval — you can ask questions before indexing finishes.
Readiness phases (extension UI)
| Phase | Chat send | Meaning |
|---|---|---|
| Offline | Blocked | Engine/server not reachable |
| Starting | Blocked | Health probe in flight or server bootstrapping |
| Error | Blocked | Index or session failure — check Engine → Indexing |
| Indexing | Allowed | Background walk in progress; partial index available |
| Limited | Allowed | Search may work; Ollama offline — generation degraded |
| Ready | Allowed | Index complete; watcher handles file deltas |
What indexing produces
- Vector store (ChromaDB) — embeddings per chunk
- BM25 — keyword index per workspace
- Dependency graph — optional neighbour expansion in search
- File hash cache — skip unchanged files on reindex
Priority files
These paths are indexed and boosted first:
- Open editor tabs (sent on workspace register)
- Active file on editor change / save (
prioritize-file) - Chat attachments and client grep hits (
hot-paths)
Progressive RAG during indexing
When you send chat while status is Indexing:
- Active editor file is read from disk immediately
- Hybrid search runs over whatever chunks exist so far
- Server-side grep fallback if index results are empty
- Extension client grep may run before stream (Repo / Hybrid lanes)
Reindex triggers
- Manual reindex from Engine → Indexing
- Embed model change (full reindex required)
- Warm restart catch-up for missing files after server restart
- File watcher events for saves and renames
Desktop vs extension polling
Engine Indexing tab polls on a slower interval than the extension status bar. The extension may show Indexing while Engine overview still looks idle — use Indexing drill-down for truth.
Inline completion while indexing
Ghost-text (inline) is off by default. When enabled, pause policy is server inline.pause_mode:
- off — never pause for embed/reindex (shipped default)
- shared_runtime — pause only when chat and embed share one Ollama host
- on_embed_busy — pause whenever any session embed/reindex is busy
VS Code contextmint.inline.pauseWhileIndexing can only tighten to on_embed_busy; it cannot weaken a stricter server mode. Prefer shared_runtime on contested team servers — see Settings → Inline completion (server).
Problems: Troubleshooting → Indexing.