Commit Graph

7565 Commits

Author SHA1 Message Date
euvre
86113fb7d4 fix(web): fix team member status badge hover text readability (#17178) 2026-07-22 15:35:47 +08:00
euvre
35595c9183 Feat: add open-in-new-tab button to search share embed dialog (#17159) 2026-07-22 15:29:43 +08:00
euvre
a81b5057bb fix(web): show builtin chunk methods in file pipeline dialog under Go backend (#17169) 2026-07-22 15:14:02 +08:00
euvre
e0ae22e83b fix(agent): prevent double reply when Agent node is followed by Message node (#17233) 2026-07-22 14:59:29 +08:00
euvre
ade2f3a5ab fix(web): use outline-none instead of outline-0 on focusable controls (#17165) 2026-07-22 14:57:23 +08:00
euvre
f2a48df56b Fix flickering document count and total when toggling file filter on search page (#17161) 2026-07-22 14:57:04 +08:00
euvre
ff1274895f fix: prevent collapse button from overlapping expanded content in next-search (#17157) 2026-07-22 14:56:20 +08:00
Dexterity
18ea0fb7f9 fix(deepdoc): prevent figure and equation crops from merging on scientific PDFs (#15873)
### What problem does this PR solve?

Closes #15872 

On pages that contain both a textless equation and a figure, the layout
recognizer could merge the two unrelated regions into a single cropped
image with concatenated captions. This shows up most often on scientific
and technical PDFs.

The cause is a `layoutno` namespace collision in
`deepdoc/vision/layout_recognizer.py`. Text-overlapping boxes are tagged
per type by `findLayout`: figures become `figure-{ii}` using the
figure-only index, and equations become `equation-{ii}` using the
equation-only index. The fallback loop that handles textless regions,
however, indexes the combined figure plus equation list and always uses
a `figure` prefix.

Because the two paths use different index spaces and prefixes, a page
laid out as `[textless equation, figure with text]` produces two boxes
tagged `figure-0`. `_extract_table_figure` in
`deepdoc/parser/pdf_parser.py` buckets boxes by `f"{page}-{layoutno}"`,
so both fall into the same `page-figure-0` bucket, and `cropout`
stitches the disjoint regions into one image.

**Fix**

The fallback loop now iterates per type, indexes within each type's own
list, and reuses the type as the `layoutno` prefix (`figure-{i}` or
`equation-{i}`). This matches the namespace that `findLayout` already
assigns to text-overlapping boxes. Since the `visited` flag is shared by
reference, each layout is tagged by exactly one path, so per-type
indices stay collision free. Textless equations now land under
`equation-N`, consistent with text-overlapping equations, instead of the
old `figure-N`.

The same fix is applied to `AscendLayoutRecognizer`, which shared the
identical defect.

Downstream consumers of `layoutno` were checked and all treat it as an
opaque equality or bucketing key, so no other code paths are affected.
When a page has no equations, the combined index equals the figure-only
index and the output is unchanged.

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
2026-07-22 14:28:44 +08:00
maoyifeng
863dec759c CI update lefthook and gitee to github (#17230)
### Summary

CI update lefthook and gitee to github
2026-07-22 14:26:00 +08:00
euvre
bab7302265 fix(go): nil pointer dereference in ZhipuAI Embed method (#17219) 2026-07-22 13:59:06 +08:00
euvre
e8f4584fec Fix punctuation in useKnowledgeGraphTip tooltip (#17226) 2026-07-22 13:56:04 +08:00
Wang Qi
c6d9f848bc Fix CVE-2026-42533 (#17218) 2026-07-22 13:18:33 +08:00
Lynn
fc7d4bdf98 Feat: openrouter embedding (#17213) 2026-07-22 13:17:52 +08:00
dependabot[bot]
675c86a7c3 build(deps-dev): bump pillow from 12.2.0 to 12.3.0 (#17208) 2026-07-22 12:25:54 +08:00
euvre
8408f9a4e2 Go: only unlink file-manager files when deleting documents from a knowledge base (#17175) 2026-07-22 12:14:22 +08:00
euvre
4697ee29aa fix: avoid duplicate document names when linking files to datasets (#17181) 2026-07-22 12:12:23 +08:00
euvre
fe3e87361d fix(agent): restrict permission field edits to canvas owner only (#17185) 2026-07-22 12:09:22 +08:00
euvre
03e583f9bc fix: add create_date field to APIKeyResponse for token list display (#17186) 2026-07-22 12:08:16 +08:00
Hz_
b175ed582f fix(go-agent): support Tavily tool names (#17163)
## Summary

- Register `TavilySearch` and `TavilyExtract` Canvas component names in
the Go Agent tool registry.
- Add regression coverage for building both tools by their Python
component names.

## Testing

- `bash build.sh --test ./internal/agent/tool/...`
- `bash build.sh --test ./internal/agent/component/...`
2026-07-22 10:38:26 +08:00
chanx
744ae77290 feat(model): forward instance_id on per-model verify and auto-populate models (#17055) 2026-07-22 10:22:18 +08:00
Wang Qi
a08d203ce7 Fix: enhance ragflow-client (#17206) 2026-07-22 10:07:23 +08:00
rayhan
6a85d1c5c4 migrate: replace zhipuai with zai-sdk to unblock pyjwt CVE fix (#17197)
## Summary

Old `zhipuai==2.0.1` SDK (MetaGLM/zhipuai-sdk-python-v4) requires
`pyjwt~=2.8.0`, which blocks upgrading pyjwt past 2.8.0 to address
active CVEs. The upstream project now recommends the maintained
successor [`zai-sdk`](https://github.com/zai-org/z-ai-sdk-python).

`zai-sdk` relaxes the pyjwt constraint to `>=2.9.0,<3.0.0`, allowing
pyjwt 2.13.0+. The embedding API surface (`client.embeddings.create`) is
identical, no functional changes required.

Related CVE's:

- CVE-2026-48522
- CVE-2026-48524
- CVE-2026-48525
- CVE-2026-48526
- CVE-2026-32597
dev-20260722
2026-07-21 22:24:29 +08:00
rayhan
6c22310582 fix: remediate CVE-2025-69534, upgrade Markdown from 3.6 to >=3.8.1 (#17198) 2026-07-21 22:23:27 +08:00
Jin Hai
9f080a4f45 Py: ruff format (#17193)
### Summary

format issue

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-21 21:04:09 +08:00
Wang Qi
1c5a22e226 Enrich the ragflow_client.py (#17189) 2026-07-21 20:18:20 +08:00
Haruko386
b9de586043 fix: add accessible check for datasets (#17116)
### Summary

As title:

Some operations on datasets have been fixed as they previously lacked
authentication, preventing team members from proper or correct usage.

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
dev-20260721-2
2026-07-21 19:20:56 +08:00
Haruko386
d57edee9c3 Go: add funASR provider (#17171)
### Summary

As title

verif ied from CLI

```
RAGFlow(api/default)>  asr with 'paraformer@test@funasr' audio './internal/test.wav' param '{"language": "en"}'
+----------------------------------------------------------------------------------------------------------------------+
| text                                                                                                                 |
+----------------------------------------------------------------------------------------------------------------------+
| The examination and testimony of the experts enabled the commission to conclude that five shots may have been fired. |
+----------------------------------------------------------------------------------------------------------------------+
```
---

<img width="2876" height="1377" alt="image"
src="https://github.com/user-attachments/assets/4cee62c6-1c71-43ce-b398-4d9fbff33c3c"
/>

```bash
INFO:     127.0.0.1:51910 - "POST /v1/audio/transcriptions HTTP/1.1" 200 OK██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  2.19it/s]
INFO:     127.0.0.1:60934 - "GET /v1/models HTTP/1.1" 200 OK%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  2.10it/s]
```

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-07-21 19:20:34 +08:00
Lynn
340d30eb12 Fix: verify model api (#17183) 2026-07-21 19:09:46 +08:00
euvre
3f9d9529b3 fix(file2document): batch link should add to existing KBs, not replace them (#17172) 2026-07-21 19:05:02 +08:00
Lynn
3f5b765a5f Fix(go): check model availability (#17156) 2026-07-21 19:02:14 +08:00
Jin Hai
a5488d035a Go: refactor to avoid conflicts (#17191)
### Summary

1. merge registery test into ingestion
2. move license code to EE version

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-21 18:47:02 +08:00
qinling0210
edeb47cd54 Implement Tagger in Extractor component in GO (#17128)
### Summary

Implement Tagger in Extractor component in GO
2026-07-21 17:52:06 +08:00
qinling0210
0189ca3700 Port PR14140 and PR16881 to GO (#17102)
### Summary

Port
https://github.com/infiniflow/ragflow/pull/14140/
https://github.com/infiniflow/ragflow/pull/16881
2026-07-21 17:46:23 +08:00
balibabu
20b760f266 Feat: Highlight wiki force graph. (#17160) 2026-07-21 16:48:52 +08:00
Haruko386
08ed962aed fix: Refactor ListConnectors to validate userID and simplify logic (#17152)
### Summary

Trim whitespace from userID and check for empty value. Use userID
directly for listing connectors instead of tenant ID.
2026-07-21 16:47:28 +08:00
Haruko386
294dff4701 fix: add chunk_method field to document handler (#17154)
### Summary

As title
2026-07-21 16:47:12 +08:00
maoyifeng
49374eede3 Go cli: fix list users failed: invalid JSON (unexpected end of JSON ) (#17153)
### Summary

Go cli: fix list users failed: invalid JSON (unexpected end of JSON )
2026-07-21 16:46:45 +08:00
Haruko386
b4ca5d0bfe refactor: encapsulate the code related to tools (#17101)
### Summary

As title
2026-07-21 16:45:29 +08:00
euvre
456e2be161 fix(web): hide folder upload tab for Gmail and Google Drive OAuth JSON upload (#17162) 2026-07-21 16:41:38 +08:00
euvre
5f2b3fc6c5 fix(web): use title case 'API Key' in UI labels across all locales (#17164) 2026-07-21 16:37:27 +08:00
Wang Qi
a6c3dd10ab Update from api_base to base_url (#17158) 2026-07-21 16:36:46 +08:00
euvre
859006c79a fix(web): prevent search popover from flashing at top-left on checkbox toggle (#17148) 2026-07-21 16:13:07 +08:00
euvre
87417d083e Go: disable thinking for search ask summary to fix truncated AI summary (#17155) 2026-07-21 14:54:14 +08:00
euvre
f7a5629487 Fix stale references shown while streaming and empty final reply in Go mode (#17146) 2026-07-21 14:53:40 +08:00
Jack
bb6b43b5c9 fix: docx/email parsing, extractor LLM driver, and chunker alignment (#17144)
## Summary

Three groups of changes across the Go ingestion pipeline:

### 1. DOCX parsing improvements
- **docx_parser.go**: Enhanced DOCX parsing with better structure
extraction and media handling
- **docx_parser_cgo_test.go**, **docx_parser_test.go**: Companion tests
- **office_parsers_no_cgo.go**: Stub sync for non-CGO builds

### 2. Email (.eml) parsing: base64 Content-Transfer-Encoding decoding
- **email_parser.go** (`decodeCTE`): Added Content-Transfer-Encoding
decoding for base64 and quoted-printable. Go's `mime/multipart.Reader`
does not decode Content-Transfer-Encoding automatically, so attachments
with `Content-Transfer-Encoding: base64` remained base64-encoded in the
output. The new `decodeCTE` helper is called after reading each
multipart part's raw bytes in `readMailBody`, mirroring Python's
`part.get_payload(decode=True)`.
- **email_parser_test.go**: Two new tests — simple base64 attachment and
nested multipart/alternative with base64 attachment.

### 3. Extractor LLM driver fix + ModelDriver consolidation
- **extractor.go**: Fixed a bug where the Extractor component used
`ModelFactory.CreateModelDriver()`, which creates bare model instances
without API keys or provider configuration. Switched to
`models.GetPreconfiguredDriver()` which resolves the actual
pre-configured driver from `ProviderManager`, matching the codepath used
by `llm.go`. This fixes auto keyword/question extraction in DSL
pipelines that require LLM calls.
- **get_driver.go** (new): Extracted shared `GetPreconfiguredDriver()`
from `llm.go:newChatModelDriver()` so both `llm.go` and `extractor.go`
use the same codepath.
- **get_driver_test.go** (new): Tests for the shared driver resolution.
- **llm.go**: Replaced inline driver resolution with
`models.GetPreconfiguredDriver()`.

### 4. Chunker fixes and observability
- **group.go** (`extractLineRecords`): Fixed to also read `markdown` and
`html` payload keys — previously it only read `text`/`content`, causing
GroupTitleChunker to silently return empty results for markdown-format
parser output.
- **common.go** (`compileDelimPattern`): Aligned with Python's
`_compile_delimiter_pattern` — only backtick-wrapped delimiters produce
an active regex pattern; plain delimiters are not compiled into the
split regex.
- **token.go** (`applyChildrenDelim`): Set `DocType` and `CKType` to
`"text"` on created ChunkDocs so the token-size merge path correctly
identifies and merges text segments.
- **parser.go**, **extractor.go**, **tokenizer.go**, **group.go**,
**hierarchy.go**: Added debug-level logging for pipeline diagnostics.
- **parser_dispatch_test.go**, **group_test.go**: New tests.

## Verification
- All Go tests pass: `bash build.sh --test ./internal/parser/parser/...`
and `bash build.sh --test ./internal/ingestion/component/...`
- Build succeeds: `bash build.sh --go`
2026-07-21 13:51:17 +08:00
buua436
a730ce7aa6 fix: preserve compilation template kinds and names (#17151) 2026-07-21 13:40:08 +08:00
chanx
bc07b18b88 Refactor: unify navbar icons through HomeIcon wrapper (#17143) 2026-07-21 13:20:44 +08:00
Jin Hai
3cc6539c32 Go: refactor API route (#17139)
### Summary

As title.

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-21 12:18:47 +08:00
balibabu
b288888050 Feat: Add a "None" option for reasoning intensity in the chat message box. (#17006)
### Summary

Feat: Add a "None" option for reasoning intensity in the chat message
box.
2026-07-21 11:50:34 +08:00
euvre
21a4eab43d fix: unify 'BASE URL' to 'Base URL' in locale files (#17138) 2026-07-21 11:31:40 +08:00