结合知识库、知识图谱管理的 多租户 Agent Harness 平台。 An agent harness that integrates a LightRAG knowledge base and knowledge graphs. Build with LangChain + Vue + FastAPI, support DeepAgents、MinerU PDF、Neo4j 、MCP.
This report presents the forensic synthetic code analysis of xerrors/Yuxi, a Python project with 6,119 GitHub stars. SynthScan v2.0 examined 177,771 lines of code across 668 source files, recording 2631 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 17.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2631 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docker/sandbox_provisioner/app.py | 227 | def _shared_workspace_host_path(self, uid: str) -> Path: | CODE |
| LOW⚡ | docker/sandbox_provisioner/app.py | 236 | def _thread_uploads_host_path(self, thread_id: str) -> Path: | CODE |
| LOW⚡ | docker/sandbox_provisioner/app.py | 245 | def _thread_outputs_host_path(self, thread_id: str) -> Path: | CODE |
| LOW⚡ | docker/sandbox_provisioner/app.py | 254 | def _is_expected_skills_mount(self, container, skills_thread_id: str) -> bool: | CODE |
| LOW⚡ | docker/sandbox_provisioner/app.py | 264 | def _has_expected_user_data_mounts(self, container, file_thread_id: str, uid: str) -> bool: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 176 | def _normalize_host_bind_path(path_value: str | None) -> str: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 324 | def _ensure_user_data_writable(container) -> None: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 680 | def _discovered_matches_request( | CODE |
| LOW | docker/sandbox_provisioner/app.py | 910 | def _collect_expired_sandbox_ids(self) -> list[str]: | CODE |
| LOW | web/src/stores/database.js | 319 | function ensureAutoRefreshForProcessing(filesMap, stats = null) { | CODE |
| LOW | web/src/stores/user.js | 254 | async function validateUsernameAndGenerateUid(username) { | CODE |
| LOW | web/src/components/AgentChatComponent.vue | 1635 | function mergeOngoingUserMessageIntoHistory(historyConvs, ongoingMessages) { | CODE |
| LOW | web/src/components/AgentChatComponent.vue | 1672 | function mergeActiveRunOngoingIntoHistory(historyConvs, ongoingMessages, activeRunId) { | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 82 | async def get_conversation_by_thread_id(self, thread_id: str): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 98 | async def test_upload_tmp_attachment_writes_user_scoped_minio_object(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 114 | async def test_parse_tmp_attachment_uses_selected_method_and_uploads_markdown(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 147 | async def test_confirm_tmp_thread_attachments_materializes_original_and_parsed_files(monkeypatch, tmp_path: Path): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 206 | async def test_parse_tmp_attachment_uses_object_name_for_type_validation(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 226 | async def test_parse_tmp_attachment_handles_url_metacharacters(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 253 | async def test_confirm_tmp_thread_attachments_rejects_non_parsed_object(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 283 | async def test_confirm_tmp_thread_attachments_validates_batch_before_commit(monkeypatch): | CODE |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 309 | async def test_confirm_tmp_thread_attachments_keeps_duplicate_names_separate(monkeypatch, tmp_path: Path): | CODE |
| LOW | backend/test/unit/test_package_import.py | 4 | def test_import_yuxi_does_not_eagerly_import_knowledge(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 77 | def test_short_text_unchanged(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 82 | def test_splits_long_chinese_text(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 89 | def test_optional_hard_limit_keeps_slightly_oversized_text(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 94 | def test_optional_hard_limit_merges_short_tail(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 100 | def test_splits_long_english_text(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 107 | def test_empty_text_returns_empty(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 110 | def test_whitespace_only_returns_empty(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 113 | def test_zero_limit_floors_to_one(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 119 | def test_punctuation_only_text(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 129 | def test_all_chunks_within_limit_pass_through(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 134 | def test_slightly_oversized_chunk_passes_through(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 140 | def test_oversized_chunk_gets_split_with_merged_tail(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 150 | def test_empty_chunks_filtered(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 155 | def test_zero_limit_returns_stripped(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 165 | def test_normal_document_chunks_within_limit(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 172 | def test_oversized_single_line_gets_split(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 180 | def test_empty_document_returns_empty(self): | CODE |
| LOW⚡ | backend/test/unit/test_chunking_token_limit.py | 196 | def test_hard_split_produces_same_result(self): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 14 | def test_generate_api_key_returns_secret_hash_and_prefix(): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 31 | def test_access_token_contains_instance_claims(monkeypatch): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 43 | def test_access_token_auto_generates_dev_secret(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/test_auth_utils.py | 54 | def test_access_token_requires_configured_secret_in_production(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/test_auth_utils.py | 63 | def test_access_token_rejects_public_default_secret_in_production(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/test_auth_utils.py | 72 | def test_access_token_auto_generates_dev_instance_id(monkeypatch): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 83 | def test_access_token_requires_instance_id_in_production(monkeypatch): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 92 | def test_verify_access_token_rejects_wrong_issuer(monkeypatch): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 104 | def test_verify_access_token_rejects_wrong_audience(monkeypatch): | CODE |
| LOW | backend/test/unit/test_auth_utils.py | 117 | def test_verify_access_token_requires_claims(monkeypatch): | CODE |
| LOW | backend/test/unit/routers/test_user_config_router.py | 44 | async def test_user_config_routes_scope_to_current_user(session): | CODE |
| LOW | backend/test/unit/routers/test_user_config_router.py | 58 | async def test_user_config_allows_logged_in_user_without_department(): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 150 | def test_remote_skill_prepare_and_confirm_routes(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 153 | async def fake_prepare_remote_skill_install(_db, *, source, skills, operator): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 157 | async def fake_confirm_skill_install_draft(_db, *, draft_id, share_config, operator): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 201 | def test_dependency_options_route_checks_manage_permission(monkeypatch): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 204 | async def fake_get_manageable_skill_or_raise(_db, user, slug): | CODE |
| LOW⚡ | backend/test/unit/routers/test_skill_router.py | 208 | async def fake_get_skill_dependency_options(_db, user, slug=None): | CODE |
| LOW | backend/test/unit/routers/test_skill_router.py | 60 | def test_list_visible_skills_route_returns_allowed_levels_and_can_manage(monkeypatch): | CODE |
| 1475 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | backend/test/unit/test_chunking_token_limit.py | 73 | # ── nlp.hard_split_by_token_limit ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/test/unit/test_chunking_token_limit.py | 125 | # ── general._ensure_chunk_token_limit ────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/test/unit/test_chunking_token_limit.py | 161 | # ── general.chunk_markdown 集成 ──────────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/test/unit/test_chunking_token_limit.py | 190 | # ── laws parser 回归 ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/test/integration/api/test_knowledge_router.py | 423 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/test/integration/api/test_knowledge_router.py | 425 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/test/integration/api/test_knowledge_router.py | 506 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/test/integration/api/test_knowledge_router.py | 508 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/main.py | 5 | # ============================================================================== | COMMENT |
| MEDIUM | backend/server/main.py | 8 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | backend/server/routers/mcp_router.py | 244 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/mcp_router.py | 246 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/mcp_router.py | 298 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/mcp_router.py | 300 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 69 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 71 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 82 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/mcp_router.py | 84 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_dept_router.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_dept_router.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_dept_router.py | 58 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_dept_router.py | 60 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 245 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 247 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 316 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 318 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 391 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 393 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 479 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 481 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 583 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 585 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 640 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 642 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 716 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/dashboard_router.py | 718 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/dashboard_router.py | 48 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/dashboard_router.py | 50 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/dashboard_router.py | 124 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/dashboard_router.py | 126 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/system_router.py | 15 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/system_router.py | 17 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/system_router.py | 51 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/system_router.py | 53 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/system_router.py | 131 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/system_router.py | 133 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/system_router.py | 186 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | backend/server/routers/system_router.py | 188 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 181 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 183 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 194 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 196 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 294 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 296 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 429 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 431 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 509 | # ============================================================================= | COMMENT |
| MEDIUM | backend/server/routers/auth_router.py | 511 | # ============================================================================= | COMMENT |
| 82 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/sandbox_provisioner/app.py | 898 | def _seed_existing(self) -> None: | CODE |
| MEDIUM | docker/sandbox_provisioner/app.py | 1039 | def list_sandboxes(): | CODE |
| LOW | docker/sandbox_provisioner/app.py | 141 | except Exception: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 385 | except Exception as exc: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 390 | except Exception as exc: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 464 | except Exception as exc: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 471 | except Exception as exc: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 525 | except Exception: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 691 | except Exception: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 774 | except Exception: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 813 | except Exception as exc: | CODE |
| LOW | docker/sandbox_provisioner/app.py | 901 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 925 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 998 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 1012 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 1030 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 1042 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | docker/sandbox_provisioner/app.py | 1060 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | backend/test/unit/backends/test_semantic_chunking.py | 19 | except Exception as e: | CODE |
| LOW | backend/test/integration/conftest.py | 138 | except Exception as exc: | CODE |
| LOW⚡ | backend/test/integration/conftest.py | 156 | except Exception as exc: | CODE |
| LOW⚡ | backend/test/integration/conftest.py | 161 | except Exception as exc: | CODE |
| LOW⚡ | backend/test/integration/conftest.py | 166 | except Exception as exc: | CODE |
| LOW | backend/test/integration/conftest.py | 192 | except Exception as exc: | CODE |
| LOW | backend/test/integration/conftest.py | 205 | except Exception: | CODE |
| LOW | backend/test/integration/conftest.py | 209 | except Exception as exc: | CODE |
| LOW | backend/test/integration/conftest.py | 318 | except Exception as exc: | CODE |
| MEDIUM | backend/test/integration/conftest.py | 189 | def _cleanup_sandbox_containers() -> None: | CODE |
| LOW | backend/server/routers/graph_router.py | 45 | except Exception as e: | CODE |
| LOW | backend/server/routers/graph_router.py | 72 | except Exception as e: | CODE |
| LOW | backend/server/routers/graph_router.py | 89 | except Exception as e: | CODE |
| LOW | backend/server/routers/graph_router.py | 106 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 66 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 78 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 103 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/knowledge_eval_router.py | 124 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/knowledge_eval_router.py | 140 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 167 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 189 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 201 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 231 | except Exception as e: | CODE |
| LOW | backend/server/routers/knowledge_eval_router.py | 247 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 239 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 266 | except Exception as test_error: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 270 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 293 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 386 | except Exception as tool_error: | CODE |
| LOW⚡ | backend/server/routers/mcp_router.py | 390 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 110 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 154 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 171 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 215 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 344 | except Exception as tool_error: | CODE |
| LOW | backend/server/routers/mcp_router.py | 349 | except Exception as e: | CODE |
| LOW | backend/server/routers/mcp_router.py | 413 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/dashboard_router.py | 239 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/dashboard_router.py | 310 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/dashboard_router.py | 385 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/dashboard_router.py | 473 | except Exception as e: | CODE |
| LOW⚡ | backend/server/routers/dashboard_router.py | 577 | except Exception as e: | CODE |
| 371 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/test/conftest.py | 1 | CODE | |
| LOW | backend/test/unit/test_tmp_attachment_service.py | 1 | CODE | |
| LOW | backend/test/unit/test_auth_utils.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_user_config_router.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_skill_router.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_system_router.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_subagent.py | 1 | CODE | |
| LOW | …kend/test/unit/routers/test_agent_invocation_router.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_auth_router_cli_auth.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_api_key_security.py | 1 | CODE | |
| LOW | …/test/unit/routers/test_dashboard_superadmin_access.py | 1 | CODE | |
| LOW | …end/test/unit/routers/test_workspace_knowledge_tree.py | 1 | CODE | |
| LOW | …d/test/unit/routers/test_knowledge_workspace_import.py | 1 | CODE | |
| LOW | backend/test/unit/routers/test_mcp_router.py | 1 | CODE | |
| LOW | backend/test/unit/config/test_runtime_config_sync.py | 1 | CODE | |
| LOW | backend/test/unit/config/test_user_config.py | 1 | CODE | |
| LOW | backend/test/unit/plugins/test_ragflow_like_chunking.py | 1 | CODE | |
| LOW | backend/test/unit/plugins/test_notion_kb.py | 1 | CODE | |
| LOW | backend/test/unit/plugins/test_dify_kb.py | 1 | CODE | |
| LOW | …/test/unit/backends/test_sandbox_provisioner_config.py | 1 | CODE | |
| LOW | backend/test/unit/backends/test_skills_backend.py | 1 | CODE | |
| LOW | …st/unit/backends/test_skills_backend_error_handling.py | 1 | CODE | |
| LOW | …kend/test/unit/backends/test_knowledge_base_backend.py | 1 | CODE | |
| LOW | backend/test/unit/backends/test_sandbox_backends.py | 3 | CODE | |
| LOW | backend/test/unit/backends/test_semantic_chunking.py | 2 | CODE | |
| LOW | …ckend/test/unit/middlewares/test_summary_middleware.py | 1 | CODE | |
| LOW | …test/unit/middlewares/test_subagent_task_middleware.py | 1 | CODE | |
| LOW | …d/test/unit/middlewares/test_token_usage_middleware.py | 1 | CODE | |
| LOW | backend/test/unit/middlewares/test_skills_middleware.py | 1 | CODE | |
| LOW | backend/test/unit/agents/test_context_auth.py | 1 | CODE | |
| LOW | backend/test/unit/agents/test_streaming_toolcall_fix.py | 11 | CODE | |
| LOW | backend/test/unit/agents/test_streaming_toolcall_fix.py | 16 | CODE | |
| LOW | backend/test/unit/agents/test_summary_graph_config.py | 1 | CODE | |
| LOW | …end/test/unit/agents/test_base_tool_event_normalize.py | 1 | CODE | |
| LOW | backend/test/unit/agents/test_subagent_tool_filter.py | 1 | CODE | |
| LOW | backend/test/unit/agents/skills/test_remote_install.py | 1 | CODE | |
| LOW | …test/unit/agents/skills/test_mysql_reporter_scripts.py | 1 | CODE | |
| LOW | backend/test/unit/toolkits/test_install_skill.py | 1 | CODE | |
| LOW | backend/test/unit/toolkits/test_tool_registry.py | 1 | CODE | |
| LOW | backend/test/unit/toolkits/test_kbs_tools.py | 1 | CODE | |
| LOW | backend/test/unit/toolkits/test_ocr_parse_file_tool.py | 1 | CODE | |
| LOW | backend/test/unit/utils/test_thread_utils.py | 1 | CODE | |
| LOW | backend/test/unit/utils/test_share_config.py | 1 | CODE | |
| LOW | backend/test/unit/utils/test_hash_utils.py | 1 | CODE | |
| LOW | backend/test/unit/utils/test_image_processor.py | 1 | CODE | |
| LOW | backend/test/unit/repositories/test_agent_repository.py | 1 | CODE | |
| LOW | …nd/test/unit/repositories/test_agent_run_repository.py | 1 | CODE | |
| LOW | …it/repositories/test_agent_repository_deep_research.py | 1 | CODE | |
| LOW | backend/test/unit/storage/test_redis_manager.py | 1 | CODE | |
| LOW | …kend/test/unit/storage/test_conversation_repository.py | 1 | CODE | |
| LOW | …kend/test/unit/storage/test_postgres_manager_schema.py | 1 | CODE | |
| LOW | backend/test/unit/knowledge/test_parser_facade.py | 1 | CODE | |
| LOW | …end/test/unit/knowledge/test_runtime_initialization.py | 1 | CODE | |
| LOW | backend/test/unit/knowledge/test_file_exists.py | 1 | CODE | |
| LOW | backend/test/unit/knowledge/test_office_pdf_preview.py | 1 | CODE | |
| LOW | …ckend/test/unit/knowledge/test_paddleocr_api_parser.py | 1 | CODE | |
| LOW | backend/test/unit/graphs/test_milvus_graph_build.py | 1 | CODE | |
| LOW | …ckend/test/unit/services/test_auth_service_cli_auth.py | 1 | CODE | |
| LOW | …kend/test/unit/services/test_mention_search_service.py | 1 | CODE | |
| LOW | …d/test/unit/services/test_viewer_filesystem_service.py | 1 | CODE | |
| 271 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/sandbox_provisioner/app.py | 349 | CODE | |
| LOW | backend/test/integration/conftest.py | 275 | CODE | |
| LOW | backend/test/e2e/test_subagent_stream_e2e.py | 149 | CODE | |
| LOW | backend/server/routers/mcp_router.py | 304 | CODE | |
| LOW | backend/server/routers/dashboard_router.py | 734 | CODE | |
| LOW | backend/server/routers/knowledge_router.py | 662 | CODE | |
| LOW | backend/server/routers/knowledge_router.py | 1080 | CODE | |
| LOW | backend/server/routers/knowledge_router.py | 1448 | CODE | |
| LOW | backend/server/routers/knowledge_router.py | 689 | CODE | |
| LOW | backend/package/yuxi/config/app.py | 87 | CODE | |
| LOW | backend/package/yuxi/agents/models.py | 176 | CODE | |
| LOW | backend/package/yuxi/agents/context.py | 388 | CODE | |
| LOW | backend/package/yuxi/agents/context.py | 316 | CODE | |
| LOW | backend/package/yuxi/agents/base.py | 133 | CODE | |
| LOW | backend/package/yuxi/agents/base.py | 204 | CODE | |
| LOW | backend/package/yuxi/agents/base.py | 315 | CODE | |
| LOW | backend/package/yuxi/agents/buildin/__init__.py | 48 | CODE | |
| LOW | backend/package/yuxi/agents/backends/sandbox/backend.py | 388 | CODE | |
| LOW | …ckend/package/yuxi/agents/backends/sandbox/provider.py | 142 | CODE | |
| LOW | …ckend/package/yuxi/agents/backends/sandbox/provider.py | 189 | CODE | |
| LOW | backend/package/yuxi/agents/middlewares/summary.py | 71 | CODE | |
| LOW | backend/package/yuxi/agents/middlewares/summary.py | 312 | CODE | |
| LOW | backend/package/yuxi/agents/toolkits/utils.py | 7 | CODE | |
| LOW | …/package/yuxi/agents/toolkits/buildin/install_skill.py | 147 | CODE | |
| LOW | backend/package/yuxi/agents/mcp/service.py | 72 | CODE | |
| LOW | backend/package/yuxi/agents/mcp/service.py | 197 | CODE | |
| LOW | backend/package/yuxi/agents/skills/service.py | 259 | CODE | |
| LOW | backend/package/yuxi/agents/skills/service.py | 776 | CODE | |
| LOW | backend/package/yuxi/agents/skills/service.py | 884 | CODE | |
| LOW | backend/package/yuxi/agents/skills/remote_install.py | 218 | CODE | |
| LOW | …/agents/skills/buildin/mysql-reporter/scripts/query.py | 257 | CODE | |
| LOW | …kills/buildin/mysql-reporter/scripts/describe_table.py | 84 | CODE | |
| LOW | backend/package/yuxi/utils/image_processor.py | 86 | CODE | |
| LOW | …ckend/package/yuxi/storage/postgres/models_business.py | 579 | CODE | |
| LOW | backend/package/yuxi/knowledge/manager.py | 913 | CODE | |
| LOW | backend/package/yuxi/knowledge/base.py | 216 | CODE | |
| LOW | backend/package/yuxi/knowledge/base.py | 277 | CODE | |
| LOW | backend/package/yuxi/knowledge/base.py | 974 | CODE | |
| LOW | backend/package/yuxi/knowledge/base.py | 1197 | CODE | |
| LOW | backend/package/yuxi/knowledge/utils/url_fetcher.py | 37 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/unified.py | 131 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/unified.py | 291 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/rapid_ocr.py | 74 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/rapid_ocr.py | 131 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/paddleocr_api.py | 260 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/paddleocr_api.py | 295 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/mineru.py | 33 | CODE | |
| LOW | backend/package/yuxi/knowledge/parser/mineru.py | 93 | CODE | |
| LOW | …ckend/package/yuxi/knowledge/parser/mineru_official.py | 42 | CODE | |
| LOW | …ckend/package/yuxi/knowledge/parser/mineru_official.py | 96 | CODE | |
| LOW | …ckend/package/yuxi/knowledge/parser/mineru_official.py | 298 | CODE | |
| LOW | …nd/package/yuxi/knowledge/chunking/ragflow_like/nlp.py | 189 | CODE | |
| LOW | …nd/package/yuxi/knowledge/chunking/ragflow_like/nlp.py | 355 | CODE | |
| LOW | …nd/package/yuxi/knowledge/chunking/ragflow_like/nlp.py | 460 | CODE | |
| LOW | …xi/knowledge/chunking/ragflow_like/parsers/semantic.py | 20 | CODE | |
| LOW | …xi/knowledge/chunking/ragflow_like/parsers/semantic.py | 70 | CODE | |
| LOW | …xi/knowledge/chunking/ragflow_like/parsers/semantic.py | 121 | CODE | |
| LOW | …e/yuxi/knowledge/chunking/ragflow_like/parsers/laws.py | 87 | CODE | |
| LOW | …age/yuxi/knowledge/chunking/ragflow_like/parsers/qa.py | 213 | CODE | |
| LOW | …i/knowledge/chunking/ragflow_like/utils/table_utils.py | 6 | CODE | |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/sandbox_provisioner/app.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | …end/test/unit/routers/test_knowledge_router_cleanup.py | 18 | async def set_message(self, message: str) -> None: | CODE |
| LOW⚡ | …end/test/unit/routers/test_knowledge_router_cleanup.py | 21 | async def set_progress(self, progress: float, message: str | None = None) -> None: | CODE |
| LOW⚡ | …end/test/unit/routers/test_knowledge_router_cleanup.py | 24 | async def set_result(self, result: dict) -> None: | CODE |
| LOW | backend/server/worker_main.py | 15 | __all__ = ["WorkerSettings"] | CODE |
| LOW | backend/package/yuxi/config/__init__.py | 4 | __all__ = ["UserConfig", "UserConfigSchema", "config"] | CODE |
| LOW | backend/package/yuxi/config/app.py | 83 | def _setup_paths(self) -> None: | CODE |
| LOW | backend/package/yuxi/config/app.py | 199 | def set_value(self, key: str, value: Any) -> None: | CODE |
| LOW | backend/package/yuxi/agents/__init__.py | 17 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/agents/buildin/__init__.py | 95 | __all__ = ["agent_manager"] | CODE |
| LOW | backend/package/yuxi/agents/buildin/chatbot/__init__.py | 5 | __all__ = ["ChatBotContext", "ChatBotState", "ChatbotAgent", "SubAgentRunState", "merge_subagent_runs"] | CODE |
| LOW | …ckend/package/yuxi/agents/buildin/subagent/__init__.py | 4 | __all__ = ["SubAgentBackend", "SubAgentContext"] | CODE |
| LOW | backend/package/yuxi/agents/backends/__init__.py | 25 | __all__ = [ | CODE |
| LOW | …ckend/package/yuxi/agents/backends/sandbox/__init__.py | 27 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/agents/middlewares/__init__.py | 7 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/agents/toolkits/__init__.py | 15 | __all__ = [ | CODE |
| LOW | …ckend/package/yuxi/agents/toolkits/buildin/__init__.py | 5 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/agents/toolkits/kbs/__init__.py | 7 | __all__ = ["find_kb_document", "get_common_kb_tools", "open_kb_document"] | CODE |
| LOW | backend/package/yuxi/agents/toolkits/debug/__init__.py | 3 | __all__ = [] | CODE |
| LOW | backend/package/yuxi/utils/logging_config.py | 91 | __all__ = ["logger"] | CODE |
| LOW | backend/package/yuxi/utils/paths.py | 25 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/utils/datetime_utils.py | 137 | __all__ = [ | CODE |
| LOW | …d/package/yuxi/repositories/conversation_repository.py | 536 | async def _update_message_count(self, conversation_id: int) -> None: | CODE |
| LOW | backend/package/yuxi/repositories/__init__.py | 1 | __all__ = [] | CODE |
| LOW⚡ | …ackage/yuxi/repositories/knowledge_chunk_repository.py | 171 | async def update_extraction_result(self, chunk_id: str, extraction_result: dict[str, Any]) -> None: | CODE |
| LOW | backend/package/yuxi/models/__init__.py | 1 | __all__ = ["select_model", "select_embedding_model", "get_embedding_model_info_by_id"] | CODE |
| LOW | backend/package/yuxi/storage/neo4j/__init__.py | 9 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/storage/redis/__init__.py | 14 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/storage/minio/__init__.py | 11 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/knowledge/manager.py | 440 | async def update_file_params(self, kb_id: str, file_id: str, params: dict, operator_id: str | None = None) -> None: | CODE |
| LOW | backend/package/yuxi/knowledge/base.py | 432 | async def update_file_params(self, kb_id: str, file_id: str, params: dict, operator_id: str | None = None) -> None: | CODE |
| LOW | backend/package/yuxi/knowledge/base.py | 1182 | def _set_database_stats(self, kb_id: str, stats: dict[str, int]) -> None: | CODE |
| LOW | backend/package/yuxi/knowledge/utils/__init__.py | 13 | __all__ = [ | CODE |
| LOW | backend/package/yuxi/knowledge/chunking/__init__.py | 1 | __all__ = [] | CODE |
| LOW | …ckage/yuxi/knowledge/chunking/ragflow_like/__init__.py | 3 | __all__ = ["chunk_file", "chunk_markdown"] | CODE |
| LOW | …xi/knowledge/chunking/ragflow_like/parsers/__init__.py | 3 | __all__ = ["general", "qa", "book", "laws", "separator"] | CODE |
| LOW | backend/package/yuxi/knowledge/graphs/__init__.py | 3 | __all__ = ["MilvusGraphService"] | CODE |
| LOW | …d/package/yuxi/knowledge/graphs/extractors/__init__.py | 5 | __all__ = [ | CODE |
| LOW | …end/package/yuxi/knowledge/implementations/__init__.py | 14 | __all__ = ["MilvusKB", "DifyKB", "NotionKB", "ReadOnlyConnectors"] | CODE |
| LOW⚡ | …ckend/package/yuxi/knowledge/implementations/notion.py | 427 | def _set_cached_page_markdown(self, cache_key: tuple[str, str, str, str], content: str) -> None: | CODE |
| LOW | …yuxi/knowledge/implementations/read_only_connectors.py | 36 | async def update_file_params(self, kb_id: str, file_id: str, params: dict, operator_id: str | None = None) -> None: | CODE |
| LOW | backend/package/yuxi/services/oidc_service.py | 719 | async def update_oidc_user_login(db, user: User) -> None: | CODE |
| LOW⚡ | backend/package/yuxi/services/task_service.py | 81 | async def set_progress(self, progress: float, message: str | None = None) -> None: | CODE |
| LOW⚡ | backend/package/yuxi/services/task_service.py | 88 | async def set_message(self, message: str) -> None: | CODE |
| LOW⚡ | backend/package/yuxi/services/task_service.py | 91 | async def set_result(self, result: Any) -> None: | CODE |
| LOW | backend/package/yuxi/services/task_service.py | 427 | __all__ = ["tasker", "TaskContext", "Tasker"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | backend/package/yuxi/storage/minio/client.py | 365 | 异步上下文管理器:从 MinIO URL 下载文件到临时文件,使用后自动清理 Args: url: MinIO 文件 URL allowed_extensi | STRING |
| HIGH | backend/package/yuxi/knowledge/factory.py | 29 | 创建知识库实例 Args: kb_type: 知识库类型 work_dir: 工作目录 **kwargs: 其他初始化参数 | STRING |
| HIGH | backend/package/yuxi/knowledge/manager.py | 115 | 根据数据库ID获取对应的知识库实例 Args: kb_id: 数据库ID Returns: 知识库实例 Raises: | STRING |
| HIGH | backend/package/yuxi/knowledge/utils/kb_utils.py | 238 | 解析MinIO URL,提取bucket名称和对象名称 支持标准 HTTP/HTTPS URL 格式: - http(s)://host/bucket-name/path/to/object Args: | STRING |
| HIGH | backend/package/yuxi/knowledge/utils/url_fetcher.py | 38 | Fetch URL content with security checks (size limit, content type, private IP blocking). Args: url: The | STRING |
| HIGH | backend/package/yuxi/knowledge/parser/factory.py | 41 | 获取文档处理器实例 (单例模式) Args: processor_type: 处理器类型 - "rapid_ocr": RapidOCR 本地 OC | STRING |
| HIGH | backend/package/yuxi/knowledge/parser/factory.py | 75 | 使用指定处理器处理文件 (便捷方法) Args: processor_type: 处理器类型 file_path: 文件路径 par | STRING |
| HIGH | backend/package/yuxi/knowledge/parser/base.py | 49 | 处理文件并返回提取的文本 Args: file_path: 文件路径 params: 处理参数 Returns: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/components/MessageInputComponent.vue | 41 | :aria-label="placeholder" | CODE |
| LOW | web/src/components/MessageInputComponent.vue | 43 | :data-placeholder="placeholder" | CODE |
| LOW | web/src/components/AgentInputArea.vue | 9 | :placeholder="placeholder" | CODE |
| LOW | web/src/components/AiTextarea.vue | 6 | :placeholder="placeholder" | CODE |
| LOW⚡ | backend/test/unit/routers/test_subagent.py | 100 | async def fake_user(): | CODE |
| LOW⚡ | backend/test/unit/routers/test_subagent.py | 104 | app.dependency_overrides[get_required_user] = fake_user | CODE |
| LOW⚡ | backend/test/unit/routers/test_subagent.py | 105 | app.dependency_overrides[get_admin_user] = fake_user | CODE |
| LOW⚡ | …kend/test/unit/routers/test_agent_invocation_router.py | 25 | async def fake_user(): | CODE |
| LOW⚡ | …kend/test/unit/routers/test_agent_invocation_router.py | 28 | app.dependency_overrides[get_required_user] = fake_user | CODE |
| LOW⚡ | backend/package/yuxi/knowledge/implementations/dify.py | 32 | "placeholder": "例如: https://api.dify.ai/v1", | CODE |
| LOW⚡ | backend/package/yuxi/knowledge/implementations/dify.py | 40 | "placeholder": "请输入 Dify API Token", | CODE |
| LOW⚡ | backend/package/yuxi/knowledge/implementations/dify.py | 47 | "placeholder": "请输入 Dify dataset_id", | CODE |
| LOW⚡ | …ckend/package/yuxi/knowledge/implementations/notion.py | 191 | "placeholder": "留空则使用 NOTION_TOKEN / NOTION_API_KEY", | CODE |
| LOW⚡ | …ckend/package/yuxi/knowledge/implementations/notion.py | 199 | "placeholder": "请输入 Notion data_source_id", | CODE |
| LOW⚡ | …ckend/package/yuxi/knowledge/implementations/notion.py | 207 | "placeholder": NOTION_DEFAULT_VERSION, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/test/integration/api/test_apikey_router.py | 63 | # Create a key | COMMENT |
| MEDIUM | backend/test/integration/api/test_apikey_router.py | 82 | # Create a key | COMMENT |
| MEDIUM | backend/test/integration/api/test_apikey_router.py | 99 | # Create a key | COMMENT |
| MEDIUM | backend/test/integration/api/test_apikey_router.py | 116 | # Create an API key | COMMENT |
| MEDIUM⚡ | backend/test/integration/api/test_apikey_router.py | 145 | # Create an API key | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/test/integration/api/test_graph_router_list.py | 18 | # Check if response is wrapped | COMMENT |
| LOW | backend/server/routers/knowledge_router.py | 1379 | # Check if it is a folder | COMMENT |
| LOW | backend/server/routers/knowledge_router.py | 1425 | # Check if it is a folder | COMMENT |
| LOW⚡ | backend/package/yuxi/agents/backends/sandbox/backend.py | 472 | # Check if old_string exists | COMMENT |
| LOW | backend/package/yuxi/knowledge/base.py | 1382 | # Check if new_parent_id is a child of file_id (or is file_id itself) | COMMENT |
| LOW | backend/package/yuxi/knowledge/utils/url_validator.py | 39 | # Check if URL has a valid scheme | COMMENT |
| LOW | backend/package/yuxi/knowledge/utils/url_validator.py | 58 | # Check if hostname is in whitelist | COMMENT |
| LOW | backend/package/yuxi/knowledge/utils/url_validator.py | 63 | # Check if hostname ends with the domain (or matches exactly) | COMMENT |
| LOW | scripts/init.sh | 47 | # Check if .env file exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/test/unit/services/test_agent_run_service.py | 1281 | CODE | |
| LOW | backend/test/unit/services/test_subagent_run_service.py | 100 | CODE | |
| LOW | backend/server/routers/workspace_router.py | 143 | CODE | |
| LOW | backend/server/routers/knowledge_router.py | 216 | CODE | |
| LOW | backend/package/yuxi/agents/toolkits/registry.py | 39 | CODE | |
| LOW | backend/package/yuxi/agents/mcp/service.py | 355 | CODE | |
| LOW | backend/package/yuxi/agents/mcp/service.py | 405 | CODE | |
| LOW | backend/package/yuxi/repositories/agent_repository.py | 410 | CODE | |
| LOW | backend/package/yuxi/repositories/agent_repository.py | 461 | CODE | |
| LOW | backend/package/yuxi/models/embed.py | 24 | CODE | |
| LOW | backend/package/yuxi/storage/minio/client.py | 146 | CODE | |
| LOW | backend/package/yuxi/storage/minio/client.py | 252 | CODE | |
| LOW | backend/package/yuxi/knowledge/manager.py | 556 | CODE | |
| LOW | packages/yuxi-cli/src/yuxi_cli/main.py | 160 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/advanced/document-processing.md | 94 | MINERU_API_KEY=your-api-key-here | CODE |
| HIGH | docs/advanced/document-processing.md | 110 | SILICONFLOW_API_KEY=your-api-key-here | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/package/yuxi/config/static/bad_keywords.txt | 1 | # ========================================================== | COMMENT |
| LOW | docs/advanced/third-party-auth.md | 21 | # 认证源名称(显示在登录按钮上的文字,建议简短且具有辨识度, 默认: OIDC登录) | COMMENT |
| LOW | docs/advanced/third-party-auth.md | 41 | # Token 端点 (可选,自动从 discovery 获取) | COMMENT |
| LOW | docs/advanced/third-party-auth.md | 61 | COMMENT | |
| LOW | scripts/bump-version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/bump-version.sh | 21 | # - 用户只说“更新 tag”或“添加 tag”时,先读取 backend/package/pyproject.toml: | COMMENT |
| LOW | scripts/bump-version.sh | 41 | # git tag v0.7.1.dev2 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.en.md | 21 | **Image generated by GPT-Image-2.* | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/intro/project-overview.md | 40 | ### 2. 知识库与 RAG 一体化能力 | COMMENT |