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:

  1. Active editor file is read from disk immediately
  2. Hybrid search runs over whatever chunks exist so far
  3. Server-side grep fallback if index results are empty
  4. 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.