Skip to content

v4.9.0 — Expanded parser coverage + watcher/index resilience

Choose a tag to compare

@lyonzin lyonzin released this 22 Sep 20:48
· 39 commits to master since this release
d3715d7

Expanded parser coverage plus watcher and index resilience fixes.

Added

  • 15 new indexable formats (#194): Go, Rust, Kotlin, YAML (with Kubernetes kind/apiVersion/name metadata), HuJSON, CUE, Protocol Buffers, Rego, SQL, shell, jq, plus extensionless Dockerfile / Makefile / Tiltfile matched by exact filename. All enabled by default and picked up by directory indexing and the file watcher.

Fixed

  • watcher (GH #214): file watcher no longer enqueues a full incremental reindex for metadata-only events. Watchdog's on_modified fires for every IN_ATTRIB-class change (chmod, xattr, utimensat keeping mtime) that cloud-sync clients, backup agents, antivirus, and OS file indexers generate continuously. Before this fix each such event triggered index_all(force=False) which scanned every indexed file only to skip them all, producing an infinite [WATCHER] N file(s) changed → [INDEX] Progress: N/N (100%) — 0 new, N skipped loop that could saturate CPU for hours (5019-file corpus in the report). Reported by @HillsCloud. 12 regression tests.
  • ingestion (#192): .csv files with a field over csv's 128 KiB size limit no longer crash ingestion. Falls back to indexing raw text with is_valid_csv=False.
  • chroma (GH #200, #201): SQLITE_NOTADB on first Collection.add() in HTTP/SSE mode fixed. WAL is now switched inside _init_chroma_client before the client opens the DB, idempotent, and skipped on network filesystems. 18 regression tests.
  • config (#202): init-generated config.yaml now enables 29 formats instead of only 4. Corrects stale "20 formats" count to 35 in docs.
  • search (#211): QueryCache never hit for the default dispatch path because search_method was shadowed by the per-result labeling loop. Now stored under the caller's actual dispatch value.
  • config (GH #208, #213): KNOWLEDGE_RAG_DIR set to a relative path or tilde path now resolves correctly at startup.

Install

pip install knowledge-rag==4.9.0
npx -y knowledge-rag@4.9.0
docker pull ghcr.io/lyonzin/knowledge-rag:4.9.0

Backwards compatibility

Zero breaking changes. Public MCP API surface unchanged (13 tools, frozen parameter names). Backwards-compat suite green.