Ports the smart-reasoning (agentic RAG) conversation mode to the eino ADK, with Go retrieval tools (grep_chunks, search_chunks, list_chunks), deep-read XML output, and frontend agent-mode wiring.
### Summary
This PR sanitizes the parsed tree instead of the string:
`rehype-sanitize` runs after `rehype-raw` and before `rehype-katex`,
with one shared schema.
### Summary
Preserve explicitly saved `false` values for RAPTOR and GraphRAG when
hydrating the dataset Configuration form. The existing form defaults
still apply when either enable flag is absent.
Adds hook-level regression coverage for both explicit disablement and
default fallback behavior.
Fixes#17654
## What
Pressing Enter to confirm IME (e.g. Japanese) text conversion in the
knowledge base name field of the "Create knowledge base" dialog was
incorrectly treated as the dialog's submit trigger. The
composition-confirm Enter both let the IME finish composing and
triggered the dialog's Enter handler, which called `preventDefault()`
and `form.requestSubmit()` — causing input like "アルゴ" to be duplicated
as "アルゴアルゴ".
### Summary
Adds You.com as a built-in Web Search provider for RAGFlow Chat,
alongside Tavily and Querit, using the provider-neutral dispatch #17813
put in place. No changes to existing Tavily or Querit behaviour.
You.com runs its own web index and returns several extracted passages
per result rather than a single meta description, so retrieved chunks
arrive with usable context.
---------
Co-authored-by: Brian Sparker <brainsparker@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
### Summary
Clear the paired tenant model ID when a model selection is explicitly
cleared in a whitelisted API request.
Replaces #18205.
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
### Summary
This PR adds [Serply](https://serply.io) as a third web search provider
for chat assistants, alongside the existing Tavily and Querit options.
## Summary
Closes#5703.
Users who delete the hardcoded `{knowledge}` placeholder from the system
prompt while datasets are selected can still retrieve the right chunks,
but the assistant answers as if nothing were found — because the
retrieved content has nowhere to be injected. Likewise, a non-empty
*empty response* with **no** dataset selected fires on every turn
(nothing can ever be retrieved). This PR adds a save-time self-check
that prompts the user about both contradictory configurations, as
requested in the issue.
Co-authored-by: peewee92 <20059253+peewee92@users.noreply.github.com>
## Summary
The TitleChunker (both `hierarchy` and `group` methods) had no
token-size ceiling, so a long section without sub-headings became one
giant chunk. This adds a configurable `chunk_token_cap` that guarantees
every text chunk stays within a token budget.
### Summary
Fixes a zoom bug in the DOCX preview: the first "zoom in" or "zoom out"
click
skips a level whenever the current zoom is a fit-to-width value.
This PR modularizes the **Extractor** component configuration with dedicated feature subtabs, adds independent system prompt configuration, fixes multi-node execution determinism and parameter persistence across save and page refresh, and ensures backward compatibility with legacy flat fields.