A smarter, self-hosted AI assistant — multi-user, multi-agent.
This report summarizes scanner evidence for TencentCloud/Octop, a Python project with 8,661 GitHub stars. SynthScan examined 700,712 lines of code across 3298 source files, recording 8687 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 17.0 (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? 5626 finding(s).
Are imports declared and package/API names verified? 1426 finding(s).
Are wrappers, guards, and repeated structures necessary? 6289 finding(s).
Which changes need focused human review? 8687 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 8687 distinct pattern matches across 22 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 | tests/conftest.py | 35 | def pytest_collection_modifyitems(items: list[pytest.Item]) -> None: | CODE |
| LOW | tests/conftest.py | 55 | def _suspend_proactive_care_loops( | CODE |
| LOW⚡ | tests/unit/test_tool_guard_rules_store.py | 18 | def test_ensure_seeded_creates_yaml(rules_store: ToolGuardRulesStore) -> None: | CODE |
| LOW⚡ | tests/unit/test_tool_guard_rules_store.py | 25 | def test_save_rejects_invalid_yaml(rules_store: ToolGuardRulesStore) -> None: | CODE |
| LOW⚡ | tests/unit/test_tool_guard_rules_store.py | 32 | def test_save_valid_rule_and_reload_catalog(rules_store: ToolGuardRulesStore) -> None: | CODE |
| LOW | tests/unit/test_shared.py | 15 | def test_build_shared_services(tmp_path: Path): | CODE |
| LOW | tests/unit/test_docker_compose_database_env.py | 10 | def _compose_environment_entries(compose_text: str) -> str: | CODE |
| LOW | tests/unit/test_docker_compose_database_env.py | 23 | def test_docker_compose_forwards_database_env_keys() -> None: | CODE |
| LOW | tests/unit/test_voice_manager.py | 27 | def test_default_active_is_browser(voice_mgr: VoiceManager) -> None: | CODE |
| LOW | tests/unit/test_voice_manager.py | 31 | def test_set_active_edge_tts_only(voice_mgr: VoiceManager) -> None: | CODE |
| LOW⚡ | tests/unit/test_voice_manager.py | 44 | async def test_transcribe_browser_raises_browser_only(voice_mgr: VoiceManager) -> None: | CODE |
| LOW⚡ | tests/unit/test_voice_manager.py | 51 | async def test_synthesize_browser_raises_browser_only(voice_mgr: VoiceManager) -> None: | CODE |
| LOW⚡ | tests/unit/test_voice_manager.py | 59 | async def test_configuration_probe_uses_unsaved_values( | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 30 | def test_map_install_error_not_found() -> None: | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 36 | def test_map_install_error_unknown_returns_none() -> None: | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 40 | def test_map_install_error_ssl_record_layer() -> None: | CODE |
| LOW | tests/unit/test_skills_hub_errors.py | 53 | def test_skillhub_cli_failure_detail_ssl() -> None: | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 66 | def test_skillhub_cli_failure_detail_passthrough() -> None: | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 73 | def test_stderr_suggests_upgrade() -> None: | CODE |
| LOW⚡ | tests/unit/test_skills_hub_errors.py | 81 | async def test_run_skillhub_cmd_timeout_kills_process(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_skills_hub_errors.py | 105 | async def test_close_subprocess_is_noop_when_already_exited() -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 41 | def test_seed_does_not_auto_install_missing(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 55 | def test_seed_does_not_overwrite_same_version(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 72 | def test_seed_refreshes_when_bundled_version_newer(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 100 | def test_seed_does_not_recreate_after_uninstall(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 121 | def test_seed_does_not_add_new_bundled_id(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 142 | def test_load_installed_skips_disabled_before_import(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 156 | def test_load_installed_clears_stale_registry_entries(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_seed.py | 175 | def test_seed_refuses_corrupt_config_and_preserves_bytes(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 67 | def test_set_enabled_roundtrip(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 87 | def test_normalize_github_blob_url() -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 102 | def test_install_url_rejects_non_zip(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 123 | def test_install_url_accepts_valid_zip(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 148 | def test_install_archive_accepts_local_zip(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 160 | def test_install_archive_rejects_non_zip(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 172 | def test_install_path_already_exists(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 184 | def test_parse_plugin_ui_meta_and_list(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 233 | def test_load_missing_picks_up_cli_install(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 256 | def test_parse_plugin_ui_meta_missing_entry(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 337 | def test_set_enabled_refuses_corrupt_config_and_preserves_bytes(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 352 | def test_install_plugin_importing_legacy_harness_agent(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_plugin_manager.py | 389 | def test_set_enabled_preserves_unrelated_keys(tmp_path: Path) -> None: | CODE |
| LOW | tests/unit/test_launch_bwrap.py | 14 | def test_schedule_skips_non_linux( | CODE |
| LOW | tests/unit/test_launch_bwrap.py | 23 | async def test_schedule_runs_linux_ensure_in_background(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_launch_bwrap.py | 45 | async def test_cancel_background_task_is_noop_when_missing() -> None: | CODE |
| LOW | tests/unit/test_launch_bwrap.py | 50 | async def test_cancel_background_task_drops_pending() -> None: | CODE |
| LOW | tests/unit/test_launch_bwrap.py | 63 | def test_background_ensure_swallows_failures(monkeypatch: pytest.MonkeyPatch) -> None: | CODE |
| LOW | tests/unit/test_logging.py | 58 | def test_build_log_handler_uses_daily_rotation_and_retention(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 72 | def test_purge_stale_logs_removes_only_old_files(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 84 | def test_purge_stale_logs_skipped_when_retention_non_positive(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 94 | def test_attach_log_handler_is_idempotent(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 110 | def test_setup_logging_creates_logs_dir_and_file(tmp_path: Path, monkeypatch): | CODE |
| LOW | tests/unit/test_logging.py | 132 | def test_setup_logging_migrates_legacy_log(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 146 | def test_setup_logging_respects_retention_env(tmp_path: Path, monkeypatch): | CODE |
| LOW⚡ | tests/unit/test_logging.py | 161 | def test_setup_logging_respects_level_env(tmp_path: Path, monkeypatch): | CODE |
| LOW⚡ | tests/unit/test_logging.py | 170 | def test_setup_logging_falls_back_on_invalid_level_env(tmp_path: Path, monkeypatch): | CODE |
| LOW⚡ | tests/unit/test_logging.py | 179 | def test_setup_logging_falls_back_on_invalid_retention_env(tmp_path: Path, monkeypatch): | CODE |
| LOW | tests/unit/test_logging.py | 195 | def test_parse_log_max_bytes_defaults_and_env(monkeypatch): | CODE |
| LOW | tests/unit/test_logging.py | 204 | def test_log_handler_rotates_when_max_bytes_exceeded(tmp_path: Path): | CODE |
| LOW | tests/unit/test_logging.py | 231 | def test_gzip_rotated_log_replaces_plain_file(tmp_path: Path): | CODE |
| 4575 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/docker_build.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker_build.sh | 19 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.postgres.yml | 1 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.postgres.yml | 19 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.mobile.yml | 1 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.mobile.yml | 19 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-entrypoint.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-entrypoint.sh | 18 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.yml | 1 | # ============================================================================= | COMMENT |
| MEDIUM | docker/docker-compose.yml | 20 | # ============================================================================= | COMMENT |
| MEDIUM | tests/unit/connectors/test_qq_mail_adapter.py | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/connectors/test_qq_mail_adapter.py | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/connectors/test_qq_mail_adapter.py | 120 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/connectors/test_qq_mail_adapter.py | 122 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/connectors/test_qq_mail_adapter.py | 171 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/connectors/test_qq_mail_adapter.py | 173 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 216 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 410 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 486 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 488 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 532 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 534 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 671 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 673 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 723 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 725 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 789 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 791 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 847 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 849 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 1050 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_registry.py | 1052 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 273 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 275 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 1239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 1241 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/db/test_repo_providers.py | 75 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/db/test_repo_providers.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/api/test_terminal_sessions.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/api/test_terminal_sessions.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/api/test_terminal_sessions.py | 169 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/api/test_terminal_sessions.py | 171 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/api/test_chat_polish.py | 310 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/api/test_chat_polish.py | 312 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 180 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 182 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 202 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 222 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 253 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/proactive/test_proactive_service.py | 255 | # --------------------------------------------------------------------------- | COMMENT |
| 512 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 9 | CODE | |
| LOW | conftest.py | 11 | CODE | |
| LOW | plugins/demo-ui-card/main.py | 7 | CODE | |
| LOW | plugins/demo-greeting-skill/main.py | 8 | CODE | |
| LOW | plugins/demo-turn-logger/main.py | 11 | CODE | |
| LOW | plugins/demo-toolkit/main.py | 12 | CODE | |
| LOW | tests/conftest.py | 3 | CODE | |
| LOW | tests/unit/test_tool_guard_rules_store.py | 3 | CODE | |
| LOW | tests/unit/test_shared.py | 3 | CODE | |
| LOW | tests/unit/test_docker_compose_database_env.py | 3 | CODE | |
| LOW | tests/unit/test_voice_manager.py | 3 | CODE | |
| LOW | tests/unit/test_skills_hub_errors.py | 3 | CODE | |
| LOW | tests/unit/test_plugin_seed.py | 3 | CODE | |
| LOW | tests/unit/test_plugin_manager.py | 3 | CODE | |
| LOW | tests/unit/test_launch_bwrap.py | 3 | CODE | |
| LOW | tests/unit/test_logging.py | 7 | CODE | |
| LOW | tests/unit/test_fnos_native_stop.py | 3 | CODE | |
| LOW | tests/unit/test_plugins.py | 3 | CODE | |
| LOW | tests/unit/test_host_download_allow.py | 3 | CODE | |
| LOW | tests/unit/test_cli_main.py | 3 | CODE | |
| LOW | tests/unit/test_voice_probe.py | 7 | CODE | |
| LOW | tests/unit/test_launch_deferred.py | 3 | CODE | |
| LOW | tests/unit/test_metrics.py | 3 | CODE | |
| LOW | tests/unit/test_user_locale.py | 3 | CODE | |
| LOW | tests/unit/test_provider_probe.py | 3 | CODE | |
| LOW | tests/unit/test_errors.py | 3 | CODE | |
| LOW | tests/unit/test_bundled_plugins_layout.py | 3 | CODE | |
| LOW | tests/unit/test_voice_formats.py | 3 | CODE | |
| LOW | tests/unit/test_voice_stt_probe.py | 7 | CODE | |
| LOW | tests/unit/test_fnos_docker_persist.py | 3 | CODE | |
| LOW | tests/unit/test_storage_spec.py | 3 | CODE | |
| LOW | tests/unit/test_wizard_password.py | 3 | CODE | |
| LOW | tests/unit/test_host_paths.py | 3 | CODE | |
| LOW | tests/unit/test_workspace_download.py | 3 | CODE | |
| LOW | tests/unit/test_wizard_token.py | 3 | CODE | |
| LOW | tests/unit/test_skillhub_install_metadata.py | 1 | CODE | |
| LOW | tests/unit/test_user_manager.py | 3 | CODE | |
| LOW | tests/unit/test_password.py | 3 | CODE | |
| LOW | tests/unit/test_env_file.py | 3 | CODE | |
| LOW | tests/unit/test_identity.py | 3 | CODE | |
| LOW | tests/unit/test_config.py | 3 | CODE | |
| LOW | tests/unit/test_storage_browse.py | 3 | CODE | |
| LOW | tests/unit/test_paths.py | 3 | CODE | |
| LOW | tests/unit/test_langfuse_env_names.py | 10 | CODE | |
| LOW | tests/unit/test_usage_thread_totals.py | 3 | CODE | |
| LOW | tests/unit/test_ulid.py | 3 | CODE | |
| LOW | tests/unit/test_provider_fetch_models.py | 3 | CODE | |
| LOW | tests/unit/test_security_settings.py | 3 | CODE | |
| LOW | tests/unit/test_cli_state.py | 3 | CODE | |
| LOW | tests/unit/test_hot_topics_plugin.py | 3 | CODE | |
| LOW | tests/unit/test_vendor_wheels_argv.py | 14 | CODE | |
| LOW | tests/unit/test_green_launch.py | 3 | CODE | |
| LOW | tests/unit/test_langfuse_settings.py | 3 | CODE | |
| LOW | tests/unit/test_storage_probe.py | 3 | CODE | |
| LOW | tests/unit/test_connectors.py | 3 | CODE | |
| LOW | tests/unit/test_release_download_links.py | 3 | CODE | |
| LOW | tests/unit/test_provider_preset_expansion.py | 3 | CODE | |
| LOW | tests/unit/connectors/test_oauth_pkce.py | 3 | CODE | |
| LOW | tests/unit/connectors/test_mcp_oauth_ssrf.py | 3 | CODE | |
| LOW | tests/unit/connectors/test_mail_servers.py | 3 | CODE | |
| 1251 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …nts/subagents/library/en/design/design-ux-architect.md | 299 | ### Step 1: Analyze Project Requirements | COMMENT |
| LOW⚡ | …nts/subagents/library/en/design/design-ux-architect.md | 309 | ### Step 2: Create Technical Foundation | COMMENT |
| LOW⚡ | …nts/subagents/library/en/design/design-ux-architect.md | 315 | ### Step 3: UX Structure Planning | COMMENT |
| LOW⚡ | …nts/subagents/library/en/design/design-ux-architect.md | 321 | ### Step 4: Developer Handoff Documentation | COMMENT |
| LOW⚡ | …/subagents/library/en/design/design-whimsy-injector.md | 360 | ### Step 1: Brand Personality Analysis | COMMENT |
| LOW⚡ | …/subagents/library/en/design/design-whimsy-injector.md | 367 | ### Step 2: Whimsy Strategy Development | COMMENT |
| LOW⚡ | …/subagents/library/en/design/design-whimsy-injector.md | 373 | ### Step 3: Implementation Design | COMMENT |
| LOW⚡ | …/subagents/library/en/design/design-whimsy-injector.md | 379 | ### Step 4: Testing and Refinement | COMMENT |
| LOW⚡ | …ts/subagents/library/en/design/design-ux-researcher.md | 166 | ### Step 1: Research Planning | COMMENT |
| LOW⚡ | …ts/subagents/library/en/design/design-ux-researcher.md | 174 | ### Step 2: Data Collection | COMMENT |
| LOW⚡ | …ts/subagents/library/en/design/design-ux-researcher.md | 180 | ### Step 3: Analysis and Synthesis | COMMENT |
| LOW⚡ | …ts/subagents/library/en/design/design-ux-researcher.md | 186 | ### Step 4: Insights and Recommendations | COMMENT |
| LOW⚡ | …s/subagents/library/en/design/design-brand-guardian.md | 172 | ### Step 1: Brand Discovery and Strategy | COMMENT |
| LOW⚡ | …s/subagents/library/en/design/design-brand-guardian.md | 179 | ### Step 2: Foundation Development | COMMENT |
| LOW⚡ | …s/subagents/library/en/design/design-brand-guardian.md | 185 | ### Step 3: System Creation | COMMENT |
| LOW⚡ | …s/subagents/library/en/design/design-brand-guardian.md | 191 | ### Step 4: Implementation and Protection | COMMENT |
| LOW⚡ | …ents/subagents/library/en/design/design-ui-designer.md | 230 | ### Step 1: Design System Foundation | COMMENT |
| LOW⚡ | …ents/subagents/library/en/design/design-ui-designer.md | 237 | ### Step 2: Component Architecture | COMMENT |
| LOW⚡ | …ents/subagents/library/en/design/design-ui-designer.md | 243 | ### Step 3: Visual Hierarchy System | COMMENT |
| LOW⚡ | …ents/subagents/library/en/design/design-ui-designer.md | 249 | ### Step 4: Developer Handoff | COMMENT |
| LOW⚡ | …ents/library/en/design/design-image-prompt-engineer.md | 139 | ### Step 1: Concept Intake | COMMENT |
| LOW⚡ | …ents/library/en/design/design-image-prompt-engineer.md | 145 | ### Step 2: Reference Analysis | COMMENT |
| LOW⚡ | …ents/library/en/design/design-image-prompt-engineer.md | 151 | ### Step 3: Prompt Construction | COMMENT |
| LOW⚡ | …ents/library/en/design/design-image-prompt-engineer.md | 157 | ### Step 4: Prompt Optimization | COMMENT |
| LOW | …bagents/library/en/design/design-visual-storyteller.md | 79 | ### Step 1: Story Strategy Development | COMMENT |
| LOW⚡ | …bagents/library/en/design/design-visual-storyteller.md | 90 | ### Step 2: Visual Narrative Planning | COMMENT |
| LOW⚡ | …bagents/library/en/design/design-visual-storyteller.md | 96 | ### Step 3: Content Creation Framework | COMMENT |
| LOW⚡ | …bagents/library/en/design/design-visual-storyteller.md | 102 | ### Step 4: Production & Optimization | COMMENT |
| LOW⚡ | …infra/agents/subagents/library/en/sales/sales-coach.md | 200 | ### Step 1: Observe and Diagnose | COMMENT |
| LOW⚡ | …infra/agents/subagents/library/en/sales/sales-coach.md | 206 | ### Step 2: Design the Coaching Intervention | COMMENT |
| LOW⚡ | …infra/agents/subagents/library/en/sales/sales-coach.md | 212 | ### Step 3: Coach and Reinforce | COMMENT |
| LOW⚡ | …infra/agents/subagents/library/en/sales/sales-coach.md | 218 | ### Step 4: Measure and Adjust | COMMENT |
| LOW⚡ | …ubagents/library/en/sales/sales-proposal-strategist.md | 140 | ### Step 1: Opportunity Analysis | COMMENT |
| LOW⚡ | …ubagents/library/en/sales/sales-proposal-strategist.md | 145 | ### Step 2: Win Theme Development | COMMENT |
| LOW⚡ | …ubagents/library/en/sales/sales-proposal-strategist.md | 150 | ### Step 3: Narrative Architecture | COMMENT |
| LOW⚡ | …ubagents/library/en/sales/sales-proposal-strategist.md | 156 | ### Step 4: Content Development and Refinement | COMMENT |
| LOW⚡ | …subagents/library/en/sales/sales-account-strategist.md | 156 | ### Step 1: Account Intelligence | COMMENT |
| LOW⚡ | …subagents/library/en/sales/sales-account-strategist.md | 162 | ### Step 2: Relationship Development | COMMENT |
| LOW⚡ | …subagents/library/en/sales/sales-account-strategist.md | 168 | ### Step 3: Expansion Execution | COMMENT |
| LOW⚡ | …subagents/library/en/sales/sales-account-strategist.md | 174 | ### Step 4: Retention and Growth Measurement | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 187 | ### Step 1: Offer Audit | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 190 | ### Step 2: Rebuild the Value Equation | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 193 | ### Step 3: Lead Magnet Ideation | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 196 | ### Step 4: Nurture Pipeline Before Magnet Launch | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 199 | ### Step 5: Channel Selection (One Core Four) | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 202 | ### Step 6: Amplifier Activation | COMMENT |
| LOW⚡ | …ts/library/en/sales/sales-offer-lead-gen-strategist.md | 205 | ### Step 7: Measure, Iterate, Scale (More → Better → New) | COMMENT |
| LOW⚡ | …s/subagents/library/en/sales/sales-pipeline-analyst.md | 187 | ### Step 1: Data Collection and Validation | COMMENT |
| LOW⚡ | …s/subagents/library/en/sales/sales-pipeline-analyst.md | 192 | ### Step 2: Pipeline Diagnostics | COMMENT |
| LOW⚡ | …s/subagents/library/en/sales/sales-pipeline-analyst.md | 199 | ### Step 3: Forecast Construction | COMMENT |
| LOW⚡ | …s/subagents/library/en/sales/sales-pipeline-analyst.md | 206 | ### Step 4: Intervention Recommendations | COMMENT |
| LOW⚡ | …ry/en/security/security-threat-intelligence-analyst.md | 561 | ### Step 1: Collection & Requirements | COMMENT |
| LOW⚡ | …ry/en/security/security-threat-intelligence-analyst.md | 567 | ### Step 2: Processing & Analysis | COMMENT |
| LOW⚡ | …ry/en/security/security-threat-intelligence-analyst.md | 573 | ### Step 3: Production & Dissemination | COMMENT |
| LOW⚡ | …ry/en/security/security-threat-intelligence-analyst.md | 579 | ### Step 4: Feedback & Refinement | COMMENT |
| LOW⚡ | …rary/en/security/security-threat-detection-engineer.md | 446 | ### Step 1: Intelligence-Driven Prioritization | COMMENT |
| LOW⚡ | …rary/en/security/security-threat-detection-engineer.md | 452 | ### Step 2: Detection Development | COMMENT |
| LOW⚡ | …rary/en/security/security-threat-detection-engineer.md | 458 | ### Step 3: Validation and Deployment | COMMENT |
| LOW⚡ | …rary/en/security/security-threat-detection-engineer.md | 464 | ### Step 4: Continuous Improvement | COMMENT |
| LOW⚡ | …brary/en/security/security-cloud-security-architect.md | 438 | ### Step 1: Assess Current Posture | COMMENT |
| 523 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/demo-toolkit/main.py | 25 | except Exception: | CODE |
| LOW | tests/unit/bridge/test_repo.py | 122 | except Exception: | CODE |
| LOW | tests/unit/db/test_db_pool.py | 723 | except Exception as exc: # pragma: no cover - only reached on a regression | CODE |
| MEDIUM | tests/unit/db/test_db_pool.py | 718 | def compete() -> None: | CODE |
| LOW | desktop/portable/verify_imports.py | 67 | except Exception: | CODE |
| LOW | desktop/portable/verify_imports.py | 82 | except Exception: | CODE |
| LOW | desktop/portable/verify_imports.py | 117 | except Exception as exc: | CODE |
| LOW | scripts/install-octop.sh | 847 | except Exception: | CODE |
| LOW | scripts/install.sh | 882 | except Exception: | CODE |
| LOW | src/octop/launch.py | 22 | except Exception: | CODE |
| LOW | src/octop/infra/server.py | 393 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/service.py | 168 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/service.py | 216 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/service.py | 257 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/service.py | 279 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/service.py | 385 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/qcc.py | 143 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/builder.py | 557 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 88 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 278 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 307 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 390 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 416 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 475 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 510 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/probe.py | 594 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/oauth/discovery.py | 82 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/oauth/discovery.py | 88 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/oauth/discovery.py | 128 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/oauth/discovery.py | 199 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/oauth/mcp.py | 143 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/feishu_user_auth.py | 163 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/feishu_user_auth.py | 222 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/protocol.py | 58 | except Exception as exc: | CODE |
| LOW | src/octop/infra/connectors/gateway/wecom_creds.py | 67 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/wecom_creds.py | 98 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/agently_auth.py | 195 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/agently_auth.py | 260 | except Exception: | CODE |
| LOW | src/octop/infra/connectors/gateway/agently_watch.py | 139 | except Exception: | CODE |
| LOW | …octop/infra/connectors/gateway/adapters/agently_cli.py | 277 | except Exception: | CODE |
| LOW | …octop/infra/connectors/gateway/adapters/agently_cli.py | 308 | except Exception: | CODE |
| LOW | …octop/infra/connectors/gateway/adapters/tencent_ima.py | 495 | except Exception: | CODE |
| LOW | src/octop/infra/auth/ldap/service.py | 139 | except Exception as exc: # noqa: BLE001 - any crypto failure is an outage | CODE |
| LOW | src/octop/infra/auth/ldap/service.py | 241 | except Exception as exc: | CODE |
| LOW | src/octop/infra/auth/sso/service.py | 326 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/transport.py | 31 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/transport.py | 36 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/transport.py | 102 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/transport.py | 173 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 387 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 632 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 655 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 812 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 836 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 905 | except Exception: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 1090 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 1213 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 1358 | except Exception as exc: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 1535 | except Exception as exc: | CODE |
| LOW | src/octop/infra/setup/service.py | 620 | except Exception: | CODE |
| 570 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/mobile/test_agent_control.py | 20 | except ValueError: | CODE |
| HIGH | tests/live/conftest.py | 35 | except ImportError: | CODE |
| HIGH | src/octop/infra/connectors/probe.py | 88 | except Exception: | CODE |
| HIGH | src/octop/infra/connectors/probe.py | 307 | except Exception: | CODE |
| HIGH | …octop/infra/connectors/gateway/adapters/tencent_ima.py | 495 | except Exception: | CODE |
| HIGH | src/octop/infra/bridge/transport.py | 31 | except Exception: | CODE |
| HIGH | src/octop/infra/bridge/transport.py | 36 | except Exception: | CODE |
| HIGH | src/octop/infra/bridge/peer_auth.py | 30 | except ValueError: | CODE |
| HIGH | src/octop/infra/setup/self_update.py | 386 | except Exception: | CODE |
| HIGH | src/octop/infra/setup/self_update.py | 539 | except FileNotFoundError: | CODE |
| HIGH | src/octop/infra/setup/self_update.py | 560 | except Exception: | CODE |
| HIGH | src/octop/infra/setup/self_update.py | 580 | except Exception: | CODE |
| HIGH | src/octop/infra/agents/manager.py | 1048 | except KeyError: | CODE |
| HIGH | src/octop/infra/agents/manager.py | 2113 | except OSError: | CODE |
| HIGH | src/octop/infra/agents/memory/slim_control.py | 89 | except (ConnectionError, asyncio.CancelledError): | CODE |
| HIGH | src/octop/infra/agents/memory/slim_control.py | 114 | except (OSError, ValueError): | CODE |
| HIGH | src/octop/infra/agents/providers/store.py | 149 | except Exception: | CODE |
| HIGH | src/octop/infra/agents/providers/onnx_service.py | 594 | except ImportError: | CODE |
| HIGH | src/octop/infra/agents/workspace/dir.py | 107 | except OSError: | CODE |
| HIGH | src/octop/infra/agents/teams/team_manager.py | 1332 | except Exception: | CODE |
| HIGH | src/octop/infra/agents/teams/team_manager.py | 1399 | except Exception: | CODE |
| HIGH | …office-automation/skills/xlsx/scripts/office/unpack.py | 86 | except Exception: | CODE |
| HIGH | …office-automation/skills/xlsx/scripts/office/unpack.py | 96 | except Exception: | CODE |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/docx.py | 276 | except Exception: | CODE |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/docx.py | 411 | except Exception: | CODE |
| HIGH | …ion/skills/xlsx/scripts/office/validators/redlining.py | 53 | except Exception: | CODE |
| HIGH | …ion/skills/xlsx/scripts/office/validators/redlining.py | 186 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/base.py | 136 | except Exception: | CODE |
| HIGH | …office-automation/skills/pptx/scripts/office/unpack.py | 86 | except Exception: | CODE |
| HIGH | …office-automation/skills/pptx/scripts/office/unpack.py | 96 | except Exception: | CODE |
| HIGH | …tomation/skills/pptx/scripts/office/validators/docx.py | 276 | except Exception: | CODE |
| HIGH | …tomation/skills/pptx/scripts/office/validators/docx.py | 411 | except Exception: | CODE |
| HIGH | …ion/skills/pptx/scripts/office/validators/redlining.py | 53 | except Exception: | CODE |
| HIGH | …ion/skills/pptx/scripts/office/validators/redlining.py | 186 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …tomation/skills/pptx/scripts/office/validators/base.py | 136 | except Exception: | CODE |
| HIGH | …office-automation/skills/docx/scripts/office/unpack.py | 86 | except Exception: | CODE |
| HIGH | …office-automation/skills/docx/scripts/office/unpack.py | 96 | except Exception: | CODE |
| HIGH | …tomation/skills/docx/scripts/office/validators/docx.py | 276 | except Exception: | CODE |
| HIGH | …tomation/skills/docx/scripts/office/validators/docx.py | 411 | except Exception: | CODE |
| HIGH | …ion/skills/docx/scripts/office/validators/redlining.py | 53 | except Exception: | CODE |
| HIGH | …ion/skills/docx/scripts/office/validators/redlining.py | 186 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …tomation/skills/docx/scripts/office/validators/base.py | 136 | except Exception: | CODE |
| HIGH | …-living-assistant/skills/meituan-deals/scripts/auth.py | 142 | except (FileNotFoundError, subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | …ssistant/skills/meituan-deals/scripts/diag_auth_log.py | 80 | except Exception: | CODE |
| HIGH | src/octop/infra/desktop/capture.py | 237 | except Exception: | CODE |
| HIGH | src/octop/infra/desktop/capture.py | 264 | except (OSError, subprocess.TimeoutExpired): | CODE |
| HIGH | src/octop/infra/desktop/setup.py | 498 | except (OSError, subprocess.TimeoutExpired): | CODE |
| HIGH | src/octop/infra/desktop/input.py | 324 | except OSError: | CODE |
| HIGH | src/octop/infra/utils/utf8_text.py | 64 | except UnicodeDecodeError: | CODE |
| HIGH | src/octop/infra/utils/utf8_text.py | 98 | except UnicodeDecodeError: | CODE |
| HIGH | src/octop/infra/utils/utf8_text.py | 120 | except UnicodeDecodeError: | CODE |
| HIGH | src/octop/infra/utils/utf8_text.py | 144 | except UnicodeDecodeError: | CODE |
| HIGH | src/octop/infra/backend/probe.py | 126 | except Exception: | CODE |
| HIGH | src/octop/infra/browser/setup.py | 117 | except Exception: # noqa: BLE001 | CODE |
| HIGH | src/octop/infra/browser/setup.py | 416 | except Exception: # noqa: BLE001 | CODE |
| HIGH | src/octop/infra/browser/setup.py | 148 | except FileNotFoundError: | CODE |
| HIGH | src/octop/infra/mobile/adb.py | 653 | except ValueError: | CODE |
| HIGH | src/octop/infra/history/recorder.py | 352 | except ValueError: | CODE |
| HIGH | src/octop/infra/history/recorder.py | 193 | except ValueError: | CODE |
| HIGH | src/octop/infra/history/trajectory/projector.py | 261 | except ValueError: | CODE |
| 35 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_fnos_native_stop.py | 145 | if kill -0 {wrapper.pid} 2>/dev/null; then | CODE |
| HIGH⚡ | tests/unit/test_fnos_docker_persist.py | 426 | octop_assert_native_arch && exit 10 | CODE |
| HIGH⚡ | tests/unit/test_fnos_docker_persist.py | 428 | octop_assert_native_arch || exit 11 | CODE |
| HIGH⚡ | tests/unit/test_fnos_docker_persist.py | 430 | octop_assert_native_arch || exit 12 | CODE |
| HIGH⚡ | tests/unit/gateway/test_dashboard_ws.py | 31 | await hub.push("c1", {"type": "token", "content": "hi"}) | CODE |
| HIGH⚡ | tests/unit/gateway/test_dashboard_ws.py | 33 | await hub.push("c1", {"type": "token", "content": "miss"}) | CODE |
| HIGH⚡ | tests/unit/gateway/test_cli_channel.py | 23 | await hub.push("c1", {"type": "token", "content": "hi"}) | CODE |
| HIGH⚡ | tests/unit/gateway/test_cli_channel.py | 25 | await hub.push("c1", {"type": "token", "content": "miss"}) | CODE |
| HIGH | tests/integration/test_memory_api.py | 400 | # Fresh agent: AUTO (null). | COMMENT |
| HIGH | src/octop/infra/connectors/gateway/wecom_creds.py | 30 | Format (from WecomTeam/wecom-cli): AES-256-GCM ciphertext as ``nonce || ct||tag``, | STRING |
| HIGH | src/octop/infra/agents/experts/catalog.py | 621 | """Workspace field, then catalog template, then name-based defaults (never null). | STRING |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 149 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 168 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 177 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 191 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 149 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 168 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 177 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 191 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 151 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 170 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 179 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 193 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …skills/publisher-multi-platform/scripts/xhs_publish.py | 475 | print(" 安装: pip install playwright && playwright install chromium") | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 855 | systemctl disable octop-desktop-xvnc octop-desktop-openbox octop-desktop-session 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 856 | systemctl stop octop-desktop-xvnc octop-desktop-openbox octop-desktop-session 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 857 | systemctl reset-failed octop-desktop-xvnc octop-desktop-openbox octop-desktop-session 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 858 | systemctl daemon-reload 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 864 | systemctl daemon-reload 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 868 | /usr/share/backgrounds/octop-desktop-wallpaper.svg 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 869 | rm -f /usr/share/icons/hicolor/48x48/apps/octop-start-menu.png 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 876 | /root/Desktop/browser.desktop 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 883 | /root/.cache/xfce4/xfdesktop 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 884 | pkill -9 -f 'import -display :99' 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 885 | pkill -9 -f 'Xvnc :99' 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 886 | pkill -9 -f '/opt/octop-desktop/' 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 887 | pkill -x xfce4-panel 2>/dev/null || true | CODE |
| HIGH⚡ | src/octop/infra/desktop/setup.py | 888 | pkill -f 'xfdesktop --display' 2>/dev/null || true | CODE |
| HIGH | src/octop/infra/utils/docker_env.py | 215 | "open -a Docker 2>/dev/null || open -a OrbStack 2>/dev/null || true\n" | CODE |
| HIGH | src/octop/infra/utils/docker_env.py | 221 | "docker context use default 2>/dev/null || true\n" | CODE |
| HIGH | src/octop/infra/mobile/adb.py | 569 | "echo mem_kb=$(awk '/MemTotal/{print $2}' /proc/meminfo 2>/dev/null); " | CODE |
| HIGH | src/octop/infra/mobile/adb.py | 570 | "echo cores=$(getconf _NPROCESSORS_ONLN 2>/dev/null || nproc 2>/dev/null || echo); " | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 105 | await self._hub.push( | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 109 | await self._hub.push(conn_id, {"type": "done"}) | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 114 | await self._hub.push(conn_id, chunk) | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 122 | await self._hub.push( | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 126 | await self._hub.push(conn_id, {"type": "done"}) | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 131 | await self._hub.push(conn_id, {"type": "token", "content": text}) | CODE |
| HIGH⚡ | src/octop/infra/gateway/cli/cli_channel.py | 132 | await self._hub.push(conn_id, {"type": "done"}) | CODE |
| HIGH | src/octop/infra/gateway/cli/cli_channel.py | 161 | await self._hub.push(conn_id, frame) | CODE |
| HIGH⚡ | src/octop/infra/gateway/ws/ws_hub.py | 138 | await self.push(targets[0], outbound) | CODE |
| HIGH⚡ | src/octop/infra/gateway/ws/ws_hub.py | 140 | await asyncio.gather(*(self.push(conn_id, outbound) for conn_id in targets)) | CODE |
| HIGH⚡ | src/octop/infra/gateway/ws/ws_hub.py | 149 | await self.push(targets[0], frame) | CODE |
| HIGH⚡ | src/octop/infra/gateway/ws/ws_hub.py | 151 | await asyncio.gather(*(self.push(conn_id, frame) for conn_id in targets)) | CODE |
| HIGH⚡ | src/octop/infra/gateway/ws/ws_hub.py | 160 | await self.push(connection_id, frame) | CODE |
| HIGH | src/octop/infra/gateway/ws/ws_channel.py | 106 | await self._hub.push(conn_id, {"type": "error", "message": "missing thread_id"}) | CODE |
| HIGH | src/octop/infra/gateway/ws/ws_channel.py | 107 | await self._hub.push(conn_id, {"type": "done"}) | CODE |
| HIGH | src/octop/infra/gateway/ws/ws_channel.py | 187 | await self._hub.push(conn_id, {"type": "token", "content": text}) | CODE |
| HIGH | src/octop/infra/gateway/ws/ws_channel.py | 188 | await self._hub.push(conn_id, {"type": "done"}) | CODE |
| HIGH | src/octop/infra/gateway/ws/ws_channel.py | 221 | await self._hub.push(conn_id, frame) | CODE |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/agents/test_agent_avatar.py | 167 | def set_icon_url(self, agent_id: str, icon_url: str | None) -> None: | CODE |
| LOW | tests/integration/conftest.py | 30 | __all__ = [ | CODE |
| LOW | tests/support/ldap_fake.py | 295 | __all__ = ["FakeLdapDirectory", "FakeLdapGroup", "FakeLdapUser", "fake_user"] | CODE |
| LOW | tests/support/fakes.py | 212 | def set_skill_package_roots(self, roots: list[dict[str, str]] | None) -> None: | CODE |
| LOW | src/octop/config.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/launch.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/server.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/server.py | 638 | def _setup_logging(self) -> None: | CODE |
| LOW | src/octop/infra/connectors/service.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/connectors/probe.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/connectors/oauth/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/octop/infra/connectors/gateway/protocol.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/connectors/gateway/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/octop/infra/connectors/gateway/agently_watch.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/ldap/service.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/ldap/client.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/captcha/store.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/captcha/__init__.py | 31 | __all__ = [ | CODE |
| LOW | src/octop/infra/auth/captcha/providers.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/captcha/verify.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/captcha/verify.py | 25 | def set_test_siteverify_url(slug: str, url: str | None) -> None: | CODE |
| LOW | src/octop/infra/auth/sso/service.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/auth/sso/__init__.py | 5 | __all__ = ["SsoService"] | CODE |
| LOW | src/octop/infra/auth/sso/providers/__init__.py | 27 | __all__ = ["SSO_KINDS", "IdentityProvider", "build_adapters"] | CODE |
| LOW | src/octop/infra/bridge/http_tunnel.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/bridge/transport.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/bridge/__init__.py | 13 | __all__ = [ | CODE |
| LOW | src/octop/infra/bridge/manager.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/bridge/manager.py | 170 | def set_token_signer(self, signer: Any) -> None: | CODE |
| LOW | src/octop/infra/bridge/manager.py | 173 | def set_advertise_base_url(self, url: str) -> None: | CODE |
| LOW | src/octop/infra/setup/service.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/setup/self_update.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/setup/tls/acme_issue.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/setup/tls/__init__.py | 7 | __all__ = ["TlsManager", "challenge_store", "resolve_tls_paths"] | CODE |
| LOW | src/octop/infra/setup/tls/renewal.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/setup/tls/manager.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/setup/tls/manager.py | 82 | def _set_task(self, **kwargs: object) -> None: | CODE |
| LOW | src/octop/infra/setup/tls/preflight.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/conversation_mode.py | 116 | __all__ = [ | CODE |
| LOW⚡ | src/octop/infra/agents/manager.py | 470 | def set_cron_manager(self, cron_manager: CronManager) -> None: | CODE |
| LOW⚡ | src/octop/infra/agents/manager.py | 474 | def set_proactive_scheduler(self, scheduler: ProactiveCareScheduler) -> None: | CODE |
| LOW⚡ | src/octop/infra/agents/manager.py | 478 | def set_team_processor(self, team_processor: Any | None) -> None: | CODE |
| LOW⚡ | src/octop/infra/agents/manager.py | 484 | def set_hitl_session_store(self, store: HitlSessionPolicyStore | None) -> None: | CODE |
| LOW⚡ | src/octop/infra/agents/manager.py | 1355 | def set_thread_model(self, agent_id: str, thread_id: str, model: str) -> None: | CODE |
| LOW | src/octop/infra/agents/manager.py | 97 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/builtin_skills/__init__.py | 90 | __all__ = [ | CODE |
| LOW | src/octop/infra/agents/middleware/octop_ui_offload.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/middleware/octop_ui_offload.py | 88 | __all__ = ["OctopUiOffloadMiddleware"] | CODE |
| LOW | src/octop/infra/agents/middleware/token_quota.py | 48 | __all__ = ["TokenQuotaMiddleware", "configurable_user_id"] | CODE |
| LOW | src/octop/infra/agents/middleware/workspace_image.py | 88 | __all__ = ["WorkspaceImageMaterializeMiddleware"] | CODE |
| LOW | src/octop/infra/agents/middleware/browser_profile.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/middleware/browser_profile.py | 71 | __all__ = ["BrowserProfileMiddleware"] | CODE |
| LOW | src/octop/infra/agents/middleware/reasoning.py | 50 | __all__ = ["CONFIG_KEY", "ReasoningRequestMiddleware"] | CODE |
| LOW | src/octop/infra/agents/middleware/binary_read_guard.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/middleware/binary_read_guard.py | 128 | __all__ = ["BinaryReadGuardMiddleware", "read_file_block_reason"] | CODE |
| LOW | src/octop/infra/agents/middleware/thread_artifacts.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/octop/infra/agents/middleware/thread_artifacts.py | 172 | __all__ = [ | CODE |
| LOW | src/octop/infra/agents/settings/runtime_limits.py | 171 | __all__ = [ | CODE |
| LOW | src/octop/infra/agents/settings/media_generation.py | 614 | __all__ = [ | CODE |
| LOW | src/octop/infra/agents/settings/langfuse.py | 18 | logger = logging.getLogger(__name__) | CODE |
| 236 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/agents/test_subagent_catalog.py | 16 | CODE | |
| LOW | tests/unit/agents/test_memory_slim.py | 683 | CODE | |
| LOW | tests/unit/knowledge/test_parse.py | 31 | CODE | |
| LOW | tests/unit/api/test_terminal_sessions.py | 57 | CODE | |
| LOW | tests/integration/test_trajectory_api.py | 25 | CODE | |
| LOW | tests/integration/test_chat_ws.py | 432 | CODE | |
| LOW | tests/support/fakes.py | 216 | CODE | |
| LOW | desktop/portable/templates/launch.py | 18 | CODE | |
| LOW | src/octop/infra/connectors/service.py | 225 | CODE | |
| LOW | src/octop/infra/connectors/custom_mcp.py | 345 | CODE | |
| LOW | src/octop/infra/connectors/builder.py | 460 | CODE | |
| LOW | src/octop/infra/connectors/builder.py | 505 | CODE | |
| LOW | src/octop/infra/connectors/probe.py | 78 | CODE | |
| LOW | src/octop/infra/connectors/probe.py | 225 | CODE | |
| LOW | src/octop/infra/connectors/probe.py | 330 | CODE | |
| LOW | src/octop/infra/connectors/gateway/cli_dirs.py | 26 | CODE | |
| LOW | src/octop/infra/connectors/gateway/adapters/fliggy.py | 196 | CODE | |
| LOW | …octop/infra/connectors/gateway/adapters/agently_cli.py | 398 | CODE | |
| LOW | src/octop/infra/connectors/gateway/adapters/qq_mail.py | 231 | CODE | |
| LOW | src/octop/infra/bridge/manager.py | 1370 | CODE | |
| LOW | src/octop/infra/bridge/manager.py | 1551 | CODE | |
| LOW | src/octop/infra/setup/tls/preflight.py | 104 | CODE | |
| LOW | src/octop/infra/agents/manager.py | 596 | CODE | |
| LOW | src/octop/infra/agents/manager.py | 1669 | CODE | |
| LOW | src/octop/infra/agents/manager.py | 2299 | CODE | |
| LOW | src/octop/infra/agents/manager.py | 3068 | CODE | |
| LOW | …/builtin_skills/skill-manager/scripts/manage_skills.py | 194 | CODE | |
| LOW | …/builtin_skills/skill-manager/scripts/manage_skills.py | 650 | CODE | |
| LOW | src/octop/infra/agents/subagents/catalog.py | 174 | CODE | |
| LOW | src/octop/infra/agents/memory/slim_control.py | 135 | CODE | |
| LOW | src/octop/infra/agents/plugins/plugin_tool_defaults.py | 41 | CODE | |
| LOW | src/octop/infra/agents/plugins/manager.py | 639 | CODE | |
| LOW | src/octop/infra/agents/plugins/manager.py | 736 | CODE | |
| LOW | …/octop/infra/agents/plugins/bundled/meme-maker/main.py | 27 | CODE | |
| LOW | …ctop/infra/agents/plugins/bundled/wiki-summary/main.py | 56 | CODE | |
| LOW | src/octop/infra/agents/providers/store.py | 131 | CODE | |
| LOW | src/octop/infra/agents/providers/onnx_download.py | 352 | CODE | |
| LOW | src/octop/infra/agents/providers/reasoning.py | 160 | CODE | |
| LOW | src/octop/infra/agents/threads/artifact.py | 250 | CODE | |
| LOW | src/octop/infra/agents/threads/fork.py | 52 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 1155 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 1298 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 1357 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 1455 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 319 | CODE | |
| LOW | src/octop/infra/agents/teams/team_manager.py | 848 | CODE | |
| LOW | src/octop/infra/agents/experts/skillhub_market.py | 597 | CODE | |
| LOW | src/octop/infra/agents/experts/skillhub_market.py | 742 | CODE | |
| LOW | …nical-learning-subscription/scripts/validate_output.py | 256 | CODE | |
| LOW | …nical-learning-subscription/scripts/validate_output.py | 386 | CODE | |
| LOW | …/skills/cvm-ai-doctor/scripts/cluster_patrol_server.py | 58 | CODE | |
| LOW | …i-doctor/skills/cvm-ai-doctor/scripts/patrol_server.py | 40 | CODE | |
| LOW | …/skills/cvm-ai-doctor/scripts/cluster_patrol_record.py | 47 | CODE | |
| LOW | …ibrary/office-automation/skills/xlsx/scripts/recalc.py | 74 | CODE | |
| LOW | …y/office-automation/skills/xlsx/scripts/office/pack.py | 24 | CODE | |
| LOW | …y/office-automation/skills/xlsx/scripts/office/pack.py | 106 | CODE | |
| LOW | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 26 | CODE | |
| LOW | …tomation/skills/xlsx/scripts/office/validators/docx.py | 66 | CODE | |
| LOW | …tomation/skills/xlsx/scripts/office/validators/docx.py | 106 | CODE | |
| LOW | …tomation/skills/xlsx/scripts/office/validators/docx.py | 242 | CODE | |
| 187 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …y/office-automation/skills/xlsx/scripts/office/pack.py | 0 | pack a directory into a docx, pptx, or xlsx file. validates with auto-repair, condenses xml formatting, and creates the | STRING |
| HIGH | …y/office-automation/skills/pptx/scripts/office/pack.py | 0 | pack a directory into a docx, pptx, or xlsx file. validates with auto-repair, condenses xml formatting, and creates the | STRING |
| HIGH | …y/office-automation/skills/docx/scripts/office/pack.py | 0 | pack a directory into a docx, pptx, or xlsx file. validates with auto-repair, condenses xml formatting, and creates the | STRING |
| HIGH | …fice-automation/skills/xlsx/scripts/office/validate.py | 0 | command line tool to validate office document xml files against xsd schemas and tracked changes. usage: python validate. | STRING |
| HIGH | …fice-automation/skills/pptx/scripts/office/validate.py | 0 | command line tool to validate office document xml files against xsd schemas and tracked changes. usage: python validate. | STRING |
| HIGH | …fice-automation/skills/docx/scripts/office/validate.py | 0 | command line tool to validate office document xml files against xsd schemas and tracked changes. usage: python validate. | STRING |
| HIGH | …office-automation/skills/xlsx/scripts/office/unpack.py | 0 | unpack office files (docx, pptx, xlsx) for editing. extracts the zip archive, pretty-prints xml files, and optionally: - | STRING |
| HIGH | …office-automation/skills/pptx/scripts/office/unpack.py | 0 | unpack office files (docx, pptx, xlsx) for editing. extracts the zip archive, pretty-prints xml files, and optionally: - | STRING |
| HIGH | …office-automation/skills/docx/scripts/office/unpack.py | 0 | unpack office files (docx, pptx, xlsx) for editing. extracts the zip archive, pretty-prints xml files, and optionally: - | STRING |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 0 | helper for running libreoffice (soffice) in environments where af_unix sockets may be blocked (e.g., sandboxed vms). det | STRING |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 0 | helper for running libreoffice (soffice) in environments where af_unix sockets may be blocked (e.g., sandboxed vms). det | STRING |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 0 | helper for running libreoffice (soffice) in environments where af_unix sockets may be blocked (e.g., sandboxed vms). det | STRING |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 0 | return the soffice command name for the current platform. | STRING |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 0 | return the soffice command name for the current platform. | STRING |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 0 | return the soffice command name for the current platform. | STRING |
| HIGH | …ffice-automation/skills/xlsx/scripts/office/soffice.py | 0 | #define _gnu_source #include <dlfcn.h> #include <errno.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #in | STRING |
| HIGH | …ffice-automation/skills/pptx/scripts/office/soffice.py | 0 | #define _gnu_source #include <dlfcn.h> #include <errno.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #in | STRING |
| HIGH | …ffice-automation/skills/docx/scripts/office/soffice.py | 0 | #define _gnu_source #include <dlfcn.h> #include <errno.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #in | STRING |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/docx.py | 0 | validator for word document xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/pptx/scripts/office/validators/docx.py | 0 | validator for word document xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/docx/scripts/office/validators/docx.py | 0 | validator for word document xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/pptx.py | 0 | validator for powerpoint presentation xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/pptx/scripts/office/validators/pptx.py | 0 | validator for powerpoint presentation xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/docx/scripts/office/validators/pptx.py | 0 | validator for powerpoint presentation xml files against xsd schemas. | STRING |
| HIGH | …tomation/skills/xlsx/scripts/office/validators/base.py | 0 | base validator with common validation logic for document files. | STRING |
| HIGH | …tomation/skills/pptx/scripts/office/validators/base.py | 0 | base validator with common validation logic for document files. | STRING |
| HIGH | …tomation/skills/docx/scripts/office/validators/base.py | 0 | base validator with common validation logic for document files. | STRING |
| HIGH | …kills/xlsx/scripts/office/helpers/simplify_redlines.py | 0 | simplify tracked changes by merging adjacent w:ins or w:del elements. merges adjacent <w:ins> elements from the same aut | STRING |
| HIGH | …kills/pptx/scripts/office/helpers/simplify_redlines.py | 0 | simplify tracked changes by merging adjacent w:ins or w:del elements. merges adjacent <w:ins> elements from the same aut | STRING |
| HIGH | …kills/docx/scripts/office/helpers/simplify_redlines.py | 0 | simplify tracked changes by merging adjacent w:ins or w:del elements. merges adjacent <w:ins> elements from the same aut | STRING |
| HIGH | …ation/skills/xlsx/scripts/office/helpers/merge_runs.py | 0 | merge adjacent runs with identical formatting in docx. merges adjacent <w:r> elements that have identical <w:rpr> proper | STRING |
| HIGH | …ation/skills/pptx/scripts/office/helpers/merge_runs.py | 0 | merge adjacent runs with identical formatting in docx. merges adjacent <w:r> elements that have identical <w:rpr> proper | STRING |
| HIGH | …ation/skills/docx/scripts/office/helpers/merge_runs.py | 0 | merge adjacent runs with identical formatting in docx. merges adjacent <w:r> elements that have identical <w:rpr> proper | STRING |
| HIGH | src/octop/infra/db/migrate.py | 0 | insert into user_policies( policy_id, user_id, name, enabled, value, created_at, updated_at ) values (?, ?, ?, 1, ?, ?, | STRING |
| HIGH | src/octop/infra/db/repos/invites.py | 0 | insert into user_policies( policy_id, user_id, name, enabled, value, created_at, updated_at ) values (?, ?, ?, 1, ?, ?, | STRING |
| HIGH | src/octop/infra/db/repos/user_policies.py | 0 | insert into user_policies( policy_id, user_id, name, enabled, value, created_at, updated_at ) values (?, ?, ?, 1, ?, ?, | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/conftest.py | 13 | # Modules whose tests boot OctopServer, real harness, browser tooling, or bwrap. | COMMENT |
| MEDIUM | tests/unit/test_provider_preset_expansion.py | 26 | # Match by prefix: octop-harness tags token-plan model ids with a release | COMMENT |
| MEDIUM | tests/unit/agents/test_workspace_dir.py | 44 | # Host ops map; harness should keep the persisted string as-is. | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_manager.py | 698 | # Kept for harness FilesystemGuardMiddleware (not passed to deepagents). | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_manager.py | 1685 | # POSIX hands harness the persisted agent-facing path — not the host join. | COMMENT |
| MEDIUM⚡ | tests/unit/agents/test_agent_manager.py | 1686 | # Windows cannot express it as absolute, so harness gets the host mapping. | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_manager.py | 1287 | # Published harness still treats a continue-on-error AIMessage as success. | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_manager.py | 1960 | # Avoid starting harness runtime in this unit-test context. | COMMENT |
| MEDIUM | tests/unit/agents/test_agent_manager.py | 1240 | assert not cfg.model_retry_enabled # Do not nest the harness's continue-on-error retry. | CODE |
| MEDIUM | tests/unit/agents/test_agent_registry.py | 1178 | # by the plugin manager sync (absent in this harness-only test setup). | COMMENT |
| MEDIUM⚡ | tests/unit/backend/test_resolver.py | 89 | # harness falls back to workspace_dir on its own; do not rewrite absent config. | COMMENT |
| MEDIUM | tests/unit/trajectory/test_turn_context.py | 96 | # Allow-list may use slug (harness identity keys). | COMMENT |
| MEDIUM | tests/support/harness.py | 107 | # real running harness agent is the same object across reloads. | COMMENT |
| MEDIUM | tests/support/fakes.py | 257 | # Merge by slug, mirroring the harness catalog: workspace skills | COMMENT |
| MEDIUM | tests/support/fakes.py | 293 | # harness catalog where ``skills/<slug>/SKILL.md`` is the layout. | COMMENT |
| MEDIUM | tests/support/fakes.py | 297 | # Mirror harness: skip soft-deleted skills (``removed: true`` frontmatter). | COMMENT |
| MEDIUM | dashboard/package-lock.json | 12427 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | scripts/install-octop.sh | 624 | # octop-harness>=0.9.18 已在依赖中 pin;此处在验证前再钉一次,覆盖仍拉取到 | COMMENT |
| MEDIUM | scripts/install-octop.sh | 625 | # 旧版 harness / 镜像滞后的安装路径。待 Octop 发版跟上后可删除。 | COMMENT |
| MEDIUM | scripts/install.sh | 624 | # octop-harness>=0.9.18 已在依赖中 pin;此处在验证前再钉一次,覆盖仍拉取到 | COMMENT |
| MEDIUM | scripts/install.sh | 625 | # 旧版 harness / 镜像滞后的安装路径。待 Octop 发版跟上后可删除。 | COMMENT |
| MEDIUM | scripts/install.sh | 700 | # macOS 无可用 bwrap;仅 Linux 安装。缺失时 harness 走普通 local_shell(无目录狱)。 | COMMENT |
| MEDIUM | src/octop/__init__.py | 10 | # at import so CLI, ``octop run``, and in-process harness clients all honor it. | COMMENT |
| MEDIUM⚡ | src/octop/infra/connectors/catalog.py | 56 | # remote: harness talks to the vendor URL. | COMMENT |
| MEDIUM⚡ | src/octop/infra/connectors/catalog.py | 57 | # gateway: in-process Python adapter; harness config is a name-only placeholder. | COMMENT |
| MEDIUM⚡ | src/octop/infra/connectors/catalog.py | 58 | # internal: Octop-hosted HTTP MCP at /api/internal/mcp; harness loads via HTTP. | COMMENT |
| MEDIUM | src/octop/infra/connectors/builder.py | 533 | # Name-only placeholder: harness skips specs without ``transport``; | COMMENT |
| MEDIUM | src/octop/infra/connectors/builder.py | 562 | # Defer loading: placeholder without ``transport`` so harness skips | COMMENT |
| MEDIUM | src/octop/infra/connectors/gateway/langchain.py | 34 | # Null stripping for args_schema happens in harness mcp_args_model. | COMMENT |
| MEDIUM | src/octop/infra/bridge/tunnel_policy.py | 39 | # Chat dock browser viewer (peer harness). Install / record-replay stay denied. | COMMENT |
| MEDIUM | src/octop/infra/setup/self_update.py | 789 | installer = detect_installer() # uv 优先:pip 对 octop-harness[all] 依赖树解析会卡死 | CODE |
| MEDIUM⚡ | src/octop/infra/agents/manager.py | 593 | # CRUD — persist agent rows and sync harness runtime | COMMENT |
| MEDIUM⚡ | src/octop/infra/agents/manager.py | 1028 | # Row & config reads — DB lookups, no harness required | COMMENT |
| MEDIUM⚡ | src/octop/infra/agents/manager.py | 1373 | # Hot-reload — rebuild harness agents after config / provider changes | COMMENT |
| MEDIUM⚡ | src/octop/infra/agents/manager.py | 1896 | # Settings persistence — push global policy into harness runtime | COMMENT |
| MEDIUM⚡ | src/octop/infra/agents/manager.py | 2942 | # Internal — harness config assembly & stream request prep | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 218 | # octop-harness 0.9.5 predates the interval trigger fields. Keep | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 220 | # with its per-session idle watchdog until a newer harness is installed. | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 400 | # double-register the same harness id ("already exists in the registry"). | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 402 | # Serialize harness execution per thread. Dashboard turns are queued by | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 2352 | # Surface unrepairable manifests that harness silently skipped. | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 2581 | # Never let harness copy builtin skills just to strip them later. | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 3083 | # and persist the new path; re-read so harness gets that string. | COMMENT |
| MEDIUM | src/octop/infra/agents/manager.py | 3219 | # FilesystemGuard + ModelSettings live in octop-harness (auto-mounted). | COMMENT |
| MEDIUM | src/octop/infra/agents/settings/acp.py | 18 | # Until octop-harness ships these builtins, merge Octop-side defaults. | COMMENT |
| MEDIUM | src/octop/infra/agents/settings/tool_catalog.py | 63 | # harness builtins | COMMENT |
| MEDIUM | src/octop/infra/agents/threads/context_breakdown.py | 11 | # Prefer harness SoT when present (PyPI may lag local editable installs). | COMMENT |
| MEDIUM | src/octop/infra/agents/threads/context_breakdown.py | 24 | except ImportError: # pragma: no cover - older octop-harness wheels | CODE |
| MEDIUM | src/octop/infra/browser/setup.py | 486 | # Stop Chrome processes that were launched with our harness profiles so | COMMENT |
| MEDIUM | src/octop/infra/history/trajectory/turn_context.py | 11 | # Mirror harness ``SkillFilterMiddleware``: memory files are injected via | COMMENT |
| MEDIUM | src/octop/infra/history/trajectory/service.py | 32 | #: Active turn id when harness chunks omit ``turn_id``. | COMMENT |
| MEDIUM | src/octop/infra/gateway/slash/parser.py | 10 | # The harness parser stops the command name at the first non-word character, so | COMMENT |
| MEDIUM⚡ | src/octop/infra/gateway/ws/ws_channel.py | 149 | # Never let delivery failures abort the harness turn — otherwise a | COMMENT |
| MEDIUM | src/octop/infra/gateway/process/processor.py | 894 | # -- Raw harness-chunk stream (Dashboard WS, etc.) ------------------------- | COMMENT |
| MEDIUM | src/octop/infra/gateway/media/backend_files.py | 61 | # New default is ``~/.octop-browser``; keep ``~/.harness-browser`` as a deny | COMMENT |
| MEDIUM | src/octop/api/routers/providers.py | 68 | # Fields that affect harness factory / agent runtime when patched. | COMMENT |
| MEDIUM | src/octop/api/routers/browser/harness.py | 23 | # In-memory control ownership per session (keyed by harness profile / session_id). | COMMENT |
| LOW | src/octop/api/routers/browser/record_replay.py | 271 | # Non-critical: if we can't read the skill file, just return without it | COMMENT |
| MEDIUM | src/octop/i18n/domains/stream.py | 11 | # Defined locally so Octop still imports on older harness wheels. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/unit/bridge/test_update_connection.py | 72 | assert mgr._repo.update_settings.call_args.kwargs.get("update_credentials") is not True | CODE |
| CRITICAL | tests/unit/api/test_chat_history.py | 278 | server.app_runtime.gateway.history_backfill.enqueue.assert_called_once() | CODE |
| CRITICAL | tests/unit/api/test_chat_history.py | 379 | server.app_runtime.gateway.history_backfill.enqueue.assert_not_called() | CODE |
| CRITICAL | …/library/zh/testing/testing-performance-benchmarker.md | 142 | <li>平均响应时间: ${data.metrics.http_req_duration.values.avg.toFixed(2)}ms</li> | CODE |
| CRITICAL | …/library/en/testing/testing-performance-benchmarker.md | 142 | <li>Average Response Time: ${data.metrics.http_req_duration.values.avg.toFixed(2)}ms</li> | CODE |
| CRITICAL | src/octop/api/routers/chat/history.py | 574 | server.app_runtime.gateway.processor.hitl_coordinator.session_policies.set( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/connectors/test_qq_mail_adapter.py | 22 | "email": "user@example.com", | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 24 | fake_user( | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 27 | email="alice@example.org", | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 35 | fake_user( | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 38 | email="bob@example.org", | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 70 | assert identity.email == "alice@example.org" | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 84 | directory.add(fake_user("dave", "davepw", email="dave@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 84 | directory.add(fake_user("dave", "davepw", email="dave@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 94 | fake_user( | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 137 | identity = _client().authenticate("alice@example.org", "alicepw") | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 144 | fake_user("alice2", "otherpw", email="alice2@example.org", display_name="Alice Two") | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 144 | fake_user("alice2", "otherpw", email="alice2@example.org", display_name="Alice Two") | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 153 | directory.add(fake_user("a1", "pw1", email="shared@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 153 | directory.add(fake_user("a1", "pw1", email="shared@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 154 | directory.add(fake_user("a2", "pw2", email="shared@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 154 | directory.add(fake_user("a2", "pw2", email="shared@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 157 | assert client.authenticate("shared@example.org", "pw1") is None | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 158 | assert client.authenticate("shared@example.org", "pw2") is None | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 177 | identity = _client(user_filter="(mail={username})").authenticate("alice@example.org", "alicepw") | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 185 | directory.add(fake_user(f"user{index}", "pw", email="dupe@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 185 | directory.add(fake_user(f"user{index}", "pw", email="dupe@example.org")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 186 | assert _client(user_filter="(mail={username})").authenticate("dupe@example.org", "pw") is None | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 223 | directory.add(fake_user("ann", "annpw", extra={"objectGUID": [bytes.fromhex("0a0b0c")]})) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 230 | directory.add(fake_user("plain", "plainpw")) # no entryUUID / objectGUID | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 288 | anonymous.add(fake_user("carol", "carolpw", display_name="Carol")) | CODE |
| LOW⚡ | tests/unit/auth/test_ldap_client.py | 322 | directory.add(fake_user("dave", "davepw")) | CODE |
| LOW | tests/unit/auth/test_ldap_client.py | 6 | from tests.support.ldap_fake import FakeLdapDirectory, FakeLdapGroup, fake_user | CODE |
| LOW | tests/unit/knowledge/test_ocr.py | 99 | pdf.write_bytes(b"placeholder") | CODE |
| LOW⚡ | tests/integration/test_auth_ldap.py | 41 | fake_user( | CODE |
| LOW⚡ | tests/integration/test_auth_ldap.py | 44 | email="alice@example.org", | CODE |
| LOW⚡ | tests/integration/test_auth_ldap.py | 52 | fake_user( | CODE |
| LOW⚡ | tests/integration/test_auth_ldap.py | 55 | email="carol@example.org", | CODE |
| LOW | tests/integration/test_auth_ldap.py | 16 | from tests.support.ldap_fake import FakeLdapDirectory, fake_user | CODE |
| LOW | tests/integration/test_auth_ldap.py | 95 | assert row.email == "alice@example.org" | CODE |
| LOW | tests/support/ldap_fake.py | 278 | def fake_user( | CODE |
| LOW | tests/support/ldap_fake.py | 295 | __all__ = ["FakeLdapDirectory", "FakeLdapGroup", "FakeLdapUser", "fake_user"] | CODE |
| LOW | docs/ldap.md | 141 | mail = "alice@example.org" | CODE |
| LOW | docs/ldap.md | 153 | mail = "bob@example.org" | CODE |
| LOW | docs/ldap.md | 165 | mail = "carol@example.org" | CODE |
| LOW | src/octop/infra/connectors/catalog.py | 650 | "placeholder": field.placeholder, | CODE |
| LOW | …ubagents/library/zh/security/security-senior-secops.md | 745 | const res = await loginAs("user@example.com", "password"); | CODE |
| LOW | …library/zh/engineering/engineering-technical-writer.md | 170 | line1: "123 Main St" | CODE |
| LOW | …ubagents/library/en/security/security-senior-secops.md | 746 | const res = await loginAs("user@example.com", "password"); | CODE |
| LOW | …library/en/engineering/engineering-technical-writer.md | 171 | line1: "123 Main St" | CODE |
| LOW | …/commands/package-management/configure-auto-updates.md | 68 | Unattended-Upgrade::Mail "user@example.com"; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mise.toml | 1 | # Local toolchain pins. Versions follow CI / Docker, not the host default. | COMMENT |
| LOW | docker/docker_build.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | docker/docker-compose.postgres.yml | 1 | # ============================================================================= | COMMENT |
| LOW | docker/docker-compose.mobile.yml | 1 | # ============================================================================= | COMMENT |
| LOW | docker/docker-entrypoint.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | docker/docker-compose.yml | 1 | # ============================================================================= | COMMENT |
| LOW | desktop/portable/package.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | dashboard/src/pages/Chat/hooks/useChat.ts | 541 | // | COMMENT |
| LOW | scripts/install-octop.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/build-fpk.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/build-fpk.sh | 21 | # (site-packages 先在 aarch64 上装好再拷过来)。 | COMMENT |
| LOW | scripts/fnos/common.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/workflows/docker-publish.yml | 1 | name: Docker Publish | COMMENT |
| LOW | .github/workflows/fnos-build-fpk.yml | 1 | name: Build Octop FPK | COMMENT |
| LOW | …/specialized/government-digital-presales-consultant.md | 161 | - 与现有系统的集成计划 | COMMENT |
| LOW | …/specialized/government-digital-presales-consultant.md | 181 | ### 5.3 实施时间表与里程碑 | COMMENT |
| LOW | …bagents/library/zh/specialized/specialized-model-qa.md | 401 | ### 1. 文档与治理 - [通过/失败] | COMMENT |
| LOW | …ubagents/library/zh/specialized/agents-orchestrator.md | 81 | # 读取任务列表以了解范围 | COMMENT |
| LOW | …ents/subagents/library/zh/legal/legal-policy-writer.md | 221 | - 生效日期: | COMMENT |
| LOW | …/specialized/government-digital-presales-consultant.md | 181 | ### 5.1 Implementation Methodology | COMMENT |
| LOW | …bagents/library/en/specialized/specialized-model-qa.md | 401 | | # | Finding | Severity | Domain | Remediation | Deadline | | COMMENT |
| LOW | …al-learning-subscription/references/source-policy.yaml | 101 | # 信源分级(A 正式采集 / B 指南发现与受控承载 / C 全网发现与明确转述 / D 不入证据链): | COMMENT |
| LOW | …-doctor/references/skill-collaboration-tencentcloud.md | 41 | # 深度分析(根据异常类型选择对应脚本) | COMMENT |
| LOW | …y/cvm-ai-doctor/skills/cvm-ai-doctor/scripts/patrol.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …i-doctor/skills/cvm-ai-doctor/scripts/analyze_stats.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …octor/skills/cvm-ai-doctor/scripts/cluster_deep_cpu.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ctor/skills/cvm-ai-doctor/scripts/cluster_deep_disk.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ctor/skills/cvm-ai-doctor/scripts/combined_analysis.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …i-doctor/skills/cvm-ai-doctor/scripts/cluster_score.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …i-doctor/skills/cvm-ai-doctor/scripts/cluster_score.sh | 21 | # load_ratio float (load / ncpu) | COMMENT |
| LOW | …or/skills/cvm-ai-doctor/scripts/cluster_os_snapshot.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …or/skills/cvm-ai-doctor/scripts/cluster_deep_memory.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …vm-ai-doctor/skills/cvm-ai-doctor/scripts/deep_scan.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …octor/skills/cvm-ai-doctor/scripts/cluster_deep_ssh.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …r/skills/cvm-ai-doctor/scripts/cluster_deep_network.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …/parenting-companion/scripts/check_memory_freshness.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/octop/infra/desktop/scripts/linux/v1.0/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 21 | # of these packages. Always test upgrades in a test environment before | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 41 | # $ cat install-docker.sh | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 61 | # Use the --channel option to install from an alternative installation channel. | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 81 | # installing Docker packages. This is useful when you want to add the repository | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 221 | # version, or returns 1 (fail) otherwise. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 240 | # optional local ONNX embedding model cache (Models → Local): pip install "octop[local-embedding]" | COMMENT |
| MEDIUM | src/octop/infra/connectors/service.py | 664 | # --- Feishu CLI device-code user auth (domain orchestration) --- | COMMENT |
| MEDIUM | src/octop/infra/agents/settings/tool_catalog.py | 53 | # filesystem / orchestration (critical ones still listed, disableable=false) | COMMENT |
| MEDIUM | …gents/library/zh/specialized/ma-integration-manager.md | 354 | ### 整合健康仪表板 — RAG 标准 | COMMENT |
| MEDIUM | …ts/subagents/library/en/security/security-architect.md | 165 | # 1. Auth handled by dependency injection — fails before handler runs | COMMENT |
| MEDIUM | …gents/library/en/specialized/ma-integration-manager.md | 362 | ### Integration Health Dashboard — RAG Criteria | COMMENT |
| MEDIUM | …m-ai-doctor/commands/installation/clis/install-pipx.md | 125 | pipx install docker-compose # Docker orchestration | CODE |
| MEDIUM⚡ | …ctop/infra/gateway/bot_creators/yuanbao_bot_creator.py | 317 | # ---------- Main orchestration ---------- | COMMENT |
| MEDIUM⚡ | src/octop/i18n/domains/tools.py | 33 | # Sub-agent / multi-agent orchestration | COMMENT |
| MEDIUM⚡ | src/octop/i18n/domains/tools.py | 33 | # Sub-agent / multi-agent orchestration | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/octop/infra/bridge/manager.py | 488 | CODE | |
| LOW | src/octop/infra/agents/experts/catalog.py | 892 | CODE | |
| LOW | src/octop/infra/db/repos/users.py | 100 | CODE | |
| LOW | src/octop/infra/db/repos/cron.py | 223 | CODE | |
| LOW | src/octop/infra/db/repos/agents.py | 98 | CODE | |
| LOW | src/octop/infra/db/repos/agents.py | 231 | CODE | |
| LOW | src/octop/infra/db/repos/backends.py | 110 | CODE | |
| LOW | src/octop/infra/db/repos/knowledge.py | 205 | CODE | |
| LOW | src/octop/infra/db/repos/knowledge.py | 360 | CODE | |
| LOW | src/octop/infra/db/repos/usage.py | 145 | CODE | |
| LOW | src/octop/infra/gateway/slash/ctx.py | 86 | CODE | |
| LOW | src/octop/infra/gateway/process/harness_request.py | 255 | CODE | |
| LOW | src/octop/infra/gateway/process/processor.py | 138 | CODE | |
| LOW | src/octop/infra/cron/manager.py | 174 | CODE | |
| LOW | src/octop/api/routers/update.py | 133 | CODE | |
| LOW | src/octop/api/routers/backup.py | 377 | CODE | |
| LOW | src/octop/api/routers/skills.py | 171 | CODE | |
| LOW | src/octop/api/routers/memory_portable.py | 199 | CODE | |
| LOW | src/octop/api/routers/browser/record_replay.py | 324 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | desktop/portable/bootstrap-runtime.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/portable/package-linux-docker.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/portable/package.sh | 8 | # Usage: | COMMENT |
| LOW | desktop/portable/vendor-wheels.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/portable/templates/start.sh | 3 | # Usage: | COMMENT |
| LOW⚡ | …ctor/skills/cvm-ai-doctor/scripts/combined_analysis.sh | 10 | # Usage: | COMMENT |
| LOW⚡ | …vm-ai-doctor/skills/cvm-ai-doctor/scripts/deep_scan.sh | 9 | # Usage: | COMMENT |
| LOW | …kills/publisher-multi-platform/scripts/setup_server.sh | 5 | # Usage: | COMMENT |
| LOW | src/octop/infra/desktop/scripts/linux/v1.0/install.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/publisher-multi-platform/scripts/xhs_publish.py | 336 | # Check if we're logged in | COMMENT |
| LOW⚡ | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 388 | # Check if this is a forked Linux distro | COMMENT |
| LOW⚡ | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 393 | # Check if the `-u` option is supported | COMMENT |
| LOW⚡ | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 399 | # Check if the command has exited successfully, it means we're in a forked distro | COMMENT |
| LOW | …ctop/infra/mobile/scripts/linux/v1.0/install-docker.sh | 559 | # Check if this is a forked Linux distro | COMMENT |
| LOW | src/octop/api/routers/memory_portable.py | 163 | # Read the file content and stream it back | COMMENT |
| LOW | src/octop/api/routers/browser/stream.py | 75 | # Check if internal session is fully connected to prevent race conditions during tab switching | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …lls/publisher-multi-platform/scripts/wechat_publish.py | 972 | # Step 1: Publish to WeChat | COMMENT |
| LOW | …lls/publisher-multi-platform/scripts/wechat_publish.py | 988 | # Step 2: Publish to XHS | COMMENT |
| LOW | …kills/publisher-multi-platform/scripts/setup_server.sh | 26 | # Step 1: Check Node.js | COMMENT |
| LOW⚡ | …kills/publisher-multi-platform/scripts/setup_server.sh | 46 | # Step 2: Install wenyan-cli | COMMENT |
| LOW⚡ | …kills/publisher-multi-platform/scripts/setup_server.sh | 56 | # Step 3: Check env vars | COMMENT |
| LOW | …kills/publisher-multi-platform/scripts/setup_server.sh | 77 | # Step 4: Start server | COMMENT |
| LOW⚡ | …ctop/infra/gateway/bot_creators/yuanbao_bot_creator.py | 323 | # Step 1: Generate QR code | COMMENT |
| LOW⚡ | …ctop/infra/gateway/bot_creators/yuanbao_bot_creator.py | 331 | # Step 2: Emit scan code | COMMENT |
| LOW | …ctop/infra/gateway/bot_creators/yuanbao_bot_creator.py | 344 | # Step 3: Poll scan status | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/docker-compose.mobile.yml | 12 | # This file is standalone (not an overlay) because ``network_mode: host`` | COMMENT |
| MEDIUM | tests/conftest.py | 47 | # Creating an agent now starts a multi-hour asyncio.sleep (proactive care | COMMENT |
| MEDIUM | tests/support/app.py | 57 | # Creating an agent now starts a random-interval sleep (default ON). | COMMENT |
| MEDIUM | …lls/publisher-multi-platform/scripts/wechat_publish.py | 365 | # Create a simple placeholder | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_voice_probe.py | 55 | CODE | |
| MEDIUM | tests/unit/test_connectors.py | 1337 | CODE | |
| MEDIUM | tests/unit/api/test_chat_hitl_resume.py | 169 | CODE | |
| MEDIUM | tests/unit/gateway/test_hitl_channel.py | 234 | CODE | |
| MEDIUM | tests/support/fakes.py | 465 | CODE | |
| MEDIUM | src/octop/infra/voice/adapters.py | 86 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ry/wechat-ops/skills/publisher-multi-platform/SKILL.md | 133 | export WENYAN_API_KEY="your_api_key" | CODE |
| HIGH | …lls/publisher-multi-platform/scripts/wechat_publish.py | 935 | export WENYAN_API_KEY="your_api_key" # 如果设置了 API key | CODE |