- pipeline: fail index create/update with a clear error when the project root is not a directory instead of building a misleading zero-file index - config: single LANGUAGE_BY_EXT table as source of truth; language_for and resolver code_extensions both derive from it (no more duplicated ext list) - imports: resolver probes code_extensions() instead of a local RESOLVE_EXTS - tests: regression for nonexistent-root rejection Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>