v0.11.0

Stirling-Tools/Stirling-PDFv0.11.0Sep 21, 2026by github-actions[bot]

Upgrading?

AI Summary

This release introduces multi-language package distributions (npm, Rust, Python) and support for the MCP server and Neovim plugin. It also includes significant performance optimizations and bug fixes for query parsing and git status handling.

Key Highlights

  • Multi-language package support (npm, Rust, Python) and Neovim plugin support
  • Introduction of MCP server (`fff-mcp`)
  • Performance improvements cutting RSS by 70% and peak by 30%
  • New features like Git recency bonuses and rename watching

New Features

  • Neovim Plugin (Lua module)
  • C FFI Library (for Bun/Node/Python)
  • MCP Server binary
  • Python Package (PyPI)
  • Git Recency Bonuses
  • Rename Watching
  • Case Mode Options (smart, sensitive, insensitive)

Full Release Notes

Release 0.11.0

npm packages, rust crates and python wheels are available under this version 0.11.0

## Neovim Plugin
- `{target}.so` / `.dylib` / `.dll` - Lua module for Neovim

## C FFI Library (for Bun/Node/Python)
- `c-lib-{target}.so` / `.dylib` / `.dll` - C FFI library

## MCP Server
- `fff-mcp-{target}` - MCP server binary

## Python Package
- `python/*.whl` / `python/*.tar.gz` - Python wheels and sdist
- Install from PyPI: `pip install fff-search` (when published)

Update mcp via:
```sh
curl -fsSL https://raw.githubusercontent.com/dmtrKovalenko/fff/main/install-mcp.sh | bash
```


## What's Changed
* test: Commit CI regression by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/696
* fix(fff-mcp): omit git:clean from find_files output by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/845
* fix(grep): enforce_time_budget option for zero-match searches (#826) by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/827
* fix(core): skip only the binary file, not the rest of its bigram chunk by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/865
* chore: regenerate Neovim vimdoc by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/861
* fix(query-parser): parse file:line after a Windows drive letter by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/864
* fix(core): compare relative paths longer than 512 bytes by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/862
* fix(nvim): keep End path shortening on a char boundary by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/860
* fix(core): stop labelling unclassified git statuses as clean by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/863
* fix(query-parser): stop treating dotted numbers as file-path filters by @kevin9327 in https://github.com/dmtrKovalenko/fff/pull/870
* perf(core): cut indexing RSS by 70% and peak by 30% by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/859
* fix(fff-mcp): apply --max-cached-files as a cap, not a repo size (#847) by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/848
* chore: regenerate Neovim vimdoc by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/871
* chore: regenerate Neovim vimdoc by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/876
* chore: Add rapidproxy sponsor by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/877
* fix(pi-fff): fall back to fff-node when fff-bun cannot be imported by @manooog in https://github.com/dmtrKovalenko/fff/pull/779
* feat: Git recency bonuses by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/841
* fix(pi-fff): skip the picker instead of erroring when cwd scanning is opted out (#857) by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/858
* fix(pi-fff): drop stale mode tool names on reload (#855) by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/856
* fix: Do not start fallback grep if index is not ready by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/880
* perf(core): share frizbee hot-loop instantiations to cut binary size ~17% by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/872
* feat(c): support cargo-c and install pkg-config file by @bet4it in https://github.com/dmtrKovalenko/fff/pull/879
* feat: Catch renames during watcher by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/767
* feat(pi-fff): add compact clickable rendering for search tools by @RunMintOn in https://github.com/dmtrKovalenko/fff/pull/852
* fix(pi-fff): preserve FFF tool renderers across reload by @RunMintOn in https://github.com/dmtrKovalenko/fff/pull/854
* feat(sdk)!: add case_mode:  smart, sensitive, insensitive option by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/609
* chore: regenerate Neovim vimdoc by @gustav-fff in https://github.com/dmtrKovalenko/fff/pull/882
* fix(windows): rename events paths arrive correctly by @dmtrKovalenko in https://github.com/dmtrKovalenko/fff/pull/881

## New Contributors
* @kevin9327 made their first contribution in https://github.com/dmtrKovalenko/fff/pull/865
* @manooog made their first contribution in https://github.com/dmtrKovalenko/fff/pull/779
* @bet4it made their first contribution in https://github.com/dmtrKovalenko/fff/pull/879

**Full Changelog**: https://github.com/dmtrKovalenko/fff/compare/v0.10.6...v0.11.0

Related Repositories