Commit Graph
2085 Commits
Author SHA1 Message Date
MarMar Labs 6c280f10a0 fix(api): accept repeated memory_type and tenant_id filters when listing memories (#19281)
Fix GET /api/v1/memories list filters — memory_type, tenant_id, owner_ids, ids now read all repeated query keys (was only first). Matches /datasets//documents pattern.
2026-09-08 11:48:16 +08:00
Wang Qi b7e577ce48 Refactor: combine 3 retrieval/search API as one (#19303) 2026-09-08 11:41:46 +08:00
Manan Bansal 03d861a926 fix(api): allow setting language on dataset creation (#15703) (#16242)
Fix #15703 — dataset create endpoint now accepts language.
2026-09-08 10:53:40 +08:00
ÖnderyandCursor 38230c45d3 feat(llm): forward OpenAI user on embedding and parse requests (#19065)
Add user attribution to embedding calls — forwards user on OpenAI-compatible providers via current_llm_user(). Excludes LocalAI/Xinference (reject unknown fields). Accepts user_id on ingest/parse/chunk endpoints; redacts from logs. Omitted = unchanged. Go/vision/TTS/ASR out of scope.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-07 19:30:33 +08:00
Wang Qi f8b0a1de19 Refactor: update dataset API should not have ext (#19272) 2026-09-07 14:25:15 +08:00
MarMar Labs fa52804fa3 fix(api): return the full error tuple when both id and ids are given to list documents (#19280)
Fix dataset document list endpoint unpack error when both id and ids provided — helper returned 2 values but caller expects 4. Now returns 4.
2026-09-07 10:58:05 +08:00
Lem0nTea2002 bef34757b2 fix(agent): await MCP transport cleanup before stopping event loop (#19093)
Fix MCP session cleanup — now properly awaits server task and closes transport contexts/executors before stopping event loop. Wakes queued callers on shutdown.
2026-09-04 17:57:50 +08:00
Lynn ff69dba542 Fix: apply dia.llm_id overrides (#19214)
### Summary

As title, from #15610
2026-09-04 17:46:49 +08:00
buua436 f4bafa1596 fix: exclude empty documents from structure alteration (#19246) 2026-09-04 17:06:38 +08:00
Lynn 2f8dab2199 Fix: upload image to model in chat (#19257) 2026-09-04 16:37:25 +08:00
maoyifeng 5d0e2253cf fix ci unit test not found in installed package 'wordnet' (#19251) 2026-09-04 13:52:43 +08:00
buua436 447f87d79f feat: adapt knowledge compilation concurrency (#19156) 2026-09-04 11:17:56 +08:00
buua436 ef8b424888 fix: normalize reasoning stream markers (#19216) 2026-09-03 19:06:53 +08:00
euvre 4bb522d11d fix(rag): unify parser_config delimiter defaults on a single constant (#19058) 2026-09-03 17:16:37 +08:00
68cdb795f5 Fix OAuth redirect URI examples (#15683)
Fix OAuth callback URL examples in docs — now use /api/v1/auth/oauth/<channel>/callback (was stale /v1/user/oauth/callback).

Co-authored-by: 谢金城 <xiejincheng@xgd.com>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-09-03 15:20:42 +08:00
Sbaaoui Idriss 330b988b61 fix(security): generate random UUIDv4 identifiers (#19159) 2026-09-03 13:13:57 +08:00
mkaaadandcoderabbitai[bot] d29a4fc26b fix(py-go-connector): enforce kb authorization in rebuild (#19190)
Based on community PR #15272 by @rene0422

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-09-03 12:01:28 +08:00
Wang Qi 51da97784b Refactor: get rid of graphrag and raptor during task creation (#19194) 2026-09-03 11:15:58 +08:00
Sbaaoui Idriss f8fc130162 fix(searchbots): enforce KB authorization before retrieval (#19165) 2026-09-03 11:10:57 +08:00
Yingfeng a11c27e01d Adjust navigation tools for agentic search (#19172) 2026-09-03 10:43:00 +08:00
Yash Raj Pandey bfccb5177d Stop splitting resume documents into per-page parsing tasks (#18713) 2026-09-03 10:40:29 +08:00
Wang Qi 6ec9c6a737 Fix: get rid of graphrag raptor in parser_config in REST API (#19161) 2026-09-03 09:40:52 +08:00
Lynn c534144a4c Fix: restrict tenant updates to the current user's own tenant (#19155)
### Summary

As title.
2026-09-02 19:08:27 +08:00
xu jiaming c187dfdc73 fix(mcp): read total_datasets so the fetch-all early-exit works (#19020)
Fix #19019 — MCP _fetch_all_datasets() used wrong total key (total vs total_datasets), causing extra empty-page requests. Now reads total_datasets with fallback.
2026-09-02 19:05:50 +08:00
buua436 cf441d4c72 fix: align wiki alteration provenance (#19140) 2026-09-02 18:03:15 +08:00
Wang Qi b4a3ff3c64 Fix: link to existing dataset clean the document chunks (#19143) 2026-09-02 16:00:37 +08:00
Wang Qi 61492c0362 Refactor: add total/returned entities/relations 2 (#19114)
Follow on #19095
2026-09-02 14:28:58 +08:00
Jin Hai 988dfda4c9 Fix: Use default pipeline configuration when parsing documents via HTTP API- #13297 (#19116)
Refer to #13297

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-09-02 06:12:17 +08:00
880876f60f fix(agentic_rag): table-aware retrieval truncation fixes + action-session loop guards (#19112)
Fixes a family of table-retrieval truncation bugs and an action-session
infinite loop in the agentic RAG medium path, all root-caused on a
tabular-reasoning question

1. action_session turn cap enforced (action_session.py)
_route checked _pending_calls before attempts, so a model that kept
emitting tool calls never hit the 4-turn finalize — a single session
could burn the whole pass budget (219 retrievals / 600s observed). Added
_route_after_tool: after a tool batch, the turn budget is checked and
the session converges to finalize instead of looping back to run_action.
2. Table chunks kept whole through retrieval (search.py,
text_processing.py, action_session.py)
Three truncation points hid mid-table answer rows from the session
model:
- grep_search narrowed table chunks to 700 chars
(_GREP_OUT_CHARS_PER_CHUNK)
- _narrow_content only passed HTML tables (<table>/<tr/<td) whole —
markdown pipe tables were sentence-window narrowed
- _admit_evidence truncated the model-facing output to 1200 chars even
though the pool held the full chunk,non-table chunks keep the existing
truncation paths unchanged.

3. SCA sees more evidence (agentic_rag_graph.py, sufficient_context.py)
_SCA_VIEW_CAP 24 → 60; _SCA_CLAIMS_CONTEXT_MAX 9000 → 48000;
table-bearing evidence anchors rendered in full (bounded by the context
budget).

4. Supporting: runtime instrumentation for rounds/slots/retrievals, LLM
token accounting, slot-evidence preservation through SCA, dedup
checkpoints. Timeout/budget constants restored to upstream defaults.

---------

Co-authored-by: Loong <213221738@seu.edu.cn>
Co-authored-by: Hermes Agent <hermes-agent@localhost>
2026-09-01 21:58:29 +08:00
MarMar Labs cd27ae4c6e fix(memory): put the keyword weight in the text slot of the fusion expression (#18989)
Fix memory search hybrid weights inverted (slot 1 is vector weight, not keyword). Now matches build_fusion_expr. At 0.7, memory search becomes keyword-dominant (was vector-dominant).
2026-09-01 16:14:36 +08:00
Wang Qi fe63e09781 Refactor: add total/returned entities/relations (#19095) 2026-09-01 16:01:59 +08:00
Martin Civáň 867e4187eb Fix don't send an empty tools array (#19015)
Fix non-streaming chat sending empty tools=[] (rejected by strict providers). Restored mdl.is_tools check and added helper to omit tools field when unbound.
2026-09-01 13:55:37 +08:00
euvre 2af732d607 fix(chat): images uploaded in chat UI were ignored by vision models (agentic loop / Go attachment drop) (#18884) 2026-08-31 19:35:02 +08:00
Martin Civáň 1757425903 fix: retrieve with the assistant's configured settings (#19016)
Fix agentic search ignoring chat retrieval settings — now passes knn_top_k, weights, threshold, and top_n. knn_top_k critical for HNSW recall on large indices.
2026-08-31 19:03:28 +08:00
MarMar Labs 5e1898e293 fix(dify): search the dataset owner's index, not the caller's (#18987)
Fix team-member Dify retrieval searching wrong tenant index. Changed tenant_id to kb.tenant_id in both retrieval_by_children and kg_retriever.
2026-08-31 17:11:40 +08:00
Josh Baptiste 5af3bf2f4b Fix: KnowledgebaseService.dfs_update crashes on stored None parser_config values (#15964)
Fix #15962 — replace bare assert isinstance in KnowledgebaseService.dfs_update with safe conditions. Stored None values no longer crash table-parser parses. Matches DocumentService fix from #12815.
2026-08-31 16:19:54 +08:00
georgelichenandChen Li f300b154b0 fix(chat): keep reasoning chats grounded when LLM lacks tool calling (#18983)
Fix reasoning + KB requests using models without tool-calling — now fall back to async_chat RAG path instead of answering from general knowledge. 

Co-authored-by: Chen Li <george_lichne@163.com>
2026-08-31 14:28:12 +08:00
b149a392f4 fix(api): return parsing-status counts at the top level of each dataset (#17595) (#17611)
Fix #17595 — parsing status counts now return as top-level fields per documentation, not nested under parsing_status.

Signed-off-by: Anai-Guo <antai12232931@anaiguo.com>
Signed-off-by: Anai-Guo <antai12232931@outlook.com>
Co-authored-by: Anai-Guo <antai12232931@anaiguo.com>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-08-31 13:52:08 +08:00
Yingfeng 862ee95df2 Refine agentic search (#18798) 2026-08-28 23:56:14 +08:00
Wang Qi 66113709cc Feature: add highlight for retrieval testing and search (#18981) 2026-08-28 19:26:41 +08:00
706e87af9f fix(admin): stop silent superuser creation on auth probe and harden bootstrap (#18702)
Fix CWE-798/306 admin security: check_admin() silently created default admin accounts on any anonymous request. Now no longer creates accounts. Bootstrap uses env/random password. Login throttling added. Admin port bound to localhost. 

---------

Co-authored-by: jindou <jindou@local>
Co-authored-by: maoyifeng <myfbee5@163.com>
2026-08-28 17:44:52 +08:00
abdabf883b fix(rag): key Infinity field_map by original column names, not pinyin (#18318)
Fixes #18287

Fix SQL retrieval field mapping: field_map used pinyin keys but chunk_data stored original names. Now keyed by original name on Infinity/OceanBase/SereneDB. Non-ASCII columns now work.

Co-authored-by: Taranum01 <Taranum01@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Taranum01 <50813317+Taranum01@users.noreply.github.com>
Co-authored-by: Taranum01 <taranumwasu@users.noreply.github.com>
2026-08-28 15:15:07 +08:00
天海蒼灆andCursor 9ca62e8da3 fix: include filename in file download Content-Disposition header (#17105)
### Summary

GET /api/v1/files/{id} now sets attachment filename for both Python and
Go handlers so browsers can save downloads with the correct name.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 14:42:04 +08:00
Jin Hai 191d62a698 Py: add update_time in select list when list data sync logs (#18867)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-28 14:22:37 +08:00
MarMar Labs d132352edb fix(file): stop is_parent_folder_exist raising on a missing parent (#18930)
Fix POST /api/v1/files 500 error when parent_id doesn't exist. Removed dead delete_folder_by_pf_id call (mismatched args, no tenant scope). Now returns False and documented error response.
2026-08-28 13:52:35 +08:00
Jin Hai d37486e295 Python && Go: fix parse status (#18841)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-08-28 12:47:41 +08:00
MarMar Labs 439c3be9cb fix(dataset): rebuild the navigation tree in the dataset owner index (#18932)
Fix generate_nav tenant mismatch: wipe used dataset owner's tenant_id but rebuild used caller's. Team members could delete owner's navigation tree and rebuild into their own. Now both use kb.tenant_id.
2026-08-28 11:58:31 +08:00
ChendongPang 03d0ad2ace fix(api): derive SQL retrieval tenant from dataset owner, not chat tenant (#18518) 2026-08-28 09:57:12 +08:00
Wang Qi f74e04581a Refactor: add page_size support (#18876) 2026-08-28 09:37:44 +08:00
buua436 0411c52904 fix: honor generation parameter enable flags (#18880) 2026-08-27 20:22:55 +08:00