RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
This report summarizes scanner evidence for infiniflow/ragflow, a Go project with 91,957 GitHub stars. SynthScan examined 1,390,656 lines of code across 4875 source files, recording 5578 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 5.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 4399 finding(s).
Are imports declared and package/API names verified? 682 finding(s).
Are wrappers, guards, and repeated structures necessary? 1103 finding(s).
Which changes need focused human review? 5578 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 5578 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_tests.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | pyproject.toml | 41 | [tool.uv] | COMMENT |
| LOW | pyproject.toml | 61 | "lxml>=6.1.1", | COMMENT |
| LOW | build.sh | 241 | fi | COMMENT |
| LOW | build.sh | 301 | echo " DeepDocORTVersion=${ort_version}; fetch it with:" >&2 | COMMENT |
| LOW | build.sh | 421 | # digit are byte-identical and cannot be told apart. | COMMENT |
| LOW | build.sh | 481 | # Verify the on-disk lib matches the pinned version. _seed_from_system | COMMENT |
| LOW | build.sh | 541 | make rag_tokenizer_c_api -j"$jobs" | COMMENT |
| LOW | build.sh | 781 | esac | COMMENT |
| LOW | build.sh | 821 | for f in $ORT_A_FILES; do | COMMENT |
| LOW | build.sh | 841 | # dlsym("OrtGetApiBase"), so nothing references it at link time and | COMMENT |
| LOW | build.sh | 901 | # covered by the normal module tests. The build is pure-Go geometry plus the | COMMENT |
| LOW | build.sh | 921 | # Why -race is split instead of applied to the whole suite: | COMMENT |
| LOW | lefthook.yml | 1 | # There are 6 fix-capable jobs and 5 pure-check jobs in pre-commit, plus a | COMMENT |
| LOW | cmd/deepdoc_server_ee.go | 1 | // | COMMENT |
| LOW | cmd/ragflow-cli.go | 1 | //go:build ignore | COMMENT |
| LOW | cmd/ragflow_server_deepdoc_test.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server_test.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server.go | 721 | } | COMMENT |
| LOW | cmd/ragflow_server.go | 901 | COMMENT | |
| LOW | cmd/ragflow_server.go | 941 | navService := nlp.NewNavService(service.NewNavEmbedder(service.NewModelFactory(), "")) | COMMENT |
| LOW | cmd/ragflow_server.go | 1281 | // Install the dataset-nav ES-backed service (internal/service/nav + | COMMENT |
| LOW | cmd/ragflow_server.go | 1361 | apiServerConfig := globalConfig.GetAPIServerConfig() | COMMENT |
| LOW | cmd/ragflow_server.go | 1521 | } | COMMENT |
| LOW | cmd/ragflow_server.go | 1541 | COMMENT | |
| LOW | cmd/ragflow_server.go | 1601 | // The in-process (Go) DeepDoc backend is the ONLY production backend. Fail | COMMENT |
| LOW | tools/migrate-canvas/main.go | 1 | // | COMMENT |
| LOW | tools/migrate-canvas/main.go | 21 | // go run ./tools/migrate-canvas -golden=expected.json docs/develop/sample.json | COMMENT |
| LOW | tools/covsweep/main.go | 1 | // Command covsweep answers one question for a whole document set: | COMMENT |
| LOW | tools/covsweep/main.go | 21 | // honest: the ingest strips punctuation AND closes the gap it leaves, so a source line | COMMENT |
| LOW | tools/covsweep/main.go | 41 | // Concurrency, and where the time actually goes (the tool prints a phase breakdown on exit): | COMMENT |
| LOW | tools/covsweep/main.go | 121 | FileAlnum int `json:"file_alnum"` // alphanumeric characters the file projects to | COMMENT |
| LOW | tools/covsweep/main.go | 421 | // --------------------------------------------------------------------------- | COMMENT |
| LOW | tools/covsweep/main.go | 621 | COMMENT | |
| LOW | tools/firecrawl/INSTALLATION.md | 101 | export FIRECRAWL_RATE_LIMIT_DELAY="1.0" | COMMENT |
| LOW | tools/gen-component-parity/main.go | 1 | // | COMMENT |
| LOW | tools/gen-component-parity/main.go | 21 | // The tool imports the production packages (which trigger init() | COMMENT |
| LOW | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 1 | # | COMMENT |
| LOW | tools/chatgpt-on-wechat/plugins/__init__.py | 1 | # | COMMENT |
| LOW | tools/scripts/install.sh | 1 | #!/bin/sh | COMMENT |
| LOW | tools/mdprobe/main.go | 1 | // Command mdprobe runs the ingest Markdown parser over a corpus file and reports, item by item, | COMMENT |
| LOW | docker/kvrocks-entrypoint.sh | 1 | #!/bin/sh | COMMENT |
| LOW | docker/docker-compose-macos.yml | 21 | - ./nginx/proxy.conf:/etc/nginx/proxy.conf | COMMENT |
| LOW | docker/docker-compose-macos.yml | 41 | # networks: | COMMENT |
| LOW | docker/docker-compose-base.yml | 261 | # mysql:5.7 linux/arm64 image is unavailable. | COMMENT |
| LOW | docker/docker-compose-base.yml | 341 | kvrocks: | COMMENT |
| LOW | docker/vastbase/init/01_init.sh | 1 | #!/bin/bash | COMMENT |
| LOW | test/test_check_files.py | 1 | # Copyright 2026 The InfiniFlow Authors. All Rights Reserved. | COMMENT |
| LOW | test/test_cajal_template_unit.py | 1 | # | COMMENT |
| LOW | test/build_pdf_oxide_version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | test/integration/wiki/test_wiki_incremental.py | 1 | # | COMMENT |
| LOW | test/api/config.go | 1 | //go:build integration | COMMENT |
| LOW | test/api/user_api_test.go | 1 | //go:build integration | COMMENT |
| LOW | test/api/dataset_api_test.go | 1 | //go:build integration | COMMENT |
| LOW | test/api/main_test.go | 1 | //go:build integration | COMMENT |
| LOW | test/testcases/conftest.py | 1 | # | COMMENT |
| LOW | test/testcases/configs.py | 1 | # | COMMENT |
| LOW | test/testcases/utils/__init__.py | 1 | # | COMMENT |
| LOW | test/testcases/utils/engine_utils.py | 1 | # | COMMENT |
| 3259 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/firecrawl/example_usage.py | 18 | "api_key": "fc-your-api-key-here", # Replace with your actual API key | CODE |
| HIGH | tools/firecrawl/example_usage.py | 55 | "api_key": "fc-your-api-key-here", # Replace with your actual API key | CODE |
| HIGH | tools/firecrawl/example_usage.py | 88 | "api_key": "fc-your-api-key-here", # Replace with your actual API key | CODE |
| HIGH⚡ | tools/firecrawl/example_usage.py | 122 | "api_key": "fc-your-api-key-here", # Replace with your actual API key | CODE |
| HIGH | tools/firecrawl/INSTALLATION.md | 97 | export FIRECRAWL_API_KEY="fc-your-api-key-here" | CODE |
| HIGH | tools/chatgpt-on-wechat/plugins/README.md | 44 | "ragflow_api_key": "YOUR_API_KEY", | CODE |
| HIGH | web/src/locales/ar.ts | 1390 | 'YOUR_API_KEY (تم الحصول عليه من https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/it.ts | 1902 | 'YOUR_API_KEY (ottenuta da https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/en.ts | 2713 | 'YOUR_API_KEY (obtained from https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/fr.ts | 2528 | 'YOUR_API_KEY (obtenu depuis https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/ru.ts | 1577 | 'YOUR_API_KEY (полученный с https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/ko.ts | 1904 | 'YOUR_API_KEY (https://serpapi.com/manage-api-key 에서 발급)', | CODE |
| HIGH | web/src/locales/az.ts | 2740 | 'YOUR_API_KEY (https://serpapi.com/manage-api-key ünvanından əldə edilir)', | CODE |
| HIGH | web/src/locales/ja.ts | 2464 | 'YOUR_API_KEY(https://serpapi.com/manage-api-key から取得)', | CODE |
| HIGH | web/src/locales/bg.ts | 1450 | 'YOUR_API_KEY (получен от https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/pages/agent/constant/index.tsx | 412 | 'YOUR_API_KEY (obtained from https://www.microsoft.com/en-us/bing/apis/bing-web-search-api)', | CODE |
| HIGH | internal/agent/templates/web_search_assistant.json | 209 | "api_key": "YOUR_API_KEY (obtained from https://www.microsoft.com/en-us/bing/apis/bi | CODE |
| HIGH | internal/agent/templates/web_search_assistant.json | 565 | "api_key": "YOUR_API_KEY (obtained from https://www.microsoft.com/en-us/bing/api | CODE |
| HIGH⚡ | docs/references/python_api_reference.md | 852 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH⚡ | docs/references/python_api_reference.md | 852 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 250 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 250 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 431 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 431 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 547 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 547 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 581 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 581 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 714 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 714 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 768 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 768 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 799 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 799 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 889 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 889 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 970 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 970 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1026 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1026 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1067 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1067 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1113 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1113 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1207 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1207 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1290 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1290 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1348 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1348 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1388 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1388 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1459 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1459 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1498 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1498 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1532 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1532 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1600 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1600 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| 414 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.sh | 71 | # ── cl100k_base BPE table ───────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 691 | # ── office_oxide ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 711 | # ── pdfium ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 737 | # ── pdf_oxide ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 768 | # ── onnxruntime (static, resolved via dlopen(NULL)) ──────────────── | COMMENT |
| MEDIUM | build.sh | 857 | # ── platform-specific system libraries ──────────────────────────── | COMMENT |
| MEDIUM | docker/entrypoint.sh | 8 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 10 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 70 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 72 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 96 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 98 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 127 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 129 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/vastbase/init/01_init.sh | 25 | # ── Step 1: Create user ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docker/vastbase/init/01_init.sh | 55 | # ── Step 3: Grant database-level privileges ────────────────────────────── | COMMENT |
| MEDIUM | docker/vastbase/init/01_init.sh | 60 | # ── Step 4: Grant schema permissions (must connect to each database) ───── | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 439 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 441 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 480 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 482 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 512 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 514 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 563 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 565 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 588 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 590 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 318 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 320 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 340 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 342 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 369 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 371 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 394 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 396 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 147 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | …tcases/restful_api/test_search_datasets_consistency.py | 149 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | web/src/lib/editor/mermaid-node.tsx | 138 | // ─── React rendering component ───────────────────────────── | COMMENT |
| MEDIUM | web/src/pages/agent/utils/dsl-bridge.ts | 63 | // ─── Public API ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/pages/agent/utils/__tests__/dsl-bridge.test.ts | 8 | // ─── Round-trip stability integration tests ──────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/user-setting/data-source/constant/index.tsx | 1945 | // ── Essential fields ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/user-setting/data-source/constant/index.tsx | 2152 | // ── Advanced settings toggle ────────────────────────────────────── | COMMENT |
| MEDIUM | …/src/pages/user-setting/data-source/constant/index.tsx | 2160 | // ── Advanced fields (hidden until toggled) ──────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 122 | // ── Data fetching ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 135 | // ── Form initial values + fields ──────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 159 | // ── Action handlers ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 173 | // ── Save state (payload builder + dirty tracking) ─────────────── | COMMENT |
| MEDIUM | …/setting-model/instance-card/bedrock-instance-card.tsx | 396 | // ── Dirty tracking (no auto-save) ──────────────────────────────── | COMMENT |
| MEDIUM | …/setting-model/instance-card/bedrock-instance-card.tsx | 522 | // ──────────────── Field group rendered in both modes ──────────────── | COMMENT |
| MEDIUM | internal/handler/file_commit_test.go | 223 | // ── Tests ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/handler/file_commit_test.go | 654 | // ── Tenant authorization tests ─────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/service/test_helpers.go | 19 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/service/test_helpers.go | 21 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/mocks.go | 28 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/mocks.go | 30 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/mocks.go | 79 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/mocks.go | 81 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/mocks.go | 159 | // ────────────────────────────────────────────────────────── | COMMENT |
| 153 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README_id.md | 83 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_id.md | 141 | ### 🛀 **Alur Kerja RAG yang Otomatis dan Mudah** | COMMENT |
| MEDIUM | README_pt_br.md | 83 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_pt_br.md | 141 | ### 🛀 **Fluxo de trabalho RAG automatizado e sem esforço** | COMMENT |
| MEDIUM | README_ja.md | 66 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ja.md | 125 | ### 🛀 **自動化された楽な RAG ワークフロー** | COMMENT |
| MEDIUM | README_ru.md | 85 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ru.md | 143 | ### 🛀 **Автоматизированный и простой RAG-пайплайн** | COMMENT |
| MEDIUM | README_ko.md | 67 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ko.md | 126 | ### 🛀 **자동화되고 손쉬운 RAG 워크플로우** | COMMENT |
| MEDIUM | README.md | 82 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README.md | 129 | ### 🌱 **Grounded citations with reduced hallucinations** | COMMENT |
| MEDIUM | README.md | 138 | ### 🛀 **Automated and effortless RAG workflow** | COMMENT |
| MEDIUM | README_ar.md | 85 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ar.md | 145 | ### 🛀 **سير عمل RAG آلي وسهل** | COMMENT |
| MEDIUM | README_tr.md | 85 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_tr.md | 143 | ### 🛀 **Otomatik ve zahmetsiz RAG iş akışı** | COMMENT |
| MEDIUM | README_tzh.md | 85 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_tzh.md | 137 | ### 🌱 **有理有據、最大程度降低幻覺(hallucination)** | COMMENT |
| MEDIUM | README_tzh.md | 146 | ### 🛀 **全程無憂、自動化的 RAG 工作流程** | COMMENT |
| MEDIUM | README_zh.md | 83 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_zh.md | 128 | ### 🌱 **有理有据、最大程度降低幻觉(hallucination)** | COMMENT |
| MEDIUM | README_zh.md | 137 | ### 🛀 **全程无忧、自动化的 RAG 工作流** | COMMENT |
| MEDIUM | README_fr.md | 83 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_fr.md | 132 | ### 🌱 **Citations fondées avec réduction des hallucinations** | COMMENT |
| MEDIUM | README_fr.md | 141 | ### 🛀 **Flux de travail RAG automatisé et sans effort** | COMMENT |
| MEDIUM | cmd/ragflow_server.go | 1136 | // target of the agentic-RAG bridge wired below. The bridge must hold it | COMMENT |
| MEDIUM | cmd/ragflow_server.go | 1178 | // Wire the agentic-RAG runtime as the Go chat pipeline's evidence engine | COMMENT |
| MEDIUM | cmd/ragflow_server.go | 1181 | // above. Activating the agentic loop here enables the full planner/SCA path for | COMMENT |
| MEDIUM | cmd/ragflow_server.go | 1277 | // so agentic-search runtime LLM calls work in production. Without this, | COMMENT |
| MEDIUM⚡ | tools/firecrawl/example_usage.py | 110 | # Example of chunking for RAG processing | COMMENT |
| MEDIUM | test/testcases/conftest.py | 331 | # set embedding model | COMMENT |
| MEDIUM | test/testcases/restful_api/conftest.py | 47 | # Chunk add requires an embedding model call; document update/delete | COMMENT |
| MEDIUM | web/src/components/message-input/next.tsx | 163 | // the agentic RAG agent, which runs its own retrieval instead of the | COMMENT |
| MEDIUM | internal/handler/streaming_test.go | 84 | // exact failure mode of long agentic chat runs ("write tcp ... i/o timeout"). | COMMENT |
| MEDIUM | internal/handler/openai_chat.go | 136 | // Long agentic runs stream for minutes or compute before their single | COMMENT |
| MEDIUM | internal/handler/streaming.go | 28 | // write (SSE, agentic chats) are not cut off mid-response by the connection | COMMENT |
| MEDIUM | internal/ingestion/component/extractor.go | 1749 | // ingestion extractor and the agentic metadata catalog share one field contract. | COMMENT |
| MEDIUM | internal/ingestion/task/pipeline_executor.go | 450 | // ExtractorMetadataConfig / MetadataRawFieldList) so the ingestion pipeline and the agentic | COMMENT |
| MEDIUM | internal/agentic_rag/citations.go | 26 | // Citation support for agentic deliverables. | COMMENT |
| MEDIUM | internal/agentic_rag/citations.go | 31 | // agentic answer needs neither: EVERY factual line already cites | COMMENT |
| MEDIUM | internal/agentic_rag/run_session.go | 80 | // runSession owns the event log one agentic turn maintains, plus the | COMMENT |
| MEDIUM | internal/agentic_rag/tool_web_search.go | 66 | // agentic package never contacts a provider itself: the caller injects this, | COMMENT |
| MEDIUM | internal/entity/models/llm.go | 67 | // quota wall does not recover within one question, and an agentic turn | COMMENT |
| MEDIUM | internal/entity/models/llm.go | 86 | // Generate calls. Long enough to absorb an agentic turn (which would otherwise | COMMENT |
| MEDIUM | internal/entity/models/llm.go | 438 | // (errorAnswerText in agentic-rag/agentic_rag_graph.go, chat_pipeline.go), | COMMENT |
| MEDIUM | internal/agent/chat/message_fit.go | 32 | // internal/rag/agentic-rag/harness (which composes answers) can fit prompts | COMMENT |
| MEDIUM | internal/agent/chat/chat.go | 21 | // internal/rag/agentic-rag/harness (which need to call the LLM for | COMMENT |
| MEDIUM | internal/agent/chat/chat.go | 36 | // component and the agentic-search harness/tools. | COMMENT |
| MEDIUM | internal/agent/component/render.go | 22 | // message.go scaffold without dragging in new third-party deps. | COMMENT |
| MEDIUM | internal/agent/component/exesql_params_test.go | 47 | // Templates ship an ExeSQL scaffold with every connection field blank | COMMENT |
| MEDIUM | internal/agent/component/llm.go | 174 | // shared chat default. Called at server bootstrap so harness/agentic-search LLM | COMMENT |
| MEDIUM | internal/agent/component/llm.go | 600 | // answer (harness/action_session.go:1504). Without it every agentic answer fell | COMMENT |
| MEDIUM | internal/agent/component/exesql_params.go | 49 | // scaffold the user fills in on the canvas, not a broken configuration. | COMMENT |
| MEDIUM | internal/agent/component/llm_test.go | 662 | // silently downgraded every agentic answer to the one-shot call — the log line | COMMENT |
| MEDIUM | internal/agent/component/memory_save.go | 17 | // Memory persistence scaffold. The Python Message component, | COMMENT |
| MEDIUM | internal/agent/retrievalbridge/harness.go | 41 | // NewHarnessRetriever connects chat requests to the agentic runtime using the | COMMENT |
| MEDIUM | internal/agent/retrievalbridge/harness.go | 92 | // KnowledgebaseService.get_by_ids(kb_ids)) so the agentic tool can | COMMENT |
| MEDIUM | internal/agent/retrievalbridge/harness.go | 119 | // Retrieval tuning mirrors the dialog's own settings, so the agentic | COMMENT |
| MEDIUM | internal/agent/retrievalbridge/harness.go | 146 | // (chat-level doc_ids + meta_data_filter) restrict every agentic | COMMENT |
| 169 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/firecrawl/firecrawl_connector.py | 187 | async def wait_for_crawl_completion(self, job_id: str, poll_interval: int = 30) -> CrawlJob: | CODE |
| LOW | tools/firecrawl/firecrawl_ui.py | 22 | def create_data_source_config() -> Dict[str, Any]: | CODE |
| LOW | tools/firecrawl/firecrawl_ui.py | 112 | def create_progress_component() -> Dict[str, Any]: | CODE |
| LOW | tools/firecrawl/example_usage.py | 12 | async def example_single_url_scraping(): | CODE |
| LOW⚡ | tools/firecrawl/example_usage.py | 116 | async def example_content_processing(): | CODE |
| LOW⚡ | tools/firecrawl/example_usage.py | 176 | async def example_configuration_validation(): | CODE |
| LOW | tools/firecrawl/ragflow_integration.py | 135 | def get_supported_scrape_types(self) -> List[str]: | CODE |
| LOW | tools/firecrawl/ragflow_integration.py | 149 | def create_firecrawl_integration(config_dict: Dict[str, Any]) -> RAGFlowFirecrawlIntegration: | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 27 | def test_result_default_values(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 97 | def test_verify_counts_mismatch(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 111 | def test_verify_samples_all_match(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 132 | def test_verify_samples_some_missing(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 155 | def test_verify_samples_data_mismatch(self, mock_es_client, mock_ob_client): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 176 | def test_values_equal_none_values(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 182 | def test_values_equal_array_columns(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 190 | def test_values_equal_json_columns(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 194 | def test_values_equal_kb_id_list(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 199 | def test_values_equal_content_with_weight_dict(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_verify.py | 203 | def test_determine_result_passed(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 218 | def test_determine_result_failed_count(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 230 | def test_determine_result_failed_samples(self, mock_es_client, mock_ob_client): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 268 | def test_generate_report_with_missing(self, verifier): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 292 | def test_generate_report_with_mismatches(self, verifier): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 343 | def test_empty_array_comparison(self, verifier): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_verify.py | 347 | def test_nested_json_comparison(self, verifier): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_schema.py | 461 | def test_convert_empty_document(self): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_schema.py | 470 | def test_convert_document_without_source(self): | CODE |
| LOW⚡ | tools/es-to-oceanbase-migration/tests/test_schema.py | 480 | def test_convert_boolean_to_integer(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 27 | def test_analyze_ragflow_mapping(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 89 | def test_get_column_definitions(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 116 | def test_convert_basic_document(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 141 | def test_convert_document_defaults_missing_chunk_order(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 176 | def test_convert_array_fields(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 221 | def test_convert_unknown_fields_to_extra(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 259 | def test_convert_content_with_weight_dict(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 349 | def test_ragflow_columns_completeness(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 369 | def test_ragflow_columns_types(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 404 | def test_mapping_without_properties(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 412 | def test_multiple_vector_fields(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 429 | def test_get_column_definitions_without_analysis(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 497 | def test_convert_invalid_integer(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 533 | def test_convert_array_with_special_characters(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 553 | def test_convert_already_json_array(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 570 | def test_convert_single_value_to_array(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 588 | def test_detect_vector_fields_from_document(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 602 | def test_convert_with_default_values(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 620 | def test_convert_list_content(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 647 | def test_existing_extra_field_merged(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 17 | def test_create_basic_progress(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 32 | def test_create_progress_with_counts(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 44 | def test_progress_default_values(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 59 | def test_progress_status_values(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 84 | def test_create_progress_manager(self, temp_dir): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 89 | def test_create_progress_manager_creates_dir(self, temp_dir): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 108 | def test_save_and_load_progress(self, manager): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 129 | def test_load_nonexistent_progress(self, manager): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 172 | def test_update_progress_multiple_batches(self, manager): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 246 | def test_can_resume_completed(self, manager): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 259 | def test_can_resume_nonexistent(self, manager): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 286 | def test_get_resume_info_nonexistent(self, manager): | CODE |
| 529 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | test/playwright/conftest.py | 1279 | while (node && node !== document.body) { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1281 | if (style && style.backfaceVisibility === 'hidden') { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1290 | while (node && node !== document.body) { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1292 | if (style && style.transformStyle === 'preserve-3d') { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1297 | return null; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1305 | return rect.width > 0 && rect.height > 0; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1559 | : null, | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1644 | while (node && node !== document.body) { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1646 | if (style && style.backfaceVisibility === 'hidden') { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1655 | while (node && node !== document.body) { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1657 | if (style && style.transformStyle === 'preserve-3d') { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1662 | return null; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1665 | if (!transform || transform === 'none') return 1; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1708 | if (!rect.width || !rect.height) return null; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1713 | let pick = null; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1716 | } else if (candidates.length > 1 && candidates[0].facing !== candidates[1].facing) { | CODE |
| HIGH⚡ | test/playwright/conftest.py | 1726 | return top && el.contains(top); | CODE |
| HIGH | test/playwright/conftest.py | 971 | return Boolean((token && token.length) || (auth && auth.length)); | CODE |
| HIGH | test/playwright/conftest.py | 1327 | flipTransform: flip ? window.getComputedStyle(flip).transform : null, | CODE |
| HIGH | test/playwright/conftest.py | 1328 | flipTransformStyle: flip ? window.getComputedStyle(flip).transformStyle : null, | CODE |
| HIGH | test/playwright/conftest.py | 1354 | if (!el) return null; | CODE |
| HIGH | test/playwright/conftest.py | 1438 | return rect.width > 0 && rect.height > 0; | CODE |
| HIGH | test/playwright/conftest.py | 1545 | return rect.width > 0 && rect.height > 0; | CODE |
| HIGH | test/playwright/conftest.py | 1588 | return top && (top === el || el.contains(top)); | CODE |
| HIGH | test/playwright/conftest.py | 1695 | const state = window.__qa_flip_state || { transform: null, time: 0 }; | CODE |
| HIGH⚡ | test/playwright/conftest.py | 387 | if (auth && auth.length) return auth; | STRING |
| HIGH⚡ | test/playwright/conftest.py | 389 | if (token && token.length) return token; | STRING |
| HIGH | test/playwright/auth/test_register_then_login_flow.py | 54 | return rect.width > 0 && rect.height > 0; | STRING |
| HIGH | test/playwright/auth/test_register_then_login_flow.py | 68 | if (successByUrl || successMarker) return { state: 'success' }; | STRING |
| HIGH | test/playwright/auth/test_login_success_optional.py | 145 | return rect.width > 0 && rect.height > 0; | CODE |
| HIGH | test/playwright/auth/test_login_success_optional.py | 158 | if (successByUrl || successMarker) return {{ state: 'success' }}; | CODE |
| HIGH | test/playwright/e2e/test_next_apps_agent.py | 32 | return rect.width > 0 && rect.height > 0; | STRING |
| HIGH | test/playwright/e2e/test_next_apps_agent.py | 131 | return rect.width > 0 && rect.height > 0; | STRING |
| HIGH | test/playwright/e2e/test_dataset_upload_parse.py | 486 | return !!node && String(node.value) !== String(previous); | STRING |
| HIGH | test/playwright/e2e/test_next_apps_search.py | 25 | const body = (document.body && document.body.innerText || '').toLowerCase(); | CODE |
| HIGH | test/playwright/helpers/_auth_helpers.py | 16 | return Boolean((token && token.length) || (auth && auth.length)); | CODE |
| HIGH | test/playwright/helpers/_auth_helpers.py | 42 | return Boolean((token && token.length) || (auth && auth.length)); | CODE |
| HIGH | test/playwright/helpers/auth_waits.py | 20 | return Boolean((token && token.length) || (auth && auth.length)); | CODE |
| HIGH | test/playwright/helpers/datasets.py | 50 | body_text = page.evaluate("(() => (document.body && document.body.innerText) || '')()") | CODE |
| HIGH | test/playwright/helpers/datasets.py | 332 | const txt = (document.body && document.body.innerText || '').toLowerCase(); | CODE |
| HIGH⚡ | test/playwright/helpers/datasets.py | 244 | return rect.width > 0 && rect.height > 0; | STRING |
| HIGH⚡ | test/playwright/helpers/datasets.py | 344 | body_text = page.evaluate("(() => (document.body && document.body.innerText) || '')()") | STRING |
| HIGH⚡ | test/playwright/helpers/datasets.py | 369 | body_text = page.evaluate("(() => (document.body && document.body.innerText) || '')()") | STRING |
| HIGH | test/playwright/helpers/datasets.py | 381 | body_text = page.evaluate("(() => (document.body && document.body.innerText) || '')()") | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_tests.py | 295 | except Exception as e: | CODE |
| LOW | run_tests.py | 352 | except Exception as e: | STRING |
| LOW | tools/firecrawl/firecrawl_connector.py | 129 | except Exception as e: | CODE |
| LOW | tools/firecrawl/firecrawl_connector.py | 149 | except Exception as e: | CODE |
| LOW | tools/firecrawl/firecrawl_connector.py | 183 | except Exception as e: | CODE |
| LOW | tools/firecrawl/firecrawl_connector.py | 221 | except Exception: | CODE |
| LOW | tools/firecrawl/firecrawl_connector.py | 228 | except Exception: | CODE |
| LOW⚡ | tools/firecrawl/example_usage.py | 172 | except Exception as e: | CODE |
| MEDIUM⚡ | tools/firecrawl/example_usage.py | 173 | print(f"Error occurred: {e}") | CODE |
| LOW | tools/firecrawl/integration.py | 63 | except Exception as e: | CODE |
| LOW | tools/firecrawl/integration.py | 75 | except Exception as e: | CODE |
| LOW⚡ | tools/firecrawl/integration.py | 118 | except Exception as e: | CODE |
| LOW⚡ | tools/firecrawl/integration.py | 127 | except Exception as e: | CODE |
| LOW | tools/firecrawl/firecrawl_processor.py | 152 | except Exception: | CODE |
| LOW | tools/firecrawl/firecrawl_processor.py | 199 | except Exception as e: | CODE |
| LOW | tools/firecrawl/ragflow_integration.py | 128 | except Exception as e: | CODE |
| LOW⚡ | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 83 | except Exception as e: | CODE |
| LOW⚡ | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 93 | except Exception as e: | CODE |
| LOW⚡ | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 101 | except Exception: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 241 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 262 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 280 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 304 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 316 | except Exception: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 327 | except Exception: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 351 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 369 | except Exception: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 391 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 404 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 413 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 183 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 289 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 346 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 407 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 462 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 499 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 520 | except Exception as e: | CODE |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 567 | except Exception as e: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/es_client.py | 87 | except Exception: | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/es_client.py | 235 | except Exception: | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/progress.py | 89 | except Exception as e: | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/progress.py | 107 | except Exception as e: | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 208 | except Exception as e: | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 295 | except Exception as e: | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 357 | except Exception as e: | CODE |
| LOW⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 89 | except Exception as e: | CODE |
| LOW | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 111 | except Exception as e: | CODE |
| LOW | test/benchmark/auth.py | 13 | except Exception as exc: | CODE |
| LOW | test/benchmark/auth.py | 34 | except Exception as exc: | CODE |
| LOW | test/benchmark/http_client.py | 104 | except Exception as exc: | CODE |
| LOW | test/benchmark/http_client.py | 111 | except Exception as exc: | CODE |
| LOW | test/benchmark/run_retrieval_chat.sh | 52 | except Exception as exc: | CODE |
| LOW | test/benchmark/dataset.py | 8 | except Exception: # pragma: no cover - fallback without toolbelt | CODE |
| LOW | test/benchmark/cli.py | 351 | except Exception as exc: | CODE |
| LOW | test/benchmark/cli.py | 357 | except Exception as exc: | CODE |
| MEDIUM | test/benchmark/cli.py | 606 | eprint(f"Error: {exc}") | CODE |
| LOW | test/benchmark/utils.py | 20 | except Exception as exc: | CODE |
| LOW | test/benchmark/utils.py | 24 | except Exception as exc: | CODE |
| LOW | test/integration/wiki/test_wiki_incremental.py | 178 | except Exception: | CODE |
| MEDIUM | test/playwright/conftest.py | 632 | def pytest_sessionfinish(session, exitstatus): | CODE |
| 158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 220 | except json.JSONDecodeError: | CODE |
| HIGH | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 230 | except json.JSONDecodeError: | CODE |
| HIGH | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 235 | except json.JSONDecodeError: | CODE |
| HIGH | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 244 | except json.JSONDecodeError: | CODE |
| HIGH | tools/chatgpt-on-wechat/plugins/__init__.py | 23 | except ImportError: | CODE |
| HIGH | tools/hooks/check_files.py | 215 | except (OSError, SyntaxError, UnicodeDecodeError, tokenize.TokenError): | CODE |
| HIGH | test/integration/wiki/test_wiki_incremental.py | 178 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 134 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 142 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 151 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 520 | except PlaywrightTimeoutError: | CODE |
| HIGH | test/playwright/conftest.py | 628 | except (AttributeError, ValueError): | CODE |
| HIGH | test/playwright/conftest.py | 635 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 978 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 512 | except AssertionError: | CODE |
| HIGH | test/playwright/conftest.py | 731 | except Exception: | CODE |
| HIGH | test/playwright/conftest.py | 1571 | except Exception: | CODE |
| HIGH | test/playwright/auth/test_validation_presence.py | 39 | except AssertionError: | CODE |
| HIGH | test/playwright/auth/test_validation_presence.py | 46 | except AssertionError: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_agent.py | 54 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_agent.py | 270 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_agent.py | 336 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_dataset_upload_parse.py | 64 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_dataset_upload_parse.py | 69 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_dataset_upload_parse.py | 495 | except AssertionError: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_chat.py | 143 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_chat.py | 220 | except AssertionError: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_chat.py | 660 | except AssertionError: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_chat.py | 229 | except Exception: | CODE |
| HIGH | test/playwright/e2e/test_next_apps_chat.py | 234 | except AssertionError: | CODE |
| HIGH | test/playwright/helpers/_auth_helpers.py | 50 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 188 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 196 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 340 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 367 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 504 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 509 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 286 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 473 | except Exception: | CODE |
| HIGH | test/playwright/helpers/_next_apps_helpers.py | 381 | except Exception: | CODE |
| HIGH | test/playwright/helpers/datasets.py | 260 | except Exception: | CODE |
| HIGH | test/playwright/helpers/datasets.py | 111 | except AssertionError: | CODE |
| HIGH | test/playwright/helpers/datasets.py | 29 | except Exception: | CODE |
| HIGH | test/playwright/helpers/datasets.py | 140 | except Exception: | CODE |
| HIGH | test/playwright/helpers/datasets.py | 450 | except AssertionError: | CODE |
| HIGH | sdk/python/ragflow_sdk/__init__.py | 23 | except ImportError: | CODE |
| HIGH | sdk/python/ragflow_sdk/modules/document.py | 78 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/playwright/conftest.py | 1428 | placeholder: input.getAttribute('placeholder') || '', | CODE |
| LOW⚡ | test/playwright/conftest.py | 1460 | for key in ("type", "name", "autocomplete", "placeholder"): | STRING |
| LOW | web/src/stories/ragflow-avatar.stories.ts | 47 | name="John Doe" | CODE |
| LOW | web/src/stories/ragflow-avatar.stories.ts | 94 | name: 'John Doe', | CODE |
| LOW | web/src/stories/ragflow-avatar.stories.ts | 105 | name: 'John Doe', | CODE |
| LOW | web/src/stories/ragflow-avatar.stories.ts | 118 | name="John Doe" | CODE |
| LOW | web/src/pages/agent/form/invoke-form/schema.ts | 32 | const testURL = val.replace(placeholderRegex, 'placeholder'); | CODE |
| LOW | …/src/pages/user-setting/data-source/constant/index.tsx | 1005 | placeholder: 'admin@example.com', | CODE |
| LOW | …/src/pages/user-setting/data-source/constant/index.tsx | 1099 | placeholder: 'admin@example.com', | CODE |
| LOW | internal/handler/document_test.go | 770 | if err := db.Create(&entity.User{ID: "user-1", Nickname: "test", Email: "test@test.com", Password: sptr("x")}).Error; e | CODE |
| LOW | internal/handler/document_test.go | 1317 | db.Create(&entity.User{ID: "user-1", Nickname: "test", Email: "test@test.com", Password: sptr("x")}) | CODE |
| LOW | internal/handler/bot_test.go | 785 | // fake-user middleware to assert GetUser() short-circuits with 401. | COMMENT |
| LOW | internal/handler/bot_test.go | 1045 | // fake-user middleware so the real auth flow is exercised. | COMMENT |
| LOW | …gestion/knowledge_compile/templates/session_graph.yaml | 23 | - Use the official name when possible (e.g., "Acme Corp"). | CODE |
| LOW | …stion/knowledge_compile/templates/session_essence.yaml | 23 | - Use the official name when possible (e.g., "Acme Corp"). | CODE |
| LOW | internal/ingestion/task/embedder_limit_test.go | 227 | long := strings.Repeat("lorem ipsum dolor sit amet ", 200) | CODE |
| LOW | internal/ingestion/task/embedder_limit_test.go | 227 | long := strings.Repeat("lorem ipsum dolor sit amet ", 200) | CODE |
| LOW | internal/tokenizer/bpe_loader_anchors_test.go | 55 | {"user@example.com", 3}, | CODE |
| LOW | internal/admin/user_detail_test.go | 56 | Email: "user@example.com", | CODE |
| LOW | internal/admin/user_detail_test.go | 115 | ctx.Params = gin.Params{{Key: "username", Value: "user@example.com"}} | CODE |
| LOW | internal/admin/user_detail_test.go | 146 | if details[0].Email != "user@example.com" || details[0].IsActive != "1" || details[0].CreateDate == "" || details[0].Is | CODE |
| LOW | internal/admin/user_delete_test.go | 148 | insert("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ?, ?, ?)", " | CODE |
| LOW | internal/admin/user_delete_test.go | 202 | result, err := service.DeleteUser(t.Context(), "user@example.com") | CODE |
| LOW | internal/admin/user_delete_test.go | 277 | if err := db.Exec("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ? | CODE |
| LOW | internal/admin/user_delete_test.go | 289 | if _, err := service.DeleteUser(t.Context(), "user@example.com"); err == nil || !strings.Contains(err.Error(), "storage | CODE |
| LOW | internal/admin/user_delete_test.go | 300 | if err := db.Exec("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ? | CODE |
| LOW | internal/admin/user_delete_test.go | 309 | if _, err := service.DeleteUser(t.Context(), "user@example.com"); err == nil || !strings.Contains(err.Error(), "remove | CODE |
| LOW | internal/admin/user_delete_test.go | 320 | if err := db.Exec("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ? | CODE |
| LOW | internal/admin/user_delete_test.go | 333 | if _, err := service.DeleteUser(t.Context(), "user@example.com"); err != nil { | CODE |
| LOW | internal/admin/user_delete_test.go | 343 | if err := db.Exec("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ? | CODE |
| LOW | internal/admin/user_delete_test.go | 355 | if _, err := service.DeleteUser(t.Context(), "user@example.com"); err == nil || !strings.Contains(err.Error(), "storage | CODE |
| LOW | internal/admin/user_delete_test.go | 366 | if err := db.Exec("INSERT INTO user (id, email, nickname, is_active, is_authenticated, is_anonymous) VALUES (?, ?, ?, ? | CODE |
| LOW | internal/admin/user_delete_test.go | 378 | if _, err := NewService().DeleteUser(t.Context(), "user@example.com"); err == nil { | CODE |
| LOW | internal/agent/component/io/pdf_writer_test.go | 338 | if err := os.WriteFile(fontPath, []byte("placeholder"), 0o600); err != nil { | CODE |
| LOW | internal/agent/sandbox/catalog.go | 292 | "endpoint": fieldWith("string", true, "Executor Manager Endpoint", "placeholder", "http://sandbox-e | CODE |
| LOW | internal/agent/sandbox/catalog.go | 293 | "api_token": fieldWith("string", false, "Executor Manager API Token", "secret", true, "placeholder", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 309 | "access_key_id": fieldWith("string", true, "Access Key ID", "placeholder", "LTAI5t...", "description", "Aliyun Ac | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 310 | "access_key_secret": fieldWith("string", true, "Access Key Secret", "placeholder", "••••••••••••••••", "description", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 311 | "account_id": fieldWith("string", true, "Account ID", "placeholder", "1234567890...", "description", "Aliyun p | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 313 | "template_name": fieldWith("string", false, "Template Name", "placeholder", "my-interpreter", "description", "Opt | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 317 | return map[string]any{"api_key": fieldWith("string", true, "API Key", "placeholder", "e2b_sk_...", "description", "E2B | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 348 | "host": fieldWith("string", true, "SSH Host", "placeholder", "192.168.1.10", "description", "Remote host | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 350 | "username": fieldWith("string", true, "SSH Username", "placeholder", "ragflow", "description", "Username use | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 351 | "password": fieldWith("string", false, "SSH Password", "secret", true, "placeholder", "Optional when using a | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 352 | "private_key": fieldWith("string", false, "SSH Private Key", "secret", true, "multiline", true, "placeholder", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 353 | "passphrase": fieldWith("string", false, "Private Key Passphrase", "secret", true, "placeholder", "Optional", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 354 | "known_hosts": fieldWith("string", false, "SSH known_hosts File", "placeholder", "/etc/ragflow/ssh_known_hosts" | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 357 | "work_dir": fieldWith("string", false, "Remote Workspace Root", "default", "/tmp", "placeholder", "/tmp", "d | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 367 | "api_key": fieldWith("string", true, "API Key", "secret", true, "placeholder", "tk_...", "description", "Te | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 368 | "base_url": fieldWith("string", false, "API Endpoint", "placeholder", "https://api.tenki.cloud", "descriptio | CODE |
| LOW | internal/agent/sandbox/ucloud_agent_sandbox_test.go | 159 | p := newUCloudAgentSandboxProviderFromConfig(map[string]any{"api_key": "fake-key"}) | CODE |
| LOW | internal/agent/sandbox/ucloud_agent_sandbox_test.go | 173 | "api_key": "fake-key", | CODE |
| LOW | internal/agent/sandbox/ucloud_agent_sandbox_test.go | 203 | p := newUCloudAgentSandboxProviderFromConfig(map[string]any{"api_key": "fake-key"}) | CODE |
| LOW | internal/agent/sandbox/ucloud_agent_sandbox_test.go | 239 | p := newUCloudAgentSandboxProviderFromConfig(map[string]any{"api_key": "fake-key"}) | CODE |
| LOW | internal/agent/sandbox/testdata/admin_contract.json | 151 | "placeholder": "http://sandbox-executor-manager:9385", | CODE |
| LOW | internal/agent/sandbox/testdata/admin_contract.json | 162 | "placeholder": "Optional; defaults to SANDBOX_EXECUTOR_MANAGER_API_TOKEN", | CODE |
| LOW | internal/agent/sandbox/testdata/admin_contract.json | 270 | "placeholder": "192.168.1.10", | CODE |
| LOW⚡ | internal/agent/sandbox/testdata/admin_contract.json | 286 | "placeholder": "ragflow", | CODE |
| LOW⚡ | internal/agent/sandbox/testdata/admin_contract.json | 294 | "placeholder": "Optional when using a private key", | CODE |
| LOW⚡ | internal/agent/sandbox/testdata/admin_contract.json | 303 | "placeholder": "Paste PEM content or enter a local file path", | CODE |
| 79 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/es-to-oceanbase-migration/README.md | 25 | ### Step 1: Start RAGFlow with Elasticsearch Backend | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 46 | ### Step 2: Create Test Data in RAGFlow | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 54 | ### Step 3: Verify ES Data (Optional) | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 82 | ### Step 4: Start OceanBase for Migration | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 97 | ### Step 5: Run Migration | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 161 | ### Step 6: Stop RAGFlow and Switch to OceanBase Backend | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 176 | ### Step 7: Start RAGFlow with OceanBase Backend | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 190 | ### Step 8: Data Integrity Verification (Optional) | COMMENT |
| LOW | tools/es-to-oceanbase-migration/README.md | 226 | ### Step 9: Verify RAGFlow Works with OceanBase | COMMENT |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 103 | # Step 1: Verify document counts | COMMENT |
| LOW⚡ | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 114 | # Step 2: Sample verification | COMMENT |
| LOW⚡ | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 121 | # Step 3: Determine overall result | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 95 | # Step 1: Check connections | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 99 | # Step 2: Analyze ES index | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 174 | # Step 7: Mark completed | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 177 | # Step 8: Verify (optional) | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 114 | # Step 3: Get total document count | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 125 | # Step 4: Handle resume or fresh start | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 137 | # Step 5: Create table if needed | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 158 | # Step 6: Migrate data | COMMENT |
| LOW⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 69 | # Step 1: Get or create conversation_id | COMMENT |
| LOW⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 93 | # Step 2: Send the message and get a reply | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 60 | // Step 1: Normalize line endings | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 65 | // Step 2: Replace ```mermaid ... ``` blocks with unique placeholders | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 80 | // Step 3: Standard Lexical import (placeholders are just text) | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 88 | // Step 4: Walk tree and replace placeholder TextNodes with MermaidNode | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 91 | // Step 5: Fallback — also handle CodeNode(language='mermaid') if any | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 94 | // Step 6: Collapse TabNodes | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 483 | // Step 1: extractTableAndReplace → HTML box with table text | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 494 | // Step 2: mergeCaptions injects caption as a <caption> element inside <table> | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 282 | // Step 1: Count non-empty cells in column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 289 | // Step 2: Check adjacent columns | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 296 | // Step 3: Calculate merge distance | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 310 | // Step 4: Merge the column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 317 | // Step 5: Remove the column | COMMENT |
| LOW⚡ | internal/tokenizer/message_fit.go | 59 | // Step 1: everything fits (an exact budget match counts as fitting). | COMMENT |
| LOW⚡ | internal/tokenizer/message_fit.go | 69 | // Step 2: keep all system + last non-system. | COMMENT |
| LOW | internal/tokenizer/message_fit.go | 92 | // Step 3: trim proportionally. | COMMENT |
| LOW | internal/dao/time_record.go | 80 | // Step 1: Get the maximum ID | COMMENT |
| LOW⚡ | internal/dao/time_record.go | 91 | // Step 2: Calculate the threshold ID | COMMENT |
| LOW⚡ | internal/dao/time_record.go | 99 | // Step 3: Delete records with ID <= threshold | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 138 | // Step 1: SSRF guard for the target URL. The validated | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 145 | // Step 2: SSRF guard for the proxy URL (if configured). | COMMENT |
| LOW | internal/agent/component/invoke.go | 221 | // Step 3: build the client. When a proxy is configured, the | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 60 | // Step 1: Base64 encode the password | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 63 | // Step 2: Encrypt using RSA PKCS1v15 | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 69 | // Step 3: Base64 encode the encrypted data | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 369 | // Step 4: Navigate to the file through the path | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 417 | // Step 5: Find the file in the current directory | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 458 | // Step 6: Download the file content | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 917 | // Step 4: If there are extra parts, navigate deeper | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 1004 | // Step 5: List the final folder contents | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 405 | // Step 1: locate matches (exact positions from the regex engine). | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 429 | // Step 2: merge overlapping/adjacent matches. | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 471 | // Step 3: dedupe, join, truncate. | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 104 | // Step 1: Extract input from graph state | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 110 | // Step 2: Run the agent | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 116 | // Step 3: Collect output back into graph state | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2802 | // Step 1: everything fits. | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2808 | // Step 2: keep all system messages + the last message. | COMMENT |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 103 | # Step 1: Verify document counts | COMMENT |
| LOW⚡ | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 114 | # Step 2: Sample verification | COMMENT |
| LOW⚡ | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 121 | # Step 3: Determine overall result | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 95 | # Step 1: Check connections | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 99 | # Step 2: Analyze ES index | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 174 | # Step 7: Mark completed | COMMENT |
| LOW⚡ | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 177 | # Step 8: Verify (optional) | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 114 | # Step 3: Get total document count | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 125 | # Step 4: Handle resume or fresh start | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 137 | # Step 5: Create table if needed | COMMENT |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 158 | # Step 6: Migrate data | COMMENT |
| LOW⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 69 | # Step 1: Get or create conversation_id | COMMENT |
| LOW⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 93 | # Step 2: Send the message and get a reply | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 60 | // Step 1: Normalize line endings | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 65 | // Step 2: Replace ```mermaid ... ``` blocks with unique placeholders | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 80 | // Step 3: Standard Lexical import (placeholders are just text) | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 88 | // Step 4: Walk tree and replace placeholder TextNodes with MermaidNode | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 91 | // Step 5: Fallback — also handle CodeNode(language='mermaid') if any | COMMENT |
| LOW⚡ | web/src/lib/editor/markdown/enhanced-markdown-import.ts | 94 | // Step 6: Collapse TabNodes | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 483 | // Step 1: extractTableAndReplace → HTML box with table text | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 494 | // Step 2: mergeCaptions injects caption as a <caption> element inside <table> | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 282 | // Step 1: Count non-empty cells in column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 289 | // Step 2: Check adjacent columns | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 296 | // Step 3: Calculate merge distance | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 310 | // Step 4: Merge the column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 317 | // Step 5: Remove the column | COMMENT |
| LOW⚡ | internal/tokenizer/message_fit.go | 59 | // Step 1: everything fits (an exact budget match counts as fitting). | COMMENT |
| LOW⚡ | internal/tokenizer/message_fit.go | 69 | // Step 2: keep all system + last non-system. | COMMENT |
| LOW | internal/tokenizer/message_fit.go | 92 | // Step 3: trim proportionally. | COMMENT |
| LOW | internal/dao/time_record.go | 80 | // Step 1: Get the maximum ID | COMMENT |
| LOW⚡ | internal/dao/time_record.go | 91 | // Step 2: Calculate the threshold ID | COMMENT |
| LOW⚡ | internal/dao/time_record.go | 99 | // Step 3: Delete records with ID <= threshold | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 138 | // Step 1: SSRF guard for the target URL. The validated | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 145 | // Step 2: SSRF guard for the proxy URL (if configured). | COMMENT |
| LOW | internal/agent/component/invoke.go | 221 | // Step 3: build the client. When a proxy is configured, the | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 60 | // Step 1: Base64 encode the password | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 63 | // Step 2: Encrypt using RSA PKCS1v15 | COMMENT |
| LOW⚡ | internal/cli/crypt.go | 69 | // Step 3: Base64 encode the encrypted data | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 369 | // Step 4: Navigate to the file through the path | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 417 | // Step 5: Find the file in the current directory | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 458 | // Step 6: Download the file content | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 917 | // Step 4: If there are extra parts, navigate deeper | COMMENT |
| LOW | internal/cli/filesystem/skill.go | 1004 | // Step 5: List the final folder contents | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 405 | // Step 1: locate matches (exact positions from the regex engine). | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 429 | // Step 2: merge overlapping/adjacent matches. | COMMENT |
| LOW | internal/rag/agentic-rag/runtime/grep_sed_narrow.go | 471 | // Step 3: dedupe, join, truncate. | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 104 | // Step 1: Extract input from graph state | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 110 | // Step 2: Run the agent | COMMENT |
| LOW⚡ | internal/harness/core/subagent_node.go | 116 | // Step 3: Collect output back into graph state | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2802 | // Step 1: everything fits. | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2808 | // Step 2: keep all system messages + the last message. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 2824 | // Step 3: trim content to fit. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3885 | // Step 1: generate SQL. If the question is a "how many rows in the | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3913 | // Step 2: try to execute. On failure, repair once with the | COMMENT |
| LOW | internal/service/skill_space.go | 461 | // Step 1: Delete the search index | COMMENT |
| LOW | internal/service/skill_space.go | 475 | // Step 2: Delete folder and storage via Go FileService | COMMENT |
| LOW | internal/service/skill_space.go | 497 | // Step 3: Soft delete the space record (status "2" → "0") | COMMENT |
| LOW⚡ | internal/service/search.go | 249 | // Step 1: Get user tenants (same as Python UserTenantService.query(user_id=current_user.id)) | COMMENT |
| LOW⚡ | internal/service/search.go | 255 | // Step 2: Check if user has permission to access this search | COMMENT |
| LOW⚡ | internal/service/search.go | 610 | // Step 2: Get existing search | COMMENT |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/firecrawl/firecrawl_processor.py | 116 | """Create comprehensive metadata for RAGFlow document.""" | STRING |
| MEDIUM | internal/deepdoc/parser/pdf/production_smoke_test.go | 18 | // stays robust: parse does not crash, detected tables are not fully empty, and | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/layout.go | 147 | // robust to the char-vs-OCR space divergence. | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/combined_column.go | 322 | // A2: robust page extent discards malformed/outlier lines so a single bad | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/combined_column.go | 428 | // projection, hiding a real column boundary). A2: robust extent so a | COMMENT |
| MEDIUM | internal/agent/component/llm_test.go | 586 | // content_length well above 8000). The >=8000 threshold is robust to catalog | COMMENT |
| MEDIUM | internal/agent/canvas/interrupt_resume_test.go | 290 | // in Error(). The robust check is IsInterruptError. | COMMENT |
| MEDIUM | internal/agent/sandbox/ssh.go | 651 | // filled in below. -print0 + IFS split is more robust | COMMENT |
| MEDIUM | internal/agent/templates/market_seo_article_writer.json | 138 | "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreting a | CODE |
| MEDIUM | internal/agent/templates/market_seo_article_writer.json | 449 | "sys_prompt": "# Role\n\nYou are the **Parse_And_Keyword_Agent**, responsible for interpreti | CODE |
| MEDIUM | internal/binding/cpp/re2/prefilter_tree.h | 112 | // These are all the nodes formed by Compile. Essentially, there is | COMMENT |
| MEDIUM | internal/service/chat_pipeline_test.go | 1812 | t.Errorf("events = %#v, want only what the harness reported", events) | CODE |
| MEDIUM | internal/service/chat_pipeline_test.go | 2060 | t.Fatalf("reference chunks = %#v, want the harness evidence", final.Reference["chunks"]) | CODE |
| MEDIUM | internal/service/nlp/datasetnav.go | 1026 | // Delete this cluster by the row id returned by the search (robust whether | COMMENT |
| MEDIUM | internal/utility/markdown_to_json.go | 60 | // robust. | COMMENT |
| MEDIUM | internal/utility/embedding_lru.go | 51 | // If needed, a more robust key generation can be implemented. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_tests.py | 242 | CODE | |
| LOW | tools/firecrawl/firecrawl_processor.py | 96 | CODE | |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 364 | CODE | |
| LOW | …s/es-to-oceanbase-migration/src/es_ob_migration/cli.py | 531 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 237 | CODE | |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/schema.py | 102 | CODE | |
| LOW | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 57 | CODE | |
| LOW | tools/hooks/check_files.py | 80 | CODE | |
| LOW | tools/hooks/check_files.py | 101 | CODE | |
| LOW | tools/hooks/check_files.py | 198 | CODE | |
| LOW | test/benchmark/cli.py | 285 | CODE | |
| LOW | test/playwright/conftest.py | 119 | CODE | |
| LOW | test/playwright/conftest.py | 247 | CODE | |
| LOW | test/playwright/conftest.py | 277 | CODE | |
| LOW | test/playwright/conftest.py | 473 | CODE | |
| LOW | test/playwright/conftest.py | 873 | CODE | |
| LOW | test/playwright/conftest.py | 1450 | CODE | |
| LOW | test/playwright/conftest.py | 1515 | CODE | |
| LOW | test/playwright/conftest.py | 1598 | CODE | |
| LOW | test/playwright/conftest.py | 1599 | CODE | |
| LOW | test/playwright/e2e/test_next_apps_agent.py | 305 | CODE | |
| LOW | test/playwright/e2e/test_next_apps_chat.py | 212 | CODE | |
| LOW | test/playwright/e2e/test_next_apps_chat.py | 549 | CODE | |
| LOW | test/playwright/e2e/test_next_apps_chat.py | 602 | CODE | |
| LOW | test/playwright/helpers/_next_apps_helpers.py | 82 | CODE | |
| LOW | test/playwright/helpers/_next_apps_helpers.py | 172 | CODE | |
| LOW | test/playwright/helpers/_next_apps_helpers.py | 280 | CODE | |
| LOW | test/playwright/helpers/datasets.py | 127 | CODE | |
| LOW | test/playwright/helpers/datasets.py | 215 | CODE | |
| LOW | test/testcases/conftest.py | 219 | CODE | |
| LOW | …tcases/restful_api/test_search_datasets_consistency.py | 150 | CODE | |
| LOW | test/testcases/restful_api/test_chats.py | 914 | CODE | |
| LOW | test/testcases/restful_api/test_chats.py | 1189 | CODE | |
| LOW | test/testcases/restful_api/test_chunks.py | 196 | CODE | |
| LOW | test/testcases/restful_api/test_memories_messages.py | 80 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 39 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/dataset.py | 113 | CODE | |
| LOW | ragflow_deps/download_deps.py | 267 | CODE | |
| LOW | ragflow_deps/download_deps.py | 293 | CODE | |
| LOW | ragflow_deps/download_deps.py | 345 | CODE | |
| LOW | ragflow_deps/download_deps.py | 294 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/firecrawl/__init__.py | 12 | CODE | |
| LOW | tools/firecrawl/__init__.py | 13 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 12 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 13 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 14 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 15 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 16 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 16 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 17 | CODE | |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 17 | CODE | |
| LOW | tools/chatgpt-on-wechat/plugins/__init__.py | 26 | CODE | |
| LOW | tools/hooks/check_files.py | 2 | CODE | |
| LOW | test/playwright/helpers/flow_steps.py | 1 | CODE | |
| LOW | …n/component/chunker/tool-py/capture_textcode_golden.py | 14 | CODE | |
| LOW | …/ingestion/component/chunker/tool-py/capture_golden.py | 48 | CODE | |
| LOW | …rnal/ingestion/component/chunker/tool-py/live_chunk.py | 38 | CODE | |
| LOW | sdk/python/test.py | 30 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 28 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 29 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 30 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 31 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 32 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 33 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 34 | CODE | |
| LOW | sdk/python/ragflow_sdk/__init__.py | 35 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.sh | 611 | # Check if C++ library exists | COMMENT |
| LOW | tools/es-to-oceanbase-migration/tests/test_progress.py | 312 | # Read file directly | COMMENT |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 290 | # Check if column exists | COMMENT |
| LOW | …o-oceanbase-migration/src/es_ob_migration/es_client.py | 217 | # Check if there are more results | COMMENT |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/schema.py | 121 | # Check if it's a known RAGFlow field | COMMENT |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/schema.py | 124 | # Check if it's a vector field | COMMENT |
| LOW | docker/migration.sh | 106 | # Check if any of our target volumes are used by this container | COMMENT |
| LOW | docker/migration.sh | 166 | # Check if any containers are using the volumes | COMMENT |
| LOW⚡ | docker/migration.sh | 217 | # Check if any containers are using the volumes | COMMENT |
| LOW⚡ | docker/migration.sh | 220 | # Check if backup folder exists | COMMENT |
| LOW⚡ | docker/migration.sh | 226 | # Check if all backup files exist | COMMENT |
| LOW | docker/migration.sh | 303 | # Check if Docker is available | COMMENT |
| LOW | docker/launch_backend_service.sh | 36 | # Check if .env file exists | COMMENT |
| LOW | example/http/list_datasets.sh | 107 | # Output result | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/firecrawl/__init__.py | 15 | __all__ = ["FirecrawlConnector", "FirecrawlConfig"] | CODE |
| LOW | tools/firecrawl/integration.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tools/firecrawl/integration.py | 132 | __all__ = [ | CODE |
| LOW | tools/firecrawl/ragflow_integration.py | 156 | __all__ = ["RAGFlowFirecrawlIntegration", "create_firecrawl_integration", "FirecrawlConfig", "FirecrawlConnector", "Fire | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/ob_client.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/__init__.py | 23 | __all__ = [ | CODE |
| LOW | …o-oceanbase-migration/src/es_ob_migration/es_client.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/progress.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/verify.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …to-oceanbase-migration/src/es_ob_migration/migrator.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s-to-oceanbase-migration/src/es_ob_migration/schema.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/chatgpt-on-wechat/plugins/__init__.py | 28 | __all__ = ["RAGFlowChat"] | CODE |
| LOW | test/benchmark/cli.py | 229 | def _set_default_models_from_args(client: HttpClient, args: argparse.Namespace) -> None: | CODE |
| LOW⚡ | test/playwright/e2e/test_next_apps_agent.py | 61 | def _set_import_file(modal, file_path: str) -> None: | CODE |
| LOW⚡ | test/playwright/e2e/test_dataset_upload_parse.py | 57 | def set_number_input(page, test_id: str, value: str | int | float) -> None: | CODE |
| LOW | test/playwright/e2e/test_dataset_upload_parse.py | 42 | def set_switch_state(page, test_id: str, desired_checked: bool) -> None: | CODE |
| LOW | sdk/python/ragflow_sdk/__init__.py | 39 | __all__ = ["RAGFlow", "DataSet", "Chat", "Session", "Document", "Chunk", "Agent", "Memory"] | CODE |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | sdk/python/ragflow_sdk/modules/document.py | 22 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.sh | 699 | # Create a version-stamped symlink directory so the flag string | COMMENT |
| MEDIUM | tools/firecrawl/firecrawl_processor.py | 41 | # Create a hash based on URL and content | COMMENT |
| MEDIUM⚡ | tools/chatgpt-on-wechat/plugins/ragflow_chat.py | 72 | # Create a new conversation | COMMENT |
| MEDIUM⚡ | …tcases/restful_api/test_search_datasets_consistency.py | 525 | # Create a search config first | COMMENT |
| MEDIUM | example/http/dataset_example.sh | 17 | # Create a dataset | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/benchmark/http_client.py | 46 | CODE | |
| LOW | test/benchmark/http_client.py | 76 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 38 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 42 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 46 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 50 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 54 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 161 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 193 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 178 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 190 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/dataset.py | 67 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/base.py | 43 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/base.py | 47 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/base.py | 51 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/base.py | 55 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/base.py | 59 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | run_tests.py | 92 | Wrap input string with specified ANSI terminal color escape sequence. Color name argument is case-insensitive. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/binding/cpp/opencc/opencc.h | 70 | * Note: Don't forget to assign **outbuf to L'\0' after called. | COMMENT |
| LOW | internal/binding/cpp/opencc/opencc.h | 85 | * DON'T FORGET TO CALL free() to recycle memory. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/restart_ingestor.sh | 11 | # Usage: | COMMENT |