Skip to content

v4.4.0 — Cross-Platform Installer & Hybrid Search Category Filter

Choose a tag to compare

@lyonzin lyonzin released this 06 Jul 00:43
28688e7

Highlights

Cross-platform LLM-client installer (from #108)

  • install.py orchestrator with thin install.sh (Linux/macOS) and install.ps1 (Windows) wrappers — one codebase, one behavior across every OS.
  • Auto-registers knowledge-rag in 8 LLM clients: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code (Copilot Chat), Cline, Gemini CLI, Zed — each with its canonical config path and correct JSON schema (mcpServers / servers / context_servers).
  • Idempotent JSON merge with automatic .knowledge-rag.bak backup; atomic os.replace writes; --dry-run previews without touching disk.
  • Flags: --for <clients>, --exclude <clients>, --dry-run, --list-clients, --pypi-version <ver>, --skip-init, --skip-model.

Hybrid search — category filter now applies to BM25 (from #109, thanks @Hohlas)

  • Before this release, search_knowledge(..., category="X") only filtered the semantic (Chroma) branch. The BM25 branch was queried globally, so keyword hits from other categories could leak into filtered results via RRF fusion.
  • Both leak paths are now closed:
    1. BM25 candidates are metadata-filtered before RRF fusion (with top_k widened to max_results * 20 to compensate for post-filter drop).
    2. The fallback metadata fetch during fusion re-checks category before adding a chunk to combined_scores.
  • The _route_by_keywords()-inferred routing now also filters BM25 (consistency with the semantic branch). If you rely on custom config.yaml keyword routes, this may change the mix of BM25 vs semantic candidates you see.
  • Restart your MCP server after upgrading to invalidate warm query_cache entries that may still contain stale (leaked) results.

Also in this release

  • INSTALLER FIXES: install.ps1 now targets ~/.claude.json (not the stale ~/.claude/mcp.json); gains PyPI mode + mcp_server.server init parity with install.sh; MCP server spec uses standard command + cwd (no more cmd /c cd /d ... && python ... wrapper).
  • INSTALLER FIXES: install.sh guards against sh install.sh; both scripts correctly advertise 13 MCP tools (was outdated at 12); Windows Python bootstrap prefers winget install Python.Python.3.12 --scope user.
  • TESTS: +23 (tests/test_installer_no_data_loss.py × 22 + TestHybridCategoryFilter::test_bm25_results_respect_category_filter × 1). Baseline 227 → 267.

Upgrade

PyPI

pip install --upgrade knowledge-rag

NPM

npx -y knowledge-rag@4.4.0

Docker

docker pull ghcr.io/lyonzin/knowledge-rag:4.4.0

Full CHANGELOG in README.md § v4.4.0.