AI Slop Code Risk Monitor

farion1231/cc-switch

SlopCodeMonitor badge for farion1231/cc-switch Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode,DeepSeek Harness and more. Only official website: ccswitch.io

2.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for farion1231/cc-switch, a Rust project with 150,519 GitHub stars. SynthScan examined 661,772 lines of code across 1499 source files, recording 808 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 2.2 (Low 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.

2.2
Adjusted Signal
2.2
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
150.5K
Stars
Rust
Language
661.8K
Lines of Code
1.5K
Files
808
Pattern Hits
2026-10-31
Scan Date
0.02
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 4.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 495 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.6/100 · LOW

Are imports declared and package/API names verified? 76 finding(s).

Agent Over-Engineering Ratio 6.0/100 · LOW

Are wrappers, guards, and repeated structures necessary? 333 finding(s).

PR Review Velocity Impact 10.4/100 · LOW

Which changes need focused human review? 808 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

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.

CRITICAL 1HIGH 29MEDIUM 244LOW 534

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 808 distinct pattern matches across 12 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.

Decorative Section Separators234 hits · 702 pts
SeverityFileLineSnippetContext
MEDIUMtests/types/sessionFixtures.test.ts37// ─── 运行时 schema ────────────────────────────────────────────────────────COMMENT
MEDIUMtests/types/sessionFixtures.test.ts321// ─── 契约规则(与 Rust providers/blocks.rs 常量一致) ──────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs80// ─── 文案 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs523// ─── 额度文字(和供应商卡片同一套:按设置写剩余或已用,快用完 / 已用完才多说一句)────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs1022// ─── 「需要路由」判定(镜像前端 `providerNeedsRouting`)──────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs1125// ─── 快照 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs1369// ─── 问题区的状态 ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs1497// ─── 反馈行 ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs1613// ─── 菜单模型(纯数据)────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs2013// ─── 读状态 → 模型 ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs2085// ─── 模型 → 托盘面板 ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs2387// ─── 模型 → Tauri 菜单 ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs2484// ─── 图标圆点和悬停提示 ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs2776// ─── 点击 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray.rs3166// ─── 额度刷新 ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray_panel.rs72// ─── 文案 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray_panel.rs191// ─── 方位 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray_panel.rs339// ─── 窗口 ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray_panel.rs569// ─── 平台:玻璃和摆放 ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/tray_panel.rs1078// ─── 命令 ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/content.rs181// ── ContentRef ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/content.rs550// ── 图片 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/hermes.rs55// ── SQLite scanning ─────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/hermes.rs638// ── JSONL scanning ──────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/hermes.rs1008 // ── SQLite (state.db) ───────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/claude.rs326// ─── 会话正文解析(设计 §4.1)────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/claude.rs991// ─── 块构造 ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/claude.rs1314// ─── 文本规则 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/claude.rs1400// ─── 原始记录(只声明用到的字段,其余由 serde 跳过)──────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs231// ─── 会话内容解析(设计 §4.2)────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs268// ─── 行结构(只声明用得到的字段,其余跳过不分配)──────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs491// ─── 状态机 ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs778 // ─── 轮次 ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs850 // ─── 消息输出 ────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs1104 // ─── 工具调用 ────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs1321 // ─── 结构化项 ────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs1530 // ─── 输出与回填 ──────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs1758 // ─── 收尾 ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex.rs2769 // ─── load_messages:结构化 blocks(§4.2)────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs32// ─── 行位置与 ContentRef ─────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs39// ─── 借用式反序列化 ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs185// ─── item_completed ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs595// ─── 命令文本 ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs716// ─── 工具输出头 ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs810// ─── diff ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs893// ─── 图片 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/codex_items.rs943// ─── block 构造 ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/blocks.rs204// ─── 预览 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/blocks.rs263// ─── 标题提炼(§3.3):输出 ≤ TITLE_CHARS,多行取首行并加 `…` ─────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/blocks.rs748// ─── diff 统计 ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/proxy/copilot_optimizer.rs517// ─── 内部辅助 ─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/proxy/copilot_optimizer.rs657// ─── 测试 ─────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/omo.rs39// ── OMO Slim commands ───────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs28// ─── File import/export ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs97// ─── File dialogs ────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs143// ─── Database backup management ─────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs213// ─── Backup storage overview ─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription_grok.rs34// ── 凭据读取 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription_grok.rs181// ── gRPC-web 帧与 protobuf 解析 ──────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription_grok.rs451// ── API 查询 ──────────────────────────────────────────────COMMENT
174 more matches not shown…
Over-Commented Block315 hits · 314 pts
SeverityFileLineSnippetContext
LOWtests/config/codexReasoningLevelPresets.test.ts1import { describe, expect, it } from "vitest";COMMENT
LOWtests/config/codexReasoningLevelPresets.test.ts121 ],COMMENT
LOWtests/config/codexReasoningLevelPresets.test.ts161 // 双官方清单内(effort 仅 high/max 两档真实深度);不声明 default=回落COMMENT
LOWtests/config/codexReasoningLevelPresets.test.ts221 // reasoning.effort 枚举(lmstudio.ai/blog/lmstudio-v0.3.29,2026-10-14)COMMENT
LOW.github/workflows/sync-r2.yml1# Mirror release assets to Cloudflare R2 so ccswitch.io/download can serveCOMMENT
LOW.github/workflows/wsl2-nightly.yml1name: WSL2 NightlyCOMMENT
LOWsrc-tauri/build.rs1fn main() {COMMENT
LOWsrc-tauri/tests/golden/codex_red_lines.rs1//! ② Codex 直连切换的红线。COMMENT
LOWsrc-tauri/tests/golden/codex_red_lines.rs21//! | 10 | 归一化不覆盖用户自己的同名表 | 本文件 |COMMENT
LOWsrc-tauri/tests/golden/main.rs1//! 重构前的金标测试。COMMENT
LOWsrc-tauri/src/model_capabilities.rs61COMMENT
LOWsrc-tauri/src/codex_history_migration.rs441 let generation = entry.path();COMMENT
LOWsrc-tauri/src/hermes_config.rs1//! Hermes Agent 配置文件读写模块COMMENT
LOWsrc-tauri/src/hermes_config.rs21//! api_key: sk-or-...COMMENT
LOWsrc-tauri/src/hermes_config.rs221 }COMMENT
LOWsrc-tauri/src/hermes_config.rs481/// ```COMMENT
LOWsrc-tauri/src/hermes_config.rs781/// Upserts into the `custom_providers:` YAML sequence (matched by `name`).COMMENT
LOWsrc-tauri/src/hermes_config.rs1101pub(crate) fn json_to_yaml(json: &serde_json::Value) -> Result<serde_yaml::Value, AppError> {COMMENT
LOWsrc-tauri/src/config.rs1use serde::{Deserialize, Serialize};COMMENT
LOWsrc-tauri/src/lib.rs1941 // 此时应仅阻止退出、保持托盘后台运行。COMMENT
LOWsrc-tauri/src/lib.rs2301 .buttons(MessageDialogButtons::OkCancelCustom(COMMENT
LOWsrc-tauri/src/lib.rs2361///COMMENT
LOWsrc-tauri/src/provider.rs21 #[serde(skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/provider.rs301 pub base_url: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs321 pub coding_plan_provider: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs341#[derive(Debug, Clone, Serialize, Deserialize)]COMMENT
LOWsrc-tauri/src/provider.rs381 /// 使用托管账号认证(如 GitHub Copilot OAuth)COMMENT
LOWsrc-tauri/src/provider.rs441 }COMMENT
LOWsrc-tauri/src/provider.rs521 pub partner_promotion_key: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs541 /// Codex Copilot only: absent or auto prefers advertised Responses, then Chat.COMMENT
LOWsrc-tauri/src/provider.rs561 /// If not set, Claude -> Responses conversions use a client-provided session/threadCOMMENT
LOWsrc-tauri/src/provider.rs581 )]COMMENT
LOWsrc-tauri/src/provider.rs601 skip_serializing_if = "Option::is_none"COMMENT
LOWsrc-tauri/src/provider.rs641 pub display_name: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs721 #[serde(default)]COMMENT
LOWsrc-tauri/src/provider.rs741 #[serde(rename = "opusModel")]COMMENT
LOWsrc-tauri/src/provider.rs781 /// 供应商名称COMMENT
LOWsrc-tauri/src/provider.rs801 /// 备注信息COMMENT
LOWsrc-tauri/src/provider.rs1001// ============================================================================COMMENT
LOWsrc-tauri/src/codex_config.rs21/// provider is routed through CC Switch. A dedicated id is an ownershipCOMMENT
LOWsrc-tauri/src/codex_config.rs41/// `web_search` hosted tool. A BLACKLIST (default-on): everything not listed keepsCOMMENT
LOWsrc-tauri/src/codex_config.rs61 "minimax.io", // MiniMax global (api.minimax.io)COMMENT
LOWsrc-tauri/src/codex_config.rs221pub enum CodexCatalogToolProfile {COMMENT
LOWsrc-tauri/src/codex_config.rs241 /// which also honors settings-level `apiFormat` and the TOML `wire_api` (matchingCOMMENT
LOWsrc-tauri/src/codex_config.rs1021/// The auth mode Codex resolves for an `auth.json` payloadCOMMENT
LOWsrc-tauri/src/codex_config.rs1421 model: String,COMMENT
LOWsrc-tauri/src/codex_config.rs1981/// Hosts whose native `/responses` gateway publishes an OFFICIAL Codex modelCOMMENT
LOWsrc-tauri/src/codex_config.rs2121/// field ..."). `base_instructions` is the other known required field; theCOMMENT
LOWsrc-tauri/src/codex_config.rs2541 Official {COMMENT
LOWsrc-tauri/src/codex_config.rs2561/// custom 工具 `exec`;其余第三方行是 direct,只有 `exec_command`。两者若共用一个值,切换时COMMENT
LOWsrc-tauri/src/codex_config.rs2741 }COMMENT
LOWsrc-tauri/src/usage_events.rs1//! 使用统计实时刷新事件模块COMMENT
LOWsrc-tauri/src/app_config.rs301 pub repo_owner: Option<String>,COMMENT
LOWsrc-tauri/src/app_config.rs661 /// 应用管理器(claude/codex)COMMENT
LOWsrc-tauri/src/app_config.rs861 Self::auto_import_prompt_if_exists(&mut config, AppType::OpenClaw)?;COMMENT
LOWsrc-tauri/src/tray_panel.rs1//! 托盘面板:Windows 右键点托盘图标、macOS 左右键点图标时,在图标旁弹出一块玻璃面板,COMMENT
LOWsrc-tauri/src/agy_config.rs1//! Antigravity CLI (`agy`) 的 live 配置。COMMENT
LOWsrc-tauri/src/linux_fix.rs1//! Linux 专用的主窗口恢复补丁。COMMENT
LOWsrc-tauri/src/linux_fix.rs21//! 排队请求不会延迟抢焦点;COMMENT
LOWsrc-tauri/src/linux_fix.rs261}COMMENT
255 more matches not shown…
Magic Placeholder Names26 hits · 138 pts
SeverityFileLineSnippetContext
HIGHdeplink.html1359 "ANTHROPIC_AUTH_TOKEN": "sk-your-api-key-here",CODE
HIGHdeplink.html1368 "OPENAI_API_KEY": "sk-your-api-key-here"CODE
HIGH⚡deplink.html1387api_key = "sk-your-api-key-here"CODE
HIGH⚡deplink.html1391 "GEMINI_API_KEY": "AIzaSy-your-api-key-here",CODE
HIGH⚡deplink.html1399 "apiKey": "sk-your-api-key-here"CODE
HIGHdocs/user-manual/ja/5-faq/5.1-config-files.md336 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md135 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md155 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md195 "GEMINI_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/zh/5-faq/5.1-config-files.md336 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md135 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md155 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md195 "GEMINI_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/en/5-faq/5.1-config-files.md336 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md135 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md155 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md195 "GEMINI_API_KEY": "your-api-key",CODE
HIGHsrc/components/providers/forms/CommonConfigEditor.tsx241 "ANTHROPIC_AUTH_TOKEN": "your-api-key-here"CODE
HIGHsrc/components/providers/forms/ProviderForm.tsx3059 "apiKey": "your-api-key-here"CODE
HIGHsrc/components/providers/forms/ProviderForm.tsx3095 "apiKey": "your-api-key-here",CODE
HIGHsrc/components/providers/forms/GeminiConfigSections.tsx63GEMINI_API_KEY=sk-your-api-key-hereCODE
HIGHsrc/i18n/locales/zh.json1990 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/tr.json1974 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/ja.json1990 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/en.json1990 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/zh-TW.json1991 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
Hyper-Verbose Identifiers96 hits · 98 pts
SeverityFileLineSnippetContext
LOWtests/components/PiProviderForm.test.tsx18async function fetchModelsAndClosePicker(user: User) {CODE
LOWsrc/types/usage.ts283export function getCacheWriteAvailability(CODE
LOWsrc/types/usage.ts321export function isNonNegativeDecimalString(value: string): boolean {CODE
LOWsrc/types/omo.ts302export function parseOmoOtherFieldsObject(CODE
LOWsrc/types/omo.ts427export function buildOmoSlimProfilePreview(CODE
LOWsrc/config/universalProviderPresets.ts96export function createUniversalProviderFromPreset(CODE
LOWsrc/config/hermesBuiltinProviderIds.ts74export function isHermesBuiltinProviderId(providerKey: string): boolean {CODE
LOWsrc/config/openclawProviderPresets.ts61export function rebaseOpenClawSuggestedDefaults(CODE
LOWsrc/config/codingPlanProviders.ts109export function codingPlanEnabledByDefault(CODE
LOWsrc/config/codingPlanProviders.ts120export function extractBaseUrlForUsageDetection(CODE
LOWsrc/config/piProviderPresets.ts3445function materializeVerifiedThinkingProfiles(CODE
LOWsrc/config/piModelCatalog.ts935export function getPiModelCatalogReference(CODE
LOWsrc/utils/claudeEditorOverlay.ts14export function withClaudeGatewayDefaults(CODE
LOWsrc/utils/claudeEditorOverlay.ts33export function overlayClaudeProviderFields(CODE
LOWsrc/utils/providerCapabilities.ts26function hasExplicitCodexThirdPartyUpstream(CODE
LOWsrc/utils/providerCapabilities.ts46export function resolveCodexOfficialIdentity(CODE
LOWsrc/utils/providerCapabilities.ts128export function supportsConnectivityCheck(CODE
LOWsrc/utils/providerCapabilities.ts141export function supportsOfficialProxyTakeover(CODE
LOWsrc/utils/deepLinkConfigPreview.ts44export function parseDeepLinkConfigPreview(CODE
LOWsrc/utils/postChangeSync.ts7export async function syncCurrentProvidersLiveSafe(): Promise<{CODE
LOWsrc/components/UsageScriptModal.tsx202function isOfficialSubscriptionProvider(provider: Provider, appId: AppId) {CODE
LOWsrc/components/settings/WebdavSyncSection.tsx161function buildPasswordPreservationKey(values: {CODE
LOWsrc/components/openclaw/utils.ts17export function parseOpenClawEnvEditorValue(raw: string): OpenClawEnvConfig {CODE
LOW⚡src/components/openclaw/utils.ts44export function getOpenClawToolsProfileSelectValue(profile?: string): string {CODE
LOW⚡src/components/openclaw/utils.ts53export function getOpenClawUnsupportedProfile(profile?: string): string | null {CODE
LOW⚡src/components/openclaw/utils.ts60export function getOpenClawTimeoutInputValue(CODE
LOWsrc/components/universal/UniversalProviderFormModal.tsx30export function UniversalProviderFormModal({CODE
LOWsrc/components/shell/NewLayoutDialog.tsx44export function useNewLayoutNoticePending(CODE
LOWsrc/components/providers/presentation.ts191function buildSwitchSectionsByView(input: SwitchModeInput): ProviderSection[] {CODE
LOW…mponents/providers/forms/ClaudeDesktopProviderForm.tsx249export function ClaudeDesktopProviderForm({CODE
LOW…ponents/providers/forms/ManagedAccountRemoveDialog.tsx38export function ManagedAccountRemoveDialog({CODE
LOWsrc/components/providers/forms/modelMetadataFill.ts163export function piThinkingLevelMapFromEfforts(CODE
LOW…/components/providers/forms/ClaudeStackModelsField.tsx27export function createClaudeStackModelRow(CODE
LOW…/components/providers/forms/ClaudeStackModelsField.tsx38export function normalizeClaudeStackModels(CODE
LOWsrc/components/providers/forms/OmoFormFields.tsx259export function mergeCustomModelsIntoStore(CODE
LOW…ts/providers/forms/LocalProxyRequestOverridesField.tsx19export function LocalProxyRequestOverridesField({CODE
LOWsrc/components/providers/forms/CodexFormFields.tsx125export function isCopilotModelSupportedByCodex(CODE
LOWsrc/components/providers/forms/CodexFormFields.tsx147export function resolveCopilotReportedPromptLimit(CODE
LOWsrc/components/providers/forms/CodexFormFields.tsx426export function formatReasoningLevelsLabel(levels: string[]): string {CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts129export function hasNativeOpencodeDefinition(CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts145export function getOpencodeDeclaredModels(CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts216export function parseOpencodeConfigStrict(CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts372export function formatOpencodeExtraOptionValue(value: unknown): string {CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts397export function mergeOpencodeExtraOptionRows(CODE
LOWsrc/components/usage/UsageTrendChart.tsx183export function formatUsageTrendTickLabel(CODE
LOWsrc/components/usage/UsageTrendChart.tsx221export function createUsageTrendTokenTickFormatter(CODE
LOWsrc/components/usage/UsageTrendChart.tsx246export function formatUsageTrendTokenTickLabel(CODE
LOWsrc/components/usage/UsageDashboard.tsx120export function resetUsageSyncClockForTests() {CODE
LOWsrc/components/usage/format.ts285export function getEstimatedTokensPerSecond(CODE
LOWsrc/components/usage/format.ts299export function getAggregateTokensPerSecond(CODE
LOWsrc/components/usage/format.ts338export function formatOutputTokensPerSecond(CODE
LOWsrc/components/usage/format.ts344export function formatEstimatedTokensPerSecond(CODE
LOWsrc/components/usage/format.ts385function isTraditionalChineseLanguage(normalizedLanguage: string): boolean {CODE
LOWsrc/components/prompts/PiNativePromptResources.tsx93export function usePiPromptTemplatesQuery() {CODE
LOWsrc/components/apps/ToolUninstallConfirmDialog.tsx28export function ToolUninstallConfirmDialog({CODE
LOWsrc/components/apps/useToolManagement.ts59export function hermesUninstallMayLeaveFiles(plan: ToolUninstallPlan) {CODE
LOWsrc/components/apps/useToolManagement.ts288function updateToolManagementState(update: Partial<ToolManagementState>) {CODE
LOWsrc/components/apps/useToolManagement.ts313export async function checkToolUpdatesInBackground(): Promise<void> {CODE
LOWsrc/hooks/useSkills.ts111export function useRefreshDiscoverableSkills() {CODE
LOWsrc/hooks/useSkills.ts171export function useDiscoverableSkillsFailures() {CODE
36 more matches not shown…
Structural Annotation Overuse59 hits · 92 pts
SeverityFileLineSnippetContext
LOWdocs/guides/codex-deepseek-routing-guide-ja.md52## Step 1: Codex プロバイダーを追加するCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-ja.md72## Step 2: ローカルルーティングを有効にして Codex をルーティングするCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-ja.md83## Step 3: プロバイダーを切り替えて Codex を再起動するCOMMENT
LOWdocs/guides/claude-codex-routing-guide-en.md32## Step 1: Add a providerCOMMENT
LOWdocs/guides/claude-codex-routing-guide-en.md67## Step 2: Enable local routing and take over Claude CodeCOMMENT
LOWdocs/guides/claude-codex-routing-guide-en.md78## Step 3: Switch providers and verifyCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-ja.md94### Step 1: スイッチを見つけるCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-ja.md110### Step 2: スイッチをオフからオンに切り替える → 確認ダイアログが表示されるCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-ja.md162### Step 1: スイッチをオンからオフに切り替える → バックアップを探索 → 確認ダイアログが表示されるCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-ja.md181### Step 2: 復元はどう実行されるか(バックアップ台帳に従って正確に戻す)COMMENT
LOWdocs/guides/codex-unified-session-history-guide-ja.md197### Step 3: 通知を見て、結果を確認するCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-en.md47## Step 1: Add a Codex providerCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-en.md60## Step 2: Enable local routing and route CodexCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-en.md71## Step 3: Switch providers and restart CodexCOMMENT
LOWdocs/guides/codex-claude-routing-guide-ja.md32## Step 1: Codex プロバイダーを追加するCOMMENT
LOWdocs/guides/codex-claude-routing-guide-ja.md59## Step 2: ローカルルーティングを有効にして Codex をルーティングするCOMMENT
LOWdocs/guides/codex-claude-routing-guide-ja.md70## Step 3: プロバイダーを切り替えて Codex を再起動するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md44## Step 1: Switch back to OpenAI Official and complete official loginCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md54## Step 2: Enable Codex App EnhancementsCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md77## Step 3: Add a third-party Codex providerCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md88## Step 4: Enable local routing and route Codex when neededCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md105## Step 5: Switch to the third-party provider and restart CodexCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md52## Step 1: Add a Codex providerCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md72## Step 2: Enable local routing and route CodexCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md83## Step 3: Switch providers and restart CodexCOMMENT
LOWdocs/guides/claude-codex-routing-guide-ja.md32## Step 1: プロバイダーを追加するCOMMENT
LOWdocs/guides/claude-codex-routing-guide-ja.md67## Step 2: ローカルルーティングを有効にして Claude Code をルーティングするCOMMENT
LOWdocs/guides/claude-codex-routing-guide-ja.md78## Step 3: プロバイダーを切り替えて確認するCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-en.md94### Step 1: Find the switchCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-en.md110### Step 2: Flip the switch from off to on -> a confirmation dialog pops upCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-en.md162### Step 1: Flip the switch from on to off -> probe for backups -> a confirmation dialog pops upCOMMENT
LOWdocs/guides/codex-unified-session-history-guide-en.md181### Step 2: How restore runs (precise flip-back per the backup ledger)COMMENT
LOWdocs/guides/codex-unified-session-history-guide-en.md197### Step 3: Read the toast, confirm the resultCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-ja.md47## Step 1: Codex プロバイダーを追加するCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-ja.md60## Step 2: ローカルルーティングを有効にして Codex をルーティングするCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-ja.md71## Step 3: プロバイダーを切り替えて Codex を再起動するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md44## Step 1: OpenAI Official に戻して公式ログインを完了するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md54## Step 2: Codex アプリ拡張を有効化するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md77## Step 3: サードパーティ Codex プロバイダーを追加するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md88## Step 4: 必要に応じてローカルルーティングと Codex ルーティングを有効化するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md105## Step 5: サードパーティプロバイダーへ切り替えて Codex を再起動するCOMMENT
LOWdocs/guides/codex-claude-routing-guide-en.md32## Step 1: Add a Codex providerCOMMENT
LOWdocs/guides/codex-claude-routing-guide-en.md59## Step 2: Enable local routing and take over CodexCOMMENT
LOWdocs/guides/codex-claude-routing-guide-en.md70## Step 3: Switch providers and restart CodexCOMMENT
LOWdocs/user-manual/en/1-getting-started/1.4-quickstart.md5## Step 1: Add a ProviderCOMMENT
LOWdocs/user-manual/en/1-getting-started/1.4-quickstart.md18## Step 2: Switch ProviderCOMMENT
LOWdocs/user-manual/en/1-getting-started/1.4-quickstart.md30## Step 3: ActivationCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md29### Step 1: Open the Claude Desktop PageCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md39### Step 2: Import or Add ProvidersCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md80### Step 3: Switch and Restart Claude DesktopCOMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs2231 // Step 1: OpenAI nested details as fallback for cache tokensCOMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs2262 // Step 2: Direct Anthropic-style fields override (authoritative if present)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs37 // Step 1: Merge config file if provided (v3.8+)COMMENT
LOW⚡src-tauri/src/services/env_manager.rs22 // Step 1: Create backupCOMMENT
LOW⚡src-tauri/src/services/env_manager.rs25 // Step 2: Delete variablesCOMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs855 // Step 1: 小写COMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs858 // Step 2: 剥离 "provider/" 前缀(如 openai/, azure/)COMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs863 // Step 3: 剥离 ISO 日期后缀 -YYYY-MM-DD(正好 11 字符)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs878 // Step 4: 剥离紧凑日期后缀 -YYYYMMDD(正好 9 字符)COMMENT
Fake / Example Data49 hits · 59 pts
SeverityFileLineSnippetContext
LOWtests/components/SessionMarkdown.test.tsx77 screen.getByRole("link", { name: "user@example.com" }),CODE
LOWtests/components/SessionMarkdown.test.tsx585 await user.click(screen.getByRole("link", { name: "user@example.com" }));CODE
LOWtests/components/ProviderCard.codexAccount.test.tsx206 const login = "user@example.com";CODE
LOWtests/components/ManagementListSearch.test.tsx19 expect(input).toHaveAttribute("placeholder", "Search managed items");CODE
LOW…s/components/ProviderForm.codexManagedAccount.test.tsx113 login: "user@example.com",CODE
LOWtests/components/CodexOAuthSection.test.tsx68 login: "user@example.com",CODE
LOWtests/components/CodexOAuthSection.test.tsx494 expect(optionLabels.indexOf("user@example.com")).toBeLessThan(CODE
LOWtests/hooks/useManagedAuth.test.tsx113 login: "user@example.com",CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs2384 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs2619 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs2631 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs2695 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs2726 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs3341 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs3374 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs3425 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs3454 Some("user@example.com".to_string()),CODE
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs3470 Some("user@example.com".to_string()),CODE
LOWsrc/components/providers/forms/HermesFormFields.tsx73 const candidate = trimmed.replace(TEMPLATE_TOKEN_RE, "placeholder");CODE
LOWsrc/i18n/locales/zh.json62 "placeholder": "请输入API Key",CODE
LOWsrc/i18n/locales/zh.json3416 "placeholder": "状态筛选",CODE
LOW⚡src/i18n/locales/zh.json3720 "placeholder": "127.0.0.1",CODE
LOW⚡src/i18n/locales/zh.json3725 "placeholder": "15721",CODE
LOW⚡src/i18n/locales/zh.json3730 "placeholder": "3",CODE
LOW⚡src/i18n/locales/zh.json3735 "placeholder": "0(不限)或 300",CODE
LOWsrc/i18n/locales/tr.json62 "placeholder": "API Anahtarını Girin",CODE
LOWsrc/i18n/locales/tr.json3400 "placeholder": "Duruma göre filtrele",CODE
LOW⚡src/i18n/locales/tr.json3704 "placeholder": "127.0.0.1",CODE
LOW⚡src/i18n/locales/tr.json3709 "placeholder": "15721",CODE
LOW⚡src/i18n/locales/tr.json3714 "placeholder": "3",CODE
LOW⚡src/i18n/locales/tr.json3719 "placeholder": "0 (sınırsız) veya 300",CODE
LOWsrc/i18n/locales/ja.json62 "placeholder": "API Key を入力",CODE
LOWsrc/i18n/locales/ja.json3416 "placeholder": "状態で絞り込み",CODE
LOW⚡src/i18n/locales/ja.json3720 "placeholder": "127.0.0.1",CODE
LOW⚡src/i18n/locales/ja.json3725 "placeholder": "15721",CODE
LOW⚡src/i18n/locales/ja.json3730 "placeholder": "3",CODE
LOW⚡src/i18n/locales/ja.json3735 "placeholder": "0(無制限)または 300",CODE
LOWsrc/i18n/locales/en.json62 "placeholder": "Enter API Key",CODE
LOWsrc/i18n/locales/en.json3416 "placeholder": "Filter by status",CODE
LOW⚡src/i18n/locales/en.json3720 "placeholder": "127.0.0.1",CODE
LOW⚡src/i18n/locales/en.json3725 "placeholder": "15721",CODE
LOW⚡src/i18n/locales/en.json3730 "placeholder": "3",CODE
LOW⚡src/i18n/locales/en.json3735 "placeholder": "0 (unlimited) or 300",CODE
LOWsrc/i18n/locales/zh-TW.json62 "placeholder": "請輸入 API Key",CODE
LOWsrc/i18n/locales/zh-TW.json3417 "placeholder": "狀態篩選",CODE
LOW⚡src/i18n/locales/zh-TW.json3721 "placeholder": "127.0.0.1",CODE
LOW⚡src/i18n/locales/zh-TW.json3726 "placeholder": "15721",CODE
LOW⚡src/i18n/locales/zh-TW.json3731 "placeholder": "3",CODE
LOW⚡src/i18n/locales/zh-TW.json3736 "placeholder": "0(不限)或 300",CODE
Verbosity Indicators9 hits · 17 pts
SeverityFileLineSnippetContext
LOWsrc-tauri/src/proxy/providers/transform_responses.rs2231 // Step 1: OpenAI nested details as fallback for cache tokensCOMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs2262 // Step 2: Direct Anthropic-style fields override (authoritative if present)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs37 // Step 1: Merge config file if provided (v3.8+)COMMENT
LOW⚡src-tauri/src/services/env_manager.rs22 // Step 1: Create backupCOMMENT
LOW⚡src-tauri/src/services/env_manager.rs25 // Step 2: Delete variablesCOMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs855 // Step 1: 小写COMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs858 // Step 2: 剥离 "provider/" 前缀(如 openai/, azure/)COMMENT
LOW⚡src-tauri/src/services/session_usage_codex.rs863 // Step 3: 剥离 ISO 日期后缀 -YYYY-MM-DD(正好 11 字符)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs878 // Step 4: 剥离紧凑日期后缀 -YYYYMMDD(正好 9 字符)COMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/guides/deeplink-site-integration-guide-zh.md0\ model_provider = "example" model = "example-coder" [model_providers.example] name = "example ai" base_url = "https://aSTRING
HIGHdocs/guides/deeplink-site-integration-guide-en.md0\ model_provider = "example" model = "example-coder" [model_providers.example] name = "example ai" base_url = "https://aSTRING
HIGHdocs/guides/deeplink-site-integration-guide-ja.md0\ model_provider = "example" model = "example-coder" [model_providers.example] name = "example ai" base_url = "https://aSTRING
Modern AI Meta-Vocabulary7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md566- **Codex Deep Links Dropped Provider Settings** (refs #7438, #7942, #5510): A link carrying `config.toml` used to keep CODE
MEDIUMCHANGELOG.md567- **Grok Build Deep Links Dropped the Model Profile** (refs #6457): The table named by `[models] default` is kept througCODE
MEDIUMCHANGELOG.md1310- **Grok Models Work Through xAI's Native Responses API Under Codex Routing** (#6917): A series of contributed fixes cloCODE
MEDIUMCHANGELOG.md1609Development since v3.18.0 is headlined by a security-hardening wave and a proxy correctness fix with immediate field impCODE
MEDIUMdocs/release-notes/v4.0.19-en.md56- **Picking some relay models filled in another vendor's parameters** ([#8765](https://github.com/farion1231/cc-switch/iCODE
MEDIUMdocs/release-notes/v3.20.2-en.md11- **Run Grok in Codex through xAI's native Responses API** ([#6917](https://github.com/farion1231/cc-switch/pull/6917), CODE
MEDIUMdocs/release-notes/v3.20.2-en.md91A series of contributed commits closes four independent failures on the native-Responses path to xAI. xAI rejects Codex CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALsrc/components/JsonEditor.tsx305 const contextualRanges = viewRef.current.state.selection.ranges.map(CODE
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMsrc-tauri/src/database/backup.rs3163 #[ignore = "perf harness, run explicitly"]COMMENT
MEDIUM⚡src-tauri/src/resources/gpt5_5_template.json42 "base_instructions": "You are Codex, a coding agent based on GPT-5. You and the user share one workspace, and your jobCODE
MEDIUM⚡src-tauri/src/resources/gpt5_5_template.json44 "instructions_template": "You are Codex, a coding agent based on GPT-5. You and the user share one workspace, and yoCODE
Slop Phrases6 hits · 7 pts
SeverityFileLineSnippetContext
LOW…uri/src/resources/codex_deepseek_catalog_template.json57 "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and yourCODE
LOW…uri/src/resources/codex_deepseek_catalog_template.json69 "base_instructions": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your job iCODE
LOW…uri/src/resources/codex_deepseek_catalog_template.json124 "instructions_template": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and yourCODE
LOW…uri/src/resources/codex_deepseek_catalog_template.json136 "base_instructions": "You are Codex, an agent based on GPT-5. You and the user share one workspace, and your job iCODE
LOW⚡src-tauri/src/resources/gpt5_5_template.json42 "base_instructions": "You are Codex, a coding agent based on GPT-5. You and the user share one workspace, and your jobCODE
LOW⚡src-tauri/src/resources/gpt5_5_template.json44 "instructions_template": "You are Codex, a coding agent based on GPT-5. You and the user share one workspace, and yoCODE