## [4.7.1] - 2026-04-03
### Added
- **Tree-sitter grammar management CLI** — New `kreuzberg tree-sitter` subcommand with `download`, `list`, `cache-dir`, and `clean` sub-commands for managing tree-sitter grammar parsers. Supports downloading by language name, group (`--groups w
# 🚀 **Toolhive v0.15.0 is live!**
This release brings significant improvements to OIDC/auth configuration, policy enforcement, secrets management, and observability — along with some important breaking changes and deprecations to be aware of before upgrading.
**⚠️ Breaking Cha
## What's Changed
* fix: widget crash by @ChiR24 in https://github.com/ChiR24/Unreal_mcp/pull/306
* 🛡️ Sentinel: [HIGH] Fix unsafe path handling in export_level by @google-labs-jules[bot] in https://github.com/ChiR24/Unreal_mcp/pull/305
* docs: fix rate limiting defaults and mis
After exactly a year of hard work since the initial release, we are finally releasing version 1.0.0. This release contains a load of new features, see our documentation, news in the dashboard and changelog.
We look forward to building even more and are grateful to the community,
## What's Changed
* chore: sync main (v9.6.4) into beta by @github-actions[bot] in https://github.com/CoplayDev/unity-mcp/pull/1009
* Bug-fix by @Scriptwonder in https://github.com/CoplayDev/unity-mcp/pull/1011
* chore: update Unity package to beta version 9.6.5-beta.2 by @github
## Fix
**`@includeFirst` Blade directive now generates import edges** — closes #203.
The `@includeFirst(['primary.view', 'fallback.view'])` directive (used to include the first view that exists from a priority list) was previously silently ignored by the Blade import extractor.
## Performance Quick Wins
### T8 — files_to_remove kept as set in incremental_save
`sqlite_store.py` no longer converts the union of `deleted_files` and `changed_files` to a list. Set membership tests in the hot path are now O(1) instead of O(n). sqlite3 calls receive `tuple(fil
## Phase 5 — Tell the Truth About Uncertainty
### Added
- **Methodology disclosure (T15)** — every analytical tool response now includes `_meta.methodology` and `_meta.confidence_level`:
- `get_call_hierarchy` + `get_impact_preview` → `text_heuristic` / `low`
- `get_symbol_c
## Phase 4: Guard the Gates — Test Infrastructure
CI now catches correctness regressions, not just crashes.
### T12 — Correctness Fixture Library
Three shared pytest fixtures in `conftest.py` (`small_index`, `medium_index`, `hierarchy_index`) provide deterministic synthetic Pyt
## What changed
### Fixed
- **BM25 avgdl inflation corrected (T10)** — document length (_dl) was computed from the weighted repeated token bag (name tokens x3, signature tokens x2, etc.), inflating avgdl and distorting the length-normalisation term K. Now computed from len(set(t
## What's Fixed
### Watcher hash-cache double-read race (T6)
After each incremental reindex the watcher previously re-read each changed file to compute the new content hash for its in-memory cache.
**The race:** if the file changed again between index_folder's internal read an
## What's Fixed
### T5: Threading locks on all in-process caches
Four module-level caches were missing `threading.Lock` guards, leaving them vulnerable to data races under concurrent MCP requests (HTTP transport, multi-client stdio):
- **`_bare_name_cache`** (`tools/_utils.py`
### Fixed
- **`truncated` flag now correct when `token_budget` packing drops results** — in the BM25 search path, fuzzy results appended after budget packing could mask dropped results and produce `truncated=False` incorrectly. Now tracked as a separate `budget_truncated` boolea
## What's Changed
* fix: update documentation links to new domain for consistency by @samanhappy in https://github.com/samanhappy/mcphub/pull/712
* fix: persist passthroughHeaders in database mode by @samanhappy in https://github.com/samanhappy/mcphub/pull/714
* feat: add configu
## Highlights
### Code Intelligence — 248 Languages
New `code_intelligence` field on `ExtractionResult` via [tree-sitter-language-pack](https://github.com/kreuzberg-dev/tree-sitter-language-pack). Extract functions, classes, imports, exports, symbols, docstrings, and diagnostics