Commit Graph

2663 Commits

Author SHA1 Message Date
chanx
e9d7aed994 fix(web): list the agent flow type card first (#18808) 2026-08-26 20:13:56 +08:00
Wang Qi
608ee09f0f Fix 0 chunk datasets not show, cause cannot scroll to fetch more datasets (#18810) 2026-08-26 20:05:00 +08:00
balibabu
2c19fae8f4 Fix: The chat network search service is allowed to be null. (#18791) 2026-08-26 19:17:52 +08:00
chanx
9bc12fbce6 fix(web): use a dedicated label for the thinking mode field (#18806) 2026-08-26 19:17:17 +08:00
Souravrajvi0
229503bc80 fix(web): skip canvas autosave of empty nodes/edges (#18783)
Fix canvas autosave wiping pipelines (#18771). Previously saved empty graph on any change/remount. Now only autosaves when canvas has nodes/edges, agent is loaded, and chat drawer closed. Fetch no longer clears loaded canvas on empty DSL. Tests added.

Fixes #18771
2026-08-26 17:13:14 +08:00
Burak Bayır
0201c1a557 feat(data-source): add Xquik X search connector (#18714)
### Summary

Add Xquik as a new data source for X (Twitter) post ingestion. Supports Latest/Top queries, cursor pagination, incremental sync, and maps engagement/media to RAGFlow documents. Stops duplicate requests on repeated cursors. Tests and docs included.

---------

Co-authored-by: kriptoburak <kriptoburak@users.noreply.github.com>
2026-08-26 17:03:38 +08:00
euvre
6f30ed2bae fix(web): cap embed dialog User ID input length and add data-type hint (#18773) 2026-08-26 16:47:50 +08:00
balibabu
1e15cc20e6 Fix: The recommended chunk size for the token chunker is restricted to integers only. (#18786) 2026-08-26 14:47:58 +08:00
euvre
a714ecef41 fix(web): stop RAGFlow brand block from overlapping embedded share header (#18729) 2026-08-26 11:38:11 +08:00
euvre
c7dec3b912 fix(web): agent explore streaming answer leaking into the switched-to session (#18686)
### Summary

In agent **Explore**, asking a model and switching to another session
(chat box) while the answer was still streaming caused the streaming
answer to be rendered inside the session the user had just switched to.

**Root cause.** The Explore page mounts `SessionChat` once per canvas;
`useSendAgentMessage` therefore keeps one SSE `answerList` and one
`derivedMessages` list shared by every session. The effect that folds
streamed frames into the message list
(`web/src/pages/agent/chat/use-send-agent-message.ts`) appended
unconditionally, so after a session switch the in-flight frames of
session A were written into the message list of the currently displayed
session B. The global `sendLoading` also made the last assistant message
of session B show a streaming indicator.

**Fix.** Every agent SSE frame already carries the `session_id` it
belongs to (see the frame contract in
`internal/agent/canvas/runner.go`), so ownership is known on the client:

- `useSendAgentMessage` accepts an optional `activeSessionId` (the
session the page is currently displaying) and skips the streamed-answer
append when the stream's `session_id` differs from it. It also exposes
`streamSessionId` so callers can scope streaming UI.
- The Explore hook (`use-send-session-message.ts`) passes the URL
session id as `activeSessionId`.
- `session-chat.tsx` shows the per-message streaming loading state only
when the in-flight stream belongs to the displayed session.

Behavior after the fix: switching sessions mid-answer keeps each
session's message list clean; switching back to the streaming session
resumes rendering the answer there; the answer is still persisted to its
own session by the backend. Canvas debug chat and shared-agent chat are
unchanged (they pass no `activeSessionId`, so the gate is inactive).

**Verification.** Reproduced in the browser (dev services): asked for a
long essay in session A, switched to session B mid-stream — pre-fix,
session B showed session A's growing essay (~27k chars); post-fix,
session B shows only its own history while the stream keeps running
(confirmed by switching back and watching it continue in A). `jest
src/pages/agent` passes (12 suites / 79 tests); `tsc --noEmit` shows no
new errors in the touched files (remaining errors are pre-existing on
main).

---------

Co-authored-by: euvre <euvre@users.noreply.github.com>
2026-08-26 11:36:27 +08:00
Souravrajvi0
004b3c4845 fix(web): surface dataset navigation tree load failures (closes #17301) (#17668)
Fix Artifacts Tree tab to show error message on navigation API failure instead of misleading "No navigation nodes". Added error handling in frontend, i18n strings, and backend unit tests. 6 tests pass.
2026-08-26 10:42:18 +08:00
Erhan Aydın
72b7b02113 feat(data_source): add Azure DevOps connector (#18715)
Adds Azure DevOps as a new data source, syncing repository files and pull requests. Supports both hosted and self-hosted. Excludes wikis, work items, and binaries. Includes checkpoint/resume, change detection via commit IDs, and handles Azure's quirky 203 auth response. Tests passed against real deployment.
2026-08-25 20:10:43 +08:00
Lynn
45a47d9d45 Fix(go): PaddleOCR -> PaddleOCR.local, PaddleOCR.net -> PaddleOCR (#18747) 2026-08-25 20:02:01 +08:00
chanx
5c88ee425e fix(web): keep Firefox chat auto-scroll pinned to the bottom (#18736) 2026-08-25 17:29:13 +08:00
balibabu
40b5845e26 Fix: Add the chat model to the Python version of the dataset configuration page. (#18735) 2026-08-25 17:28:59 +08:00
chanx
6916ddf17e fix(web): require chunk content when creating or editing a chunk (#18739) 2026-08-25 17:27:45 +08:00
chanx
ff4109c508 fix(web): fall back a page when the dataset file list empties (#18738) 2026-08-25 17:25:53 +08:00
balibabu
c4175c3880 Fix: After selecting upload, the document is parsed directly, but the parsing progress cannot be seen. (#18741) 2026-08-25 17:25:19 +08:00
Wang Qi
92c69db79e Refactor: expose knn top_k and knn num_candidaties (#18737)
Follow on #18300
2026-08-25 17:16:36 +08:00
balibabu
67e744f5d1 Fix: Modify the error message for empty chat responses. (#18730) 2026-08-25 14:29:13 +08:00
buua436
3a836911d1 fix: support hierarchical Wiki topic navigation (#18721) 2026-08-25 13:59:27 +08:00
euvre
9c00ef103c fix(web): always show copy button on floating chat widget replies (#18527) 2026-08-25 13:45:34 +08:00
balibabu
0d747c6a3f Fix: After deleting all compiled entities, returning to this page will show an empty data entry. (#18724) 2026-08-25 13:35:28 +08:00
euvre
bf6854c9ff fix(web): chat settings panel overlapped by chat input on narrow viewports (#18723) 2026-08-25 13:29:32 +08:00
chanx
12ec6ee994 fix(setting-model): stop silently dropping a duplicate-named provider instance (#18722) 2026-08-25 13:21:13 +08:00
euvre
31c8bb30ab fix(web): make overflowing card description tooltips scrollable (#18700) 2026-08-25 13:19:41 +08:00
euvre
3d5563fd9e fix(web): make chat attachment images click-to-zoomable (#18259) 2026-08-25 13:19:27 +08:00
chanx
578886ba1a fix(web): keep multi-select options in their declared order while searching (#18672) 2026-08-25 13:17:17 +08:00
balibabu
41fa68d5e5 Fix: Add a custom placeholder to SelectWithSearch (#18719) 2026-08-25 13:16:45 +08:00
euvre
4c7846a449 fix(bot): align chatbot completion final frame and history persistence with python (#18526) 2026-08-25 13:11:48 +08:00
euvre
97812c9ce5 fix(web): show agent opening statement in embedded floating widget (#18517) 2026-08-25 13:11:19 +08:00
euvre
830b6740cc Fix: show linked knowledge base names instead of IDs when searching in the "Link to knowledge base" dialog (#18581) 2026-08-25 13:09:32 +08:00
Try everything
edd3323055 fix(web): ignore IME composition Enter in tag input (#17322)
### Summary

Fix IME input breaking in EditTag component. Enter key during Chinese/Japanese/Korean composition would incorrectly commit an incomplete tag. Added e.nativeEvent.isComposing guard so Enter only adds a tag after composition ends. Tests added.
2026-08-25 12:51:23 +08:00
Try everything
4457764e11 fix(web): return real navigation state from history.location getter (#17324)
### Summary

Fix history.location.state always returning undefined in simple-history-util.ts. The getter incorrectly referenced the module instance (history.state) instead of the browser API (window.history.state). Now reads from window.history.state. Unit tests added.
2026-08-25 12:50:55 +08:00
Try everything
de28771511 fix: remove trailing space in human-readable duration labels (#17317)
### Summary

Fix formatSecondsToHumanReadable trailing space bug. Durations like 60s returned "1m " instead of "1m". Changed to build parts without trailing spaces and join with a single space. Unit tests added. Affects dataset overview, document list, and dataflow views.
2026-08-25 12:50:17 +08:00
Brian Sparker
c6b2923387 feat(agent): add You.com search tool (#18583)
### Summary

@JinHai-CN — the agent tool you asked for in #18478, as its own PR.

Adds `YouComSearch` to the agent tool set, modeled on the Keenable tool
(#16233) rather than Querit's: You.com exposes a small parameter
surface, so this needs a two-field form rather than a bespoke form
suite. **+594 lines**, close to Keenable's +392 and well under Querit's
+3527.

Independent of #18478. That PR wires You.com into chat retrieval; this
one is the agent canvas node. Neither depends on the other and they
share no lines.

---------

Co-authored-by: Brian Sparker <brainsparker@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-25 12:16:40 +08:00
Baojiang Lee
06bdc16a7f fix(wiki): guard generation without compilation config (#18695)
### Summary

Closes #18683.

The Wiki artifact view previously enabled **Generate** whenever a
dataset had parsed chunks. Built-in datasets can have chunks without an
ingestion pipeline, so the backend finds no wiki-eligible documents and
exits without generating pages.

This PR adds a focused frontend eligibility check so Wiki generation is
offered only when the dataset has parsed chunks and is associated with
an ingestion pipeline.
2026-08-25 11:47:25 +08:00
Wang Qi
4c6f745c1e Refactor: rename prefetch_size to rerank_candidates (#18718) 2026-08-25 11:35:53 +08:00
He Wang
2ef9d373ee feat(bedrock): support API key authentication (#18301)
### Summary

Closes #17848.

This replaces #17958 with a smaller implementation focused on the
original requirement. The previous PR gradually expanded beyond the
necessary scope; the optional custom endpoint extension is intentionally
excluded from this version.

- Add request-scoped Bedrock API key authentication to the Python
Bedrock adapters and Go chat runtime.
- Discover and persist models available to API key instances, so users
do not need to manually enter the model type, model name, or maximum
token count.
- Add API Key mode to the existing Bedrock settings UI and refresh the
model and default-model lists after instance changes.
- Preserve selected models during credential-only updates while keeping
the existing SigV4 authentication modes unchanged.
- Return a clear error for unsupported API-key reranking.
- Document instance-scoped authentication and short-term API key
guidance.
2026-08-25 11:08:24 +08:00
Öndery
65d8301ea3 fix(models): pass selected models into verify and catch constructor errors (#17132)
Two fixes not yet on main:

Pass picker-selected models into Verify – useVerifyProvider now includes modelInfoRef in the verify payload so the backend can verify the user's actual selection.

Guard model construction – Wrap EmbeddingModel/ChatModel init in try/except so failures are recorded as per-model FAIL instead of aborting the whole verify call.

Also: later failures now overwrite previous successes per review feedback.
2026-08-25 11:07:08 +08:00
balibabu
d6382e4b41 Feat: The extractor operator can handle multiple extraction tasks simultaneously. (#18717) 2026-08-25 10:24:58 +08:00
Sbaaoui Idriss
bfe07974dc fix: normalize model types in _factory_model_types and update calculate_model_type (#18685) 2026-08-25 09:46:46 +08:00
euvre
2611ea5bdf fix(web): hide empty thinking strip in floating chat widget (#18608) 2026-08-24 19:24:08 +08:00
Wang Qi
5659476a30 Fix: correct rerank #17296 - add prefetch_size (#18300) 2026-08-24 16:09:07 +08:00
buua436
f37b6fc439 fix: account for checkpointed ingestion progress (#18667)
Preserve completed component progress when an ingestion task resumes from a checkpoint. Checkpointed operators are skipped and do not emit lifecycle events again, which previously caused the document progress to
remain below 100%.
2026-08-24 14:28:05 +08:00
Jin Hai
23a071157d Revert "port smart-reasoning agentic RAG to eino ADK" (#18670)
Reverts infiniflow/ragflow#18654
2026-08-24 12:03:11 +08:00
Ilya Bogin
e1fff9b3ea fix(web): use the real Keenable mark for the tool icon (#18660)
### Summary

The Keenable tool icon added in #18341 was a placeholder I drew: a
generic blue rounded square with a magnifying glass, not the Keenable
brandmark. Swapped for the mark from our brand guidelines.

Same shape as the neighbouring tool logos: one `<svg>` with a `viewBox`
and no fixed width/height, so it is sized by the CSS around it, and
transparent, so it reads on the light and the dark theme alike.
Frontend-only, one file.
2026-08-24 10:45:09 +08:00
chanx
26581955d5 fix(web): resize the mind map graph when its container changes size (#18616) 2026-08-24 10:35:55 +08:00
euvre
743491b8fb fix(ingestion): honor auto-keyword/auto-question top_n sliders in extractor prompts (#18632) 2026-08-24 10:25:04 +08:00
chanx
e3b1e871e7 fix(web): give each provider instance card its own surface (#18620) 2026-08-24 10:20:00 +08:00