Repository Analysis

agentscope-ai/QwenPaw

Your Personal AI Assistant; easy to install, deploy on your own machine or on the cloud; supports multiple chat apps with easily extensible capabilities.

31.3 Strong AI signal View on GitHub
31.3
Adjusted Score
31.3
Raw Score
100%
Time Factor
2026-05-29
Last Push
17,092
Stars
Python
Language
475,603
Lines of Code
1700
Files
8987
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 13HIGH 223MEDIUM 2346LOW 6405

Pattern Findings

8987 matches across 20 categories. Click a row to expand file-level details.

Decorative Section Separators2247 hits · 7717 pts
SeverityFileLineSnippet
MEDIUMplugins/bundle/cloudpaw/hooks.py20# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/hooks.py22# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/hooks.py186# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/hooks.py188# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py102# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py104# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py179# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py181# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py413# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py415# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py29# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py31# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py147# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py149# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py458# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/plugin.py460# ---------------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py30# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py32# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py70# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py72# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py111# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py113# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py159# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py161# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py307# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py309# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py367# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/routers/a2a.py369# ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts41 // ── Helpers ──────────────────────────────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts139 // ── proposal_choice renderer ─────────────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts841 // ── manage_prd renderer ───────────────────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts1120 // ── A2A Remote Agent Management Page ──────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts1773 // ── a2a_call tool renderer ───────────────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2186 // ── A2A command stream interceptor (control-command path) ──────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2430 // ── Register plugin ──────────────────────────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2448 // ── Ensure CloudPaw-Master is selected on first install ───────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2452 // ── Patchable module overrides (QwenPaw ≥ 1.1.4b1) ─────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2456 // ── Activate A2A command stream interceptor ────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2461// ── First-install default agent selection ────────────────────────────
MEDIUMplugins/bundle/cloudpaw/ui/src/index.ts2542// ── Welcome & Theme customisation via configProvider monkey-patch ──────
MEDIUMplugins/bundle/cloudpaw/modules/a2a/client_manager.py216 # ------------------------------------------------------------------
MEDIUMplugins/bundle/cloudpaw/modules/a2a/client_manager.py218 # ------------------------------------------------------------------
MEDIUMtests/conftest.py400# =============================================================================
MEDIUMtests/conftest.py402# =============================================================================
MEDIUMtests/conftest.py24# =============================================================================
MEDIUMtests/conftest.py26# =============================================================================
MEDIUMtests/conftest.py38# =============================================================================
MEDIUMtests/conftest.py40# =============================================================================
MEDIUMtests/conftest.py122# =============================================================================
MEDIUMtests/conftest.py124# =============================================================================
MEDIUMtests/conftest.py244# =============================================================================
MEDIUMtests/conftest.py246# =============================================================================
MEDIUMtests/conftest.py273# =============================================================================
MEDIUMtests/conftest.py275# =============================================================================
MEDIUMtests/conftest.py313# =============================================================================
MEDIUMtests/conftest.py315# =============================================================================
MEDIUMtests/conftest.py435# =============================================================================
MEDIUMtests/conftest.py437# =============================================================================
MEDIUMtests/unit/routers/test_settings.py35# ── GET /settings/language ───────────────────────────────────────────
MEDIUMtests/unit/routers/test_settings.py55# ── PUT /settings/language ───────────────────────────────────────────
2187 more matches not shown…
Hyper-Verbose Identifiers3234 hits · 2721 pts
SeverityFileLineSnippet
LOWplugins/bundle/qwenpaw-pet/patch_runner.py46def _is_tool_guard_approval_msg(msg: Any) -> bool:
LOWplugins/bundle/qwenpaw-pet/router.py185def _resolved_pet_spritesheet_path(folder: str) -> Path:
LOWplugins/bundle/qwenpaw-pet/emitter.py53def _clear_desktop_base_url_cache() -> None:
LOWplugins/bundle/qwenpaw-pet/emitter.py58def _reset_desktop_reachability_probe() -> None:
LOWplugins/bundle/qwenpaw-pet/emitter.py63def _mark_desktop_unreachable() -> None:
LOWplugins/bundle/qwenpaw-pet/emitter.py114def _spawn_host_port_from_env() -> tuple[str, int]:
LOWplugins/bundle/qwenpaw-pet/emitter.py209def _resolved_desktop_base_url() -> str:
LOWplugins/bundle/qwenpaw-pet/emitter.py266def _clear_desktop_spawn_markers() -> None:
LOWplugins/bundle/qwenpaw-pet/emitter.py327def _spawn_desktop_background() -> tuple[bool, str | None]:
LOWplugins/bundle/qwenpaw-pet/emitter.py345def _spawn_desktop_background_impl() -> tuple[bool, str | None]:
LOWplugins/bundle/qwenpaw-pet/emitter.py446def _stop_desktop_skip_reason(*, force: bool) -> str | None:
LOWplugins/bundle/qwenpaw-pet/emitter.py596def start_desktop_interactive() -> dict[str, Any]:
LOW…ugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/window.py304 def _schedule_post_event_timing(
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py147def try_acquire_instance_lock() -> bool:
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py245def _tasklist_has_no_matching_pid(stdout: str) -> bool:
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py370def _terminate_process_tree_unix( # pylint: disable=too-many-return-statements
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/cli.py109def command_install_default_pet(_args: argparse.Namespace) -> int:
LOW…undle/qwenpaw-pet/frontend/src/watchConsoleLanguage.ts15function installLanguageSetItemHook(): void {
LOWplugins/bundle/cloudpaw/hooks.py45def _check_iac_model_configured() -> bool:
LOWplugins/bundle/cloudpaw/hooks.py284 async def _patched_request_permission(
LOWplugins/bundle/cloudpaw/hooks.py372def setup_tool_and_prompt_hooks() -> ( # pylint: disable=too-many-statements
LOWplugins/bundle/cloudpaw/hooks.py473 def _patched_build_sys_prompt(self):
LOWplugins/bundle/cloudpaw/hooks.py631def _patch_stream_task_timeout() -> None:
LOWplugins/bundle/cloudpaw/hooks.py655def _patch_mission_master_prompt() -> None:
LOWplugins/bundle/cloudpaw/hooks.py688 def _patched_build_master_prompt(
LOWplugins/bundle/cloudpaw/agents_setup.py144def _write_qwenpaw_mode_to_settings() -> None:
LOWplugins/bundle/cloudpaw/agents_setup.py271def _initialize_agent_workspace(
LOWplugins/bundle/cloudpaw/agents_setup.py347def _uninstall_agent_profiles() -> None:
LOWplugins/bundle/cloudpaw/agents_setup.py453def _uninstall_cloudpaw_env_vars() -> None:
LOWplugins/bundle/cloudpaw/agents_setup.py480def _install_workspace_skills(
LOWplugins/bundle/cloudpaw/injectors.py10def inject_interaction_module() -> None:
LOWplugins/bundle/cloudpaw/plugin.py418def _patch_plugin_loader_unload() -> None:
LOWplugins/bundle/cloudpaw/plugin.py355def _install_aliyun_cli_blocking() -> bool:
LOWplugins/bundle/cloudpaw/ui/src/index.ts170 function splitFlatRowsIntoProposals(rows: any[][]): any[][][] {
LOWplugins/bundle/cloudpaw/tools/proposal_choice.py88def _split_flat_rows_into_proposals(
LOWplugins/bundle/cloudpaw/tools/a2a_command.py95 def _handle_direct_call_fallback(
LOWplugins/tool/qwen-image/qwen_image_tool.py171def _call_multimodal_conversation(
LOWwebsite/public/docs/channels.en.md1434 def build_agent_request_from_native(self, native_payload):
LOWwebsite/public/docs/channels.en.md1481def build_agent_request_from_native(self, native_payload):
LOWwebsite/public/docs/channels.zh.md1450 def build_agent_request_from_native(self, native_payload):
LOWwebsite/public/docs/channels.zh.md1497def build_agent_request_from_native(self, native_payload):
LOWwebsite/src/pages/Downloads/utils.ts138export function getFilesForPluginPlatform(
LOWtests/conftest.py412def pytest_collection_modifyitems(
LOWtests/conftest.py157 def test_agent_handles_llm_error(mock_llm_provider):
LOWtests/conftest.py198 def test_agent_sends_formatted_message(mock_channel):
LOWtests/conftest.py211 def test_router_selects_correct_channel(mock_channel):
LOWtests/conftest.py223 def test_agent_retries_on_channel_failure(mock_channel):
LOWtests/unit/routers/test_git.py15async def test_git_helper_uses_shared_command_runner(
LOWtests/unit/routers/test_console_placeholder.py23def test_no_content_parts_returns_new_chat() -> None:
LOWtests/unit/routers/test_console_placeholder.py47def test_dict_without_text_key_is_treated_as_media() -> None:
LOWtests/unit/routers/test_console_placeholder.py56def test_dict_with_non_string_text_is_treated_as_media() -> None:
LOWtests/unit/routers/test_console_placeholder.py63def test_object_with_text_attribute() -> None:
LOWtests/unit/routers/test_console_placeholder.py70def test_object_with_empty_text_attribute_is_media() -> None:
LOWtests/unit/routers/test_console_placeholder.py77def test_unknown_shape_is_treated_as_media() -> None:
LOWtests/unit/routers/test_console_placeholder.py85def test_falsy_first_part_is_media() -> None:
LOWtests/unit/routers/test_settings.py38async def test_get_language_default(api_client):
LOWtests/unit/routers/test_settings.py46async def test_get_language_persisted(api_client, _use_tmp_settings):
LOWtests/unit/routers/test_settings.py77async def test_put_language_invalid(api_client):
LOWtests/unit/routers/test_settings.py98async def test_put_language_missing_key(api_client):
LOWtests/unit/routers/test_settings.py108async def test_put_then_get_roundtrip(api_client):
3174 more matches not shown…
Excessive Try-Catch Wrapping1417 hits · 1378 pts
SeverityFileLineSnippet
LOWplugins/bundle/qwenpaw-pet/patch_runner.py154 except Exception as exc:
LOWplugins/bundle/qwenpaw-pet/patch_approval.py58 except Exception:
LOWplugins/bundle/qwenpaw-pet/patch_approval.py106 except Exception:
LOWplugins/bundle/qwenpaw-pet/patch_approval.py123 except Exception:
LOWplugins/bundle/qwenpaw-pet/pet_paths.py23 except Exception:
LOWplugins/bundle/qwenpaw-pet/pet_paths.py48 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py44 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py94 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py101 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py115 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py130 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py139 except Exception:
LOWplugins/bundle/qwenpaw-pet/plugin.py145 except Exception:
MEDIUMplugins/bundle/qwenpaw-pet/emitter.py90def _read_token() -> str | None:
MEDIUMplugins/bundle/qwenpaw-pet/emitter.py266def _clear_desktop_spawn_markers() -> None:
LOWplugins/bundle/qwenpaw-pet/emitter.py191 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py239 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py363 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py587 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py688 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py741 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py775 except Exception:
LOWplugins/bundle/qwenpaw-pet/emitter.py786 except Exception as exc:
LOW…/bundle/qwenpaw-pet/qwenpaw_pet_desktop/pet_package.py148 except Exception:
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py37 except Exception:
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py192 except Exception:
MEDIUM…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py124def clear_spawn_claim() -> None:
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/cli.py45 except Exception:
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/app.py39 except Exception:
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/app.py47 except Exception:
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/app.py109 except Exception:
LOWplugins/bundle/cloudpaw/routers_setup.py67 except Exception as e:
LOWplugins/bundle/cloudpaw/routers_setup.py99 except Exception as exc:
LOWplugins/bundle/cloudpaw/routers_setup.py117 except Exception:
LOWplugins/bundle/cloudpaw/routers_setup.py126 except Exception:
LOWplugins/bundle/cloudpaw/routers_setup.py140 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py55 except Exception:
LOWplugins/bundle/cloudpaw/hooks.py98 except Exception:
LOWplugins/bundle/cloudpaw/hooks.py421 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py430 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py433 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py452 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py461 except Exception as e:
LOWplugins/bundle/cloudpaw/hooks.py464 except Exception as e:
LOWplugins/bundle/cloudpaw/agents_setup.py37 except Exception:
LOWplugins/bundle/cloudpaw/agents_setup.py87 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py156 except Exception:
LOWplugins/bundle/cloudpaw/agents_setup.py172 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py319 except Exception as e:
LOWplugins/bundle/cloudpaw/agents_setup.py376 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py394 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py413 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py425 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py449 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py476 except Exception as exc:
LOWplugins/bundle/cloudpaw/agents_setup.py513 except Exception as e:
LOWplugins/bundle/cloudpaw/agents_setup.py535 except Exception as exc:
LOWplugins/bundle/cloudpaw/plugin.py98 except Exception as exc:
LOWplugins/bundle/cloudpaw/plugin.py175 except Exception as e:
LOWplugins/bundle/cloudpaw/plugin.py51 except Exception as exc:
1357 more matches not shown…
Unused Imports918 hits · 846 pts
SeverityFileLineSnippet
LOWplugins/bundle/qwenpaw-pet/patch_runner.py4
LOWplugins/bundle/qwenpaw-pet/patch_approval.py4
LOWplugins/bundle/qwenpaw-pet/pet_paths.py4
LOWplugins/bundle/qwenpaw-pet/router.py4
LOWplugins/bundle/qwenpaw-pet/emitter.py4
LOW…ugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/server.py4
LOW…/bundle/qwenpaw-pet/qwenpaw_pet_desktop/pet_package.py4
LOW…ugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/window.py4
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py4
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/cli.py4
LOWplugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/app.py4
LOWplugins/bundle/cloudpaw/routers/a2a.py15
LOWplugins/bundle/cloudpaw/tools/a2a_command.py2
LOWplugins/bundle/cloudpaw/tools/a2a_config_helper.py8
LOWplugins/bundle/cloudpaw/prompts/master_prompt.py11
LOW…/skills/terraform-cli-setup/scripts/setup_terraform.py14
LOWplugins/bundle/cloudpaw/modules/a2a/gateway_adapter.py9
LOWplugins/bundle/cloudpaw/modules/a2a/call_stream.py14
LOWplugins/bundle/cloudpaw/modules/a2a/client_manager.py9
LOWplugins/bundle/cloudpaw/modules/a2a/auth_interceptor.py9
LOWplugins/bundle/cloudpaw/modules/a2a/auth_interceptor.py14
LOWtests/unit/routers/test_git.py3
LOWtests/unit/routers/test_console_placeholder.py11
LOWtests/unit/routers/test_settings.py4
LOWtests/unit/app/test_title_generator.py4
LOWtests/unit/app/test_reload_background_task_killed.py27
LOWtests/unit/app/test_backup_route_helpers.py2
LOWtests/unit/app/test_chat_updates.py4
LOWtests/unit/security/test_secret_store.py4
LOWtests/unit/security/skill_scanner/test_init.py17
LOWtests/unit/security/tool_guard/test_engine.py4
LOWtests/unit/security/tool_guard/test_utils.py4
LOWtests/unit/security/tool_guard/conftest.py4
LOWtests/unit/security/tool_guard/test_models.py4
LOWtests/unit/security/tool_guard/test_approval.py4
LOW…it/security/tool_guard/guardians/test_file_guardian.py8
LOW…it/security/tool_guard/guardians/test_rule_guardian.py4
LOWtests/unit/providers/test_openai_provider.py2
LOWtests/unit/providers/test_ollama_provider.py2
LOWtests/unit/providers/test_gemini_provider.py3
LOWtests/unit/providers/test_volcengine_provider.py4
LOWtests/unit/providers/test_anthropic_provider.py2
LOW…s/unit/providers/test_openai_stream_toolcall_compat.py2
LOWtests/unit/providers/test_kimi_provider.py4
LOWtests/unit/providers/test_siliconflow_provider.py4
LOWtests/unit/providers/test_provider_class_identity.py15
LOWtests/unit/providers/test_provider_manager.py3
LOWtests/unit/tauri/test_entry.py3
LOWtests/unit/tauri/test_sidecar_logging.py3
LOWtests/unit/agents/tools/test_agent_management.py4
LOWtests/unit/utils/test_logging.py7
LOWtests/unit/utils/test_http.py2
LOWtests/unit/utils/test_command_runner.py3
LOWtests/unit/local_models/test_llamacpp_backend.py3
LOWtests/unit/local_models/test_model_manager.py4
LOWtests/unit/local_models/test_download_manager.py3
LOWtests/unit/local_models/test_local_model_manager.py3
LOWtests/unit/cli/test_cli_shutdown.py2
LOWtests/unit/cli/test_cli_agents.py4
LOWtests/unit/cli/test_cli_doctor_proxy.py3
858 more matches not shown…
Cross-File Repetition124 hits · 620 pts
SeverityFileLineSnippet
HIGHtests/unit/channels/test_voice.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_telegram.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_wechat.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_feishu.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_mqtt.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_qq.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_wecom.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_dingtalk.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_discord.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_mattermost.py0constructor should initialize required internal data structures.
HIGHtests/unit/channels/test_telegram.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_xiaoyi.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_wechat.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_feishu.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_mqtt.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_qq.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_wecom.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_dingtalk.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_discord.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_mattermost.py0constructor should store all basic configuration parameters.
HIGHtests/unit/channels/test_telegram.py0get_to_handle_from_request should fallback to user_id.
HIGHtests/unit/channels/test_xiaoyi.py0get_to_handle_from_request should fallback to user_id.
HIGHtests/unit/channels/test_mqtt.py0get_to_handle_from_request should fallback to user_id.
HIGHtests/unit/channels/test_wecom.py0get_to_handle_from_request should fallback to user_id.
HIGHtests/unit/channels/test_mattermost.py0get_to_handle_from_request should fallback to user_id.
HIGHtests/unit/channels/test_wechat.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_mqtt.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_qq.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_wecom.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_dingtalk.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_mattermost.py0constructor should store advanced configuration parameters.
HIGHtests/unit/channels/test_wechat.py0constructor should create required locks for thread safety.
HIGHtests/unit/channels/test_feishu.py0constructor should create required locks for thread safety.
HIGHtests/unit/channels/test_dingtalk.py0constructor should create required locks for thread safety.
HIGHtests/unit/channels/test_wechat.py0from_env should read advanced environment variables.
HIGHtests/unit/channels/test_mqtt.py0from_env should read advanced environment variables.
HIGHtests/unit/channels/test_dingtalk.py0from_env should read advanced environment variables.
HIGHtests/unit/channels/test_mattermost.py0from_env should read advanced environment variables.
HIGHtests/unit/channels/test_wechat.py0starting disabled channel should succeed without action.
HIGHtests/unit/channels/test_dingtalk.py0starting disabled channel should succeed without action.
HIGHtests/unit/channels/test_mattermost.py0starting disabled channel should succeed without action.
HIGHtests/unit/channels/test_feishu.py0should handle exceptions gracefully and return none.
HIGHtests/unit/channels/test_feishu.py0should handle exceptions gracefully and return none.
HIGHtests/unit/channels/test_feishu.py0should handle exceptions gracefully and return none.
HIGHtests/unit/channels/test_feishu.py0should handle exceptions gracefully and return none.
HIGHtests/unit/channels/test_feishu.py0should handle exceptions gracefully and return none.
HIGHsrc/qwenpaw/app/channels/feishu/channel.py0render card-flagged events via the card handler; else default.
HIGHsrc/qwenpaw/app/channels/wecom/channel.py0render card-flagged events via the card handler; else default.
HIGHsrc/qwenpaw/app/channels/qq/channel.py0render card-flagged events via the card handler; else default.
HIGHsrc/qwenpaw/app/channels/feishu/cards/context.py0return the original ``msg.metadata`` dict, unwrapping the ``metadata.metadata`` nesting the runtime introduces.
HIGHsrc/qwenpaw/app/channels/wecom/cards/context.py0return the original ``msg.metadata`` dict, unwrapping the ``metadata.metadata`` nesting the runtime introduces.
HIGHsrc/qwenpaw/app/channels/qq/cards/context.py0return the original ``msg.metadata`` dict, unwrapping the ``metadata.metadata`` nesting the runtime introduces.
HIGHsrc/qwenpaw/app/channels/feishu/cards/tool_guard.py0inject ``/approval {action} {request_id}`` into the channel queue.
HIGHsrc/qwenpaw/app/channels/wecom/cards/tool_guard.py0inject ``/approval {action} {request_id}`` into the channel queue.
HIGHsrc/qwenpaw/app/channels/qq/cards/tool_guard.py0inject ``/approval {action} {request_id}`` into the channel queue.
HIGHsrc/qwenpaw/app/channels/voice/channel.py0voice channel: twilio conversationrelay + cloudflare tunnel.
HIGHsrc/qwenpaw/app/channels/voice/__init__.py0voice channel: twilio conversationrelay + cloudflare tunnel.
HIGHsrc/qwenpaw/config/config.py0voice channel: twilio conversationrelay + cloudflare tunnel.
HIGH…c/qwenpaw/agents/skills/pptx-zh/scripts/office/pack.py0pack a directory into a docx, pptx, or xlsx file. validates with auto-repair, condenses xml formatting, and creates the
HIGH…c/qwenpaw/agents/skills/xlsx-en/scripts/office/pack.py0pack a directory into a docx, pptx, or xlsx file. validates with auto-repair, condenses xml formatting, and creates the
64 more matches not shown…
Deep Nesting499 hits · 398 pts
SeverityFileLineSnippet
LOW…ugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/window.py67
LOW…ugins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/window.py238
LOW…gins/bundle/qwenpaw-pet/qwenpaw_pet_desktop/runtime.py260
LOWplugins/bundle/cloudpaw/agents_setup.py300
LOWplugins/bundle/cloudpaw/agents_setup.py347
LOWplugins/bundle/cloudpaw/agents_setup.py398
LOWplugins/bundle/cloudpaw/tools/proposal_choice.py114
LOWplugins/bundle/cloudpaw/tools/proposal_choice.py195
LOWplugins/bundle/cloudpaw/tools/manage_prd.py249
LOWplugins/bundle/cloudpaw/tools/a2a_call.py25
LOWplugins/bundle/cloudpaw/tools/a2a_call.py351
LOWplugins/bundle/cloudpaw/tools/a2a_call.py236
LOWplugins/bundle/cloudpaw/modules/a2a/client_manager.py274
LOWplugins/tool/wan27/wan27_tool.py377
LOWplugins/tool/gpt-image2/gpt_image2_tool.py20
LOWplugins/tool/gpt-image2/gpt_image2_tool.py245
LOWtests/conftest.py412
LOWtests/unit/channels/test_base_core.py902
LOWtests/integration/conftest.py288
LOWscripts/pack/generate_plugin_metadata.py237
LOWscripts/startup_profile/tracer.py30
LOWscripts/startup_profile/analyze.py180
LOWe2e/conftest.py144
LOWe2e/conftest.py270
LOWe2e/conftest.py370
LOWe2e/tests/test_voice.py142
LOWe2e/tests/test_backups.py245
LOWe2e/tests/test_backups.py919
LOWe2e/tests/test_cross_module.py83
LOWe2e/tests/test_security.py278
LOWe2e/tests/test_security.py430
LOWe2e/tests/test_security.py629
LOWe2e/tests/test_security.py881
LOWe2e/tests/test_agent_stats.py49
LOWe2e/tests/test_agent_stats.py573
LOWe2e/tests/test_sessions.py586
LOWe2e/tests/test_environments.py627
LOWe2e/tests/test_environments.py920
LOWe2e/tests/test_environments.py1007
LOWe2e/tests/test_cronjobs.py59
LOWe2e/tests/test_cronjobs.py161
LOWe2e/tests/test_cronjobs.py605
LOWe2e/tests/test_channels.py538
LOWe2e/tests/test_files.py325
LOWe2e/tests/test_chat.py528
LOWe2e/tests/test_skills.py63
LOWe2e/tests/test_skills.py299
LOWe2e/tests/test_skills.py544
LOWe2e/tests/test_skills.py896
LOWe2e/tests/test_models.py153
LOWe2e/tests/test_models.py557
LOWe2e/tests/test_acp.py50
LOWe2e/tests/test_acp.py266
LOWe2e/tests/test_acp.py592
LOWe2e/tests/test_tools.py44
LOWe2e/tests/test_tools.py225
LOWe2e/tests/test_tools.py408
LOWe2e/tests/test_mcp.py296
LOWe2e/tests/test_token_usage.py207
LOWe2e/tests/test_token_usage.py272
439 more matches not shown…
Verbosity Indicators302 hits · 372 pts
SeverityFileLineSnippet
LOWscripts/pack-tauri/build_macos_pyinstaller.sh23# Step 0: Prerequisites
LOWscripts/pack-tauri/build_macos_pyinstaller.sh79# Step 1: Build console static assets
LOWscripts/pack-tauri/build_macos_pyinstaller.sh93# Step 2: Build PyInstaller backend
LOWscripts/pack-tauri/build_macos_pyinstaller.sh106# Step 3: Build Tauri app
LOWscripts/pack-tauri/build_macos_pyinstaller.sh132# Step 4: Collect distribution artifacts
LOWe2e/tests/test_voice.py60 # Step 1: Navigate to voice transcription page
LOWe2e/tests/test_voice.py64 # Step 2: Verify page loaded (voice page has no breadcrumb)
LOWe2e/tests/test_voice.py70 # Step 3: Verify page title
LOWe2e/tests/test_voice.py76 # Step 4: Verify and interact with voice service config controls
LOWe2e/tests/test_voice.py146 # Step 1: Navigate to voice transcription page
LOWe2e/tests/test_voice.py150 # Step 2: Find voice service config control
LOWe2e/tests/test_voice.py94 # Step 5: Verify config form
LOWe2e/tests/test_voice.py100 # Step 6: Verify controls are clickable/interactable
LOWe2e/tests/test_voice.py111 # Step 7: Verify save button exists
LOWe2e/tests/test_voice.py186 # Step 3: Switch to another option
LOWe2e/tests/test_voice.py208 # Step 4: Verify save button enabled and click save
LOWe2e/tests/test_voice.py218 # Step 5: Restore original state
LOWe2e/tests/test_voice.py241 # Step 3: Toggle switch
LOWe2e/tests/test_voice.py252 # Step 4: Verify save
LOWe2e/tests/test_voice.py256 # Step 5: Restore original state
LOWe2e/tests/test_voice.py306 # Step 1: Navigate to voice transcription page
LOWe2e/tests/test_voice.py310 # Step 2: Verify Twilio or voice config area
LOWe2e/tests/test_voice.py324 # Step 3: Verify config fields and test input
LOWe2e/tests/test_voice.py359 # Step 4: Verify save button exists and is enabled
LOWe2e/tests/test_voice.py368 # Step 5: Verify Webhook URL display
LOWe2e/tests/test_security.py58 # Step 1: Open the Security page
LOWe2e/tests/test_security.py62 # Step 2: Verify breadcrumb
LOWe2e/tests/test_security.py74 # Step 3: Verify the tabs exist
LOWe2e/tests/test_security.py116 # Step 6: Verify the protected-tools dropdown exists
LOWe2e/tests/test_security.py122 # Step 7: Switch to the File Guard tab
LOWe2e/tests/test_security.py131 # Step 8: Verify the File Guard enable switch
LOWe2e/tests/test_security.py138 # Step 9: Verify the File Guard path input
LOWe2e/tests/test_security.py171 # Step 1: Open the Security page
LOWe2e/tests/test_security.py175 # Step 2: Switch to the File Guard tab
LOWe2e/tests/test_security.py185 # Step 3: Verify the add-button initial state (should be disabled on empty input)
LOWe2e/tests/test_security.py192 # Step 4: Type a path and verify the add-button state changes
LOWe2e/tests/test_security.py204 # Step 5: Clear the input
LOWe2e/tests/test_security.py212 # Step 6: Switch back to the Tool Guard tab
LOWe2e/tests/test_security.py221 # Step 7: Click the protected-tools dropdown to expand it
LOWe2e/tests/test_security.py282 # Step 1: Open the Security page
LOWe2e/tests/test_security.py286 # Step 2: Record the current Tool Guard switch state
LOWe2e/tests/test_security.py304 # Step 3: Toggle the Tool Guard switch
LOWe2e/tests/test_security.py313 # Step 4: Find and click the Save button
LOWe2e/tests/test_security.py322 # Step 5: Verify the save success toast
LOWe2e/tests/test_security.py330 # Step 6: Reload the page
LOWe2e/tests/test_security.py336 # Step 7: Verify the Tool Guard switch state is persisted
LOWe2e/tests/test_security.py384 # Step 9: Switch to the Skill Scanner tab (if present)
LOWe2e/tests/test_security.py393 # Step 10: Verify the Skill Scanner tab content loads
LOWe2e/tests/test_security.py466 # Step 4: Click the "Add Rule" button
LOWe2e/tests/test_security.py473 # Step 5: Verify the rule modal appears
LOWe2e/tests/test_security.py479 # Step 6: Fill the rule form
LOWe2e/tests/test_security.py497 # Step 7: Click the Confirm button to save the rule
LOWe2e/tests/test_security.py504 # Step 8: Verify the rule was added to the table
LOWe2e/tests/test_security.py510 # Step 9: Verify the rule's severity tag (default HIGH)
LOWe2e/tests/test_security.py519 # Step 10: Disable the rule
LOWe2e/tests/test_security.py635 # Step 1: Open the Security page
LOWe2e/tests/test_security.py639 # Step 2: Check and switch to the Skill Scanner tab
LOWe2e/tests/test_security.py653 # Step 3: Verify the mode selector exists
LOWe2e/tests/test_security.py659 # Step 4: Record the current mode (used by the finally block to restore)
LOWe2e/tests/test_security.py667 # Step 5: Switch mode to block and verify
242 more matches not shown…
Docstring Block Structure48 hits · 240 pts
SeverityFileLineSnippet
HIGHplugins/tool/qwen-image/qwen_image_tool.py64Resolve an image path or URL to a usable string. If the input is an HTTP/HTTPS URL, return it as-is. If the inp
HIGHplugins/tool/qwen-image/qwen_image_tool.py140Download image from URL and save to local directory. Args: image_url: Public URL of the image. save
HIGHplugins/tool/wan27/wan27_tool.py41Resolve an image path or URL to a usable URL. If the input is an HTTP/HTTPS URL, return it as-is. If the input
HIGHplugins/tool/wan27/wan27_tool.py113Download video from URL and save to local directory. Args: video_url: Public URL of the video. save
HIGHplugins/tool/gpt-image2/gpt_image2_tool.py528Convert image path/URL to API format. Args: image_path: Web URL or local file path Returns: di
HIGHe2e/utils/helpers.py143 Wait for a condition to be satisfied. Args: condition_func: Condition function; returning a truthy val
HIGHe2e/utils/helpers.py172 Retry an operation. Args: operation_func: Operation function max_retries: Maximum number of re
HIGHe2e/pages/chat_page.py222 Send a message (strict-validation version). Strictly isolated from the previous round: 1. Snap
HIGHsrc/qwenpaw/app/multi_agent_manager.py43Get agent workspace by ID (lazy loading with dedup). If workspace doesn't exist in memory, it will be created a
HIGHsrc/qwenpaw/app/utils.py19Resolve *user_path* under *root* and reject path-traversal attempts. Uses :py:meth:`Path.is_relative_to` instead of
HIGHsrc/qwenpaw/app/utils.py49Build a project destination directory under *base* from *name*. Validates that *name* is a single path component (n
HIGHsrc/qwenpaw/app/agent_context.py49Get agent workspace for current request. Priority: 1. agent_id parameter (explicit override) 2. request.sta
HIGHsrc/qwenpaw/app/routers/plugins.py106Return the directory that contains plugin.json. Args: base: Root of the extracted archive Returns:
HIGHsrc/qwenpaw/app/routers/mcp_oauth.py195Discover OAuth endpoints via RFC 9728 + RFC 8414 / OIDC discovery. Args: mcp_url: Remote MCP server URL
HIGHsrc/qwenpaw/app/routers/tools.py272Toggle tool enabled status for active agent. Args: tool_name: Tool function name request: FastAPI r
HIGHsrc/qwenpaw/app/routers/tools.py318Update tool async_execution setting for active agent. Args: tool_name: Tool function name async_exe
HIGHsrc/qwenpaw/app/routers/tools.py424Update tool configuration. Args: tool_name: Tool function name body: Configuration update r
HIGHsrc/qwenpaw/app/routers/messages.py20Get MultiAgentManager from app state. Args: request: FastAPI request object Returns: MultiAgen
HIGHsrc/qwenpaw/app/routers/messages.py84Send a text message to a channel. This endpoint allows agents to proactively send messages to users via configu
HIGHsrc/qwenpaw/app/runner/api.py32Get the chat manager for the active agent. Args: request: FastAPI request object Returns: Chat
HIGHsrc/qwenpaw/app/runner/api.py50Get the session for the active agent. Args: request: FastAPI request object Returns: SafeJSONS
HIGHsrc/qwenpaw/app/runner/api.py141Get detailed information about a specific chat by UUID. Args: request: FastAPI request (for agent context)
HIGHsrc/qwenpaw/app/runner/api.py185Update an existing chat. Args: chat_id: Chat UUID spec: Partial chat update payload mgr: Ch
HIGHsrc/qwenpaw/app/runner/api.py212Delete a chat by UUID. Note: This only deletes the chat spec (UUID mapping). JSONSession state is NOT deleted.
HIGHsrc/qwenpaw/app/runner/control_commands/__init__.py203Dispatch control command to appropriate handler. Args: query: User query (e.g. "/stop session=123")
HIGHsrc/qwenpaw/app/runner/control_commands/base.py60Handle the control command. Args: context: Control command context Returns: Re
HIGHsrc/qwenpaw/app/mcp/stateful_client.py317Call a tool on the MCP server. Args: name: Tool name arguments: Tool arguments (optiona
HIGHsrc/qwenpaw/app/approvals/service.py275Block and wait for approval decision with timeout. Args: request_id: Approval request ID
HIGHsrc/qwenpaw/app/channels/command_registry.py100Register command to priority level. Args: command_prefix: Command prefix (e.g. "/stop")
HIGHsrc/qwenpaw/app/channels/command_registry.py141Check if query is a registered control command. Args: query: User query (e.g. "/stop" or "normal qu
HIGHsrc/qwenpaw/app/channels/command_registry.py180Get priority level for a query. Args: query: User query (e.g. "/stop" or "normal question")
HIGHsrc/qwenpaw/app/channels/command_registry.py225Get priority name from level number. Args: level: Priority level number Returns:
HIGHsrc/qwenpaw/app/channels/manager.py553Get health status for a specific channel. Args: channel_name: Channel identifier (e.g. "dingtalk",
HIGHsrc/qwenpaw/app/channels/manager.py581Restart a single channel by stopping and re-starting it. The channel is stopped, then a fresh instance is creat
HIGHsrc/qwenpaw/app/channels/wechat/client.py163Block until QR code is confirmed or timeout. Args: qrcode: QR code string from get_bot_qrcode().
HIGHsrc/qwenpaw/app/channels/wechat/utils.py30Decrypt AES-128-ECB encrypted bytes. Args: data: Encrypted bytes (from CDN). key_b64: AES key — acc
HIGHsrc/qwenpaw/config/config.py1941Load agent's complete configuration from workspace/agent.json with mtime-based caching. Uses file modification
HIGHsrc/qwenpaw/plugins/loader.py76Load plugin manifest from JSON file. Args: manifest_path: Path to plugin.json Returns:
HIGHsrc/qwenpaw/plugins/loader.py185Load a single plugin. Args: manifest: Plugin manifest source_path: Path to plugin direc
HIGHsrc/qwenpaw/plugins/loader.py553Copy plugin files, install deps, and load plugin at runtime. The plugin directory is copied into ``install_dir`
HIGHsrc/qwenpaw/plugins/architecture.py173Create a manifest from a ``plugin.json`` dictionary. Thin wrapper around :meth:`model_validate` kept for backwa
HIGHsrc/qwenpaw/agents/command_handler.py532Process conversation system commands. Args: query: Command string (e.g., "/compact", "/new", "/mess
HIGHsrc/qwenpaw/agents/model_factory.py136Format an image or video block for Anthropic API. If the source is a URLSource pointing to a local file it will be
HIGHsrc/qwenpaw/agents/model_factory.py203Format a video block for OpenAI-compatible API. Local files are converted to base64 data URLs; web URLs are pas
HIGHsrc/qwenpaw/agents/context/base_context_manager.py232Return the context manager class for the given backend name. If the backend is not registered, falls back to the fi
HIGHsrc/qwenpaw/agents/memory/base_memory_manager.py295Return the memory manager class for the given backend name. If the backend is not registered, falls back to the fir
HIGHsrc/qwenpaw/agents/utils/file_handling.py32Read text file with multiple encoding attempts for cross-platform compatibility. This function handles files cr
HIGHsrc/qwenpaw/cli/plugin_commands.py457Download and extract plugin from URL. Args: url: Plugin zip file URL Returns: Tuple of (plugin
Cross-Language Confusion31 hits · 145 pts
SeverityFileLineSnippet
HIGHe2e/pages/chat_page.py533 if (btnEnabled && hasRealText) {
HIGHsrc/qwenpaw/app/_app.py633 "`npm ci && npm run build` in the `console/` "
HIGHsrc/qwenpaw/app/routers/coding_project.py105 Pass ``{"path": null}`` to reset to the default workspace directory.
HIGHsrc/qwenpaw/config/config.py1033 "Optional explicit cloud model slot; when null, uses "
HIGHsrc/qwenpaw/agents/tools/shell.py376 (`cd /repo && pytest`).
HIGH…wenpaw/agents/skills/pptx-zh/scripts/office/soffice.py151 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/pptx-zh/scripts/office/soffice.py170 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/pptx-zh/scripts/office/soffice.py179 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/pptx-zh/scripts/office/soffice.py193 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGH…wenpaw/agents/skills/xlsx-en/scripts/office/soffice.py151 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/xlsx-en/scripts/office/soffice.py170 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/xlsx-en/scripts/office/soffice.py179 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/xlsx-en/scripts/office/soffice.py193 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGH…wenpaw/agents/skills/pptx-en/scripts/office/soffice.py151 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/pptx-en/scripts/office/soffice.py170 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/pptx-en/scripts/office/soffice.py179 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/pptx-en/scripts/office/soffice.py193 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGH…wenpaw/agents/skills/xlsx-zh/scripts/office/soffice.py151 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/xlsx-zh/scripts/office/soffice.py170 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/xlsx-zh/scripts/office/soffice.py179 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/xlsx-zh/scripts/office/soffice.py193 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGH…wenpaw/agents/skills/docx-en/scripts/office/soffice.py153 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/docx-en/scripts/office/soffice.py172 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/docx-en/scripts/office/soffice.py181 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/docx-en/scripts/office/soffice.py195 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGH…wenpaw/agents/skills/docx-zh/scripts/office/soffice.py153 if (sv[0] >= 0 && sv[0] < 1024) {
HIGH…wenpaw/agents/skills/docx-zh/scripts/office/soffice.py172 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/docx-zh/scripts/office/soffice.py181 if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) {
HIGH…wenpaw/agents/skills/docx-zh/scripts/office/soffice.py195 if (fd >= 0 && fd < 1024 && is_shimmed[fd]) {
HIGHsrc/qwenpaw/cli/doctor_fix_runner.py8``rebuild-console-npm`` runs ``npm ci && npm run build`` under ``console/``
HIGHsrc/qwenpaw/cli/doctor_cmd.py204 " Build: `npm ci && npm run build` in the `console/` "
Hallucination Indicators13 hits · 130 pts
SeverityFileLineSnippet
CRITICALtests/unit/channels/test_feishu.py2856 mock_client.im.v1.message.areply.assert_called_once()
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py541 resp = self._client.contact.v3.user.get(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py966 resp = await self._client.im.v1.message_reaction.acreate(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py990 resp = await self._client.im.v1.message_resource.aget(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1031 resp = await self._client.im.v1.message_resource.aget(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1075 resp = await self._client.im.v1.message.aget(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1392 resp = await self._client.im.v1.image.acreate(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1457 resp = await self._client.im.v1.file.acreate(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1533 resp = await self._client.im.v1.message.acreate(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py1588 resp = await self._client.im.v1.message.areply(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py2106 create_resp = await self._client.cardkit.v1.card.acreate(
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py2185 resp = await self._client.cardkit.v1.card_element.acontent(req)
CRITICALsrc/qwenpaw/app/channels/feishu/channel.py2247 resp = await self._client.cardkit.v1.card.asettings(req)
Magic Placeholder Names18 hits · 100 pts
SeverityFileLineSnippet
HIGHwebsite/public/docs/mcp.zh.md70 "API_KEY": "your-api-key"
HIGHwebsite/public/docs/mcp.en.md70 "API_KEY": "your-api-key"
HIGHwebsite/public/docs/api-tutorial.zh.md68 -H "Authorization: Bearer <YOUR_TOKEN>" \
HIGHwebsite/public/docs/api-tutorial.zh.md839 -H "Authorization: Bearer <YOUR_TOKEN>" \
HIGHwebsite/public/docs/api-tutorial.en.md68 -H "Authorization: Bearer <YOUR_TOKEN>" \
HIGHwebsite/public/docs/api-tutorial.en.md839 -H "Authorization: Bearer <YOUR_TOKEN>" \
HIGHwebsite/public/docs/channels.en.md1158 --api-key <your-api-key> \
HIGHwebsite/public/docs/channels.en.md1237 "livekit_api_key": "your-api-key",
HIGHwebsite/public/docs/channels.zh.md1183 --api-key <your-api-key> \
HIGHwebsite/public/docs/channels.zh.md1262 "livekit_api_key": "your-api-key",
HIGH…s/unit/security/skill_scanner/test_pattern_analyzer.py368 placeholder_markers={"<YOUR_API_KEY>"},
HIGH…s/unit/security/skill_scanner/test_pattern_analyzer.py368 placeholder_markers={"<YOUR_API_KEY>"},
HIGHconsole/src/pages/Agent/MCP/index.tsx96 "API_KEY": "<YOUR_API_KEY>"
HIGHconsole/src/pages/Agent/MCP/index.tsx96 "API_KEY": "<YOUR_API_KEY>"
HIGHconsole/src/pages/Agent/MCP/index.tsx119 "API_KEY": "<YOUR_API_KEY>"
HIGHconsole/src/pages/Agent/MCP/index.tsx119 "API_KEY": "<YOUR_API_KEY>"
HIGH…wenpaw/security/skill_scanner/data/default_policy.yaml131 - "your-api-key"
HIGH…wenpaw/security/skill_scanner/data/default_policy.yaml132 - "your_api_key"
Redundant / Tautological Comments65 hits · 98 pts
SeverityFileLineSnippet
LOWplugins/bundle/cloudpaw/tools/proposal_choice.py138 # Check if it's a 2D array (all items are 10-column rows)
LOWplugins/bundle/cloudpaw/tools/proposal_choice.py158 # Check if it's a 3D array (multiple proposals)
LOWtests/contract/__init__.py81 # Check if it's a concrete implementation (not abstract)
LOWtests/contract/channels/__init__.py121 # Check if the subclass method is different from BaseChannel's
LOWscripts/run_tests.py136 # Check if there are any Python test files
LOWscripts/run_tests.py221 # Check if pytest is installed
LOWscripts/check-channels.sh43# Check if we're in a git repo
LOWscripts/check-channels.sh61 # Check if base.py changed
LOWscripts/check-channels.sh91# Check if dependencies are installed
LOWscripts/install.sh277 # Check if console assets were included in the installed package
LOW.github/workflows/channel-tests.yml67 # Check if BaseChannel changed (triggers ALL channel tests)
LOW.github/workflows/channel-tests.yml376 # Check if base methods are overridden where needed
LOW.github/workflows/channel-tests.yml381 # Check if method is still abstract (not implemented)
LOWe2e/tests/test_skill_pool.py628 # Check if a dialog/drawer opened, or import ran directly
LOWsrc/qwenpaw/exceptions.py135 # Check if has status_code attribute (typical for API errors)
LOWsrc/qwenpaw/app/auth.py194 # Check if token is revoked
LOWsrc/qwenpaw/app/auth.py635 # Check if client host is in allow_no_auth_hosts whitelist
LOWsrc/qwenpaw/app/agent_context.py87 # Check if agent exists and is enabled
LOWsrc/qwenpaw/app/migration.py90 # Check if already migrated
LOWsrc/qwenpaw/app/migration.py483 # Check if workspace already has skills
LOWsrc/qwenpaw/app/routers/mcp.py374 # Check if client already exists
LOWsrc/qwenpaw/app/runner/runner.py370 # Check if query is a command (including /approval)
LOWsrc/qwenpaw/app/runner/control_commands/__init__.py8 # Check if a query is a control command
LOW…c/qwenpaw/app/runner/control_commands/model_handler.py203 # Check if this is the active model
LOWsrc/qwenpaw/app/mcp/watcher.py264 # Check if this client should be skipped
LOWsrc/qwenpaw/app/crons/manager.py249 # Check if dream-based memory optimization is enabled in config
LOWsrc/qwenpaw/app/channels/unified_queue_manager.py175 # Check if already exists
LOWsrc/qwenpaw/app/channels/unified_queue_manager.py394 # Check if queue is empty and idle
LOWsrc/qwenpaw/app/channels/manager.py150 # Check if channel is enabled
LOWsrc/qwenpaw/app/channels/manager.py243 # Check if payload already has normalized session_id
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py266 # Check if there's already an active connection for this agent_id
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py879 # Check if adding this line would exceed limit
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py1075 # Check if this is a reasoning/thinking message type
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py1077 # Check if thinking is filtered
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py1137 # Check if tool messages should be filtered
LOWsrc/qwenpaw/app/channels/xiaoyi/channel.py1286 # Check if any part exceeds chunk limit
LOWsrc/qwenpaw/app/channels/wecom/utils.py71 # Check if second row is separator (contains only -, :, |, spaces)
LOWsrc/qwenpaw/app/channels/wechat/channel.py686 # Check if text looks like a filename (has extension)
LOWsrc/qwenpaw/app/channels/wechat/channel.py1162 # Check if file exists
LOWsrc/qwenpaw/app/channels/qq/channel.py1273 # Check if attachment is a voice message and has ASR text.
LOWsrc/qwenpaw/config/config.py2129 # Check if already migrated (new structure has only AgentProfileRef)
LOWsrc/qwenpaw/config/config.py2134 # Check if default agent config exists
LOW…qwenpaw/security/tool_guard/guardians/rule_guardian.py229 # Check if this part executes rm
LOW…qwenpaw/security/tool_guard/guardians/rule_guardian.py270 # Check if it's a flag vs an absolute path
LOWsrc/qwenpaw/providers/provider_manager.py2030 # Check if there's a saved configuration for this plugin provider
LOWsrc/qwenpaw/agents/react_agent.py347 # Check if tool is enabled
LOWsrc/qwenpaw/agents/react_agent.py454 # Check if heartbeat is enabled in agent config
LOWsrc/qwenpaw/agents/react_agent.py1446 # Check if message is a system command
LOWsrc/qwenpaw/agents/command_handler.py417 # Check if there's a compressed summary
LOWsrc/qwenpaw/agents/prompt.py153 # Check if markers exist
LOWsrc/qwenpaw/agents/tools/browser_control.py905 # Check if sync browser is still connected
LOWsrc/qwenpaw/agents/tools/browser_control.py926 # Check if async browser is still connected
LOWsrc/qwenpaw/agents/context/light_context_manager.py161 # Check if content fits within limit (with small slack)
LOWsrc/qwenpaw/agents/context/light_context_manager.py292 # Check if tool name is in exempt list
LOWsrc/qwenpaw/agents/context/light_context_manager.py297 # Check if file extension is in exempt list
LOW…c/qwenpaw/agents/memory/proactive/proactive_trigger.py155 # Check if last message is already proactive
LOW…qwenpaw/agents/memory/proactive/proactive_responder.py320 # Check if the agent has active tasks (busy with user messages)
LOW…qwenpaw/agents/memory/proactive/proactive_responder.py329 # Check if any chat was updated since the baseline timestamp
LOWsrc/qwenpaw/agents/utils/tool_message_utils.py218 # Check if id is valid (not None, not empty string)
LOWsrc/qwenpaw/agents/utils/tool_message_utils.py282 # Check if this is a tool_use with empty input but valid raw_input
5 more matches not shown…
Self-Referential Comments30 hits · 82 pts
SeverityFileLineSnippet
MEDIUMplugins/bundle/qwenpaw-pet/emitter.py357 # Create the bridge token *before* spawning so the very first
MEDIUMtests/unit/workspace/test_prompt.py19 # Create a simple AGENTS.md
MEDIUMtests/unit/agents/context/test_as_msg_handler.py399 # Create a large tool result that exceeds reserve
MEDIUMtests/unit/agents/utils/test_audio_transcription.py454 # Create a real audio file so open() doesn't fail
MEDIUMtests/unit/agents/utils/test_file_handling.py246 # Create a file that the mock download would produce
MEDIUMtests/unit/channels/test_telegram.py931 # Create a test file
MEDIUMtests/unit/channels/test_telegram.py981 # Create a file larger than 50MB
MEDIUMtests/unit/channels/test_xiaoyi.py412 # Create a real cancelled task for proper await
MEDIUMtests/unit/channels/test_xiaoyi.py764 # Create a message larger than TEXT_CHUNK_LIMIT
MEDIUMtests/unit/channels/test_imessage.py693 # Create a mock part without url
MEDIUMtests/unit/channels/test_imessage.py725 # Create a test file
MEDIUMtests/unit/channels/test_imessage.py752 # Create a test file
MEDIUMtests/unit/channels/test_imessage.py802 # Create a valid base64 data URL
MEDIUMtests/unit/channels/test_imessage.py868 # Create a large base64 data URL
MEDIUMtests/unit/channels/test_feishu.py1100 # Create a file just over the limit
MEDIUMtests/unit/channels/test_dingtalk.py3285 # Create a response without 'data' attribute to avoid triggering
MEDIUMtests/unit/channels/test_dingtalk.py1599 # Create a test file
MEDIUMtests/unit/channels/test_discord.py817 # Create a mock request
MEDIUMtests/unit/channels/test_discord.py833 # Create a message with various content
MEDIUMtests/unit/channels/test_mattermost.py1089 # Create a test image file
MEDIUMtests/unit/channels/test_mattermost.py1286 # Create a typing task
MEDIUMtests/unit/channels/test_base_core.py574 # Create a mock that doesn't auto-create attributes
MEDIUMtests/unit/channels/test_base_core.py586 # Create a mock error with message attribute
MEDIUMe2e/tests/test_channels.py385 # Define the four channels and their expected distinctive field keywords
MEDIUMsrc/qwenpaw/app/channels/wechat/channel.py560 # Create a per-thread HTTP client
MEDIUMsrc/qwenpaw/app/channels/wechat/channel.py1663 # Create the background refresh task.
MEDIUM…wenpaw/security/skill_scanner/data/default_policy.yaml3# This file defines the built-in security policy. Every setting here can be
MEDIUMsrc/qwenpaw/agents/tool_guard_mixin.py553 # Create a wrapper task that can be cancelled
MEDIUMsrc/qwenpaw/agents/model_factory.py1085 # Create the formatter based on the real model class
MEDIUMsrc/qwenpaw/cli/channels_cmd.py1158 # Create a temporary Config object for the interactive configurator
Over-Commented Block17 hits · 14 pts
SeverityFileLineSnippet
LOWplugins/bundle/qwenpaw-pet/requirements.txt1# Keep in sync with plugin.json -> dependencies.
LOWplugins/bundle/qwenpaw-pet/emitter.py21logger = logging.getLogger("qwenpaw.pet_desktop")
LOWplugins/bundle/qwenpaw-pet/frontend/src/index.tsx1// React and antd are injected by the QwenPaw console host at runtime;
LOWplugins/bundle/cloudpaw/hooks.py181Fix prd.json NOW using `manage_prd`. Keep the same task decomposition \
LOWtests/unit/agents/__init__.py1# -*- coding: utf-8 -*-
LOWtests/unit/agents/tools/__init__.py1# -*- coding: utf-8 -*-
LOWtests/unit/channels/test_base_core.py1361 )
LOWtests/unit/channels/test_base_core.py1381# Contract tests (tests/contract/channels/) cover:
LOWtests/contract/channels/test_dingtalk_contract.py161 "_processing_message_ids_lock",
LOWtests/contract/channels/test_dingtalk_contract.py181# - Dev modifies BaseChannel.send_media() signature
LOWscripts/docker_build.sh1#!/usr/bin/env bash
LOWscripts/check-channels.sh1#!/bin/bash
LOW.github/workflows/full-tests-nightly.yml1name: Full Tests Nightly
LOWsrc/qwenpaw/constant.py361except (TypeError, ValueError):
LOWsrc/qwenpaw/app/runner/title_generator.py221 # Python >= 3.10, so this ``except Exception`` deliberately does
LOW…ecurity/tool_guard/rules/dangerous_shell_commands.yaml1# Dangerous Shell Command Detection Rules
LOWsrc/qwenpaw/cli/doctor_checks.py721 f"{agent_id}: {label}/ has {n} entries — cleanup or "
Fake / Example Data8 hits · 11 pts
SeverityFileLineSnippet
LOW…/agents/skills/himalaya-zh/references/configuration.md9email = "user@example.com"
LOW…/agents/skills/himalaya-zh/references/configuration.md18backend.login = "user@example.com"
LOW…/agents/skills/himalaya-zh/references/configuration.md27message.send.backend.login = "user@example.com"
LOW…/agents/skills/himalaya-zh/references/configuration.md143email = "user@example.com"
LOW…/agents/skills/himalaya-en/references/configuration.md9email = "user@example.com"
LOW…/agents/skills/himalaya-en/references/configuration.md18backend.login = "user@example.com"
LOW…/agents/skills/himalaya-en/references/configuration.md27message.send.backend.login = "user@example.com"
LOW…/agents/skills/himalaya-en/references/configuration.md143email = "user@example.com"
Synthetic Comment Markers2 hits · 10 pts
SeverityFileLineSnippet
HIGH.github/workflows/issue-welcome.yml107 `> Our [contribution policy](https://github.com/${context.repo.owner}/${context.repo.repo}/issues/4333
HIGH.github/workflows/pr-welcome.yml98 `> Our [contribution policy](https://github.com/${context.repo.owner}/${context.repo.repo}/issues/4333
AI Slop Vocabulary6 hits · 10 pts
SeverityFileLineSnippet
LOWtests/unit/channels/test_dingtalk.py874 # Should not raise, just return
MEDIUMconsole/package-lock.json9872 "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz",
LOWsrc/qwenpaw/app/routers/config.py381 # For custom channels, just use the dict
MEDIUM…qwenpaw/security/tool_guard/guardians/rule_guardian.py185 # Use a more robust approach to split commands while respecting quotes
MEDIUMsrc/qwenpaw/providers/openai_chat_model_compat.py332 """OpenAIChatModel with robust parsing for malformed tool-call chunks
MEDIUMsrc/qwenpaw/cli/update_cmd.py36 """Return robust text-decoding settings for subprocess output.
Example Usage Blocks4 hits · 7 pts
SeverityFileLineSnippet
LOWtests/contract/providers/test_provider_contract.py92# Example usage:
LOWscripts/check-channels.sh11# Usage:
LOWscripts/pack-tauri/build_macos_pyinstaller.sh5# Usage:
LOWscripts/pack-tauri/build_pyinstaller.sh5# Usage:
Slop Phrases3 hits · 3 pts
SeverityFileLineSnippet
LOW.github/workflows/pr-welcome.yml320 comment += `Great job using the PR template! Don't forget to fill in the **Testing** section with how to
LOW.github/workflows/pr-welcome.yml404 comment += `Great job using the PR template! Don't forget to fill in the **Testing** section with how to
LOWsrc/qwenpaw/agents/mission/prompts.py521 - Gotchas encountered (e.g., "don't forget to update Z when changing W")
Dead Code1 hit · 1 pts
SeverityFileLineSnippet
MEDIUMtests/unit/channels/test_dingtalk.py1470