v0.26.4

blacklanternsecurity/bbotv0.26.4Jul 7, 2026by github-actions[bot]

AI Summary

Released on July 7, 2026, this update introduces a language-aware Snowball stemmer supporting 16 languages and integrates Dutch into the frontend, alongside numerous bug fixes for parsing, MCP server stability, and document processing.

Key Highlights

  • NLP/Tokenization: Adds language-aware Snowball stemmer supporting 16 languages
  • Bug fixes for LM-Studio model names containing '@' symbol
  • MCP server crash fixes for list_chats function
  • Docling parser now correctly extracts mathematical formulas
  • System now prevents users from saving duplicate MCP server names

New Features

  • Language-aware Snowball stemmer with 16 language support
  • Dutch frontend integration
  • Dataset language parameter integration across tokenization pipeline

Full Release Notes

## Summary

Released on July 7, 2026.

### New features

- NLP/Tokenization: Adds a language-aware Snowball stemmer supporting 16 languages, integrates the dataset `language` parameter across the tokenization pipeline, and adds Dutch to the frontend. [#14140](https://github.com/infiniflow/ragflow/pull/14140)

### Bug fixes

- The system crashed with a `ValueError` when parsing LM-Studio model names containing an '@' symbol. [#16467](https://github.com/infiniflow/ragflow/pull/16467)
- The MCP server crashed because the list_chats function expected a list from the `/chats` API but received a paginated dictionary instead. [#16639](https://github.com/infiniflow/ragflow/pull/16639)
- The Docling parser silently dropped mathematical formulas from documents instead of extracting them. [#16645](https://github.com/infiniflow/ragflow/pull/16645)
- The system failed to persist inline edits made to metadata values to the backend. [#16655](https://github.com/infiniflow/ragflow/pull/16655)
- The system removed existing links when bulk-linking files to datasets. [#16587](https://github.com/infiniflow/ragflow/pull/16587)
- The filter failed to use Chinese. [#16673](https://github.com/infiniflow/ragflow/pull/16673)
- The system failed to enforce that tag weights must be greater than zero. [#16657](https://github.com/infiniflow/ragflow/pull/16657)
- The layout of the agent prompt dropdown menu rendered incorrectly. [#16653](https://github.com/infiniflow/ragflow/pull/16653)
- The Laws chunker incorrectly classified dotted-number cross-references as headings. [#16626](https://github.com/infiniflow/ragflow/pull/16626)
- The system failed to prevent users from saving duplicate MCP server names during the editing process. [#16588](https://github.com/infiniflow/ragflow/pull/16588)
- The system allowed users to export an empty MCP server selection. [#16589](https://github.com/infiniflow/ragflow/pull/16589)

## What's Changed
* Go: unify three services into one binary by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16462
* Feat: Add knowledge compilation workflows by @KevinHuSh in https://github.com/infiniflow/ragflow/pull/16515
* Go: file syncer service framework by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16579
* fix(agent/tools): port AkShare to ToolBase so it works as an Agent tool by @immuhammadfurqan in https://github.com/infiniflow/ragflow/pull/16417
* fix: prevent duplicate 'skills' and '.knowledgebase' folders caused by race conditions by @euvre in https://github.com/infiniflow/ragflow/pull/16568
* Fix harness DAG slow-branch test cased by nil initialization of pregel engine  by @yingfeng in https://github.com/infiniflow/ragflow/pull/16591
* Refactor: reformat all code for lefthook using ruff and gofmt by @wangq8 in https://github.com/infiniflow/ragflow/pull/16585
* fix: preserve existing links when bulk linking files to knowledge bases by @euvre in https://github.com/infiniflow/ragflow/pull/16587
* fix: agent chat completions can not use by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16570
* fix: unable to import mcp from local by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16590
* fix: unable to fetch tools for MCP by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16583
* fix(go-file): KB counter drift when deleting files with linked documents by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16584
* fix: prevent exporting empty MCP server selection by @euvre in https://github.com/infiniflow/ragflow/pull/16589
* fix: prevent duplicate MCP server name when editing by @euvre in https://github.com/infiniflow/ragflow/pull/16588
* Go: fix 'list services' by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16598
* i18n: localize visual input file label in agent form by @euvre in https://github.com/infiniflow/ragflow/pull/16594
* Fix: optimize folder data handling in MoveDialog component by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16580
* Go: refactor by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16602
* fix(agent/tools): port Crawler to ToolBase so it can load and run by @immuhammadfurqan in https://github.com/infiniflow/ragflow/pull/16415
* Refactor(harness): remove naive inline graph engine , unify graph execution under single pregel engine by @yingfeng in https://github.com/infiniflow/ragflow/pull/16608
* Port agent PRs to GO - 3 by @qinling0210 in https://github.com/infiniflow/ragflow/pull/16596
* Feat: add gbrain compile template for session/memory data by @yingfeng in https://github.com/infiniflow/ragflow/pull/16613
* fix: get all memory in team with permission=me by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16593
* fix: get team merber's chat by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16597
* fix: get team's search in own search-list by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16599
* Fix Go: list providers order issue. by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16616
* fix: cannot get query in agent-log by @Haruko386 in https://github.com/infiniflow/ragflow/pull/16610
* fix(agent): defend against `@` in var names at all template-split sites by @skbs-eng in https://github.com/infiniflow/ragflow/pull/16469
* Go: Update error info by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16619
* Go:cli  move _order _columns  sort group by @myf-bee in https://github.com/infiniflow/ragflow/pull/16615
* fix(agent): enable MCP file preview via doc_id by @monsterdavidliu-ux in https://github.com/infiniflow/ragflow/pull/15399
* docs: update Docker build instructions for deps image by @asiroliu in https://github.com/infiniflow/ragflow/pull/16620
* Update development script by @wangq8 in https://github.com/infiniflow/ragflow/pull/16623
* Feat: Put some wiki templates. by @KevinHuSh in https://github.com/infiniflow/ragflow/pull/16617
* Delete canvas_app.py and evaluation_service.py by @wangq8 in https://github.com/infiniflow/ragflow/pull/16614
* Cap RAPTOR UMAP n_neighbors to prevent OOM on large datasets by @afrozenpeach in https://github.com/infiniflow/ragflow/pull/16627
* Align Go ingestion boundaries with Python by @yuzhichang in https://github.com/infiniflow/ragflow/pull/16647
* Refactor: pdf parser  by @xugangqiang in https://github.com/infiniflow/ragflow/pull/16625
* fix(agent): collect CodeExec artifacts from ReAct tool responses by @euvre in https://github.com/infiniflow/ragflow/pull/16609
* fix(agent): enable single-component debug for Agent in Go backend by @euvre in https://github.com/infiniflow/ragflow/pull/16606
* fix(go-skill): Elasticsearch skill search field mapping by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16611
* fix(go-document): add document and file access checks by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16592
* feat(agent): expose thinking mode control per LLM node in Agent canvas by @AI-Mart in https://github.com/infiniflow/ragflow/pull/16640
* Switch the default minio image in the helm chart as well by @carlobeltrame in https://github.com/infiniflow/ragflow/pull/16322
* Port agent PRs to GO - 4 by @qinling0210 in https://github.com/infiniflow/ragflow/pull/16652
* fix: Docling parser extracts mathematical formulas by @Sohaib9920 in https://github.com/infiniflow/ragflow/pull/16645
* fix(api): cap memory message limit and top_n at REST_API_MAX_PAGE_SIZE by @jony376 in https://github.com/infiniflow/ragflow/pull/15376
* Dev: Fix nats host by @wangq8 in https://github.com/infiniflow/ragflow/pull/16656
* fix(nlp): prevent dotted-number cross-references from being classified as headings in Laws chunker by @OSHA-B in https://github.com/infiniflow/ragflow/pull/16626
* fix(metadata): inline value edits not persisted to backend by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16655
* fix(go-agent): align agent debug input form with Python by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16654
* feat(go): add length split strategy with overlap to chunk pipeline by @Crystora in https://github.com/infiniflow/ragflow/pull/16047
* feat(go): drop empty and duplicate chunks in postprocess filter by @Crystora in https://github.com/infiniflow/ragflow/pull/16049
* Fix OpenAI response created timestamp by @Harsh23Kashyap in https://github.com/infiniflow/ragflow/pull/16401
* Fix: Layout of the agent prompt dropdown menu is messed up. by @cike8899 in https://github.com/infiniflow/ragflow/pull/16653
* Fix Tag weight should be greater than 0 by @wangq8 in https://github.com/infiniflow/ragflow/pull/16657
* Fix Agent session lost <think></think> tag by @wangq8 in https://github.com/infiniflow/ragflow/pull/16670
* Go: merge functions by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16622
* Fix filter to use Chinese by @wangq8 in https://github.com/infiniflow/ragflow/pull/16673
* fix(go): uploaded documents should be enabled by default by @euvre in https://github.com/infiniflow/ragflow/pull/16674
* Refactor: Remove redundant functions - and fix run_raptor to do_raptor by @KevinHuSh in https://github.com/infiniflow/ragflow/pull/16671
* fix(go-agent): Yahoofinance input and run by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16658
* fix(go-agent): missing input form for ExeSQL and Browser agent nodes by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16675
* fix(go-document): keep upload partial success data as array by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16661
* fix(go): add missing 'resume' chunk method for new tenants by @euvre in https://github.com/infiniflow/ragflow/pull/16660
* Align Go parser backends and PDF pipeline with Python by @yuzhichang in https://github.com/infiniflow/ragflow/pull/16676
* fix(graphrag): filter negative-judgment and misattributed relationship edges by @afrozenpeach in https://github.com/infiniflow/ragflow/pull/16541
* fix: handle missing ES/OpenSearch index in check_embedding (HTTP 500 on empty dataset) by @OSHA-B in https://github.com/infiniflow/ragflow/pull/16650
* Collapse small RAPTOR layers in one step instead of one node per layer by @afrozenpeach in https://github.com/infiniflow/ragflow/pull/16633
* fix(mcp): handle dict response in list_chats when /chats API returns paginated envelope by @BAIGUANGMEI in https://github.com/infiniflow/ragflow/pull/16639
* Make RAPTOR GMM robust on small reduced clusters by @afrozenpeach in https://github.com/infiniflow/ragflow/pull/16632
* [Bug]: Workflow agent completions default stream=True when stream is omitted by @glorysr1209-png in https://github.com/infiniflow/ragflow/pull/15484
* fix: upgrade crawl4ai to 0.9.0 (GHSA-r253-r9jw-qg44) by @orbisai0security in https://github.com/infiniflow/ragflow/pull/16426
* Feat: add event sourcing and replay to harness by @yingfeng in https://github.com/infiniflow/ragflow/pull/16326
* feat: add native Dutch language support for BM25 tokenization by @rwb-truelime in https://github.com/infiniflow/ragflow/pull/14140
* Fix: ValueError: too many values to unpack in list_tenant_added_models for model IDs containing '@' (#16467) by @skbs-eng in https://github.com/infiniflow/ragflow/pull/16468
* fix: encapsulate terminal color output and add cross-platform color detection by @Ricardo-shuo-liu in https://github.com/infiniflow/ragflow/pull/16672
* fix(go-agent-web): correct BGPT canvas form watcher usage by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16682
* refactor: use slices.Contains to simplify code by @weifanglab in https://github.com/infiniflow/ragflow/pull/16680
* fix(go-agent): add BGPT component and input form by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16684
* fix(go): seed built-in agent templates for Go backend by @euvre in https://github.com/infiniflow/ragflow/pull/16666
* feat(agent): support JSON object input on begin node by @huang-aoqin in https://github.com/infiniflow/ragflow/pull/16685
* Fix Agent Chat not working by @wangq8 in https://github.com/infiniflow/ragflow/pull/16688
* fix: strip reasoning model thinking tags from document exports by @wangq8 in https://github.com/infiniflow/ragflow/pull/16687
* fix: remove duplicate error toast on memory update failure by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16690
* Fix: Prevent text overflow in confirm delete dialog by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16689
* Go: fix development guide by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16678
* fix: Restrict the agent to using memory compatible with the embedding model. by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16699
* Fix: Referenced files not displaying. by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16696
* fix(agent): save draft version on agent update by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16691
* fix(go-pipline): list agents incorrectly filtering out ingestion pipelines by @Hz-186 in https://github.com/infiniflow/ragflow/pull/16698
* Fix: ValueError: Operation on closed image by @wangq8 in https://github.com/infiniflow/ragflow/pull/16697
* Fix cannot run raptor by @wangq8 in https://github.com/infiniflow/ragflow/pull/16694
* fix: update similarity threshold fallback to use nullish coalescing by @dcc123456 in https://github.com/infiniflow/ragflow/pull/16700
* Go: refactor UUID functions by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16695
* Fix docker pulls badge  by @yingfeng in https://github.com/infiniflow/ragflow/pull/16702
* Fix broken cache for release badge by @yingfeng in https://github.com/infiniflow/ragflow/pull/16705
* Fix broken camo cache for french by @yingfeng in https://github.com/infiniflow/ragflow/pull/16706
* Fix PageIndex is not working by @wangq8 in https://github.com/infiniflow/ragflow/pull/16704
* Fix broken logo for gitee mirrors by @yingfeng in https://github.com/infiniflow/ragflow/pull/16709
* fix(task_executor): fix Langfuse flush/shutdown deadlock that freezes document parsing by @ondery in https://github.com/infiniflow/ragflow/pull/16502
* fix: prevent memory name from auto-appending (1) on description update by @euvre in https://github.com/infiniflow/ragflow/pull/16714
* Docs: Update version references to v0.26.4 in READMEs and docs by @asiroliu in https://github.com/infiniflow/ragflow/pull/16716
* Go: add migrate database flag by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16719
* Docs: Added v0.26.4 release notes. by @writinwaters in https://github.com/infiniflow/ragflow/pull/16720
* Go: fix ragflow-cli building by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16721
* Go: fix release by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16722
* Go: remove cgo when build cli by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16723
* Go: fix cgo build by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/16724

## New Contributors
* @skbs-eng made their first contribution in https://github.com/infiniflow/ragflow/pull/16469
* @afrozenpeach made their first contribution in https://github.com/infiniflow/ragflow/pull/16627
* @AI-Mart made their first contribution in https://github.com/infiniflow/ragflow/pull/16640
* @carlobeltrame made their first contribution in https://github.com/infiniflow/ragflow/pull/16322
* @Sohaib9920 made their first contribution in https://github.com/infiniflow/ragflow/pull/16645
* @BAIGUANGMEI made their first contribution in https://github.com/infiniflow/ragflow/pull/16639
* @rwb-truelime made their first contribution in https://github.com/infiniflow/ragflow/pull/14140
* @Ricardo-shuo-liu made their first contribution in https://github.com/infiniflow/ragflow/pull/16672
* @weifanglab made their first contribution in https://github.com/infiniflow/ragflow/pull/16680

**Full Changelog**: https://github.com/infiniflow/ragflow/compare/v0.26.3...v0.26.4