Skip to content

v0.27.1

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Aug 04:10
· 30 commits to main since this release
b9df87c

New features

  • New Azure DevOps connector for data sources (#18715)
  • New You.com web search provider for chat and agent (#18478)
  • New Serply web search provider for chat (#18475)

Model Support

  • New Synthorai model provider (#18830)
  • Missing DeepSeek models added (#18678)
  • AWS Bedrock API key authentication support (#18301)

Improvements

  • Retrieval API exposes rerank_candidates_count, knn top_k, and num_candidates (#18768, #18737)
  • Metadata filters pushed down to the metadata index for faster retrieval (#18219)
  • Chat settings form auto-scrolls to the error location on save (#18811)
  • Search page validates deleted knowledge bases (#18522)

Bug fixes

  • Fixed PDF parsing failure in chat (#18860)
  • Fixed wiki compilation accepting LLM error responses (#18857)
  • Fixed MinerU rendering stability, error visibility, and code block parsing (#18617)
  • Fixed 0-chunk datasets not showing, preventing scrolling to fetch more datasets (#18810)
  • Fixed QA Excel parser dropping rows whose answer is zero (#17902)
  • Fixed naive parser treating an empty upload as a missing binary (#18826)
  • Fixed encoding detection discarding confident detection results (#15793)
  • Fixed reasoning-enabled chat ignoring the dialog system prompt (#18842)
  • Fixed knowledge compilation using the default tenant LLM instead of the pipeline LLM (#18572)
  • Fixed chat network search service not allowed to be null (#18791)
  • Fixed Firefox chat auto-scroll not pinned to the bottom (#18736)
  • Fixed chat auto-scroll not following streamed answers (#18570)
  • Fixed parsing progress not visible after selecting upload (#18741)
  • Fixed BigQuery connector constructing SQL queries incorrectly (#17500)
  • Fixed WebDAV listing errors not propagated, causing prune data loss (#18694)
  • Fixed cross-KB document ID collision in data source sync (#18244)
  • Fixed GPUStack model discovery and audio support (#18599)
  • Fixed Kimi K3 temperature (#18564)
  • Fixed OCR text lost when no image2text model is configured (#18012)
  • Fixed hierarchical Wiki topic navigation (#18721)

What's Changed

  • fix(web): style think/retrieving blocks in floating chat widget by @dcc123456 in #18512
  • fix[syncer]: github data source don't validate repo's accessible by @Haruko386 in #18477
  • fix: test data source connection need connector name by @Haruko386 in #18495
  • feat[syncer]: add data source Confluence by @Haruko386 in #18501
  • refactor: remove some unused model types by @Haruko386 in #18502
  • fix(api): report why provider model discovery failed instead of swallowing it by @olifarhaan in #18027
  • fix: preserve extensionless document suffix on GaussDB by @Sevenzuo in #18483
  • fix(memory): honor custom extraction prompts by @yzl0ng in #18461
  • fix(memory): normalize invalid extraction timestamps by @yzl0ng in #18463
  • fix(memory): require semantic valid_at timestamp by @yzl0ng in #18462
  • fix(nlp): differentiate alphabetic OOV term weights by @yzl0ng in #18470
  • fix: chat did not pass model config to provider by @Haruko386 in #18485
  • feat(chat): self-check contradictory prompt/dataset settings (#5703) by @peewee92 in #18274
  • feat(chat): add Serply web search provider by @googio in #18475
  • fix: clear stale tenant model ids by @01JohnMa in #18210
  • Feat: connector go imap by @mkaaad in #18513
  • fix: pass Infinity vector similarity weight by @Hellrakk in #17453
  • TS: update thinking description by @JinHai-CN in #18521
  • fix: keep OCR text when no image2text model is configured by @Dhruv-kys in #18012
  • fix(chat): drain deep-research goroutines before closing the async channel by @euvre in #18504
  • feat(deepdoc): Python-intermediate replay parity harness + table cell-fill fixes by @xugangqiang in #18516
  • fix(ollama): preserve multimodal images by @lntutor in #17663
  • feat(cli): add --version flag to cli by @krishna231122-del in #18534
  • Add ulimits for cpu and gpu services in Docker Compose by @Ro0tk1t in #17205
  • fix: ollama chat error by @Haruko386 in #18540
  • fix: avoid quadratic dedup in RAG merge paths by @DeviousDrops in #18135
  • refactor(chunker): replace QAChunker/PresentationChunker with PairChunker/PageChunker, drop TagChunker by @xugangqiang in #18523
  • Update release notes by @JinHai-CN in #18544
  • feat(chat): add You.com web search provider by @brainsparker in #18478
  • Fix: respect IME composition state on Enter key in dataset creating dialog by @iwasaki1112 in #17150
  • fix(dataset): preserve disabled RAPTOR and GraphRAG settings by @lntutor in #17665
  • Fix: handle tenant_llm without id by @Lynn-Inf in #18541
  • refactor(ingestion): unify auto-metadata on modular metadata and hard-delete legacy flats (BuiltInMetadata carried, not LLM) by @jay77721 in #18511
  • feat(title-chunker): enforce chunk_token_cap on the Go title-family chunks (#18455) by @xugangqiang in #18551
  • fix(deepdoc): drop nested OCR boxes before table cell fill + expose 13/14 parity gaps by @xugangqiang in #18524
  • fix: data source return two error once it occured by @Haruko386 in #18535
  • feat[syncer]: implement dingtalk AI table data source by @Haruko386 in #18539
  • docs: add dataset docs & fix broken links in docs by @Yannnnnnny in #18553
  • test: pin bare tenant_model.id resolution in resolve_model_config by @pangwangshu in #18528
  • fix(memory): make default prompts deterministic by @primorLee in #18547
  • fix(auth): strip trailing slash from OIDC issuer before discovery by @krim404 in #18530
  • feat(syncer): add R2 connector with checkpoint resume by @mkaaad in #18548
  • feat(chunker): enforce a hard token cap in the TokenChunker merge by @xugangqiang in #18525
  • fix: get two VLM model type when list all models by @Haruko386 in #18546
  • fix(db): make negative GET_LOCK timeouts work on MariaDB by @krim404 in #18529
  • fix: preserve blocking GaussDB advisory locks by @Sevenzuo in #18506
  • feat: improve incremental Wiki compilation by @buua436 in #18557
  • Fix: ensure tenant_ocr_id is added by @Lynn-Inf in #18560
  • Fix: switch image/ppt/email/audio from General to pipeline, or switch back, it report error by @wangq8 in #18555
  • fix(compilation-template): emit wiki presets with the contracted "example" key by @euvre in #18549
  • Fix: go switch user from superuser to normal user error by @wangq8 in #18537
  • fix(ingestion): show data pipeline column for builtin pipeline ingestion logs by @euvre in #18484
  • feat(syncer): add Moodle connector with checkpoint resume by @mkaaad in #18554
  • refactor: simplify sync task service and harden scheduler recovery by @Haruko386 in #18550
  • feat[syncer]: implement data source Jira by @Haruko386 in #18558
  • fix: render both initials for multi-word names in RAGFlowAvatar by @tryeverything24 in #17320
  • feat(agent): support OpenAI-compatible responses by @T1mn in #18316
  • fix: align wiki graph and dataset logs by @buua436 in #18566
  • fix: apply order_by return value in deep-pagination helpers (unordered OFFSET/LIMIT can skip/dupe rows) by @rsnetworkinginc in #17325
  • fix(web): sanitize the parsed markdown tree instead of the string (GHSA-jv5f-3mqh-cxwf) by @kah-ja in #17590
  • fix(deepdoc): dedup OCR substring fragments regardless of whitespace divergence by @xugangqiang in #18568
  • fix(deepdoc): preserve covered cells through span injection so span tables keep all TSR rows by @xugangqiang in #18574
  • Go: fix error handle by @JinHai-CN in #18573
  • fix: store source key only in pipeline_operation_log.source_from by @euvre in #18239
  • fix(parser): allow text output_format for audio family by @xugangqiang in #18575
  • fix(agent): reset execution path for new sessions by @yzl0ng in #18532
  • Feat: Validate the knowledge base that was deleted from the search page. by @cike8899 in #18522
  • fix(web): keep chat auto-scroll following streamed answers by @dcc123456 in #18570
  • Fix knowledge compilation to use pipeline LLM instead of default tenant LLM by @wangq8 in #18572
  • Fix: kimi k3 temperature by @Lynn-Inf in #18564
  • fix(web): preserve entire subtree of title-matching nodes in TreeSelect filter by @dcc123456 in #18561
  • fix: implement Tongyi-Qianwen TTS via DashScope native endpoint by @euvre in #17924
  • fix(agent): bind query field in agentbot completions and clean up failed first-touch sessions by @euvre in #17844
  • fix(file): reject folder names containing "/" in create/rename by @euvre in #18586
  • fix(memory): persist memory valid_at/forget_at as server-local time instead of UTC by @euvre in #18538
  • Fix: propagate file rename to all linked knowledgebase documents by @euvre in #18590
  • fix(models): infer model types on catalog miss so Qwen VLMs show LLM+VLM tags by @euvre in #18571
  • Fix: Go chat pipeline sends image blocks to text-only models (Zhipu GLM error 1210) by @euvre in #18580
  • fix(engine): return error instead of panic when NATS engine is uninitialized by @euvre in #18536
  • Feat: Rewrite the Go-based extractor operator form. by @cike8899 in #18600
  • Fix: allow yiyan api key by @Lynn-Inf in #18601
  • fix(doc_store): retry transient connection errors in pool init by @Harsh23Kashyap in #17196
  • fix(search): fix layout clipping when search page is not fullscreen by @euvre in #18519
  • fix(search): do not jump to previous search results on empty query by @euvre in #18520
  • feat(go-syncer): add Slack connector with checkpoint resume by @mkaaad in #18603
  • perf(retrieval): push metadata filters down to the metadata index by @ting-hong-shieh in #18219
  • add dockerfile_ci for workflow and restore the single dockerfile by @myf-bee in #18606
  • docs: add links between docs by @Yannnnnnny in #18609
  • fix(web): clicking anywhere in a switch setting row toggles the switch by @euvre in #18567
  • fix(metadata): batch large document ID filters by @guominjia in #17394
  • fix: dataset ingestion log has no other type instead of success by @Haruko386 in #18605
  • fix(llm): consolidate TTS / Seq2txt provider key resolution across 3 call sites by @Harsh23Kashyap in #17688
  • fix: preserve empty chat fields on GaussDB by @Sevenzuo in #18445
  • feat[provider]: apply model_type infer when model has no type by @Haruko386 in #18593
  • feat[syncer]: add data source DropBox by @Haruko386 in #18612
  • optimize[syncer]: optimize returning error when it occur by @Haruko386 in #18613
  • fix(build): name the compiler the check requires, and the option that failed by @marmar9615-cloud in #18594
  • fix: preserve non-string values in update_metadata_to by @huang-aoqin in #17346
  • Feat/connector go sharepoint by @mkaaad in #18618
  • Refactor: Refactored the frontend logic for handling different backend services to use pickByBackend, thereby improving code clarity and maintainability. by @cike8899 in #18614
  • fix(web): keep multi-select count in sync after deleting a single file by @euvre in #18589
  • Fix: Owner filter count not updated after deleting a dataset by @euvre in #18623
  • Fix(go): use llm setting for AI summary and return raw error msg by @Lynn-Inf in #18615
  • fix(web): accept a single API key for Baidu YiYan by @dcc123456 in #18611
  • fix(deepdoc): close ocr_real text-gap divergences and pin char-to-box matching by @xugangqiang in #18630
  • fix(cli): count benchmark application failures by @NgoQuocViet2001 in #18292
  • fix(show_env): keep git errors out of the environment report by @marmar9615-cloud in #18597
  • docs(entrypoint): show every option usage() accepts by @marmar9615-cloud in #18596
  • fix(deepdoc): align Go table row count with Python per-char R/C in parity replay by @xugangqiang in #18622
  • fix(deepdoc): resolve OCR text gaps — char loss/duplication in pdf parser by @xugangqiang in #18643
  • Fix HTML parser treating an empty upload as a missing binary by @devYRPauli in #17904
  • port smart-reasoning agentic RAG to eino ADK by @yuzhichang in #18654
  • fix(web): give each provider instance card its own surface by @dcc123456 in #18620
  • fix(ingestion): honor auto-keyword/auto-question top_n sliders in extractor prompts by @euvre in #18632
  • fix(web): resize the mind map graph when its container changes size by @dcc123456 in #18616
  • fix(web): use the real Keenable mark for the tool icon by @ilya-bogin-keenable in #18660
  • add nats and clickhouse expose port in docker compose by @myf-bee in #18577
  • fix: Invoke proxy uses validated URL; remove stray debug print in Canvas.reset by @simpleqt in #18657
  • Remove three no-op self-assignments by @darkdi in #18652
  • docs: replace root-relative cross links with relative page links by @simpleqt in #18664
  • fix(opensearch): stop zeroing vector scores by mapping similarity to knn boost by @barandras in #18662
  • Revert "port smart-reasoning agentic RAG to eino ADK" by @JinHai-CN in #18670
  • Fix docs format by @yingfeng in #18675
  • fix: account for checkpointed ingestion progress by @buua436 in #18667
  • fix(workerpool): close the SubmitTo/StopWait race without losing in-flight tasks by @changshenhan in #18646
  • fix(manual): match .docx only so legacy .doc fails cleanly by @ayam04 in #18649
  • feat(go-syncer): add Salesforce connector with checkpoint resume by @mkaaad in #18674
  • fix(ingestion): refactor tag extractor with memory index, asymmetric coverage, multi-source enrichment and worker pool sequencing by @jay77721 in #18607
  • security: remove leaked OAuth credentials and stop logging user secrets by @simpleqt in #18658
  • Fix: correct rerank #17296 - add prefetch_size by @wangq8 in #18300
  • feat(go-syncer): add Teams connector with positional resume by @mkaaad in #18680
  • fix: precompile regexes on the retrieval hot path by @changshenhan in #18644
  • Fix: porting #18300 to go by @wangq8 in #18690
  • fix(web): hide empty thinking strip in floating chat widget by @euvre in #18608
  • fix(agent): preserve whitespace around message references by @primorLee in #18666
  • fix: validate message content to prevent empty values by @6ba3i in #18676
  • fix: the pdf generation issue in agent by @6ba3i in #18673
  • Chore: add missing deepseek model by @6ba3i in #18678
  • fix(sdk): temperature default should be a float, not a 1-tuple by @simpleqt in #18656
  • fix(task_executor): cap extracted important_kwd terms to ES keyword limit by @RahilOp in #17512
  • Fix some comments by @wangq8 in #18705
  • fix: normalize model types in _factory_model_types and update calculate_model_type by @6ba3i in #18685
  • fix: recover panics in executeMemoryTask so a poison memory task cannot kill the ingestor worker by @xugangqiang in #18687
  • feat(extractor): add inline 24h Redis LLM cache for keywords, questions, and summary by @jay77721 in #18716
  • fix(deepdoc): prevent cross-page table over-merge from page-local Y coordinates by @xugangqiang in #18688
  • Feat: The extractor operator can handle multiple extraction tasks simultaneously. by @cike8899 in #18717
  • fix(chat): stop rag_agent forwarding message bookkeeping keys to the provider by @bharadwaj-pendyala in #18663
  • fix(deepdoc): propagate spanning-cell bbox so Go emits correct colspan by @xugangqiang in #18707
  • fix: publish wiki event when document is deleted by @buua436 in #18682
  • fix(agent): surface cancellation terminal state by @T1mn in #18579
  • fix(models): pass selected models into verify and catch constructor errors by @ondery in #17132
  • feat(bedrock): support API key authentication by @whhe in #18301
  • fix: classify .wmf files as VISUAL instead of OTHER by @devYRPauli in #15822
  • Refactor: rename prefetch_size to rerank_candidates by @wangq8 in #18718
  • fix(wiki): guard generation without compilation config by @libaojiang in #18695
  • docs(migration): say which volumes the backup actually covers by @marmar9615-cloud in #18626
  • fix(api): make the API-key subject carve-out on POST /messages reachable by @olifarhaan in #18026
  • feat(agent): add You.com search tool by @brainsparker in #18583
  • fix(rag): keep search queries and page text out of connector logs by @brainsparker in #18582
  • fix(admin): display AWS S3 status correctly by @yaoper in #17300
  • [Fix] Refined the NLTK data usage directory by @paulhuiseismic in #17376
  • fix: substitute UserFillUp tips placeholders literally to avoid re.error by @rsnetworkinginc in #17321
  • fix: substitute Message variables literally to avoid re.error on regex escapes by @rsnetworkinginc in #17319
  • fix: remove trailing space in human-readable duration labels by @tryeverything24 in #17317
  • fix(web): return real navigation state from history.location getter by @tryeverything24 in #17324
  • fix(web): ignore IME composition Enter in tag input by @tryeverything24 in #17322
  • Fix: show linked knowledge base names instead of IDs when searching in the "Link to knowledge base" dialog by @euvre in #18581
  • fix(web): show agent opening statement in embedded floating widget by @euvre in #18517
  • fix(bot): align chatbot completion final frame and history persistence with python by @euvre in #18526
  • Fix: Add a custom placeholder to SelectWithSearch by @cike8899 in #18719
  • Fix: add and use paddleOCR.net model by @Lynn-Inf in #18696
  • fix(web): keep multi-select options in their declared order while searching by @dcc123456 in #18672
  • fix(web): make chat attachment images click-to-zoomable by @euvre in #18259
  • fix(web): make overflowing card description tooltips scrollable by @euvre in #18700
  • fix(setting-model): stop silently dropping a duplicate-named provider instance by @dcc123456 in #18722
  • fix(go): sort provider model instances by creation time by @euvre in #18684
  • fix(web): chat settings panel overlapped by chat input on narrow viewports by @euvre in #18723
  • Fix: After deleting all compiled entities, returning to this page will show an empty data entry. by @cike8899 in #18724
  • fix(web): always show copy button on floating chat widget replies by @euvre in #18527
  • fix(router): accept share (beta) token on agent upload and attachment download by @euvre in #18681
  • fix(svr): distinguish empty-docs from missing-template in wiki empty-eligibility message by @Harsh23Kashyap in #18691
  • fix(common): propagate WebDAV listing errors from _list_files_recursive to avoid prune data loss by @Harsh23Kashyap in #18694
  • fix(agent): bound crawler response bodies to 4 MiB by @Lem0nTea2002 in #18677
  • fix: support hierarchical Wiki topic navigation by @buua436 in #18721
  • Fix email and presentation parsers treating an empty upload as a missing binary by @devYRPauli in #18712
  • Go: porting #18663 by @wangq8 in #18726
  • fix: skip empty knowledge compile events by @buua436 in #18728
  • Fix: Modify the error message for empty chat responses. by @cike8899 in #18730
  • fix(mcp): include dataset name in list_datasets output (#17133) by @Harsh23Kashyap in #18710
  • fix(connector): honor configured S3-compatible bucket type by @yijiaquan in #18576
  • fix(pdf): colspan assembly loss + TSR geometry comparison diagnostics by @xugangqiang in #18727
  • Fix: cross-KB document id collision in data source sync (#18116) by @sarbojitrana in #18244
  • Refactor: expose knn top_k and knn num_candidaties by @wangq8 in #18737
  • feat(go-syncer): add Azure Blob Storage connector with checkpoint resume by @mkaaad in #18701
  • fix(admin): honor DEFAULT_SUPERUSER_EMAIL/PASSWORD env vars in bootstrap by @Taranum01 in #17674
  • Fix: After selecting upload, the document is parsed directly, but the parsing progress cannot be seen. by @cike8899 in #18741
  • fix(web): fall back a page when the dataset file list empties by @dcc123456 in #18738
  • fix(web): require chunk content when creating or editing a chunk by @dcc123456 in #18739
  • Fix: Add the chat model to the Python version of the dataset configuration page. by @cike8899 in #18735
  • fix(web): keep Firefox chat auto-scroll pinned to the bottom by @dcc123456 in #18736
  • fix(agent): prevent path traversal and SSRF in Browser URL file upload by @simpleqt in #18711
  • fix(agent): redact internal terminal errors by @T1mn in #18743
  • Fix GPUStack model discovery and audio support by @javen-yan in #18599
  • Porting #18737 to go by @wangq8 in #18745
  • fix(pdf): restore cross-page table merge wrongly rejected by #18688 page-absolute Y gate by @xugangqiang in #18740
  • Fix total as the total, follow Go by @wangq8 in #18750
  • fix(agent): panic and raw error when auto play runs without a default TTS model by @euvre in #18734
  • fix(chat): propagate mind map stream failures by @Lem0nTea2002 in #18733
  • fix(parser): crop media sections in PDF JSON path, unify Data URI and markdown rendering by @jay77721 in #18742
  • fix(deepdoc): harden opendataloader table-cell parsing against bad json by @Yurii214 in #17316
  • fix(pdf): strip tiled watermark text from text-layer extraction by @Taranum01 in #18308
  • fix(agent): default missing Graph path so stored DSL cannot KeyError by @BetterAndBetterII in #18753
  • Fix(go): PaddleOCR -> PaddleOCR.local, PaddleOCR.net -> PaddleOCR by @Lynn-Inf in #18747
  • fix(chat): deliver uploaded image attachments to vision models in Go chat pipeline by @euvre in #18708
  • feat(data_source): add Azure DevOps connector by @erhanaydin in #18715
  • fix(memory): align Go semantic valid_at prompt with the Python wording by @anneheartrecord in #18752
  • docs(sandbox): describe how the container pool is actually sized by @marmar9615-cloud in #18625
  • fix(sandbox): remove the sandbox containers that exist, not a pool-size range by @marmar9615-cloud in #18629
  • fix(web): surface dataset navigation tree load failures (closes #17301) by @Souravrajvi0 in #17668
  • Docs: update 27.0 release notes by @wangq8 in #18770
  • fix(parser): clean .eml text output for chunking by @euvre in #18592
  • fix(web): agent explore streaming answer leaking into the switched-to session by @euvre in #18686
  • fix(web): stop RAGFlow brand block from overlapping embedded share header by @euvre in #18729
  • fix(sandbox): sync the sandbox env with the Python version it requires by @marmar9615-cloud in #18766
  • docs(api): spell the recommendation endpoint the way the server registers it by @marmar9615-cloud in #18764
  • docs(api): document the document-update endpoint as PATCH by @marmar9615-cloud in #18765
  • Fix: MinerU model by @Lynn-Inf in #18767
  • Fix: The recommended chunk size for the token chunker is restricted to integers only. by @cike8899 in #18786
  • fix(agent): propagate webhook terminal states by @T1mn in #18758
  • fix: allow empty GitHub repositories by @buua436 in #18776
  • Fix: find_codec discards confident encoding detection and returns a garbage codec by @devYRPauli in #15793
  • fix: inherit document status when inserting chunks by @huang-aoqin in #18610
  • fix(naive): route misconfigured MinerU PDFs to by_mineru instead of by_plaintext (#17114) by @Taranum01 in #18762
  • refactor(parser): consolidate vision figure enhancement across document formats by @jay77721 in #18775
  • fix(parser): support webp in image OCR and correct rune count for VLM gate by @jay77721 in #18785
  • fix: the bigquery connector constructs sql queries u... in... by @anupamme in #17500
  • fix(opensearch): scope multi-document update to the target knowledge base by @AnnaSuSu in #17048
  • fix: accept empty ASR verification results by @buua436 in #18788
  • fix(web): cap embed dialog User ID input length and add data-type hint by @euvre in #18773
  • fix(model-provider): resolve instances by persisted ID by @6ba3i in #18792
  • fix(docker): prevent all foreground entrypoint.sh loops from exiting on non-zero exit by @skbs-eng in #18545
  • feat(data-source): add Xquik X search connector by @kriptoburak in #18714
  • fix(web): skip canvas autosave of empty nodes/edges by @Souravrajvi0 in #18783
  • fix(sdk): filter documents by multiple IDs by @WOLIKIMCHENG in #18790
  • fix(web): use a dedicated label for the thinking mode field by @dcc123456 in #18806
  • Fix: The chat network search service is allowed to be null. by @cike8899 in #18791
  • fix(security): authenticate sandbox executor API and isolate container network by @simpleqt in #18703
  • refactor(parser): extract shared parseWithTCADP core from pptx/xls/pdf wrappers by @Taranum01 in #17671
  • Fix 0 chunk datasets not show, cause cannot scroll to fetch more datasets by @wangq8 in #18810
  • fix(chat): preserve deep-research cancellation after workers finish by @Lem0nTea2002 in #18692
  • fix(mineru): Fix MinerU Rendering Stability, Error Visibility, and Code Block Parsing Issues by @Aeovy in #18617
  • fix(web): list the agent flow type card first by @dcc123456 in #18808
  • Chore: remove knowledge compiler from types and tests by @6ba3i in #18809
  • Feat: When there are errors in the chat settings form, clicking the "Save" button automatically scrolls to the location of the error. by @cike8899 in #18811
  • Refactor: Add rerank_candidates_count, knn top_k and num_candidates to /api/v1/retrieval by @wangq8 in #18768
  • fix(go): drop the removed internal/cache package from run_go_tests.sh by @marmar9615-cloud in #18819
  • fix(build): keep the admin server in build.sh's cleanup trap by @marmar9615-cloud in #18816
  • fix(tests): let run_tests.py --help exit 0 by @marmar9615-cloud in #18814
  • Go: fix context, part3 by @JinHai-CN in #18821
  • feat: extract images from xlsx parser by @buua436 in #18800
  • fix(pdf): do not cross-page merge tables whose anchor is not at page bottom by @xugangqiang in #18789
  • fix(document): reject config edits while document is parsing or scheduled by @xugangqiang in #18804
  • fix(parser): align image output_format to json and use per-family defaults (strict) by @jay77721 in #18802
  • Better enhance message by @wangq8 in #18818
  • fix(graph): use max-wins for PageRank in AnalyzeNHopPaths + correct test fixtures (#15695) by @Taranum01 in #18784
  • fix: align cross-language prompt separator with parser by @zhouyuchong in #18831
  • docs(configuration): name the ragflow serving-port key http_port by @marmar9615-cloud in #18825
  • Fix: An error occurs when accessing the Go version of the wiki page. by @cike8899 in #18835
  • Refactor: refine error messages - use %W by @wangq8 in #18834
  • fix(pdf): remove unused context import breaking manual test build by @xugangqiang in #18837
  • fix(schema-sync): stop reporting BaseModel timestamps as dropped columns by @marmar9615-cloud in #18824
  • fix(chunker): keep PDF positions on all cap-split sub-chunks so chunks don't lose their preview images by @euvre in #18772
  • fix(examples): wait for the DONE status the API actually returns by @marmar9615-cloud in #18827
  • Fix the naive parser treating an empty upload as a missing binary by @devYRPauli in #18826
  • Refine entrypoint.sh - tidy code by @wangq8 in #18838
  • Fix: On the MCP list page, if the only record on the last page is deleted, the view should navigate to the previous page. by @cike8899 in #18840
  • Feat: sync anchor resume by @mkaaad in #18795
  • Fix QA Excel parser dropping rows whose answer is a zero value by @devYRPauli in #17902
  • Update None to Naive (Follow English) by @wangq8 in #18848
  • feat: add Synthorai model provider by @cuihuan in #18830
  • Fix OceanBase chunk order field persistence by @zcxGGmu in #16997
  • fix: fall back to the real office container format when extension is wrong by @jay77721 in #18843
  • Refactor: Translate figure 'Fig.' to Chinese by @wangq8 in #18852
  • fix(api): honor dialog system prompt in reasoning-enabled chat by @RahilOp in #18842
  • feat(agent): make MCP tool call timeout configurable by @var4dev in #18016
  • fix(agent): implement webhook trace polling by @T1mn in #18815
  • fix(web): keep typed slider values on the slider's step grid by @dcc123456 in #18847
  • fix(dataset): canonicalize naive parser IDs to general by @6ba3i in #18839
  • fix(web): cap description length at 512 characters by @dcc123456 in #18836
  • Fix: The models for audio and video parsers are required fields. by @cike8899 in #18851
  • Fix: remove deprecated mimo-v2-flash by @Lynn-Inf in #18854
  • fix(web): add missing hover tooltips to dataset data source action buttons by @euvre in #18812
  • feat(go-syncer): add OCI Storage connector with resume by @mkaaad in #18850
  • test(agent): pin whitespace handling of template ref patterns by @ayam04 in #18720
  • fix(web): dataset auto-metadata toggle reverts to off after save by @euvre in #18813
  • Fix: When the pipeline-paeser component switches the file type from PDF to image, the default parsing method should be OCR. by @cike8899 in #18858
  • fix(web): keep token chunker settings when saving in One mode by @euvre in #18749
  • fix(nlp): load term weight resources as UTF-8 by @yzl0ng in #18467
  • fix: support .wmf file extension case-insensitively and remove duplicate avi by @Wsp030914 in #15498
  • fix(parser): wire per-call VLM model config, harden vision dispatch by @jay77721 in #18846
  • Revert "fix(web): file list total count doesn't match displayed rows (#17747)" by @dcc123456 in #18856
  • fix(ingestion): run wiki compiler cache-less in canvas debug runs by @euvre in #18828
  • fix: reject wiki LLM error responses by @buua436 in #18857
  • Fix: parse pdf in chat by @Lynn-Inf in #18860
  • Fix: hide skills folder in REST API by @wangq8 in #18859
  • Fix rerank_candidates_count validation error by @wangq8 in #18863
  • fix(metadata-filter): propagate resolved document IDs to retrieval by @6ba3i in #18865
  • Fix Go Agents tab ordering to match Python by @6ba3i in #18845
  • feat(go-syncer): add S3 and S3 compatible connectors by @mkaaad in #18861
  • fix(chunker): proportionally slice PDF positions so sub-chunk previews match text by @jay77721 in #18864
  • Fix: No need to validate data that is not in dataset format by @cike8899 in #18871
  • Fix: rm default model in create and display builtin model by @Lynn-Inf in #18875
  • docs: add Chat documents by @Yannnnnnny in #18870
  • fix(web): derive provider base_url visibility from the provider catalog by @dcc123456 in #18866
  • fix: handle Jina VLM streaming responses by @buua436 in #18855
  • fix: map agent rounds to react steps by @buua436 in #18868
  • Fix oversized important keywords in OceanBase and SeekDB by @hnwyllmm in #18872
  • fix(rag/utils): ensure_v1 must recognize v1beta/v1alpha-style version suffixes by @chuenchen309 in #16916
  • fix: honor generation parameter enable flags by @buua436 in #18880
  • fix: support SeekDB vector score extraction by @kic635 in #18874
  • Refactor: add page_size support by @wangq8 in #18876
  • Fix: add Separator component and restore GlobalIndexModelItem in NaiveConfiguration by @cike8899 in #18882
  • fix(api): derive SQL retrieval tenant from dataset owner, not chat tenant by @ChendongPang in #18518
  • fix(web): stop the field label from opening the MultiSelect popover by @dcc123456 in #18922
  • Fix: reorder components in NaiveConfiguration for better structure by @cike8899 in #18924
  • Fix: Switching the file type of the parser operator caused the corresponding parse method to fail to switch. by @cike8899 in #18931
  • Fix: respect IME composition state on Enter key send by @iwasaki1112 in #16922
  • fix(build): pass GOPROXY to the ragflow-cli go build by @marmar9615-cloud in #18925
  • feat(go-connector): add Box connector by @mkaaad in #18934
  • fix(web): stop the field label from toggling the Switch by @dcc123456 in #18945
  • fix(dataset): rebuild the navigation tree in the dataset owner index by @marmar9615-cloud in #18932
  • Docs: Update version references to v0.27.1 in READMEs and docs by @asiroliu in #18849
  • Docs: 0.27.1 release notes by @wangq8 in #18879

New Contributors

Full Changelog: v0.27.0...v0.27.1