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 93,233 GitHub stars. SynthScan examined 1,470,678 lines of code across 5358 source files, recording 5539 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 5.4 (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.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 4369 finding(s).
Are imports declared and package/API names verified? 685 finding(s).
Are wrappers, guards, and repeated structures necessary? 1171 finding(s).
Which changes need focused human review? 5539 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 5539 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 | 61 | COMMENT | |
| LOW | build.sh | 181 | # ── cl100k_base BPE table ───────────────────────────────────────────── | COMMENT |
| LOW | build.sh | 361 | # (SessionGetInitializer*, added by infiniflow/ragflow-build) runs. | COMMENT |
| LOW | build.sh | 441 | # operator set — see tools/scripts/download_dev_deps.py ORT_RELEASE_TAG). | COMMENT |
| LOW | build.sh | 561 | return 1 | COMMENT |
| LOW | build.sh | 621 | # accepts an existing user-cache directory without inspecting it, so a | COMMENT |
| LOW | build.sh | 681 | COMMENT | |
| LOW | build.sh | 881 | # the tokenizer's bundled re2 symbols are renamed into a private | COMMENT |
| LOW | build.sh | 901 | local pdf_oxide_lib_dir="${PDF_OXIDE_PREFIX}/lib/${pdf_oxide_subdir}" | COMMENT |
| LOW | build.sh | 921 | # every ORT size-trimming build flag had near-zero effect before). The | COMMENT |
| LOW | build.sh | 961 | # ld64 has no --undefined / --dynamic-list spelled the GNU way. | COMMENT |
| LOW | build.sh | 981 | # | COMMENT |
| LOW | build.sh | 1061 | CGO_ENABLED=1 \ | COMMENT |
| LOW | lefthook.yml | 1 | # There are 6 fix-capable jobs and 5 pure-check jobs in pre-commit, plus a | COMMENT |
| LOW | build_ee.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | cmd/args_flag_test.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_pprof_integration_test.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server_pprof_integration_test.go | 21 | import ( | COMMENT |
| LOW | cmd/ragflow_server_pprof_integration_test.go | 41 | // When the DeepDoc server cannot actually boot in the test environment (e.g. | COMMENT |
| LOW | cmd/ragflow_server_pprof_test.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server.go | 1 | // | COMMENT |
| LOW | cmd/stub.go | 1 | // | COMMENT |
| LOW | cmd/ragflow_server_earlyboot_test.go | 1 | // Copyright 2026 The InfiniFlow Authors. All Rights Reserved. | COMMENT |
| LOW | cmd/ragflow_server_earlyboot_test.go | 21 | ) | 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/test_download_dev_deps.py | 1 | # Tests for the local-dev dependency downloader (tools/scripts/download_dev_deps.py): | COMMENT |
| LOW | tools/scripts/install.sh | 1 | #!/bin/sh | COMMENT |
| LOW | tools/scripts/fetch_deepdoc_testdata.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/scripts/fetch_deepdoc_testdata.sh | 21 | # used as-is: no ref pinning, no network fetch. This is | COMMENT |
| LOW | tools/scripts/download_dev_deps.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | tools/scripts/download_dev_deps.py | 21 | # | COMMENT |
| LOW | tools/scripts/download_dev_deps.py | 41 | # default. The target GOOS/GOARCH is detected from the host `uname`; override it | COMMENT |
| LOW | tools/scripts/download_dev_deps.py | 61 | import sys | COMMENT |
| LOW | tools/scripts/download_dev_deps.py | 81 | # `onnxruntime-v{ORT_VERSION}-<target>.zip` (see ort_target). The archive is | 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 | - metadata-MYSQL | COMMENT |
| LOW | docker/docker-compose-base.yml | 341 | 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 |
| 3281 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 | 1386 | 'YOUR_API_KEY (تم الحصول عليه من https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/it.ts | 1899 | 'YOUR_API_KEY (ottenuta da https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/en.ts | 2756 | 'YOUR_API_KEY (obtained from https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/fr.ts | 2525 | 'YOUR_API_KEY (obtenu depuis https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/ru.ts | 1574 | 'YOUR_API_KEY (полученный с https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/locales/ko.ts | 1901 | 'YOUR_API_KEY (https://serpapi.com/manage-api-key 에서 발급)', | CODE |
| HIGH | web/src/locales/az.ts | 2727 | 'YOUR_API_KEY (https://serpapi.com/manage-api-key ünvanından əldə edilir)', | CODE |
| HIGH | web/src/locales/ja.ts | 2456 | 'YOUR_API_KEY(https://serpapi.com/manage-api-key から取得)', | CODE |
| HIGH | web/src/locales/bg.ts | 1447 | 'YOUR_API_KEY (получен от https://serpapi.com/manage-api-key)', | CODE |
| HIGH | web/src/pages/agent/constant/index.tsx | 405 | '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 | 832 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH⚡ | docs/references/python_api_reference.md | 832 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 225 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 225 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 411 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 411 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 527 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 527 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 561 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 561 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 694 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 694 | api_key="<YOUR_API_KEY>", | CODE |
| HIGH | docs/references/python_api_reference.md | 748 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 748 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 779 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 779 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 869 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 869 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 950 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 950 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1006 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1006 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1047 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1047 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1093 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1093 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1187 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1187 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1270 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1270 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1328 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1328 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1368 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1368 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1439 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1439 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1478 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1478 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1512 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1512 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1580 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| HIGH | docs/references/python_api_reference.md | 1580 | rag_object = RAGFlow(api_key="<YOUR_API_KEY>", base_url="http://<YOUR_BASE_URL>:9380") | CODE |
| 424 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 | 552 | def test_convert_already_json_array(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 569 | def test_convert_single_value_to_array(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 587 | def test_detect_vector_fields_from_document(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 601 | def test_convert_with_default_values(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 619 | def test_convert_list_content(self): | CODE |
| LOW | tools/es-to-oceanbase-migration/tests/test_schema.py | 646 | 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 |
| 608 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.sh | 80 | # ── target platform detection ────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 181 | # ── cl100k_base BPE table ───────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 840 | # ── office_oxide ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 860 | # ── pdfium ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 886 | # ── pdf_oxide ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | build.sh | 908 | # ── onnxruntime (static, resolved via dlopen(NULL)) ──────────────── | COMMENT |
| MEDIUM | build.sh | 1009 | # ── platform-specific system libraries ──────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/scripts/test_download_dev_deps.py | 479 | # native script and never touches module import timing. ────────────────────── | COMMENT |
| MEDIUM | tools/scripts/test_download_dev_deps.py | 320 | # script ONCE and the Go server is ready to build, run, parse and count. ───── | COMMENT |
| MEDIUM | tools/scripts/test_download_dev_deps.py | 511 | # ── Documentation contract: ARM64 build-host minimums ───────────────────── | COMMENT |
| MEDIUM | tools/scripts/download_dev_deps.py | 39 | # ---------------- | COMMENT |
| MEDIUM | tools/scripts/download_dev_deps.py | 68 | # ── Dependency versions & URLs (edit here) ──────────────────────────────── | COMMENT |
| MEDIUM | tools/scripts/download_dev_deps.py | 188 | # ── URL builders ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/scripts/download_dev_deps.py | 213 | # ── ONNX Runtime release asset helpers ───────────────────────────────────── | COMMENT |
| MEDIUM | tools/scripts/download_dev_deps.py | 504 | # ── Runtime resources the local Go dev server also needs ─────────────────── | COMMENT |
| MEDIUM | docker/entrypoint.sh | 8 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 10 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 75 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 77 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 101 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 103 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 132 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/entrypoint.sh | 134 | # ----------------------------------------------------------------------------- | 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 | 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 | 130 | // ── Data fetching ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 143 | // ── Form initial values + fields ──────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 167 | // ── Action handlers ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …setting-model/instance-card/provider-instance-card.tsx | 183 | // ── Save state (payload builder + dirty tracking) ─────────────── | COMMENT |
| MEDIUM | …/setting-model/instance-card/bedrock-instance-card.tsx | 523 | // ── Dirty tracking (no auto-save) ──────────────────────────────── | COMMENT |
| MEDIUM | …/setting-model/instance-card/bedrock-instance-card.tsx | 667 | // ──────────────── Field group rendered in both modes ──────────────── | COMMENT |
| MEDIUM | internal/handler/file_commit_test.go | 229 | // ── Tests ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/handler/file_commit_test.go | 660 | // ── Tenant authorization tests ─────────────────────────────────────────── | 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 |
| MEDIUM | internal/ingestion/testutil/mocks.go | 161 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | internal/ingestion/testutil/helpers.go | 33 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | internal/ingestion/testutil/helpers.go | 35 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | internal/ingestion/testutil/helpers.go | 42 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | internal/ingestion/testutil/helpers.go | 44 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/helpers.go | 96 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/helpers.go | 98 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/helpers.go | 246 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/ingestion/testutil/helpers.go | 248 | // ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/office/types.go | 14 | // ── office_oxide IR JSON types ──────────────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/outline_extraction_test.go | 10 | // ── outline-tracking mock engines ────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/outline_extraction_test.go | 34 | // ── tests for outline extraction in Parse() ───────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/parser_test.go | 34 | // ── OCR fallback ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/parser_test.go | 83 | // ── OCR scan page ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/parser_test.go | 144 | // ── OCR fallback integration through Parse ────────────────────────────── | COMMENT |
| 130 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README_id.md | 80 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_id.md | 133 | ### 🛀 **Alur Kerja RAG yang Otomatis dan Mudah** | COMMENT |
| MEDIUM | README_pt_br.md | 80 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_pt_br.md | 133 | ### 🛀 **Fluxo de trabalho RAG automatizado e sem esforço** | COMMENT |
| MEDIUM | README_ja.md | 82 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ja.md | 136 | ### 🛀 **自動化された楽な RAG ワークフロー** | COMMENT |
| MEDIUM | README_ru.md | 82 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ru.md | 135 | ### 🛀 **Автоматизированный и простой RAG-пайплайн** | COMMENT |
| MEDIUM | README_ko.md | 83 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ko.md | 137 | ### 🛀 **자동화되고 손쉬운 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 | 128 | ### 🌱 **Grounded citations with reduced hallucinations** | COMMENT |
| MEDIUM | README.md | 137 | ### 🛀 **Automated and effortless RAG workflow** | COMMENT |
| MEDIUM | README_ar.md | 82 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_ar.md | 136 | ### 🛀 **سير عمل RAG آلي وسهل** | COMMENT |
| MEDIUM | README_tr.md | 82 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_tr.md | 135 | ### 🛀 **Otomatik ve zahmetsiz RAG iş akışı** | COMMENT |
| MEDIUM | README_tzh.md | 84 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_tzh.md | 129 | ### 🌱 **有理有據、最大程度降低幻覺(hallucination)** | COMMENT |
| MEDIUM | README_tzh.md | 138 | ### 🛀 **全程無憂、自動化的 RAG 工作流** | COMMENT |
| MEDIUM | README_zh.md | 84 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_zh.md | 129 | ### 🌱 **有理有据、最大程度降低幻觉(hallucination)** | COMMENT |
| MEDIUM | README_zh.md | 138 | ### 🛀 **全程无忧、自动化的 RAG 工作流** | COMMENT |
| MEDIUM | README_fr.md | 80 | <img alt="Agentic workflow demonstration" src="https://raw.githubusercontent.com/infiniflow/ragflow-docs/refs/heads/imag | CODE |
| MEDIUM | README_fr.md | 124 | ### 🌱 **Citations fondées avec réduction des hallucinations** | COMMENT |
| MEDIUM | README_fr.md | 133 | ### 🛀 **Flux de travail RAG automatisé et sans effort** | 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 | web/src/components/message-input/next.tsx | 158 | // the agentic RAG agent, which runs its own retrieval instead of the | COMMENT |
| MEDIUM | web/src/hooks/use-thinking-level.ts | 22 | // '5' agentic). | COMMENT |
| MEDIUM | …xt-chats/chat/app-settings/use-chat-setting-schema.tsx | 21 | // All settings remain in one schema because both naive and agentic fields are | COMMENT |
| MEDIUM | …xt-chats/chat/app-settings/use-chat-setting-schema.tsx | 69 | // The per-chat agentic template override lives here; without this | COMMENT |
| MEDIUM | web/src/interfaces/database/chat.ts | 25 | // Response of GET /api/v1/chats/:chat_id/agentic-rag | 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 | 1842 | // ingestion extractor and the agentic metadata catalog share one field contract. | COMMENT |
| MEDIUM | internal/ingestion/task/pipeline_executor.go | 497 | // ExtractorMetadataConfig / MetadataRawFieldList) so the ingestion pipeline and the agentic | COMMENT |
| MEDIUM | …ternal/agentic_rag/tool_search_semantic_chunks_test.go | 88 | // TestLocateSearchDisablesDenseFallback pins the agentic/human split on the | 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 | 67 | // agentic package never contacts a provider itself: the caller injects this, | COMMENT |
| MEDIUM | internal/agentic_rag/compiled_serve.go | 359 | // CompiledServeChunks applies compiled-serve to the standard (non-agentic) | COMMENT |
| MEDIUM | internal/entity/models/response_handler.go | 58 | // handler rather than in the agentic loop: the token count only exists | 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/server/api/server.go | 148 | // target of the agentic-RAG bridge wired below. The bridge must hold it | COMMENT |
| MEDIUM | internal/server/api/server.go | 292 | // so agentic-search runtime LLM calls work in production. Without this, | COMMENT |
| MEDIUM | internal/agent/chat/chat.go | 35 | // 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 | 185 | // shared chat default. Called at server bootstrap so harness/agentic-search LLM | COMMENT |
| MEDIUM | internal/agent/component/llm.go | 611 | // answer (harness/action_session.go:1504). Without it every agentic answer fell | 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/runtime_adapter.go | 38 | // until the stack overflowed on every agentic retrieval. | COMMENT |
| MEDIUM | internal/agent/audio/tts_design.md | 132 | ## What the existing scaffold needs to change | COMMENT |
| MEDIUM | internal/agent/templates/seo_article_writer.json | 53 | "sys_prompt": "# Role\n\nYou are the **Lead Agent**, responsible for initiating the multi-agent | CODE |
| 68 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 |
| HIGH | …le_management_within_dataset/test_download_document.py | 78 | b'{"code": 102, "message": "document not found", "data": null}', | CODE |
| 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 | test/testcases/test_sdk_api/conftest.py | 313 | except Exception: | CODE |
| HIGH | test/testcases/test_sdk_api/conftest.py | 332 | except Exception: | CODE |
| HIGH | test/testcases/test_sdk_api/conftest.py | 277 | except Exception: | CODE |
| HIGH | sdk/python/ragflow_sdk/__init__.py | 23 | except ImportError: | CODE |
| HIGH | sdk/python/ragflow_sdk/modules/document.py | 79 | except ValueError: | CODE |
| 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 | tools/scripts/download_dev_deps.py | 463 | except Exception as exc: # noqa: BLE001 - best-effort; fall back to legacy | CODE |
| LOW | tools/scripts/download_dev_deps.py | 603 | except Exception as e: # noqa: BLE001 - collected and surfaced below | CODE |
| LOW | tools/scripts/download_dev_deps.py | 640 | except Exception as e: # noqa: BLE001 - manifest missing/malformed is fatal | CODE |
| LOW | tools/scripts/download_dev_deps.py | 655 | except Exception as e: # noqa: BLE001 - collected and surfaced below | 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 |
| 166 more matches not shown… | ||||
| 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 | test/testcases/test_sdk_api/conftest.py | 90 | account = {"email": f"sdk-{uuid4().hex}@example.org", "nickname": "SDK CI", "password": password} | CODE |
| 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 | 745 | 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 | 1300 | db.Create(&entity.User{ID: "user-1", Nickname: "test", Email: "test@test.com", Password: sptr("x")}) | CODE |
| LOW | internal/handler/bot_test.go | 789 | // fake-user middleware to assert GetUser() short-circuits with 401. | COMMENT |
| LOW | internal/handler/bot_test.go | 1047 | // fake-user middleware so the real auth flow is exercised. | COMMENT |
| LOW | …al/ingestion/knowledge_compile/structure_merge_test.go | 421 | "content_with_weight": `{"from":"Acme Corp","to":"Beta Ltd","type":"supplies","description":"supply"}`, | CODE |
| LOW | …al/ingestion/knowledge_compile/structure_merge_test.go | 427 | "content_with_weight": `{"from":"Acme Corp","to":"Beta Ltd","type":"owns","description":"ownership"}`, | CODE |
| LOW | …al/ingestion/knowledge_compile/structure_merge_test.go | 454 | if bucket.FromEntity != "Acme Corp" || bucket.ToEntity != "Beta Ltd" { | CODE |
| LOW | …al/ingestion/knowledge_compile/structure_merge_test.go | 461 | if !entities["Acme Corp"] || !entities["Beta Ltd"] { | CODE |
| LOW | internal/ingestion/knowledge_compile/writer_test.go | 244 | Name: "Acme Corp", Type: "organization", Description: "company", CompileKwd: "knowledge_graph", TemplateKind: "knowled | CODE |
| LOW | internal/ingestion/knowledge_compile/writer_test.go | 256 | if !strings.Contains(payload, `"name":"Acme Corp"`) { | CODE |
| LOW | internal/ingestion/knowledge_compile/writer_test.go | 277 | {Name: "Acme Corp -> Beta Ltd", Type: "relation", FromEntity: "Acme Corp", ToEntity: "Beta Ltd", RelationType: "suppli | CODE |
| LOW | internal/ingestion/knowledge_compile/writer_test.go | 278 | {Name: "Acme Corp -> Beta Ltd", Type: "relation", FromEntity: "Acme Corp", ToEntity: "Beta Ltd", RelationType: "owns", | CODE |
| 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 | 234 | long := strings.Repeat("lorem ipsum dolor sit amet ", 200) | CODE |
| LOW | internal/ingestion/task/embedder_limit_test.go | 234 | 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 | 106 | Email: "user@example.com", | CODE |
| LOW | internal/admin/user_detail_test.go | 127 | ctx.Params = gin.Params{{Key: "username", Value: "user@example.com"}} | CODE |
| LOW | internal/admin/user_detail_test.go | 158 | 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 | 266 | "endpoint": fieldWith("string", true, "Executor Manager Endpoint", "placeholder", "http://sandbox-executor-m | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 267 | "api_token": fieldWith("string", false, "Executor Manager API Token", "secret", true, "placeholder", "Optiona | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 276 | "access_key_id": fieldWith("string", true, "Access Key ID", "placeholder", "LTAI5t...", "description", "Aliyun Ac | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 277 | "access_key_secret": fieldWith("string", true, "Access Key Secret", "placeholder", "••••••••••••••••", "description", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 278 | "account_id": fieldWith("string", true, "Account ID", "placeholder", "1234567890...", "description", "Aliyun p | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 280 | "template_name": fieldWith("string", false, "Template Name", "placeholder", "my-interpreter", "description", "Opt | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 284 | return map[string]any{"api_key": fieldWith("string", true, "API Key", "placeholder", "e2b_sk_...", "description", "E2B | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 315 | "host": fieldWith("string", true, "SSH Host", "placeholder", "192.168.1.10", "description", "Remote host | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 317 | "username": fieldWith("string", true, "SSH Username", "placeholder", "ragflow", "description", "Username use | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 318 | "password": fieldWith("string", false, "SSH Password", "secret", true, "placeholder", "Optional when using a | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 319 | "private_key": fieldWith("string", false, "SSH Private Key", "secret", true, "multiline", true, "placeholder", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 320 | "passphrase": fieldWith("string", false, "Private Key Passphrase", "secret", true, "placeholder", "Optional", | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 321 | "known_hosts": fieldWith("string", false, "SSH known_hosts File", "placeholder", "/etc/ragflow/ssh_known_hosts" | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 324 | "work_dir": fieldWith("string", false, "Remote Workspace Root", "default", "/tmp", "placeholder", "/tmp", "d | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 334 | "api_key": fieldWith("string", true, "API Key", "secret", true, "placeholder", "tk_...", "description", "Te | CODE |
| LOW⚡ | internal/agent/sandbox/catalog.go | 335 | "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 |
| 71 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 | 486 | // Step 1: extractTableAndReplace → HTML box with table text | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 497 | // Step 2: mergeCaptions injects caption as a <caption> element inside <table> | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 286 | // Step 1: Count non-empty cells in column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 293 | // Step 2: Check adjacent columns | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 300 | // Step 3: Calculate merge distance | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 314 | // Step 4: Merge the column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 321 | // 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 | 143 | // Step 1: SSRF guard for the target URL. The validated | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 150 | // Step 2: SSRF guard for the proxy URL (if configured). | COMMENT |
| LOW | internal/agent/component/invoke.go | 226 | // 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/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 | 2665 | // Step 1: everything fits. | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2671 | // Step 2: keep all system messages + the last message. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 2687 | // Step 3: trim content to fit. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3493 | // Step 1: generate SQL. If the question is a "how many rows in the | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3521 | // Step 2: try to execute. On failure, repair once with the | COMMENT |
| 8 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 | 486 | // Step 1: extractTableAndReplace → HTML box with table text | COMMENT |
| LOW | internal/deepdoc/parser/pdf/parser_test.go | 497 | // Step 2: mergeCaptions injects caption as a <caption> element inside <table> | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 286 | // Step 1: Count non-empty cells in column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 293 | // Step 2: Check adjacent columns | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 300 | // Step 3: Calculate merge distance | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 314 | // Step 4: Merge the column | COMMENT |
| LOW⚡ | internal/deepdoc/parser/pdf/table/table_construct.go | 321 | // 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 | 143 | // Step 1: SSRF guard for the target URL. The validated | COMMENT |
| LOW⚡ | internal/agent/component/invoke.go | 150 | // Step 2: SSRF guard for the proxy URL (if configured). | COMMENT |
| LOW | internal/agent/component/invoke.go | 226 | // 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/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 | 2665 | // Step 1: everything fits. | COMMENT |
| LOW⚡ | internal/service/chat_pipeline.go | 2671 | // Step 2: keep all system messages + the last message. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 2687 | // Step 3: trim content to fit. | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3493 | // Step 1: generate SQL. If the question is a "how many rows in the | COMMENT |
| LOW | internal/service/chat_pipeline.go | 3521 | // Step 2: try to execute. On failure, repair once with the | COMMENT |
| LOW | internal/service/skill_space.go | 495 | // Step 1: Delete the search index | COMMENT |
| LOW | internal/service/skill_space.go | 509 | // Step 2: Delete folder and storage via Go FileService | COMMENT |
| LOW | internal/service/skill_space.go | 544 | // Step 3: Soft delete the space record (status "2" → "0") | COMMENT |
| LOW | internal/service/chat.go | 1410 | // Step 4: Build response with kb_names (same as Python _build_chat_response) | COMMENT |
| LOW⚡ | internal/service/nlp/term_weight_test.go | 715 | // Step 1: Split | COMMENT |
| LOW⚡ | internal/service/nlp/term_weight_test.go | 721 | // Step 2: Pretoken | COMMENT |
| LOW⚡ | internal/service/nlp/term_weight_test.go | 728 | // Step 3: Token merge | COMMENT |
| LOW⚡ | internal/service/nlp/term_weight_test.go | 731 | // Step 4: Calculate weights | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | cmd/ragflow_server_pprof_integration_test.go | 35 | // NOT wait for main() to return. That makes them robust to a real DeepDoc | COMMENT |
| 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 | 171 | // Use the same robust text extent as the gap/width projections: a | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/combined_column.go | 284 | // derive the extent from the robust text body. Using the raw extent here let | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/combined_column.go | 358 | // A2: robust page extent discards malformed/outlier lines so a single bad | COMMENT |
| MEDIUM | internal/deepdoc/parser/pdf/layout/combined_column.go | 454 | // projection, hiding a real column boundary). A2: robust extent so a | COMMENT |
| MEDIUM | …oc/parser/pdf/layout/combined_column_defensive_test.go | 91 | // robust text extent: an outlier that gapColumnCount ignores must not inflate | 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 | 681 | // 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/parser/parser/docx_caption_scan.go | 12 | // The correct, robust fix lives upstream: teach office_oxide to emit the | COMMENT |
| MEDIUM | internal/binding/cpp/re2/prefilter_tree.h | 112 | // These are all the nodes formed by Compile. Essentially, there is | COMMENT |
| MEDIUM | internal/service/nlp/datasetnav.go | 1053 | // 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 | tools/scripts/download_dev_deps.py | 288 | CODE | |
| LOW | tools/scripts/download_dev_deps.py | 318 | CODE | |
| LOW | tools/scripts/download_dev_deps.py | 345 | CODE | |
| LOW | tools/scripts/download_dev_deps.py | 628 | CODE | |
| LOW | tools/scripts/download_dev_deps.py | 354 | 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 | …stcases/test_sdk_api/test_agent_management/conftest.py | 69 | CODE | |
| LOW | …_sdk_api/test_dataset_mangement/test_infrastructure.py | 98 | CODE | |
| LOW | …_sdk_api/test_dataset_mangement/test_infrastructure.py | 119 | CODE | |
| LOW | …/test_message_management/test_message_authorization.py | 39 | CODE | |
| LOW | …k_management_within_dataset/test_chunk_sdk_contract.py | 92 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 39 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/dataset.py | 126 | CODE | |
| LOW | deps/download_deps.py | 125 | CODE | |
| LOW | deps/download_deps.py | 290 | 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 | 758 | # 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 | 848 | # Create a version-stamped symlink directory so the flag string | COMMENT |
| MEDIUM | build_ee.sh | 4 | # This file is an intentionally empty placeholder on the OSS/upstream path. The | 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 | example/http/dataset_example.sh | 19 | # Create a dataset | COMMENT |
| MEDIUM | .github/workflows/release-python.yml | 114 | # Creating a GitHub Release auto-attaches the "Source code (zip)" and | 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 | 56 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 194 | CODE | |
| LOW | sdk/python/ragflow_sdk/ragflow.py | 226 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 183 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/session.py | 195 | CODE | |
| LOW | sdk/python/ragflow_sdk/modules/dataset.py | 80 | 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 |