Repository Analysis

farion1231/cc-switch

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Gemini CLI & Hermes Agent. Only official website: ccswitch.io

2.5 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of farion1231/cc-switch, a Rust project with 116,946 GitHub stars. SynthScan v2.0 examined 315,655 lines of code across 828 source files, recording 446 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 2.5 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

2.5
Adjusted Score
2.5
Raw Score
100%
Time Factor
2026-07-14
Last Push
116.9K
Stars
Rust
Language
315.7K
Lines of Code
828
Files
446
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 24MEDIUM 100LOW 322

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 446 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators98 hits · 294 pts
SeverityFileLineSnippetContext
MEDIUMsrc-tauri/src/session_manager/providers/hermes.rs52// ── SQLite scanning ─────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/session_manager/providers/hermes.rs283// ── JSONL scanning ──────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/proxy/copilot_optimizer.rs483// ─── 内部辅助 ─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/proxy/copilot_optimizer.rs623// ─── 测试 ─────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/omo.rs39// ── OMO Slim commands ───────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs17// ─── File import/export ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs78// ─── File dialogs ────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/commands/import_export.rs124// ─── Database backup management ─────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs22// ── Variant descriptor ─────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs65// ── Service ────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs70 // ── Path helpers ────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs106 // ── Field extraction ───────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs121 // ── Merge helpers ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/omo.rs199 // ── Public API (variant-parameterized) ─────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs13// ── 数据类型 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs96// ── Claude 凭据读取 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs281// ── Claude API 查询 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs454// ── Codex 凭据读取 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs622// ── Codex API 查询 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs763// ── Gemini 凭据读取 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs962// ── Gemini Token 刷新 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs997// ── Gemini API 查询 ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs1226// ── 入口函数 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/subscription.rs1347// ── 辅助函数 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs21// ─── Protocol constants ──────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs36// ─── Error helpers ───────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs60// ─── Types ───────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs103// ─── Snapshot building ───────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs164// ─── Manifest handling ───────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs248// ─── Artifact verification ───────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs307// ─── Snapshot application ────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs342// ─── Utilities ───────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs396// ─── Sync status persistence ─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/sync_protocol.rs416// ─── Tests ───────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs11// ── 供应商检测 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs100// ── Kimi For Coding ─────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs208// ── 智谱 GLM ────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs408// ── MiniMax ─────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs493// ── ZenMux ──────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs697// ── 火山方舟 Agent Plan / Coding Plan ───────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs788// ── 火山引擎签名 V4(AK/SK)─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs1172// ── 公开入口 ────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/coding_plan.rs1188// ── 智谱团队套餐(Team Plan)──────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs20// ─── WebDAV extension methods ────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs30// ─── URL utilities ───────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs85// ─── Auth ────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs129// ─── HTTP operations ─────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs328// ─── Internal helpers ────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav.rs357// ─── Service detection & error helpers ───────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs30// ─── Sync lock ───────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs51// ─── Public API ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs189// ─── Sync status persistence ─────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs243// ─── Download & verify ───────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs276// ─── Remote path helpers ─────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/webdav_sync.rs308// ─── Tests ───────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/balance.rs15// ── 供应商检测 ──────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/balance.rs70// ── DeepSeek ────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/balance.rs148// ── StepFun ─────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/balance.rs206// ── SiliconFlow ─────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/services/balance.rs283// ── OpenRouter ──────────────────────────────────────────────COMMENT
38 more matches not shown…
Over-Commented Block176 hits · 176 pts
SeverityFileLineSnippetContext
LOWsrc-tauri/build.rs1fn main() {COMMENT
LOWsrc-tauri/src/codex_state_db.rs1//! Locating Codex's per-thread state SQLite databases.COMMENT
LOWsrc-tauri/src/codex_history_migration.rs341 generation.is_dir() && backup_generation_matches_dir(&generation, codex_dir_key)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.rs1001 serde_yaml::from_str(&json_str)COMMENT
LOWsrc-tauri/src/config.rs1use serde::{Deserialize, Serialize};COMMENT
LOWsrc-tauri/src/lib.rs1521 // 处理退出请求(所有平台)COMMENT
LOWsrc-tauri/src/lib.rs2041COMMENT
LOWsrc-tauri/src/provider.rs21 #[serde(skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/provider.rs221 pub enabled: bool,COMMENT
LOWsrc-tauri/src/provider.rs241 pub user_id: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs261 pub secret_access_key: Option<String>,COMMENT
LOWsrc-tauri/src/provider.rs341#[serde(rename_all = "camelCase")]COMMENT
LOWsrc-tauri/src/provider.rs401 #[serde(rename = "claudeDesktopMode", skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/provider.rs421 rename = "partnerPromotionKey",COMMENT
LOWsrc-tauri/src/provider.rs441 #[serde(rename = "apiFormat", skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/provider.rs461 /// "auto" enables known-compatible upstreams; "enabled" / "disabled" are overrides.COMMENT
LOWsrc-tauri/src/provider.rs481 /// request body, so without this the path falls back to a conservativeCOMMENT
LOWsrc-tauri/src/provider.rs501 #[serde(rename = "liveConfigManaged", skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/provider.rs581#[derive(Debug, Clone, Serialize, Deserialize, Default)]COMMENT
LOWsrc-tauri/src/provider.rs601 /// Sonnet 默认模型COMMENT
LOWsrc-tauri/src/provider.rs641COMMENT
LOWsrc-tauri/src/provider.rs661 #[serde(default)]COMMENT
LOWsrc-tauri/src/provider.rs861 })COMMENT
LOWsrc-tauri/src/codex_config.rs21pub const CC_SWITCH_CODEX_MODEL_CATALOG_FILENAME: &str = "cc-switch-model-catalog.json";COMMENT
LOWsrc-tauri/src/codex_config.rs41///COMMENT
LOWsrc-tauri/src/codex_config.rs101 falseCOMMENT
LOWsrc-tauri/src/codex_config.rs121 /// Additionally the Codex `web_search` hosted tool is unusable on this pathCOMMENT
LOWsrc-tauri/src/codex_config.rs521}COMMENT
LOWsrc-tauri/src/codex_config.rs1021COMMENT
LOWsrc-tauri/src/codex_config.rs1161COMMENT
LOWsrc-tauri/src/usage_events.rs1//! 使用统计实时刷新事件模块COMMENT
LOWsrc-tauri/src/app_config.rs181 pub repo_owner: Option<String>,COMMENT
LOWsrc-tauri/src/app_config.rs701 /// 已存在配置文件时的 Prompt 自动导入逻辑COMMENT
LOWsrc-tauri/src/linux_fix.rs1//! Linux 专用的主窗口恢复补丁。COMMENT
LOWsrc-tauri/src/linux_fix.rs21use tauri::{PhysicalSize, WebviewWindow};COMMENT
LOWsrc-tauri/src/linux_fix.rs41/// 调用是 fire-and-forget:内部 spawn 一个异步任务在 ~250ms 后完成。COMMENT
LOWsrc-tauri/src/settings.rs321pub struct CodexOfficialHistoryUnifyMigration {COMMENT
LOWsrc-tauri/src/settings.rs341 // ===== 设备级 UI 设置 =====COMMENT
LOWsrc-tauri/src/settings.rs361 #[serde(default)]COMMENT
LOWsrc-tauri/src/settings.rs381 /// Run official Codex providers under the shared "custom" model_provider idCOMMENT
LOWsrc-tauri/src/settings.rs421 // ===== 当前供应商 ID(设备级)=====COMMENT
LOWsrc-tauri/src/settings.rs441 #[serde(default, skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/settings.rs461 #[serde(default, skip_serializing_if = "Option::is_none")]COMMENT
LOWsrc-tauri/src/gemini_config.rs61/// - Key 为空或包含无效字符COMMENT
LOWsrc-tauri/src/gemini_config.rs341/// {COMMENT
LOWsrc-tauri/src/gemini_config.rs361/// "auth": {COMMENT
LOWsrc-tauri/src/database/mod.rs1//! 数据库模块 - SQLite 数据持久化COMMENT
LOWsrc-tauri/src/database/dao/usage_rollup.rs1//! Usage rollup DAOCOMMENT
LOWsrc-tauri/src/proxy/body_filter.rs1//! 请求体过滤模块COMMENT
LOWsrc-tauri/src/proxy/body_filter.rs21/// 过滤私有参数(以 `_` 开头的字段)COMMENT
LOWsrc-tauri/src/proxy/body_filter.rs41#[cfg(test)]COMMENT
LOWsrc-tauri/src/proxy/copilot_optimizer.rs1//! Copilot 请求优化器COMMENT
LOWsrc-tauri/src/proxy/copilot_optimizer.rs21 pub initiator: &'static str,COMMENT
LOWsrc-tauri/src/proxy/copilot_optimizer.rs321COMMENT
LOWsrc-tauri/src/proxy/copilot_optimizer.rs361COMMENT
116 more matches not shown…
Magic Placeholder Names23 hits · 115 pts
SeverityFileLineSnippetContext
HIGHdeplink.html1208 "ANTHROPIC_AUTH_TOKEN": "sk-ant-your-api-key-here",CODE
HIGHdeplink.html1221 "OPENAI_API_KEY": "sk-proj-your-api-key-here"CODE
HIGHdeplink.html1236 "GEMINI_API_KEY": "AIzaSy-your-api-key-here",CODE
HIGHdocs/user-manual/ja/5-faq/5.1-config-files.md263 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md216 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md236 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/ja/2-providers/2.1-add.md284 "GEMINI_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/zh/5-faq/5.1-config-files.md263 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md216 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md236 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/zh/2-providers/2.1-add.md284 "GEMINI_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/en/5-faq/5.1-config-files.md263 apiKey: "your-api-key",CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md216 "ANTHROPIC_API_KEY": "your-api-key",CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md236 "OPENAI_API_KEY": "your-api-key"CODE
HIGHdocs/user-manual/en/2-providers/2.1-add.md284 "GEMINI_API_KEY": "your-api-key",CODE
HIGHsrc/components/providers/forms/CommonConfigEditor.tsx256 "ANTHROPIC_AUTH_TOKEN": "your-api-key-here"CODE
HIGHsrc/components/providers/forms/ProviderForm.tsx2408 "apiKey": "your-api-key-here"CODE
HIGHsrc/components/providers/forms/ProviderForm.tsx2438 "apiKey": "your-api-key-here",CODE
HIGHsrc/components/providers/forms/GeminiConfigSections.tsx99GEMINI_API_KEY=sk-your-api-key-hereCODE
HIGHsrc/i18n/locales/zh.json1253 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/ja.json1253 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/en.json1253 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
HIGHsrc/i18n/locales/zh-TW.json1225 "authJsonPlaceholder": "{\n \"OPENAI_API_KEY\": \"sk-your-api-key-here\"\n}",CODE
Structural Annotation Overuse59 hits · 94 pts
SeverityFileLineSnippetContext
LOWdocs/guides/codex-deepseek-routing-guide-ja.md30## Step 1: Codex プロバイダーを追加するCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-ja.md43## Step 2: ローカルルーティングを有効にして Codex をルーティングするCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-ja.md54## Step 3: プロバイダーを切り替えて Codex を再起動するCOMMENT
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.md37## Step 1: Add a Codex providerCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-en.md50## Step 2: Enable local routing and route CodexCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-en.md61## 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.md42## Step 1: Switch back to OpenAI Official and complete official loginCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md52## Step 2: Enable Codex App EnhancementsCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md73## Step 3: Add a third-party Codex providerCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md84## Step 4: Enable local routing and route Codex when neededCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-en.md101## Step 5: Switch to the third-party provider and restart CodexCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md30## Step 1: Add a Codex providerCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md43## Step 2: Enable local routing and route CodexCOMMENT
LOWdocs/guides/codex-deepseek-routing-guide-en.md54## Step 3: Switch providers and restart CodexCOMMENT
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.md37## Step 1: Codex プロバイダーを追加するCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-ja.md50## Step 2: ローカルルーティングを有効にして Codex をルーティングするCOMMENT
LOWdocs/guides/codex-kimi-routing-guide-ja.md61## Step 3: プロバイダーを切り替えて Codex を再起動するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md42## Step 1: OpenAI Official に戻して公式ログインを完了するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md52## Step 2: Codex アプリ拡張を有効化するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md73## Step 3: サードパーティ Codex プロバイダーを追加するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md84## Step 4: 必要に応じてローカルルーティングと Codex ルーティングを有効化するCOMMENT
LOW…cs/guides/codex-official-auth-preservation-guide-ja.md101## 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.md29## Step 3: ActivationCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md29### Step 1: Open the Claude Desktop PanelCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md41### Step 2: Import or Add ProvidersCOMMENT
LOWdocs/user-manual/en/2-providers/2.6-claude-desktop.md82### Step 3: Switch and Restart Claude DesktopCOMMENT
LOWsrc-tauri/src/database/backup.rs573 // Step 1: Create safety backup of current databaseCOMMENT
LOWsrc-tauri/src/database/backup.rs579 // Step 2: Open the backup file and restore it to the main databaseCOMMENT
LOWsrc-tauri/src/database/backup.rs592 // Step 3: Run schema migrations (backup may be from an older version)COMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs491 // Step 1: OpenAI nested details as fallback for cache tokensCOMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs522 // Step 2: Direct Anthropic-style fields override (authoritative if present)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs35 // Step 1: Merge config file if provided (v3.8+)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs557 // Step 1: Get config contentCOMMENT
LOWsrc-tauri/src/deeplink/provider.rs572 // Step 2: Parse config based on formatCOMMENT
LOWsrc-tauri/src/deeplink/provider.rs591 // Step 3: Extract values from config based on app type and merge with URL paramsCOMMENT
LOWsrc-tauri/src/services/env_manager.rs22 // Step 1: Create backupCOMMENT
LOWsrc-tauri/src/services/env_manager.rs25 // Step 2: Delete variablesCOMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs223 // Step 1: 小写COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs226 // Step 2: 剥离 "provider/" 前缀(如 openai/, azure/)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs231 // Step 3: 剥离 ISO 日期后缀 -YYYY-MM-DD(正好 11 字符)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs246 // Step 4: 剥离紧凑日期后缀 -YYYYMMDD(正好 9 字符)COMMENT
Hyper-Verbose Identifiers44 hits · 46 pts
SeverityFileLineSnippetContext
LOWsrc/types/usage.ts227export 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/openclawProviderPresets.ts58export function rebaseOpenClawSuggestedDefaults(CODE
LOWsrc/utils/providerCapabilities.ts7export function supportsOfficialProxyTakeover(CODE
LOWsrc/utils/postChangeSync.ts7export async function syncCurrentProvidersLiveSafe(): Promise<{CODE
LOWsrc/components/UsageScriptModal.tsx161function isOfficialSubscriptionProvider(provider: Provider, appId: AppId) {CODE
LOWsrc/components/settings/WebdavSyncSection.tsx160function buildPasswordPreservationKey(values: {CODE
LOW…c/components/settings/SkillStorageLocationSettings.tsx24export function SkillStorageLocationSettings({CODE
LOWsrc/components/proxy/CircuitBreakerConfigPanel.tsx16export function CircuitBreakerConfigPanel() {CODE
LOWsrc/components/openclaw/utils.ts17export function parseOpenClawEnvEditorValue(raw: string): OpenClawEnvConfig {CODE
LOWsrc/components/openclaw/utils.ts44export function getOpenClawToolsProfileSelectValue(profile?: string): string {CODE
LOWsrc/components/openclaw/utils.ts53export function getOpenClawUnsupportedProfile(profile?: string): string | null {CODE
LOWsrc/components/openclaw/utils.ts60export function getOpenClawTimeoutInputValue(CODE
LOWsrc/components/universal/UniversalProviderFormModal.tsx30export function UniversalProviderFormModal({CODE
LOW…mponents/providers/forms/ClaudeDesktopProviderForm.tsx250export function ClaudeDesktopProviderForm({CODE
LOWsrc/components/providers/forms/OmoFormFields.tsx254export function mergeCustomModelsIntoStore(CODE
LOW…ts/providers/forms/LocalProxyRequestOverridesField.tsx16export function LocalProxyRequestOverridesField({CODE
LOW…omponents/providers/forms/helpers/opencodeFormUtils.ts109export function parseOpencodeConfigStrict(CODE
LOWsrc/components/usage/ModelsDevPickerDialog.tsx76export function normalizeModelIdForPricing(modelId: string): string {CODE
LOWsrc/components/usage/ConnectivityCheckConfigPanel.tsx15export function ConnectivityCheckConfigPanel() {CODE
LOWsrc/components/usage/format.ts38function isTraditionalChineseLanguage(normalizedLanguage: string): boolean {CODE
LOWsrc/hooks/useHermes.ts39export function invalidateHermesProviderCaches(queryClient: QueryClient) {CODE
LOWsrc/hooks/useHermes.ts121export function useToggleHermesMemoryEnabled() {CODE
LOWsrc/hooks/useOpenClaw.ts32export function useOpenClawLiveProviderIds(enabled: boolean) {CODE
LOWsrc/hooks/useOpenClaw.ts77export function useOpenClawAgentsDefaults() {CODE
LOWsrc/hooks/useOpenClaw.ts133export function useSaveOpenClawAgentsDefaults() {CODE
LOWsrc/lib/requestOverrides.ts65export function isProtectedLocalProxyHeaderName(name: string): boolean {CODE
LOWsrc/lib/requestOverrides.ts152export function formatRequestOverrideObject(CODE
LOWsrc/lib/requestOverrides.ts159export function buildLocalProxyRequestOverrides(CODE
LOWsrc/lib/api/copilot.ts226export async function copilotGetTokenForAccount(CODE
LOWsrc/lib/api/copilot.ts238export async function copilotGetModelsForAccount(CODE
LOWsrc/lib/api/copilot.ts252export async function copilotGetUsageForAccount(CODE
LOWsrc/lib/api/config.ts11export async function getClaudeCommonConfigSnippet(): Promise<string | null> {CODE
LOWsrc/lib/api/config.ts21export async function setClaudeCommonConfigSnippet(CODE
LOWsrc/lib/api/config.ts62export async function updateTomlCommonConfigSnippet(CODE
LOWsrc/lib/api/config.ts88export async function extractCommonConfigSnippet(CODE
LOWsrc/lib/query/failover.ts69export function useUpdateCircuitBreakerConfig() {CODE
LOWsrc/lib/query/failover.ts108export function useAvailableProvidersForFailover(appType: string) {CODE
LOWsrc/lib/query/failover.ts147export function useRemoveFromFailoverQueue() {CODE
LOWsrc/lib/query/failover.ts201export function useSetAutoFailoverEnabled() {CODE
LOWsrc/lib/query/proxy.ts92export function useSetProxyTakeoverForApp() {CODE
LOWsrc/lib/query/proxy.ts183export function useUpdateGlobalProxyConfig() {CODE
Fake / Example Data26 hits · 34 pts
SeverityFileLineSnippetContext
LOWsrc-tauri/src/proxy/providers/codex_oauth_auth.rs1087 Some("user@example.com".to_string()),CODE
LOWsrc/components/providers/forms/HermesFormFields.tsx92 const candidate = trimmed.replace(TEMPLATE_TOKEN_RE, "placeholder");CODE
LOWsrc/i18n/locales/zh.json52 "placeholder": "请输入API Key",CODE
LOWsrc/i18n/locales/zh.json2284 "placeholder": "状态筛选",CODE
LOWsrc/i18n/locales/zh.json2503 "placeholder": "127.0.0.1",CODE
LOWsrc/i18n/locales/zh.json2508 "placeholder": "15721",CODE
LOWsrc/i18n/locales/zh.json2513 "placeholder": "3",CODE
LOWsrc/i18n/locales/zh.json2518 "placeholder": "0(不限)或 300",CODE
LOWsrc/i18n/locales/ja.json52 "placeholder": "API Key を入力",CODE
LOWsrc/i18n/locales/ja.json2284 "placeholder": "状態で絞り込み",CODE
LOWsrc/i18n/locales/ja.json2503 "placeholder": "127.0.0.1",CODE
LOWsrc/i18n/locales/ja.json2508 "placeholder": "15721",CODE
LOWsrc/i18n/locales/ja.json2513 "placeholder": "3",CODE
LOWsrc/i18n/locales/ja.json2518 "placeholder": "0(無制限)または 300",CODE
LOWsrc/i18n/locales/en.json52 "placeholder": "Enter API Key",CODE
LOWsrc/i18n/locales/en.json2284 "placeholder": "Filter by status",CODE
LOWsrc/i18n/locales/en.json2503 "placeholder": "127.0.0.1",CODE
LOWsrc/i18n/locales/en.json2508 "placeholder": "15721",CODE
LOWsrc/i18n/locales/en.json2513 "placeholder": "3",CODE
LOWsrc/i18n/locales/en.json2518 "placeholder": "0 (unlimited) or 300",CODE
LOWsrc/i18n/locales/zh-TW.json52 "placeholder": "請輸入 API Key",CODE
LOWsrc/i18n/locales/zh-TW.json2256 "placeholder": "狀態篩選",CODE
LOWsrc/i18n/locales/zh-TW.json2475 "placeholder": "127.0.0.1",CODE
LOWsrc/i18n/locales/zh-TW.json2480 "placeholder": "15721",CODE
LOWsrc/i18n/locales/zh-TW.json2485 "placeholder": "3",CODE
LOWsrc/i18n/locales/zh-TW.json2490 "placeholder": "0(不限)或 300",CODE
Verbosity Indicators15 hits · 28 pts
SeverityFileLineSnippetContext
LOWsrc-tauri/src/database/backup.rs573 // Step 1: Create safety backup of current databaseCOMMENT
LOWsrc-tauri/src/database/backup.rs579 // Step 2: Open the backup file and restore it to the main databaseCOMMENT
LOWsrc-tauri/src/database/backup.rs592 // Step 3: Run schema migrations (backup may be from an older version)COMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs491 // Step 1: OpenAI nested details as fallback for cache tokensCOMMENT
LOWsrc-tauri/src/proxy/providers/transform_responses.rs522 // Step 2: Direct Anthropic-style fields override (authoritative if present)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs35 // Step 1: Merge config file if provided (v3.8+)COMMENT
LOWsrc-tauri/src/deeplink/provider.rs557 // Step 1: Get config contentCOMMENT
LOWsrc-tauri/src/deeplink/provider.rs572 // Step 2: Parse config based on formatCOMMENT
LOWsrc-tauri/src/deeplink/provider.rs591 // Step 3: Extract values from config based on app type and merge with URL paramsCOMMENT
LOWsrc-tauri/src/services/env_manager.rs22 // Step 1: Create backupCOMMENT
LOWsrc-tauri/src/services/env_manager.rs25 // Step 2: Delete variablesCOMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs223 // Step 1: 小写COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs226 // Step 2: 剥离 "provider/" 前缀(如 openai/, azure/)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs231 // Step 3: 剥离 ISO 日期后缀 -YYYY-MM-DD(正好 11 字符)COMMENT
LOWsrc-tauri/src/services/session_usage_codex.rs246 // Step 4: 剥离紧凑日期后缀 -YYYYMMDD(正好 9 字符)COMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMsrc-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
MEDIUMsrc-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
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/user-manual/en/4-proxy/4.4-usage.md90- Output Tokens (green) - Response content generated by AICODE
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc-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
LOWsrc-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