v0.26.0

niklasvh/html2canvasv0.26.0Jun 11, 2026by github-actions[bot]

AI Summary

Feature-rich update introducing auto-populated model lists for multiple providers, new data source connectors (Outlook, OneDrive, Teams, Slack, SharePoint, Salesforce, Azure Blob Storage), and checkpoint/resume for GraphRAG indexing.

Key Highlights

  • Auto-populated model lists for 10+ providers (Ollama, OpenRouter, vLLM, LM-Studio, etc.)
  • New data source connectors: Outlook, OneDrive, Teams, Slack, SharePoint, Salesforce, Azure Blob Storage
  • GraphRAG checkpoint and resume feature for extraction and entity resolution
  • Removed ` ` text buffering for faster reasoning-capable models
  • Complete Korean and Italian translations

New Features

  • SiliconFlow, MiniMax-M3, Anthropic, Voyage 4, and Cohere model support
  • Fixed thinking mode for MiniMax models
  • Fixed infinite loops in thinking mode for Qwen3.5/3.6
  • Fixed streamed answer duplication in OpenAI-compatible API
  • Fixed serialization errors for NaN/Inf numeric scores

Full Release Notes

## Summary

### New features

- **Model providers**
  - Implements auto-populated model lists for multiple providers, eliminating the need to type model names manually. This feature currently supports: Ollama, OpenRouter, vLLM, OpenAI-API-Compatible, LM-Studio, VolcEngine, Xinference, LocalAI, BaiduYiyan, GPUStack, and Fish Audio.
  - Allows configuring multiple API keys for the same model provider. [#14595](https://github.com/infiniflow/ragflow/pull/14595)
  - Dynamically populates model selection dropdowns in the UI by fetching the currently available models directly from remote model providers. [#15711](https://github.com/infiniflow/ragflow/pull/15711)
- **Data source connectors**: Implements new data source connectors for Outlook, OneDrive, Microsoft Teams, Slack, SharePoint, Salesforce, and Azure Blob Storage. [#15333](https://github.com/infiniflow/ragflow/pull/15333)[#15330](https://github.com/infiniflow/ragflow/pull/15330)[#15332](https://github.com/infiniflow/ragflow/pull/15332)[#15188](https://github.com/infiniflow/ragflow/pull/15188)[#15190](https://github.com/infiniflow/ragflow/pull/15190)[#15462](https://github.com/infiniflow/ragflow/pull/15462)[#15466](https://github.com/infiniflow/ragflow/pull/15466)
- **Dataset** - Implements a checkpoint and resume feature for community extraction and entity resolution, the most expensive and time-consuming parts of the GraphRAG indexing pipeline. [#15518](https://github.com/infiniflow/ragflow/issues/15518)[#15523](https://github.com/infiniflow/ragflow/pull/15523)

### Improvements

- Removes `<think>` text buffering to ensure reasoning-capable models feel faster and more transparent during interactions. [#15891](https://github.com/infiniflow/ragflow/pull/15891)
- Marks MySQL migrations as applied. [#15504](https://github.com/infiniflow/ragflow/pull/15504)

### Model Support

- Four new SiliconFlow models [#15383](https://github.com/infiniflow/ragflow/pull/15383)
- MiniMax-M3 model [#15513](https://github.com/infiniflow/ragflow/pull/15513)
- Latest Anthropic models [#15516](https://github.com/infiniflow/ragflow/pull/15516)
- Voyage 4 model family [#15516](https://github.com/infiniflow/ragflow/pull/15516)
- Cohere model list. [#15576](https://github.com/infiniflow/ragflow/pull/15576)

### i18n

- Completes Korean translation. [#15863](https://github.com/infiniflow/ragflow/pull/15863)
- Completes Italian translation. [#15729](https://github.com/infiniflow/ragflow/pull/15729)

### Bug fixes

- The thinking mode of MiniMax models was not correctly enabled. [#15496](https://github.com/infiniflow/ragflow/pull/15496)
- Infinite loops were triggered when the thinking mode was enabled for Qwen3.5 and Qwen3.6 models. [#15101](https://github.com/infiniflow/ragflow/pull/15101)
- Streamed answers were being duplicated when using the OpenAI-compatible chat completions API endpoint. [#15286](https://github.com/infiniflow/ragflow/issues/15286)[#15443](https://github.com/infiniflow/ragflow/pull/15443)
- Serialization errors were caused during chat completions when invalid numeric scores like `NaN` (Not-a-Number) or `Inf` (Infinity) were passed to the JSON encoder. [#15245](https://github.com/infiniflow/ragflow/issues/15245)[#15266](https://github.com/infiniflow/ragflow/pull/15266)
- Chat completions using LiteLLM providers were failing because unrecognized internal configuration parameters were not being filtered out before reaching the external APIs. [#15427](https://github.com/infiniflow/ragflow/issues/15427)[#15432](https://github.com/infiniflow/ragflow/pull/15432)
- The OpenAI-compatible chat completions API was defaulting to streamed responses. [#15356](https://github.com/infiniflow/ragflow/issues/15356)[#15394](https://github.com/infiniflow/ragflow/pull/15394)
- Empty `AND` results were incorrectly dropped during metadata filtering. [#15477](https://github.com/infiniflow/ragflow/pull/15477)
- Repetitive page chrome, such as headers and footers, was incorrectly extracted as main text by the MinerU parser. [#15335](https://github.com/infiniflow/ragflow/issues/15335)[#15387](https://github.com/infiniflow/ragflow/pull/15387)
- English chart titles were missing during document extraction in the DeepDoc module. [#15481](https://github.com/infiniflow/ragflow/pull/15481)
- Empty outputs were returned by the TitleChunker for `json` and `chunks` upstream formats [#14247](https://github.com/infiniflow/ragflow/pull/14247)[#15396](https://github.com/infiniflow/ragflow/pull/15396)
- An error message was missing when a .tsv file upload attempt failed. [#15284](https://github.com/infiniflow/ragflow/pull/15284)
- API tokens missing beta values caused token retrieval errors. [#15405](https://github.com/infiniflow/ragflow/pull/15405)
- Caps the maximum page size to fix system crashes or slowdowns from large queries. [#15292](https://github.com/infiniflow/ragflow/pull/15292)
- Client errors were caused by the OpenAI-compatible chat completion API incorrectly defaulting to streamed responses. [#15356](https://github.com/infiniflow/ragflow/issues/15356)[#15394](https://github.com/infiniflow/ragflow/pull/15394)
- HTTP 500 internal server errors were triggered instead of standard 4xx client errors when users attempted to download missing files from the storage backend. [#15369](https://github.com/infiniflow/ragflow/issues/15369)[#15371](https://github.com/infiniflow/ragflow/pull/15371)
- GraphRAG entity ranking was broken. [#15795](https://github.com/infiniflow/ragflow/issues/15795)[#15797](https://github.com/infiniflow/ragflow/pull/15797)


## What's Changed
* Fix: The Creativity parameter of chat was not saved. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15243
* Feat: add new tests and tescases for restful api suite by @6ba3i in https://github.com/infiniflow/ragflow/pull/15277
* fix(go-models): add VolcEngine model listing suffix by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15234
* go: add Qiniu model provider by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15280
* feat: add GiteeAI provider support to Go API server by @Helios531 in https://github.com/infiniflow/ragflow/pull/15131
* Go: implement Rerank in Replicate driver by @sxxtony in https://github.com/infiniflow/ragflow/pull/15278
* Go: implement connector get API by @tmimmanuel in https://github.com/infiniflow/ragflow/pull/15259
* Go: implement TTS and ASR for X.AI by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15247
* fix(go-models): validate TokenHub chat requests by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15283
* Fix: Uploading TSV format documents to the knowledge base did not generate any error messages. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15284
* feat[Go]: implement create_connector API by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15285
* Fix: ExeSQL node continues on per-statement SQL errors by @nickmopen in https://github.com/infiniflow/ragflow/pull/15140
* Docs: Updated converse with agent API reference. by @writinwaters in https://github.com/infiniflow/ragflow/pull/15257
* Docs: Finalized v0.25.6 release notes. by @writinwaters in https://github.com/infiniflow/ragflow/pull/15305
* Refactor: Task Executor by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15154
* go: add PATCH /api/v1/users/me user settings update by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15297
* Feat: add new tests and tescases for restful api suite by @6ba3i in https://github.com/infiniflow/ragflow/pull/15299
* Feature: Allow page_size max value 100 by @wangq8 in https://github.com/infiniflow/ragflow/pull/15292
* feat: implement SharePoint data source connector by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15190
* Go: implement system healthz API by @tmimmanuel in https://github.com/infiniflow/ragflow/pull/15307
* fix: include user model settings in /user/me response by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15320
* fix(go-models): harden 302.AI driver requests by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15289
* Fix: Clustering method echo error by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15322
* feat: implement Slack data source connector by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15188
* Update developer doc by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15336
* feat: add Go MCP server create API by @Helios531 in https://github.com/infiniflow/ragflow/pull/15260
* feat[Go]: implement delete/ rebuild/ listlog api for connector by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15300
* fix(go-models): harden LongCat default transport handling by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15340
* fix(go-models): harden Voyage default transport handling by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15341
* feat: implement Microsoft Teams data source connector by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15193
* feat(go-api): implement connector (data source) management endpoints by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15274
* feat(go-api): implement GET /api/v1/agents list endpoint (issue #15328) by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15329
* fix(go-models): harden ModelScope default transport handling by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15339
* Fix(kb): enforce tenant authorization on UpdateMetadataSetting (#15268) by @nickmopen in https://github.com/infiniflow/ragflow/pull/15270
* fix(go-models): harden JieKouAI driver requests by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15337
* feat[Go]: implement /api/v1/system/status GET by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15348
* feat(go-api): implement tenant member management (issue #15294) by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15295
* fix: validate custom model inputs by @bitloi in https://github.com/infiniflow/ragflow/pull/15200
* fix(go-models): harden Novita default transport handling by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15350
* Feat: tenant llm provider by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/14595
* Fix: default OpenAI chat completions to non-stream by @buua436 in https://github.com/infiniflow/ragflow/pull/15394
* feat(connector): implement OneDrive data source connector (issue #15330) by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15331
* feat: add 4 new models for siliconflow by @leslie2046 in https://github.com/infiniflow/ragflow/pull/15383
* Fix user registration initialization in Go API by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15349
* feat: add Go MCP server delete API by @Helios531 in https://github.com/infiniflow/ragflow/pull/15262
* fix: persist logout access token invalidation by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15397
* feat[Go]: implement /system/stats and refactor /system/config/log by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15407
* fix(go): resolve custom base_url for empty default region by @bitloi in https://github.com/infiniflow/ragflow/pull/15043
* fix(metadata): preserve empty AND results across filter conditions by @monsterdavidliu-ux in https://github.com/infiniflow/ragflow/pull/15386
* fix(go-models): raise SSE scanner buffer so large stream chunks are not dropped by @Dexterity104 in https://github.com/infiniflow/ragflow/pull/15382
* Validate chunk image_base64 before doc-store write by @kiannidev in https://github.com/infiniflow/ragflow/pull/15364
* Fix: JWT algorithm-confusion in OIDC ID token verification by @galuis116 in https://github.com/infiniflow/ragflow/pull/15181
* fix(go-models): harden Hunyuan embedding validation by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15249
* fix: backfill missing api token beta values by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15405
* File addition .rooignore by @Attili-sys in https://github.com/infiniflow/ragflow/pull/15414
* fix: upgrade crawl4ai to 0.8.0 (CVE-2026-26217) by @orbisai0security in https://github.com/infiniflow/ragflow/pull/15415
* fix(api): move dify retrieval health check to /dify/retrieval/health by @jony376 in https://github.com/infiniflow/ragflow/pull/15311
* fix(opensearch): implement get_scores for KNN second-pass scoring by @ef-rintaro in https://github.com/infiniflow/ragflow/pull/15390
* fix(opensearch): repair document-metadata path broken by #14577 by @ef-rintaro in https://github.com/infiniflow/ragflow/pull/15393
* feat(connector): implement Outlook data source connector (issue #15332) by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15333
* Fix: If the filename is too long, it overflows the confirmation box for deleting the file. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15287
* Fix memory empty issue by @wangq8 in https://github.com/infiniflow/ragflow/pull/15411
* Feat: add new tests and tescases for restful api suite by @6ba3i in https://github.com/infiniflow/ragflow/pull/15347
* feat[Go] implement api/v1/thumbnails API by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15416
* Go: implement Embed in GPUStack driver by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15182
* Go: implement dataset ingestion log APIs by @sxxtony in https://github.com/infiniflow/ragflow/pull/15421
* GraphRAG - NER - spacy - fix spacy extraction by @wangq8 in https://github.com/infiniflow/ragflow/pull/14783
* Fix: Unable to create dataset by @cike8899 in https://github.com/infiniflow/ragflow/pull/15472
* fix: restore TitleChunker output for json/chunks upstream formats by @euvre in https://github.com/infiniflow/ragflow/pull/15396
* Fix: The newly added model did not appear in the drop-down menu. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15476
* Return 4xx when file download storage blob is missing by @kiannidev in https://github.com/infiniflow/ragflow/pull/15371
* Infer Content-Type for document image endpoint by @kiannidev in https://github.com/infiniflow/ragflow/pull/15368
* Bug fix: Enhance embeding model to give better error message by @wangq8 in https://github.com/infiniflow/ragflow/pull/15346
* fix(deepdoc): add English caption patterns to fix missing figure/table numbering by @euvre in https://github.com/infiniflow/ragflow/pull/15481
* fix(go-models): apply custom Google base URLs by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15385
* fix(mineru): skip page chrome blocks to prevent duplicate chunks by @monsterdavidliu-ux in https://github.com/infiniflow/ragflow/pull/15387
* Docs: Added a guide on how to ingest an RSS feed. by @writinwaters in https://github.com/infiniflow/ragflow/pull/15467
* docs: add Tigris as S3-compatible storage backend, fix s3 region field name by @davidmyriel in https://github.com/infiniflow/ragflow/pull/15361
* feat: add Go MCP server list API by @Helios531 in https://github.com/infiniflow/ragflow/pull/15253
* feat(go-api): implement password-reset flow (issue #15282) by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15293
* Fix:empty chat model fallback by @buua436 in https://github.com/infiniflow/ragflow/pull/15477
* fix(llm): strip non-generation keys from gen_conf for LiteLLM providers (#15427) by @nickmopen in https://github.com/infiniflow/ragflow/pull/15432
* fix(chat): sanitize NaN/Inf scores before serializing chat completions (#15245) by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15266
* Fix auto metadata type issue by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15338
* fix(api): handle array message content on OpenAI chat completions by @glorysr1209-png in https://github.com/infiniflow/ragflow/pull/15359
* fix(migration): parameterize tenant_model_provider inserts in mysql_migration by @jony376 in https://github.com/infiniflow/ragflow/pull/15313
* fix(rag): id2image parsing for hyphenated storage object keys (#15117) by @kiannidev in https://github.com/infiniflow/ragflow/pull/15118
* fix(api): document image_id parsing for hyphenated thumbnail keys (#15115) by @kiannidev in https://github.com/infiniflow/ragflow/pull/15116
* Add Bulk action for linking Multiple Files to Datasets by @Letssharearow in https://github.com/infiniflow/ragflow/pull/14960
* Fix: migrate legacy model id configs by @buua436 in https://github.com/infiniflow/ragflow/pull/15495
* fix(api): stop duplicating answer in openai-compatible chat completions stream (#15286) by @nickmopen in https://github.com/infiniflow/ragflow/pull/15443
* Fix: disable thinking to avoid potential infinite loops in Qwen3.5/Qwen3.6 models by @Aeovy in https://github.com/infiniflow/ragflow/pull/15101
* fix: rewrite enable thinking mode for minimax by @Dimon0000000 in https://github.com/infiniflow/ragflow/pull/15496
* fix(go-models): remove duplicate roundTripperFunc from novita_test.go by @dripsmvcp in https://github.com/infiniflow/ragflow/pull/15492
* feat[Go] implement /api/v1/datasets/<dataset_id>/metadata/config by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15493
* Fix: model-provider bugs by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15460
* fix: post /api/v1/system/tokens by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15410
* fix(go-models): harden N1N default transport handling by @glorydavid03023 in https://github.com/infiniflow/ragflow/pull/15351
* Feat: mark mysql migrations as applied by @buua436 in https://github.com/infiniflow/ragflow/pull/15504
* fix(go-models): use per call context timeouts so long streaming responses are not truncated by @Dexterity104 in https://github.com/infiniflow/ragflow/pull/15380
* feat: add Go MCP server update API by @Helios531 in https://github.com/infiniflow/ragflow/pull/15261
* Feature: Add MiniMax M3 by @wangq8 in https://github.com/infiniflow/ragflow/pull/15513
* Feature: Add the new anthropic and voyage models by @wangq8 in https://github.com/infiniflow/ragflow/pull/15516
* Fix: model provider by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15517
* feat[Go] implement check connection by using apikey and region by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15475
* feat[Go]: implement /api/v1/connectors/<connector_id> PATCH by @Dimon0000000 in https://github.com/infiniflow/ragflow/pull/15512
* GOCli check provider region by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15474
* Fix: model provider orders by @wangq8 in https://github.com/infiniflow/ragflow/pull/15524
* [Fix] naive: force-merge short markdown headers to prevent separate chunks by @VictorECDSA in https://github.com/infiniflow/ragflow/pull/15488
* Guard missing storage blobs on preview and image endpoints by @kiannidev in https://github.com/infiniflow/ragflow/pull/15366
* Fix: Chat completion generation parameter overrides by @bitloi in https://github.com/infiniflow/ragflow/pull/15389
* Refa: refine mysql migration version workflow by @buua436 in https://github.com/infiniflow/ragflow/pull/15549
* Fix: Model provider add verify and fixed form in modal not resetting issue by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15520
* Go: fix gitee balance api by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15554
* Go: refactor provider code by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15564
* Feat: display intl url for siliconflow and verify model provider without llms in json by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15550
* Fix: agent template smart_customer_service_specialist.json by @buua436 in https://github.com/infiniflow/ragflow/pull/15565
* feat[Go]: implement add multi_models by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15563
* Chore: update cohere models by @6ba3i in https://github.com/infiniflow/ragflow/pull/15576
* Fix: Switching pagesize on a chunk page did not reset the current page. by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15401
* Fix: no more @token_required by @wangq8 in https://github.com/infiniflow/ragflow/pull/15562
* Go: refactor model provider by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15568
* refactor: overhaul task executor with layered architecture and comprehensive test suite by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15471
* Remove unused codes by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15579
* fix(api): guard document rename when linked file row is missing by @bohdansolovie in https://github.com/infiniflow/ragflow/pull/15536
* refactor(go-models): add unsupported model driver defaults by @bitloi in https://github.com/infiniflow/ragflow/pull/15431
* Fix: consolidate beta auth by @wangq8 in https://github.com/infiniflow/ragflow/pull/15581
* feat[Go] implement /connectors/google/oauth by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15584
* feat: migrate DELETE /api/v1/datasets/:dataset_id/documents to Go by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15577
* fix: show default embedding model when provider is not yet registered by @euvre in https://github.com/infiniflow/ragflow/pull/15511
* fix(api): restore DocumentService.accessible check on /preview by @dripsmvcp in https://github.com/infiniflow/ragflow/pull/15508
* fix(api): restore accessible check on document preview by @kiannidev in https://github.com/infiniflow/ragflow/pull/15505
* Fix: think stream tail handling by @buua436 in https://github.com/infiniflow/ragflow/pull/15582
* Fix: search bot and verify model instance by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15588
* Fix: remove duplicate document preview access check by @buua436 in https://github.com/infiniflow/ragflow/pull/15625
* Fix: markdown fenced code block extraction by @bitloi in https://github.com/infiniflow/ragflow/pull/15630
* fix: fall back from empty Docling native chunks by @he-yufeng in https://github.com/infiniflow/ragflow/pull/15601
* feat: migrate POST /api/v1/datasets/<dataset_id>/documents/stop to Go by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15597
* feat: implement GET /api/v1/agents/<agent_id>/versions API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15629
* Fix: model provider by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15634
* feat: implement POST /api/v1/agents/<agent_id>/upload API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15633
* fix: pass search id to searchbots ask by @buua436 in https://github.com/infiniflow/ragflow/pull/15646
* Refactor[Go Model Provider]: refactor baseURL and modelConfig by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15627
* fix: duplicate document ingest guard by @buua436 in https://github.com/infiniflow/ragflow/pull/15638
* feat: implement GET /api/v1/agents/<agent_id>/versions/<version_id> API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15640
* feat: implement POST /api/v1/searchbots/related_questions API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15639
* feat: migrate meta_filter and convert_conditions to Go by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15648
* fix: add nil guard to DocumentDAO.GetByIDs and add tests by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15649
* feat(connectors): add Azure Blob Storage data source connector by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15466
* refactor: change GetFlattedMetaByKBs return type to common.MetaData by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15656
* feat: add ResolveReferenceMetadata utility function by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15663
* fix(docker): mount tmpfs on es01 /tmp for entrypoint permissions by @whhe in https://github.com/infiniflow/ragflow/pull/15655
* Fix: volc engine and other json key factories by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15653
* fix(api): set SDK document download Content-Type from filename (#15112) by @kiannidev in https://github.com/infiniflow/ragflow/pull/15113
* feat: add KG scoring utilities by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15666
* feat: add QueryRewrite prompt builder and response parser by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15669
* feat[Go]: implement GET /agents/templates (issue #15240) by @dripsmvcp in https://github.com/infiniflow/ragflow/pull/15573
* Fix: preserve markdown tables during delimiter extraction by @bitloi in https://github.com/infiniflow/ragflow/pull/15632
* Refactor: consolidate to use @login_required by @wangq8 in https://github.com/infiniflow/ragflow/pull/15652
* feat: support SelectFields override in DocEngine for KG-specific queries by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15684
* feat: add EnrichChunksWithDocMetadata function to attach document metadata to chunks by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15659
* fix: restore case-insensitive contains/not contains/not in and consolidate metadata filter pipeline by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15686
* fix: prevent duplicated post-think text by @buua436 in https://github.com/infiniflow/ragflow/pull/15651
* feat[Go]: implement Agent/Workflow PUT /api/v1/agents/<canvas_id>/tags by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15641
* feat: add KG entity/relation/community search functions by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15689
* feat(connectors): add Salesforce CRM data source connector by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15462
* feat(go-api): implement MCP server management endpoints by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15281
* Go: implement Bedrock embeddings by @tmimmanuel in https://github.com/infiniflow/ragflow/pull/15543
* fix: Update Dockerfile and release workflow to use GitHub mirror instead of Gitee by @asiroliu in https://github.com/infiniflow/ragflow/pull/15700
* fix(agent): skip empty switch conditions by @he-yufeng in https://github.com/infiniflow/ragflow/pull/15691
* Revert "fix(api): authorize owner_ids for list chats and search apps (#14775) by @wangq8 in https://github.com/infiniflow/ragflow/pull/15698
* Revert "fix: duplicate document ingest guard" by @wangq8 in https://github.com/infiniflow/ragflow/pull/15707
* feat: add KGSearchRetrieval for full KG pipeline (N-hop, scoring, query_rewrite, community) by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15690
* Fix: When adding a chat in the main interface, a warning will automatically pop up  by @cike8899 in https://github.com/infiniflow/ragflow/pull/15685
* feat(go-cli): support batch model add/remove and optional embedding dimension by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15631
* feat: Dify-compatible retrieval API endpoint by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15704
* fix(onedrive): normalize folder_path for Graph delta URL by @kiannidev in https://github.com/infiniflow/ragflow/pull/15503
* Feat: get model list from remote by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15711
* fix(go-api): sync document handler interface and enforce preview acce… by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15688
* Refine handling of POST /api/v1/datasets/search in GO by @qinling0210 in https://github.com/infiniflow/ragflow/pull/15583
* fix(retrieval): keep rerank window aligned to page_size for deep pagination by @cleanjunc in https://github.com/infiniflow/ragflow/pull/15434
* feat[Go]: implement GET /plugin/tools (issue #15240) by @dripsmvcp in https://github.com/infiniflow/ragflow/pull/15570
* fix(rerank): normalize reranker scores onto a single scale before hybrid blend by @cleanjunc in https://github.com/infiniflow/ragflow/pull/15429
* Go: implement Xiaomi chat provider by @tmimmanuel in https://github.com/infiniflow/ragflow/pull/15626
* fix(go-models): increase JieKouAI SSE scanner buffer by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15737
* fix: normalize reasoning model families by @bitloi in https://github.com/infiniflow/ragflow/pull/15612
* Fix: The time zone is not displayed on the personal profile page. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15759
* feat: add placeholder model metas by @buua436 in https://github.com/infiniflow/ragflow/pull/15753
* Update Rerank logic in GO by @qinling0210 in https://github.com/infiniflow/ragflow/pull/15755
* fix: normalize agent session chunks by @buua436 in https://github.com/infiniflow/ragflow/pull/15756
* Fix: The embedded website floating component on the agent page does not display citations. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15767
* feat: implement POST /api/v1/searchbots/retrieval_test by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15710
* fix(opensearch): keep the BM25 leg in hybrid search by @mateidanut in https://github.com/infiniflow/ragflow/pull/15760
* feat[Go]: implement /api/v1/agents/<agent_id>/sessions by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15705
* Fix : Ci fail for infinity on level p3 by @6ba3i in https://github.com/infiniflow/ragflow/pull/15757
* Addd OpenRouter OpenAI API compatible list models by @wangq8 in https://github.com/infiniflow/ragflow/pull/15764
* feat: Unify the 'Add Model Provider' modal by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15768
* fix: refine think stream parsing by @buua436 in https://github.com/infiniflow/ragflow/pull/15745
* feat: implement FetchChunkVectors for citation vector hydration by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15749
* Fix: Model provider bugs by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15770
* fix(nlp): tokenize content_tks by whitespace in FulltextQueryer.paragraph by @seekmistar01 in https://github.com/infiniflow/ragflow/pull/15721
* Fix: Excel parser emits a spurious header-only chunk at exact chunk_rows multiples by @devYRPauli in https://github.com/infiniflow/ragflow/pull/15490
* fix(opensearch): keep "id" in _source on insert so document metadata isn't empty by @ef-rintaro in https://github.com/infiniflow/ragflow/pull/15473
* feat(web): show provider count on each model-type filter tag by @sunlight7777777 in https://github.com/infiniflow/ragflow/pull/15444
* i18n(it): complete Italian translation (49% → 100%) by @gaulin-ai in https://github.com/infiniflow/ragflow/pull/15729
* fix(browser): show resolved variables in workflow run log input by @huang-aoqin in https://github.com/infiniflow/ragflow/pull/15325
* feat: add ModelMeta implementations for Xinference, LocalAI, BaiduYiyan, and Tencent Cloud by @euvre in https://github.com/infiniflow/ragflow/pull/15752
* fix: support auto mode in table parser document metadata aggregation by @euvre in https://github.com/infiniflow/ragflow/pull/15780
* fix: Resolve error when checking pipeline parsing result by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15778
* Fix: Add a waiting status to the messages on the chat page. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15773
* fix: await lmstudio embedding verification by @buua436 in https://github.com/infiniflow/ragflow/pull/15772
* Fix OpenRouter key JSONDecodeError by @wangq8 in https://github.com/infiniflow/ragflow/pull/15776
* fix(go-models): fix Moonshot model and balance requests by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15528
* Go: implement ASR and TTS for xiaomi by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15765
* fix(go-models): validate URL suffix config keys by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15734
* fix(go-models): fix MiniMax driver requests by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15527
* fix(go-models): normalize Qwen reasoning families by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15735
* Delete not supported model providers list by @wangq8 in https://github.com/infiniflow/ragflow/pull/15783
* feat(ci): enable go test in CI pipeline by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15750
* Feat: model list by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15774
* Fix: is_english() returns False for any list argument (broken language detection) by @devYRPauli in https://github.com/infiniflow/ragflow/pull/15489
* fix: guard http.DefaultTransport type assertion in xiaomi for Go 1.25 by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15787
* Go: new CLI command, list all models and show model  by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15786
* fix(api): guard missing row in SearchService.get_detail by @dearsishs in https://github.com/infiniflow/ragflow/pull/15622
* fix(api): await asyncio.wait_for in verify_api_key embedding branch by @dearsishs in https://github.com/infiniflow/ragflow/pull/15620
* Fix: Add bge as embedding by @wangq8 in https://github.com/infiniflow/ragflow/pull/15784
* Fix: OceanBase tenant startup drift and docs by @6ba3i in https://github.com/infiniflow/ragflow/pull/15829
* Fix empty response set not take effect by @wangq8 in https://github.com/infiniflow/ragflow/pull/15824
* fix: resolve issue where some models do not use modelInfo parameter by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15830
* Fix: list intl Tongyi-Qianwen base_url by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15831
* Go: refactor CLI by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15728
* feat: Implement checkpoint/resume support for GraphRAG community extraction and entity resolution by @jonathanchang31 in https://github.com/infiniflow/ragflow/pull/15523
* Fix: An error message appears when accessing the agent's launch page: "pagesize exceeds maximum value". by @cike8899 in https://github.com/infiniflow/ragflow/pull/15835
* Clean CLI for filesystem by @yingfeng in https://github.com/infiniflow/ragflow/pull/15838
* feat(api): implement `GET /api/v1/agents/prompts` endpoint in Go by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15748
* fix: propagate memory tenant id in task collect by @buua436 in https://github.com/infiniflow/ragflow/pull/15837
* fix: Remove trailing comma in CREATE TABLE tenant_model SQL (#15832) by @Dr1985 in https://github.com/infiniflow/ragflow/pull/15836
* Go CLI: update list supported models by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15845
* fix: force image parser json output by @buua436 in https://github.com/infiniflow/ragflow/pull/15847
* fix: BaiduYiyan API key validation fails in set_api_key by @euvre in https://github.com/infiniflow/ragflow/pull/15828
* Fix: model list by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15839
* Fix: MinerU cannot be added by @wangq8 in https://github.com/infiniflow/ragflow/pull/15841
* fix: prevent None values in auto-metadata from causing KeyError by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15842
* Fix VLLM cannot add without /v1 by @wangq8 in https://github.com/infiniflow/ragflow/pull/15851
* feat: support custom editing for model list by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15855
* fix(models): guard unsafe index access in Google and Ollama drivers by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15819
* feat(go-api): Add GET dataset metadata summary API by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15843
* fix(go): guard four nil-pointer dereferences causing runtime panics by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15815
* Fix: The variables in the Visual Input File of the agent operator are not displayed. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15856
* fix(elasticsearch): complete Go result functions by @JSONbored in https://github.com/infiniflow/ragflow/pull/15148
* Fix: restore GraphRAG entity ranking by indexing pagerank and n-hop paths by @cleanjunc in https://github.com/infiniflow/ragflow/pull/15797
* fix(ci): re-enable Go tests and fix compilation errors after ListModels signature change by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15862
* Fix wrong unit test path by @yingfeng in https://github.com/infiniflow/ragflow/pull/15864
* feat: implement POST /api/v1/searchbots/ask — streaming RAG with citations and think-tag processing by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15825
* feat[Go]: implement /api/v1/agents/<agent_id> and test_db_connection by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15771
* feat[Go]: api datasets/<dataset_id>/documents/<document_id>/metadata/… by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15846
* Docs: Supported model providers and URLs updated by @writinwaters in https://github.com/infiniflow/ragflow/pull/15866
* Go CLI: switch to admin/api server by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15861
* feat(go-api): add RAG retrieval to chat completions by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15739
* Enhancement: slim Docker image, add .dockerignore, fix Go binary shipping by @6ba3i in https://github.com/infiniflow/ragflow/pull/15880
* Fix paddle ocr cannot add by @wangq8 in https://github.com/infiniflow/ragflow/pull/15858
* fix: handle qwen rerank error response by @buua436 in https://github.com/infiniflow/ragflow/pull/15881
* feat(go): Add DeepSeek models and Gitee alias metadata tests by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15885
* Fix: Fix some model provider-related UI issues by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15884
* Fix: tenant_model migrate by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15886
* fix: rename ark_api_key to api_key for volcengine provider config by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15896
* Fix add OpenRouter base_url, UI need to select at least one model to verify by @wangq8 in https://github.com/infiniflow/ragflow/pull/15894
* Fix: model list by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15860
* feat: support multi-type factory models by @buua436 in https://github.com/infiniflow/ragflow/pull/15893
* Fix: cohere call failing by @6ba3i in https://github.com/infiniflow/ragflow/pull/15899
* Go: refactor CLI by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15898
* feat(go-api): migrate agent file download handler to Go with strict P… by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15769
* feat[Go]: implement POST /api/v1/files/link-to-datasets by @hunnyboy1217 in https://github.com/infiniflow/ragflow/pull/15674
* Fix no need to put inactive models to bottom by @wangq8 in https://github.com/infiniflow/ragflow/pull/15903
* fix: remove think text buffering for real-time reasoning stream by @shaoqing404 in https://github.com/infiniflow/ragflow/pull/15891
* Fix cannot add bedrock by @wangq8 in https://github.com/infiniflow/ragflow/pull/15904
* Fix: model list by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15905
* fix: strip Ollama-style tag suffix from LocalAI model names by @xugangqiang in https://github.com/infiniflow/ragflow/pull/15908
* fix: route visual agent calls to image model by @buua436 in https://github.com/infiniflow/ragflow/pull/15906
* Fix: The dataset retrieval test returned an incorrect total number. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15901
* Fix: add thin scrollbar styling for x-spreadsheet component by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15912
* Fix cannot add fish audio by @wangq8 in https://github.com/infiniflow/ragflow/pull/15913
* Fix:  add image2text/speech2text/ocr support by @dcc123456 in https://github.com/infiniflow/ragflow/pull/15915
* fix(go): Fix case-insensitive model alias lookup by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15911
* feat(go): Update Qwen models in all_models.json by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15910
* Go: fix test and remove unused code by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15909
* feat: Implement API of ragflow server in Go by @jonathanchang31 in https://github.com/infiniflow/ragflow/pull/15256
* feat(go-api): port forgot-password flow to Go (#15282) by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15290
* Fix: model list by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15914
* Fix multiple tags by @wangq8 in https://github.com/infiniflow/ragflow/pull/15931
* fix(deps): exclude litellm 1.82.6 (internal ImportError) — #15916 by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15920
* fix: allow zero message history window and clear history for new sessions (#15897) by @zaviermeekz-cpu in https://github.com/infiniflow/ragflow/pull/15902
* fix(sync): tolerate list inputs for Discord server_ids / channels (#15790) by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15809
* fix(go-models): guard nil pointers in DeepSeek and VolcEngine streaming by @JPette1783 in https://github.com/infiniflow/ragflow/pull/15817
* Go: Refactor list-models func by @Haruko386 in https://github.com/infiniflow/ragflow/pull/15900
* Go: add parse and chunk command by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/15936
* Fix Agent chat Minimax content in thinking by @wangq8 in https://github.com/infiniflow/ragflow/pull/15937
* Fix: The regular expression configuration for pipeline header-based chunking will be reset. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15935
* fix: add model_name to embed completion request (#15883) by @zaviermeekz-cpu in https://github.com/infiniflow/ragflow/pull/15888
* fix(es): downgrade LLM-generated invalid SQL to WARNING in ES sql() (#15409) by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15709
* fix: replicate model provider  by @6ba3i in https://github.com/infiniflow/ragflow/pull/15933
* fix(api): guard dataset delete when File2Document row is missing by @bohdansolovie in https://github.com/infiniflow/ragflow/pull/15533
* fix(preview): authenticate markdown document preview requests by @monsterdavidliu-ux in https://github.com/infiniflow/ragflow/pull/15589
* fix(db): drop Peewee-auto-named unique index on tenant_model_instance (#15699) by @Rene0422 in https://github.com/infiniflow/ragflow/pull/15879
* fix(connectors): enforce WebDAV numeric string size limits by @oktofeesh1 in https://github.com/infiniflow/ragflow/pull/15731
* fix(api): POST /documents/stop removes partial chunks and resets counters by @kiannidev in https://github.com/infiniflow/ragflow/pull/15789
* fix(dialog): guard async_ask() against empty or invalid kb_ids by @bohdansolovie in https://github.com/infiniflow/ragflow/pull/15530
* fix: tolerate raw api_key string in AzureEmbed and AzureGptV4 __init__ by @jaso0n0818 in https://github.com/infiniflow/ragflow/pull/15877
* fix: guard docStoreConn.delete with index_exist in parse and stop_parsing by @jaso0n0818 in https://github.com/infiniflow/ragflow/pull/15876
* Fix: Remove the pagination from the search and retrieval pages. by @cike8899 in https://github.com/infiniflow/ragflow/pull/15942
* i18n(ko): add Korean (한국어) translation by @yooxdb in https://github.com/infiniflow/ragflow/pull/15863
* fix: propagate max_tokens from model config to downstream consumers by @shaoqing404 in https://github.com/infiniflow/ragflow/pull/15945
* Fix: get is_tools from model record by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/15946
* feat(go): Add embedding dimension metadata and validation by @Hz-186 in https://github.com/infiniflow/ragflow/pull/15939
* Fix: Search mindmap not working by @wangq8 in https://github.com/infiniflow/ragflow/pull/15949
* Docs: Added initial draft for v0.26.0 release notes. by @writinwaters in https://github.com/infiniflow/ragflow/pull/15603
* Docs: Update version references to v0.26.0 in READMEs and docs by @asiroliu in https://github.com/infiniflow/ragflow/pull/15941

## New Contributors
* @Helios531 made their first contribution in https://github.com/infiniflow/ragflow/pull/15131
* @leslie2046 made their first contribution in https://github.com/infiniflow/ragflow/pull/15383
* @monsterdavidliu-ux made their first contribution in https://github.com/infiniflow/ragflow/pull/15386
* @Dexterity104 made their first contribution in https://github.com/infiniflow/ragflow/pull/15382
* @galuis116 made their first contribution in https://github.com/infiniflow/ragflow/pull/15181
* @ef-rintaro made their first contribution in https://github.com/infiniflow/ragflow/pull/15390
* @davidmyriel made their first contribution in https://github.com/infiniflow/ragflow/pull/15361
* @glorysr1209-png made their first contribution in https://github.com/infiniflow/ragflow/pull/15359
* @Aeovy made their first contribution in https://github.com/infiniflow/ragflow/pull/15101
* @VictorECDSA made their first contribution in https://github.com/infiniflow/ragflow/pull/15488
* @he-yufeng made their first contribution in https://github.com/infiniflow/ragflow/pull/15601
* @cleanjunc made their first contribution in https://github.com/infiniflow/ragflow/pull/15434
* @mateidanut made their first contribution in https://github.com/infiniflow/ragflow/pull/15760
* @seekmistar01 made their first contribution in https://github.com/infiniflow/ragflow/pull/15721
* @devYRPauli made their first contribution in https://github.com/infiniflow/ragflow/pull/15490
* @sunlight7777777 made their first contribution in https://github.com/infiniflow/ragflow/pull/15444
* @gaulin-ai made their first contribution in https://github.com/infiniflow/ragflow/pull/15729
* @dearsishs made their first contribution in https://github.com/infiniflow/ragflow/pull/15622
* @Dr1985 made their first contribution in https://github.com/infiniflow/ragflow/pull/15836
* @zaviermeekz-cpu made their first contribution in https://github.com/infiniflow/ragflow/pull/15902
* @jaso0n0818 made their first contribution in https://github.com/infiniflow/ragflow/pull/15877
* @yooxdb made their first contribution in https://github.com/infiniflow/ragflow/pull/15863

**Full Changelog**: https://github.com/infiniflow/ragflow/compare/v0.25.6...v0.26.0