基于 Nonebot2 开发,实现多平台适配和多Bot管理的,非常可爱的绪山真寻Bot
This report summarizes scanner evidence for zhenxun-org/zhenxun_bot, a Python project with 3,839 GitHub stars. SynthScan examined 112,863 lines of code across 547 source files, recording 1871 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 18.7 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 607 finding(s).
Are imports declared and package/API names verified? 554 finding(s).
Are wrappers, guards, and repeated structures necessary? 1026 finding(s).
Which changes need focused human review? 1871 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 1871 distinct pattern matches across 13 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 | zhenxun/cli.py | 274 | except Exception as e: | CODE |
| LOW | zhenxun/cli.py | 292 | except Exception as e: | CODE |
| LOW | zhenxun/cli.py | 342 | except Exception: | CODE |
| MEDIUM | zhenxun/cli.py | 148 | def _print_version() -> None: | CODE |
| LOW | zhenxun/builtin_plugins/withdraw.py | 69 | except Exception: | STRING |
| LOW | zhenxun/builtin_plugins/withdraw.py | 75 | except Exception: | STRING |
| LOW | zhenxun/builtin_plugins/__init__.py | 54 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/__init__.py | 116 | except Exception: | STRING |
| LOW | zhenxun/builtin_plugins/__init__.py | 125 | except Exception: | STRING |
| LOW | zhenxun/builtin_plugins/__init__.py | 145 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/__init__.py | 161 | except Exception as e: | CODE |
| MEDIUM | zhenxun/builtin_plugins/__init__.py | 90 | def _(): | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 415 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 741 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 97 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 117 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 130 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 143 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 165 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/plugin_store/__init__.py | 179 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/init/init_task.py | 137 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/init/init_config.py | 105 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/sign_in/__init__.py | 187 | except Exception as e: | STRING |
| MEDIUM | zhenxun/builtin_plugins/sign_in/__init__.py | 183 | def _(): | CODE |
| LOW | zhenxun/builtin_plugins/chat_history/chat_message.py | 96 | except Exception as e: | CODE |
| LOW | …uiltin_plugins/platform/qq/group_handle/data_source.py | 211 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/admin/group_update.py | 49 | except Exception: | STRING |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/__init__.py | 377 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/__init__.py | 446 | except Exception as e: | CODE |
| LOW | …ltin_plugins/admin/group_member_update/_data_source.py | 122 | except Exception as e: | CODE |
| LOW | …ltin_plugins/admin/group_member_update/_data_source.py | 165 | except Exception as e: | CODE |
| LOW | …/builtin_plugins/admin/group_member_update/__init__.py | 127 | except Exception as e: | STRING |
| LOW | …/builtin_plugins/admin/group_member_update/__init__.py | 135 | except Exception as e: | STRING |
| LOW | …/builtin_plugins/admin/group_member_update/__init__.py | 225 | except Exception as e: | STRING |
| LOW | …/builtin_plugins/admin/group_member_update/__init__.py | 231 | except Exception as e: | STRING |
| LOW | …n/builtin_plugins/admin/welcome_message/data_source.py | 50 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/scheduler/auto_backup.py | 54 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/scheduler/chat_check.py | 66 | except Exception: | CODE |
| LOW | zhenxun/builtin_plugins/scheduler/auto_update_group.py | 25 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/scheduler/auto_update_group.py | 45 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/superuser/ui_manager.py | 125 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/ui_manager.py | 144 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/exec_sql.py | 100 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/exec_sql.py | 122 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/clear_data.py | 76 | except Exception as e: | STRING |
| LOW | …xun/builtin_plugins/superuser/plugin_config_manager.py | 487 | except Exception as e: | CODE |
| LOW | …xun/builtin_plugins/superuser/plugin_config_manager.py | 558 | except Exception as e: | CODE |
| LOW | zhenxun/builtin_plugins/superuser/request_manage.py | 165 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/update_fg_info.py | 69 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/update_fg_info.py | 95 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/group_manage.py | 208 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/fg_manage.py | 73 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/fg_manage.py | 91 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/broadcast/__init__.py | 202 | except Exception as e: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/broadcast/__init__.py | 238 | except Exception as e: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 40 | except Exception: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 299 | except Exception as e_extract: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 364 | except Exception as e: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 449 | except Exception as e: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 546 | except Exception as e: | CODE |
| 480 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/auth_stage3_perf_summary.py | 1 | CODE | |
| LOW | zhenxun/cli.py | 9 | CODE | |
| LOW | zhenxun/ui/__init__.py | 22 | CODE | |
| LOW | zhenxun/ui/__init__.py | 22 | CODE | |
| LOW | zhenxun/ui/__init__.py | 22 | CODE | |
| LOW | zhenxun/ui/__init__.py | 22 | CODE | |
| LOW | zhenxun/ui/__init__.py | 36 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 1 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 1 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 5 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 5 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 5 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 5 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 5 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/__init__.py | 39 | CODE | |
| LOW | zhenxun/ui/models/core/containers.py | 10 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 1 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 2 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 12 | CODE | |
| LOW | zhenxun/ui/models/core/__init__.py | 12 | CODE | |
| 486 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 26 | def pytest_collection_modifyitems(items: list[pytest.Item]): | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 51 | def test_repository_branch_is_resolved_per_source() -> None: | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 69 | async def test_default_source_falls_back_to_github_for_all_plugins( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 163 | async def test_zero_byte_aliyun_binary_falls_back_to_github( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 229 | async def test_forced_aliyun_does_not_fall_back( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 259 | async def test_root_plugin_uses_exact_sparse_paths( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 332 | async def test_repo_manager_sparse_checkout_preserves_exact_paths( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 370 | async def test_sparse_checkout_retries_git_fetch( | CODE |
| LOW | …builtin_plugins/plugin_store/test_download_strategy.py | 413 | async def test_git_checkout_preserves_binary(tmp_path: Path) -> None: | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_remove_plugin.py | 66 | async def test_plugin_not_exist_remove( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_remove_plugin.py | 99 | async def test_remove_plugin_not_install( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_update_plugin.py | 17 | async def test_update_plugin_basic_need_update( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_update_plugin.py | 68 | async def test_update_plugin_basic_is_new( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_update_plugin.py | 118 | async def test_plugin_not_exist_update( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_update_plugin.py | 157 | async def test_update_plugin_not_install( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_search_plugin.py | 58 | async def test_search_plugin_author( | CODE |
| LOW | …sts/builtin_plugins/plugin_store/test_search_plugin.py | 100 | async def test_plugin_not_exist_search( | CODE |
| LOW | …builtin_plugins/plugin_store/test_update_all_plugin.py | 17 | async def test_update_all_plugin_basic_need_update( | CODE |
| LOW | …builtin_plugins/plugin_store/test_update_all_plugin.py | 68 | async def test_update_all_plugin_basic_is_new( | CODE |
| LOW | tests/builtin_plugins/plugin_store/test_add_plugin.py | 66 | async def test_add_plugin_basic_commit_version( | CODE |
| LOW | tests/builtin_plugins/plugin_store/test_add_plugin.py | 113 | async def test_add_plugin_basic_is_not_dir( | CODE |
| LOW | tests/builtin_plugins/plugin_store/test_add_plugin.py | 207 | async def test_plugin_not_exist_add( | CODE |
| LOW | tests/builtin_plugins/auto_update/test_check_update.py | 77 | def add_files_and_folders_to_zip( | CODE |
| LOW | tests/builtin_plugins/auto_update/test_check_update.py | 110 | def add_files_and_folders_to_tar( | CODE |
| LOW | tests/builtin_plugins/auto_update/test_check_update.py | 229 | async def test_check_update_release( | CODE |
| LOW | scripts/bot_check.py | 31 | def _collect_loaded_plugin_names() -> set[str]: | CODE |
| LOW | zhenxun/cli.py | 249 | def _get_worker_creationflags() -> int: | CODE |
| LOW | zhenxun/builtin_plugins/withdraw.py | 53 | def _resolve_delete_message_id(bot: Bot, reply_id: str | int): | STRING |
| LOW | zhenxun/builtin_plugins/statistics/statistics_hook.py | 111 | async def _flush_statistics_on_shutdown(): | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 108 | def _resolve_local_plugin_path( | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 473 | def _get_plugin_repository_branch( | CODE |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 488 | async def _download_plugin_to_staging( | CODE |
| LOW | zhenxun/builtin_plugins/sign_in/utils.py | 68 | def _is_sign_card_cache_stale(card_file: Path) -> bool: | CODE |
| LOW | zhenxun/builtin_plugins/sign_in/utils.py | 141 | def get_level_and_next_impression(impression: float) -> tuple[int, int | float, int]: | CODE |
| LOW | zhenxun/builtin_plugins/chat_history/chat_message.py | 54 | async def _write_chat_history_batch(batch: list[ChatHistory], reason: str) -> None: | CODE |
| LOW | …uiltin_plugins/platform/qq/group_handle/data_source.py | 50 | async def _safe_get_group_member_info(bot: Bot, group_id: str, user_id: str) -> dict: | CODE |
| LOW | …uiltin_plugins/platform/qq/group_handle/data_source.py | 76 | async def _refresh_member_info_async( | CODE |
| LOW | …xun/builtin_plugins/admin/plugin_switch/data_source.py | 26 | async def _calculate_affected_groups( | CODE |
| LOW | …xun/builtin_plugins/admin/plugin_switch/data_source.py | 294 | async def batch_set_group_active_status( | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/ui.py | 221 | async def render_group_active_status(bot: Bot) -> bytes: | CODE |
| LOW | zhenxun/builtin_plugins/superuser/reload_setting.py | 61 | def _get_auto_reload_interval() -> int: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/reload_setting.py | 80 | def _reschedule_auto_reload_job() -> None: | STRING |
| LOW | zhenxun/builtin_plugins/superuser/reload_setting.py | 99 | async def _reload_plugin_limit_config() -> None: | STRING |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 70 | def get_last_broadcast_msg_ids(cls) -> dict[str, int]: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 75 | def clear_last_broadcast_msg_ids(cls) -> None: | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 232 | async def _extract_message_id_from_result( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 314 | async def _check_group_availability( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 168 | async def _create_custom_node_from_data( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 190 | async def _extract_broadcast_content( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 446 | async def _extract_content_from_message( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 527 | async def get_broadcast_target_groups( | CODE |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 623 | async def send_broadcast_and_notify( | CODE |
| LOW | zhenxun/builtin_plugins/llm_manager/data_source.py | 247 | async def add_mcp_servers_from_json(json_str: str) -> tuple[bool, str]: | CODE |
| LOW | zhenxun/builtin_plugins/llm_manager/presenters.py | 29 | async def format_model_list_as_image( | CODE |
| LOW | zhenxun/builtin_plugins/llm_manager/presenters.py | 67 | async def format_model_details_as_markdown_image(details: dict[str, Any]) -> bytes: | CODE |
| LOW | zhenxun/builtin_plugins/llm_manager/presenters.py | 111 | async def format_key_status_as_image( | CODE |
| LOW | zhenxun/builtin_plugins/mahiro_bank/data_source.py | 140 | async def complete_projected_revenue(cls, user_id: str) -> int: | CODE |
| LOW | zhenxun/builtin_plugins/hooks/limiter_hook.py | 8 | async def _concurrency_release_hook(matcher: Matcher): | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_hook.py | 50 | async def _start_auth_runtime_tasks(): | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_hook.py | 70 | async def _drop_message_before_cache_ready(event: Event): | CODE |
| 241 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zhenxun/cli.py | 342 | except Exception: | CODE |
| HIGH | zhenxun/builtin_plugins/__init__.py | 125 | except Exception: | CODE |
| HIGH | zhenxun/builtin_plugins/__init__.py | 116 | except Exception: | CODE |
| HIGH | …iltin_plugins/superuser/broadcast/message_processor.py | 270 | except Exception: | CODE |
| HIGH | zhenxun/builtin_plugins/hooks/auth_pipeline.py | 428 | except Exception: | CODE |
| HIGH | …enxun/builtin_plugins/web_ui/api/tabs/main/__init__.py | 309 | except ( | CODE |
| HIGH | …enxun/builtin_plugins/web_ui/api/tabs/main/__init__.py | 290 | except (WebSocketDisconnect, ConnectionClosedError, ConnectionClosedOK): | CODE |
| HIGH | …enxun/builtin_plugins/web_ui/api/tabs/main/__init__.py | 307 | except asyncio.TimeoutError: | CODE |
| HIGH | zhenxun/builtin_plugins/web_ui/api/logs/logs.py | 31 | except WebSocketDisconnect: | CODE |
| HIGH | zhenxun/builtin_plugins/auto_update/_data_source.py | 123 | except (InvalidVersion, TypeError): | CODE |
| HIGH | zhenxun/utils/utils.py | 224 | except Exception: | CODE |
| HIGH | zhenxun/utils/utils.py | 275 | except Exception: | CODE |
| HIGH | zhenxun/utils/lifespan.py | 175 | except asyncio.CancelledError: | CODE |
| HIGH | zhenxun/utils/lifespan.py | 117 | except asyncio.TimeoutError: | CODE |
| HIGH | zhenxun/utils/manager/virtual_env_package_manager.py | 156 | except Exception: | CODE |
| HIGH | zhenxun/services/avatar_service.py | 108 | except FileNotFoundError: | CODE |
| HIGH | zhenxun/services/low_priority_writer.py | 317 | except BaseException: | CODE |
| HIGH | zhenxun/services/low_priority_writer.py | 159 | except asyncio.TimeoutError: | CODE |
| HIGH | zhenxun/services/send_queue.py | 297 | except Exception: | CODE |
| HIGH | zhenxun/services/renderer/theme.py | 179 | except Exception: | CODE |
| HIGH | zhenxun/services/renderer/theme.py | 874 | except Exception: | CODE |
| HIGH | zhenxun/services/llm/__init__.py | 237 | except Exception: | CODE |
| HIGH | zhenxun/services/db_context/__init__.py | 72 | except Exception: | CODE |
| HIGH | zhenxun/services/db_context/__init__.py | 248 | except Exception: | CODE |
| HIGH | zhenxun/services/db_context/__init__.py | 259 | except Exception: | CODE |
| HIGH | zhenxun/services/db_context/__init__.py | 268 | except Exception: | CODE |
| HIGH | zhenxun/services/cache/__init__.py | 743 | except Exception: | CODE |
| HIGH | zhenxun/services/cache/runtime_cache.py | 650 | except Exception: | CODE |
| HIGH | zhenxun/services/cache/runtime_cache.py | 656 | except Exception: | CODE |
| HIGH | zhenxun/services/scheduler/engine.py | 70 | except JobLookupError: | CODE |
| HIGH | zhenxun/services/ai/message_builder.py | 525 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/message_builder.py | 549 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/message_builder.py | 296 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/tools/core/decorators.py | 210 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/tools/providers/mcp/toolkit.py | 99 | except anyio.ClosedResourceError: | CODE |
| HIGH | zhenxun/services/ai/tools/providers/mcp/toolkit.py | 108 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/tools/providers/builtin/memory.py | 228 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/tools/providers/builtin/sandbox.py | 201 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/tools/engine/executor.py | 186 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/llm/adapters/openrouter.py | 169 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/llm/adapters/base.py | 639 | except Exception: | CODE |
| HIGH | …n/services/ai/llm/adapters/handlers/gemini_handlers.py | 342 | except json.JSONDecodeError: | CODE |
| HIGH | …n/services/ai/llm/adapters/handlers/openai_handlers.py | 411 | except (json.JSONDecodeError, KeyError, binascii.Error): | CODE |
| HIGH | zhenxun/services/ai/llm/system/network.py | 266 | except asyncio.CancelledError: | CODE |
| HIGH | zhenxun/services/ai/core/engine/token_counter.py | 120 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/sandbox/runtimes.py | 310 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/sandbox/manager.py | 183 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/sandbox/drivers/docker.py | 658 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/sandbox/drivers/docker.py | 651 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/sandbox/addons/mcp_proxy.py | 73 | except anyio.ClosedResourceError: | CODE |
| HIGH | zhenxun/services/ai/sandbox/addons/mcp_proxy.py | 95 | except anyio.ClosedResourceError: | CODE |
| HIGH | zhenxun/services/ai/sandbox/addons/mcp_proxy.py | 82 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/run/ui.py | 83 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/flow/agent/engine/executor.py | 394 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/flow/team/strategy.py | 224 | except Exception: | CODE |
| HIGH | zhenxun/services/ai/flow/workflow/nodes.py | 459 | except asyncio.CancelledError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | zhenxun/cli.py | 169 | CODE | |
| LOW | zhenxun/cli.py | 264 | CODE | |
| LOW | zhenxun/cli.py | 307 | CODE | |
| LOW | zhenxun/cli.py | 394 | CODE | |
| LOW | zhenxun/ui/models/charts.py | 133 | CODE | |
| LOW | zhenxun/ui/models/core/base.py | 15 | CODE | |
| LOW | zhenxun/builtin_plugins/withdraw.py | 62 | CODE | |
| LOW | zhenxun/builtin_plugins/__init__.py | 90 | CODE | |
| LOW | zhenxun/builtin_plugins/catchphrase.py | 19 | CODE | |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 377 | CODE | |
| LOW | zhenxun/builtin_plugins/plugin_store/data_source.py | 768 | CODE | |
| LOW | zhenxun/builtin_plugins/init/init_config.py | 59 | CODE | |
| LOW | zhenxun/builtin_plugins/init/manager.py | 74 | CODE | |
| LOW | zhenxun/builtin_plugins/init/manager.py | 204 | CODE | |
| LOW | zhenxun/builtin_plugins/init/manager.py | 215 | CODE | |
| LOW | zhenxun/builtin_plugins/init/manager.py | 226 | CODE | |
| LOW | zhenxun/builtin_plugins/init/manager.py | 315 | CODE | |
| LOW | …un/builtin_plugins/chat_history/chat_message_handle.py | 96 | CODE | |
| LOW | zhenxun/builtin_plugins/shop/_data_source.py | 248 | CODE | |
| LOW | …xun/builtin_plugins/admin/plugin_switch/data_source.py | 59 | CODE | |
| LOW | …xun/builtin_plugins/admin/plugin_switch/data_source.py | 188 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/ui.py | 122 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/ui.py | 283 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/__init__.py | 143 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/ban/_data_source.py | 24 | CODE | |
| LOW | …ltin_plugins/admin/group_member_update/_data_source.py | 22 | CODE | |
| LOW | …/builtin_plugins/admin/group_member_update/__init__.py | 194 | CODE | |
| LOW | …n/builtin_plugins/admin/welcome_message/data_source.py | 96 | CODE | |
| LOW | zhenxun/builtin_plugins/scheduler/auto_backup.py | 34 | CODE | |
| LOW | zhenxun/builtin_plugins/scheduler/chat_check.py | 30 | CODE | |
| LOW | zhenxun/builtin_plugins/superuser/exec_sql.py | 73 | CODE | |
| LOW | zhenxun/builtin_plugins/superuser/clear_data.py | 59 | CODE | |
| LOW | …xun/builtin_plugins/superuser/plugin_config_manager.py | 198 | CODE | |
| LOW | …xun/builtin_plugins/superuser/plugin_config_manager.py | 382 | CODE | |
| LOW | …xun/builtin_plugins/superuser/plugin_config_manager.py | 522 | CODE | |
| LOW | zhenxun/builtin_plugins/superuser/request_manage.py | 188 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 232 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/broadcast_manager.py | 486 | CODE | |
| LOW | zhenxun/builtin_plugins/superuser/broadcast/utils.py | 11 | CODE | |
| LOW | zhenxun/builtin_plugins/superuser/broadcast/utils.py | 112 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 36 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 190 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 357 | CODE | |
| LOW | …iltin_plugins/superuser/broadcast/message_processor.py | 446 | CODE | |
| LOW | zhenxun/builtin_plugins/llm_manager/data_source.py | 203 | CODE | |
| LOW | zhenxun/builtin_plugins/llm_manager/presenters.py | 111 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_hook.py | 141 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_event_selector.py | 149 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/call_hook.py | 14 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 533 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 674 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 904 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 1046 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 1153 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 299 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_checker.py | 329 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_checker.py | 354 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_checker.py | 866 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_checker.py | 1002 | CODE | |
| LOW | zhenxun/builtin_plugins/hooks/auth_snapshot.py | 208 | CODE | |
| 224 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | zhenxun/ui/__init__.py | 425 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/__init__.py | 48 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/core/containers.py | 12 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/core/__init__.py | 40 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/core/content.py | 16 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/core/base.py | 12 | __all__ = ["ContainerComponent", "RenderableComponent"] | CODE |
| LOW | zhenxun/ui/models/components/feedback.py | 8 | __all__ = ["Alert", "Badge", "ProgressBar"] | CODE |
| LOW | zhenxun/ui/models/components/__init__.py | 5 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/components/display.py | 7 | __all__ = ["Avatar", "AvatarGroup", "Divider", "Rectangle", "UserInfoBlock"] | CODE |
| LOW | zhenxun/ui/models/components/data.py | 7 | __all__ = ["KpiCard", "Timeline", "TimelineItem"] | CODE |
| LOW | zhenxun/ui/models/presets/plugin_menu.py | 5 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/presets/plugin_help_page.py | 5 | __all__ = [ | CODE |
| LOW | zhenxun/ui/models/presets/__init__.py | 9 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 50 | async def set_default_status(self, entity: Any, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 62 | async def set_all_default_status(self, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 67 | async def set_all_global_status(self, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 113 | async def set_default_status(self, entity: PluginInfo, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 124 | async def set_all_default_status(self, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 130 | async def set_all_global_status(self, status: bool) -> None: | CODE |
| LOW⚡ | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 164 | async def set_default_status(self, entity: TaskInfo, status: bool) -> None: | CODE |
| LOW⚡ | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 174 | async def set_all_default_status(self, status: bool) -> None: | CODE |
| LOW⚡ | zhenxun/builtin_plugins/admin/plugin_switch/strategy.py | 179 | async def set_all_global_status(self, status: bool) -> None: | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_policy.py | 262 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_legacy_fallback.py | 54 | __all__ = ["legacy_pure_auth_fallback"] | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_profile.py | 122 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_event_selector.py | 361 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_types.py | 57 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_activation.py | 1554 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_trace.py | 37 | __all__ = ["HookTraceRecorder"] | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth_snapshot.py | 395 | __all__ = ["AuthSnapshot", "build_auth_snapshot", "get_or_build_auth_snapshot"] | CODE |
| LOW | zhenxun/builtin_plugins/hooks/auth/data_provider.py | 143 | __all__ = [ | CODE |
| LOW | zhenxun/builtin_plugins/scheduler_admin/__init__.py | 8 | __all__ = ["commands", "handlers"] | CODE |
| LOW | zhenxun/utils/pydantic_compat.py | 63 | __all__ = [ | CODE |
| LOW | zhenxun/utils/repo_utils/__init__.py | 34 | __all__ = [ | CODE |
| LOW | zhenxun/utils/github_utils/__init__.py | 7 | __all__ = [ | CODE |
| LOW | zhenxun/models/bot_console.py | 159 | async def set_bot_status(cls, status: bool, bot_id: str | None = None) -> None: | CODE |
| LOW | zhenxun/configs/config.py | 8 | __all__ = ["BotConfig", "Config"] | CODE |
| LOW | zhenxun/configs/utils/models.py | 10 | __all__ = [ | CODE |
| LOW | zhenxun/configs/utils/__init__.py | 526 | __all__ = [ | CODE |
| LOW | zhenxun/services/__init__.py | 35 | __all__ = [ | CODE |
| LOW | zhenxun/services/data_access.py | 58 | def set_null_result_ttl(cls, seconds: int) -> None: | CODE |
| LOW⚡ | zhenxun/services/runtime_bootstrap.py | 122 | async def _setup_runtime_concurrency() -> None: | CODE |
| LOW⚡ | zhenxun/services/renderer/theme.py | 401 | def _set_asset_resolution_cache(self, key: tuple[str, str], value: str) -> None: | CODE |
| LOW⚡ | zhenxun/services/renderer/theme.py | 409 | def _set_global_template_cache(self, key: str, value: str) -> None: | CODE |
| LOW | zhenxun/services/renderer/__init__.py | 22 | __all__ = ["RenderResult", "Renderable", "renderer_service"] | CODE |
| LOW⚡ | zhenxun/services/renderer/engine.py | 492 | def _update_rss_baseline_nolock(self, current_rss: int) -> None: | STRING |
| LOW | zhenxun/services/llm/__init__.py | 363 | __all__ = [ | CODE |
| LOW | zhenxun/services/db_context/__init__.py | 42 | __all__ = [ | CODE |
| LOW | zhenxun/services/cache/__init__.py | 75 | __all__ = [ | CODE |
| LOW | zhenxun/services/cache/runtime_cache.py | 926 | def set_plugin(cls, plugin) -> None: | CODE |
| LOW | zhenxun/services/cache/runtime_cache.py | 1110 | async def update_status(cls, bot_id: str | None, status: bool) -> None: | CODE |
| LOW | zhenxun/services/scheduler/__init__.py | 13 | __all__ = ["ExecutionPolicy", "ScheduleContext", "Trigger", "scheduler_manager"] | CODE |
| LOW | zhenxun/services/scheduler/targeting.py | 17 | __all__ = [ | CODE |
| LOW | zhenxun/services/tags/__init__.py | 11 | __all__ = ["tag_manager"] | CODE |
| LOW | zhenxun/services/ai/__init__.py | 7 | __all__ = [ | CODE |
| LOW | zhenxun/services/ai/tools/models.py | 368 | __all__ = [ | CODE |
| LOW | zhenxun/services/ai/tools/__init__.py | 23 | __all__ = [ | CODE |
| LOW | zhenxun/services/ai/tools/core/__init__.py | 13 | __all__ = [ | CODE |
| LOW | zhenxun/services/ai/tools/core/decorators.py | 414 | __all__ = [ | CODE |
| LOW | zhenxun/services/ai/tools/providers/mcp/provider.py | 218 | def _setup_toolkit(self, name: str, conf: MCPServerConfig) -> None: | CODE |
| 50 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | zhenxun/models/chat_history.py | 152 | "alter table chat_history alter group_id drop not null;", | CODE |
| HIGH⚡ | zhenxun/models/chat_history.py | 154 | "alter table chat_history alter text drop not null;", | CODE |
| HIGH⚡ | zhenxun/models/chat_history.py | 156 | "alter table chat_history alter plain_text drop not null;", | CODE |
| HIGH | zhenxun/services/renderer/engine.py | 792 | document.fonts && document.fonts.size > 0 | CODE |
| HIGH | zhenxun/services/ai/sandbox/runtimes.py | 278 | await self.session.run_process("pkill -9 -f jupyter-server || true") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | zhenxun/ui/models/core/content.py | 86 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/__init__.py | 143 | CODE | |
| LOW | zhenxun/builtin_plugins/admin/plugin_switch/__init__.py | 286 | CODE | |
| LOW | zhenxun/builtin_plugins/scheduler_admin/handlers.py | 61 | CODE | |
| LOW | zhenxun/utils/decorator/retry.py | 123 | CODE | |
| LOW | zhenxun/utils/decorator/shop.py | 186 | CODE | |
| LOW | zhenxun/services/llm/__init__.py | 335 | CODE | |
| LOW | zhenxun/services/scheduler/targeting.py | 35 | CODE | |
| LOW | zhenxun/services/scheduler/targeting.py | 46 | CODE | |
| LOW | zhenxun/services/scheduler/manager.py | 393 | CODE | |
| LOW | zhenxun/services/ai/tools/providers/mcp/toolkit.py | 270 | CODE | |
| LOW | zhenxun/services/ai/context/memory/capabilities.py | 32 | CODE | |
| LOW | zhenxun/services/ai/context/knowledge/vector.py | 61 | CODE | |
| LOW | zhenxun/services/ai/sandbox/runtimes.py | 557 | CODE | |
| LOW | zhenxun/services/ai/flow/agent/agent.py | 336 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zhenxun/services/ai/config/manager.py | 21 | "api_key": "YOUR_API_KEY", | CODE |
| HIGH | zhenxun/services/ai/config/manager.py | 57 | "api_key": "YOUR_API_KEY", | CODE |
| HIGH | zhenxun/services/ai/config/manager.py | 93 | "api_key": "YOUR_API_KEY", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zhenxun/builtin_plugins/plugin_store/data_source.py | 0 | 被动技能文本风格 参数: column: 表头 text: 文本内容 返回: rowstyle: rowstyle | STRING |
| HIGH | zhenxun/builtin_plugins/superuser/bot_manage/task.py | 0 | 被动技能文本风格 参数: column: 表头 text: 文本内容 返回: rowstyle: rowstyle | STRING |
| HIGH | zhenxun/builtin_plugins/superuser/bot_manage/plugin.py | 0 | 被动技能文本风格 参数: column: 表头 text: 文本内容 返回: rowstyle: rowstyle | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/codeql.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql.yml | 61 | uses: github/codeql-action/init@v3 | COMMENT |
| LOW | zhenxun/builtin_plugins/init/init_plugin.py | 141 | # for limit in limit_list: | COMMENT |
| LOW | zhenxun/builtin_plugins/superuser/fg_manage.py | 41 | ) | COMMENT |
| LOW | zhenxun/builtin_plugins/mahiro_bank/__init__.py | 221 | COMMENT | |
| LOW | zhenxun/builtin_plugins/mahiro_bank/__init__.py | 241 | # ) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/codeql.yml | 53 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | zhenxun/models/level_user.py | 112 | CODE |