v0.11.0

silvia-odwyer/photonv0.11.0Sep 21, 2026by github-actions[bot]

Upgrading?

AI Summary

This release introduces new package distributions for npm, Rust crates, and Python, alongside a new MCP server binary. It includes significant performance optimizations, specifically a 70% reduction in indexing RSS, and adds new features like Git recency bonuses and case sensitivity options.

Key Highlights

  • New package distributions available (npm, Rust crates, Python wheels).
  • New MCP Server binary for integration.
  • Significant performance improvement: 70% reduction in indexing RSS.
  • New feature: Git recency bonuses for search results.
  • New feature: Case mode options (smart, sensitive, insensitive).

New Features

  • Neovim Plugin support (Lua module).
  • C FFI Library support for Bun/Node/Python.
  • Python package available on PyPI (`fff-search`).
  • MCP Server binary.
  • Git recency bonuses.
  • Case sensitivity options for SDK.

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