v0.11.0

dmtrKovalenko/fffv0.11.0Sep 21, 2026by github-actions[bot]

Upgrading?

AI Summary

Version 0.11.0 introduces npm packages, Rust crates, and Python wheels, alongside significant performance optimizations. The release includes new features like Git recency bonuses, case mode options, and rename detection, alongside various bug fixes for the MCP server, query parser, and core functionality.

Key Highlights

  • Performance improvements: Reduced indexing RSS by 70% and peak memory by 30%.
  • New features: Added Git recency bonuses, rename detection, and case mode options.
  • New artifacts: Python wheels are now available on PyPI as `fff-search`.
  • Fixes: Resolved query parsing issues on Windows and MCP server output problems.

Breaking Changes

  • feat(sdk)!: add case_mode: smart, sensitive, insensitive option

New Features

  • Git recency bonuses for search results
  • Case mode options (smart, sensitive, insensitive) for the SDK
  • Catch renames during the file watcher
  • Support for cargo-c and pkg-config file installation
  • Compact clickable rendering for search tools in pi-fff

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