Commit Graph

7807 Commits

Author SHA1 Message Date
balibabu
5ac8d92d2e Feat: Add an update button to the graph page of the dataset. (#17571)
### Summary

Feat: Add an update button to the graph page of the dataset.
2026-07-30 18:40:29 +08:00
Kevin Hu
3f8a3dfcff Feat: Compilation benefit naive rag. (#17555)
### Summary

Compilation benifit naive rag

---------

Co-authored-by: Yingfeng Zhang <yingfeng.zhang@gmail.com>
2026-07-30 18:39:01 +08:00
Wang Qi
1667d1495f Fix parse image in excel as table, the image shows as one column (#17569) 2026-07-30 17:20:04 +08:00
Jack
1629357bf7 Fix internal/handler test failures, align response with Python contract, and re-enable handler/storage/agent tests in CI (#17554)
## Summary

Fixes the 6 pre-existing failures in `internal/handler`, aligns one
response
field with the Python API contract, and re-enables packages in CI that
were
previously excluded because of (or unrelated to) those failures.

### Test/handler fixes
- **plugin.go**: return `"success"` (lowercase) instead of `"SUCCESS"`
so the
response envelope matches the Python backend, keeping backend-swap
transparent.
- **search_handler_test.go**: expect lowercase `"no authorization"` to
match the
  service error message, which mirrors Python.
- **agent_test.go**: seed versions with `CreateTime` instead of
`UpdateTime` so
  `ListVersions` ordering (`create_time DESC`) is exercised correctly.
- **agent_wait_for_user_test.go**: a clean run may emit only the
`[DONE]` frame;
relax the SSE assertion to require a non-empty stream ending in
`[DONE]`.
- **bot_test.go**: align attachment-download assertions with actual
behavior
  (`Content-Disposition: attachment; filename="file"`, default
`application/octet-stream`), matching Python
`resolve_attachment_content_type`.

### CI
- **tests.yml / sep-tests.yml**:
- Remove the `grep -v '/internal/handler$'` filter — the 6 failures that
    motivated it are now fixed.
- Remove the `grep -v '/internal/storage$'` filter — `internal/storage`
tests self-skip via `t.Skipf` when MinIO is unavailable, so the package
is
    safe to run in CI.
  - Remove the `grep -v '/internal/agent$'` filter (only present in the
tests.yml infinity job) — the exclusion was undocumented and
inconsistent
    with the other jobs that already run `internal/agent`.
- Keep the `internal/tokenizer` exclusion: it is a genuine environmental
dependency (dict files at `/usr/share/infinity/resource`, absent in the
Go
    test environment).

## Test plan

- `build.sh --test ./internal/handler/` is green (previously 6 FAIL).
- `build.sh --test ./internal/storage/ ./internal/agent/` should pass;
the
MinIO-backed `internal/storage` tests skip gracefully without a MinIO
server.
- After this PR, `internal/handler`, `internal/storage`, and
`internal/agent`
  run again in CI unit-test jobs; `internal/tokenizer` stays excluded.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-07-30 16:59:39 +08:00
chanx
6fb6b9e06b fix(setting-model): support field-level autoComplete to suppress browser autofill (#17559) 2026-07-30 16:50:31 +08:00
Wang Qi
5d76b0b96c Fix multiple model chat, the content overwrite the current chat session (#17566) 2026-07-30 16:50:13 +08:00
Wang Qi
4592d06a67 Fix deepcopy the chat model (#17560) dev-20260730 2026-07-30 14:29:24 +08:00
chanx
493f605889 fix(i18n): add missing translation keys for model provider form fields (#17551) 2026-07-30 14:06:37 +08:00
Lynn
0139d6f8c3 Fix: Avoid deepcopy crash for OpenAI‑API‑compatible chat models (#17556) 2026-07-30 13:58:44 +08:00
chanx
03a93eabf7 Feat: batch verify models in provider instance card (#17552) 2026-07-30 13:58:16 +08:00
Wang Qi
6e0e495929 Fix: upload document might be hung the whole ragflow (#17537) 2026-07-30 13:54:07 +08:00
chanx
cb908d1979 fix: restore provider-specific fields on form echo via echoTransform (#17550) 2026-07-30 11:22:06 +08:00
Kevin Hu
9bb037271e Refact: Rename "artifact_" to "wiki_". (#17553) 2026-07-30 11:06:16 +08:00
balibabu
be6263d522 Fix: The compiler operator icon is not displaying on the pipeline log page. (#17545) 2026-07-30 10:39:01 +08:00
dependabot[bot]
dcaa62f118 build(deps): bump axios from 1.15.2 to 1.18.0 in /agent/sandbox/sandbox_base_image/nodejs (#17549) 2026-07-30 09:39:06 +08:00
chanx
3da7fe18f0 Fix: audio button can send message (#17541) 2026-07-30 09:38:25 +08:00
EthanZhang
33e581a8b3 feat(agent): add Querit search tool (#17548) 2026-07-30 09:36:16 +08:00
Lynn
03d887a975 Fix: Add list_models support for Hugging Face provider (#17542) 2026-07-30 09:34:10 +08:00
Jack
0cb4039be9 fix(ingestion): clamp unconfigured embedding limit; document chunker title parity (comment-only) (#17539)
## Summary
Fixes embedding inputs being emptied and documents chunker
heading-detection parity.

- `component/tokenizer.go`: `truncateForEmbedding` now mirrors Python
`common/token_utils.py:183-185` `truncate(string, max_len)` (keep the
first `max_len` tokens). For an unconfigured embedder reporting
`maxTokens <= 0`, instead of mirroring Python's `truncate` (which
returns `""` for `max_len <= 0` and would make the embeddings API reject
the batch with "inputs cannot be empty"), Go **clamps the limit to a
safe default** (`defaultEmbeddingTokenLimit = 8192`) so truncation stays
active and never produces empty inputs. The previous code returned `""`
for `maxTokens <= 10`, which emptied non-empty chunks into the batch and
triggered the API error.
- A **10-token safety margin** is reserved (mirroring Python's embedding
path `rag/svr/task_executor.py` which uses `mdl.max_length - 10`) so Go
does not over-send tokens to hard-capped embedding APIs; it is only
applied when the limit `> 10` so small limits remain non-empty.
- The clamp is applied **centrally inside `truncateForEmbedding`**,
covering both Builtin and generic callers — no separate
`model_service.go` change is required.
- `component/chunker/title.go`: comment-only — documents the
already-ported PDF-outline detection (omission 1.5 / Gap C) and the
hardcoded `BULLET_PATTERN` fallback (omission 1.7 / Gap C), porting
`common.py:_outline_similarity` and `rag/nlp` `BULLET_PATTERN`.
- `tokenizer_unit_test.go`: update truncation expectations to the new
positive-keeps-tokens / non-positive-clamps-to-default behaviour.

## Test plan
- `tokenizer_unit_test.go` updated for the new truncation behaviour
(`TestTruncateForEmbedding_SmallMaxTokens`,
`TestTruncateForEmbedding_UnconfiguredClampsToDefault`).
- `./build.sh --test ./internal/ingestion/component/` passes.

🤖 Generated with [CodeBuddy Code](https://cnb.cool/codebuddy)
2026-07-29 21:10:19 +08:00
Zhichang Yu
90f46b0b4d Go port: doc-level metadata extraction and knowledge compiler (#17536)
Ports doc-level auto-metadata extraction to Go and adds the
knowledge_compiler component with scheduler/routing. Fixes Extractor
metadata injection type assertion and enable_metadata default-on.
2026-07-29 21:06:48 +08:00
YanZhang
7f85a5776e docs: update user guide (#17358)
add model config guide word and picture
add teams guide words
2026-07-29 20:46:04 +08:00
rayhan
a586998c35 fix: remediate CVE-2026-0994 by constraining protobuf to >=5.29.6 (#17543)
## Summary
  
Remediates CVE-2026-0994 (HIGH) in `protobuf` by adding
`protobuf>=5.29.6` to `constraint-dependencies` in `pyproject.toml`.
  
| CVE | Severity | Package | Installed | Fixed in |
|---|---|---|---|---|
| CVE-2026-0994 | HIGH | protobuf | 5.29.5 | 5.29.6 |
  
`protobuf` is a transitive dependency pulled in by `google-api-core`,
`googleapis-common-protos`, `grpcio-status`, and `opentelemetry-proto`.
It was stuck at 5.29.5 because the lockfile hadn't been re-resolved.
2026-07-29 19:35:44 +08:00
balibabu
ae312090c4 Feat: Click the icon in the top-right corner to delete the note node. (#17533) 2026-07-29 19:06:35 +08:00
jay77721
4258e4ea33 Fix: add StepFun china region base URL (api.stepfun.com) (#17528)
## Summary
- StepFun serves domestic (China) and international markets from
different domains.
- Add a `china` region URL (`api.stepfun.com`) alongside the existing
`default` (`api.stepfun.ai`) so tenants in China can route correctly.

## Change
- `conf/models/stepfun.json`: add `"china":
"https://api.stepfun.com/v1"` to the `url` map.

## Why
- Chinese AI/LLM providers commonly maintain separate URLs for domestic
vs. international markets. Keeping both options available matches the
existing pattern used by other providers (e.g. GiteeAI).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 19:05:38 +08:00
Haruko386
c7b1b3a4d2 feat: make chat-channel and implement WhatsApp bot (#17518) 2026-07-29 18:55:22 +08:00
Hz_
d5604f8947 feat(go-llm): align provider responses and streaming usage (#17509)
## Summary

- Add provider-local Chat, Embedding, and Rerank response structures
with usage mapping.
- Align streaming usage and tool-call state handling across Gitee,
OpenRouter, Jiekou.AI, and Hunyuan.
- Preserve Jina's non-streaming behavior and explicit unsupported
streaming response, while fixing Jiekou.AI thinking=false handling.
2026-07-29 18:54:11 +08:00
Wang Qi
0583f8c79d Fix dataset selector to continue scoll if still have data (#17534)
1. controll scoll paging by total
2. show dataset but won't allow them to choose.
2026-07-29 18:48:47 +08:00
balibabu
2a4e77c5ae Feat: Store the dialogue reasoning level on the client side. (#17530)
### Summary

Feat: Store the dialogue reasoning level on the client side.
2026-07-29 18:40:12 +08:00
Kevin Hu
48a3280eac Refactor: merge dataset scope graph. (#17526)
### Summary

merge dataset scope graph.

---------

Co-authored-by: Yingfeng Zhang <yingfeng.zhang@gmail.com>
2026-07-29 18:23:51 +08:00
Jin Hai
1f90755c48 Go: refactor (#17511)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
dev-20260729-2
2026-07-29 18:00:59 +08:00
Lynn
317363e513 Fix: replace unsupported default qwen rerank model (#17535) 2026-07-29 17:40:02 +08:00
Yash Raj Pandey
33bfc11fa4 Fix QA DOCX table parser dropping cells between repeated text (#17497) 2026-07-29 17:18:54 +08:00
chanx
26f0dc234e fix: add tooltip to log button in AssistantGroupButton component (#17532) 2026-07-29 17:18:01 +08:00
chanx
f8e01d558e fix(search): adapt input shape and button position to content line count (#17529) 2026-07-29 17:15:19 +08:00
Yash Raj Pandey
c3aa8053c0 Fix tag CSV parser ignoring the documented TAB delimiter (#17496) 2026-07-29 17:01:07 +08:00
balibabu
e5a7bee9db Fix: Switching templates results in a few extra data entries in the entity specification. (#17514) 2026-07-29 16:25:46 +08:00
Lynn
803f44221f Fix: remove unsupported get-rerank model (#17527) 2026-07-29 16:23:00 +08:00
balibabu
9c8f4f5fe3 Fix: On the multi-model comparison chat page, if there is more than one window, each window can be deleted. (#17523) 2026-07-29 16:21:53 +08:00
chanx
b0bbf9fa7f fix: support provider-specific verify payload for per-model verify (#17522) 2026-07-29 16:20:31 +08:00
Kevin Hu
06562cb03d Refactor: the tool usage in agent search progress (#17490)
### Summary

Refactor: the tool usage in agent search progress
2026-07-29 15:39:20 +08:00
balibabu
1140db3b8c Fix: The multi-model comparison page cannot output messages. (#17507) 2026-07-29 15:16:40 +08:00
Wang Qi
3c59b707c2 Refactor: delete llm_app.py (#17517) 2026-07-29 14:54:32 +08:00
Wang Qi
3297b5c756 Fix: drop and add index for mysql (#17513)
Drop complile template not used index
2026-07-29 14:54:20 +08:00
Lynn
0d1cdf157c Fix: validate Mistral OCR model (#17515) 2026-07-29 14:53:32 +08:00
Sbaaoui Idriss
e9637c9f94 fix: list model function for nvidia on python/go not returning current models (#17501)
### Summary

fix the list model logic for nvidia models
2026-07-29 13:15:34 +08:00
Anupam Mediratta
43e73b3239 fix: upgrade axios to 1.15.2 (CVE-2026-42264) (#17508)
## Summary
Upgrade axios from 1.15.1 to 1.15.2 to fix CVE-2026-42264.

## Vulnerability
| Field | Value |
|-------|-------|
| **ID** | CVE-2026-42264 |
| **Severity** | HIGH |
| **Scanner** | trivy |
| **Rule** | `CVE-2026-42264` |
| **File** | `agent/sandbox/sandbox_base_image/nodejs/package-lock.json`
|
| **Assessment** | Likely exploitable |

**Description**: axios: Axios: Prototype pollution allows information
disclosure and request manipulation

---
*Automated security fix by [OrbisAI Security](https://orbisappsec.com)*
2026-07-29 12:25:02 +08:00
Wang Qi
989529c00a Fix filter dataset by owner_ids not working (#17499) 2026-07-29 11:48:40 +08:00
Jin Hai
0eb8e0b393 Go: refactor ragflow_server.go (#17494)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-29 11:38:27 +08:00
Wang Qi
d6f1475c5c Fix: no rate limit for sandbox run (#17503) 2026-07-29 11:19:06 +08:00
Harsh Kashyap
404a5cc33b fix(admin,api): honor STORAGE_IMPL when surfacing file_store backend (closes #17294) (#17441)
## Summary

When `STORAGE_IMPL=AWS_S3`, the Admin Service status page keeps showing
MinIO. Three things conspire:

1. `admin/server/config.py::load_configurations` only knows the
   `minio` and `minio_0` config keys. An `s3` block lands on the
   `case _:` branch and logs `Unknown configuration key: s3`
   (issue #17294).
2. `admin/server/services.py::ServiceMgr.get_all_services` filters
   retrieval services by `DOC_ENGINE` but has no equivalent filter
   for `file_store` services by `STORAGE_IMPL`. A stale MinIO block
   is returned regardless of the active backend.
3. The wired health check is hardcoded to `check_minio_alive`, which
   calls `settings.MINIO['host']`. With `STORAGE_IMPL=AWS_S3` that
   block is uninitialized, so the check always times out.


Fixes #17294
2026-07-29 11:13:20 +08:00