Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms.
This report summarizes scanner evidence for chenhg5/cc-connect, a Go project with 15,867 GitHub stars. SynthScan examined 266,025 lines of code across 627 source files, recording 849 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 6.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 407 finding(s).
Are imports declared and package/API names verified? 11 finding(s).
Are wrappers, guards, and repeated structures necessary? 431 finding(s).
Which changes need focused human review? 849 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 849 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | config.example.toml | 282 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 284 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 293 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 298 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 373 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 375 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 385 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 387 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 589 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 591 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 600 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 602 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 685 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 687 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 695 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | config.example.toml | 697 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 16 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 18 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 80 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 82 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 118 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 120 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 209 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 212 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 250 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 252 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 265 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 267 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 317 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 319 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 332 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 334 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 420 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 423 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 435 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 438 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 450 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 452 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 489 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 491 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 514 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 516 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 729 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 731 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 756 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 758 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1574 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 1578 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | config.example.toml | 1590 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1592 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1628 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1630 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1679 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1681 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1755 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1757 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1832 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1834 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1873 | # ============================================================================= | COMMENT |
| MEDIUM | config.example.toml | 1875 | # ============================================================================= | COMMENT |
| 371 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config.example.toml | 1 | # cc-connect configuration | COMMENT |
| LOW | config.example.toml | 21 | # - "en": English | COMMENT |
| LOW | config.example.toml | 41 | # managers may not propagate HOME, and any relative value would be resolved | COMMENT |
| LOW | config.example.toml | 61 | # 调大可发送更大文件;/send 请求体上限会随之按 base64 膨胀自动放大。 | COMMENT |
| LOW | config.example.toml | 81 | # Global Providers / 全局服务商 | COMMENT |
| LOW | config.example.toml | 101 | # agent_types = ["claudecode"] | COMMENT |
| LOW | config.example.toml | 121 | # Controls how intermediate messages (thinking, tool use) are shown in chat. | COMMENT |
| LOW | config.example.toml | 141 | # show_context_indicator = true # Show "[ctx: ~N%]" suffix on assistant replies (default: true) | COMMENT |
| LOW | config.example.toml | 161 | # hide_agent_footer = true # Hide agent-emitted model/token footer only for this project | COMMENT |
| LOW | config.example.toml | 181 | # debugging noise, abandoned tangents) gets re-ingested via --continue every | COMMENT |
| LOW | config.example.toml | 201 | # 在单次对话正常完成后,如果该聊天会话/主题长时间没有新消息,则关闭对应的 live agent | COMMENT |
| LOW | config.example.toml | 221 | # | COMMENT |
| LOW | config.example.toml | 241 | # [[projects]] | COMMENT |
| LOW | config.example.toml | 261 | # interval_ms = 1500 # Min ms between updates (default: 1500) / 更新最小间隔毫秒数(默认 1500) | COMMENT |
| LOW | config.example.toml | 281 | COMMENT | |
| LOW | config.example.toml | 301 | # burst = 3 # Max burst size; default = ceil(max_per_second) / 最大突发数量 | COMMENT |
| LOW | config.example.toml | 321 | # the target bot to finish responding during `cc-connect relay send`. | COMMENT |
| LOW | config.example.toml | 341 | # therefore strictly more timely — prefer that where it is available, and use | COMMENT |
| LOW | config.example.toml | 361 | # # reporting at all always use the heuristic — for them it is | COMMENT |
| LOW | config.example.toml | 381 | # # 静默模式:不发送定时任务开始执行的通知消息(默认 false) | COMMENT |
| LOW | config.example.toml | 401 | # curl -X POST http://localhost:9111/hook \ | COMMENT |
| LOW | config.example.toml | 421 | # Bridge Platform (External Adapters via WebSocket) | COMMENT |
| LOW | config.example.toml | 441 | # See docs/management-api.md for the full API specification. | COMMENT |
| LOW | config.example.toml | 461 | # cron.triggered — cron job fires / 定时任务触发 | COMMENT |
| LOW | config.example.toml | 481 | # type = "http" | COMMENT |
| LOW | config.example.toml | 501 | # language = "" # e.g. "zh", "en"; empty = auto-detect / 如 "zh"、"en";留空自动检测 | COMMENT |
| LOW | config.example.toml | 521 | # "voice_only" (default) - only reply with voice when user sends a voice message | COMMENT |
| LOW | config.example.toml | 541 | # max_text_len = 0 # max rune count before skipping TTS; 0 = no limit | COMMENT |
| LOW | config.example.toml | 561 | # # Docs: https://platform.minimaxi.com/document/T2A%20V2 | COMMENT |
| LOW | config.example.toml | 581 | # # 备选:小米 MiMo-V2.5-TTS(OpenAI 兼容的 chat completions 风格) | COMMENT |
| LOW | config.example.toml | 601 | # Custom Skills (Slash Commands) / 自定义命令 | COMMENT |
| LOW | config.example.toml | 621 | # Default values are used when the corresponding argument is not provided. | COMMENT |
| LOW | config.example.toml | 641 | # prompt = "Translate the following text to {{1:English}}:\n{{2*}}" | COMMENT |
| LOW | config.example.toml | 661 | # [[commands]] | COMMENT |
| LOW | config.example.toml | 681 | # In addition, cc-connect auto-discovers .md files from the agent's commands | COMMENT |
| LOW | config.example.toml | 701 | # | COMMENT |
| LOW | config.example.toml | 721 | # | COMMENT |
| LOW | config.example.toml | 741 | # base_dir = "~/workspace" | COMMENT |
| LOW | config.example.toml | 761 | name = "my-backend" | COMMENT |
| LOW | config.example.toml | 781 | # admin_from controls who can run privileged commands (/dir, /shell, /restart, /upgrade, /commands addexec, /cron addexe | COMMENT |
| LOW | config.example.toml | 801 | # Only use this for personal single-user deployments where you trust every allowed user. | COMMENT |
| LOW | config.example.toml | 821 | # disabled_commands = [] # no restrictions | COMMENT |
| LOW | config.example.toml | 841 | # interval_mins = 30 # Interval in minutes (default: 30) / 间隔分钟数(默认 30) | COMMENT |
| LOW | config.example.toml | 861 | COMMENT | |
| LOW | config.example.toml | 881 | # Claude Code's naming scheme, or when you want to hard-pin a specific | COMMENT |
| LOW | config.example.toml | 901 | COMMENT | |
| LOW | config.example.toml | 921 | # ANTHROPIC_AUTH_TOKEN = "sk-kimi-xxx" | COMMENT |
| LOW | config.example.toml | 941 | # | COMMENT |
| LOW | config.example.toml | 961 | # [[projects.agent.providers]] | COMMENT |
| LOW | config.example.toml | 981 | # # Some providers (e.g. SiliconFlow) don't support Claude's adaptive thinking. | COMMENT |
| LOW | config.example.toml | 1001 | # model = "MiniMax-M2.7" | COMMENT |
| LOW | config.example.toml | 1021 | # # For Bedrock/Vertex/Foundry that don't support adaptive thinking, | COMMENT |
| LOW | config.example.toml | 1041 | # | COMMENT |
| LOW | config.example.toml | 1061 | [[projects.platforms]] | COMMENT |
| LOW | config.example.toml | 1081 | # # Agent 完成回复后添加的表情回复(如 "Done");设为 "none" 可禁用 | COMMENT |
| LOW | config.example.toml | 1101 | # # Takes priority over resolve_mentions group-member matching. Requires resolve_mentions = tr | COMMENT |
| LOW | config.example.toml | 1121 | # 2. Enable Bot capability / 开启机器人能力 | COMMENT |
| LOW | config.example.toml | 1141 | # progress_style = "legacy" # legacy | compact | card | COMMENT |
| LOW | config.example.toml | 1161 | # # Agent 完成回复后添加的表情回复(如 "🥳Done");设为 "none" 可禁用 | COMMENT |
| LOW | config.example.toml | 1181 | # [projects.platforms.options] | COMMENT |
| 218 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | INSTALL.md | 19 | ## Step 1: Install cc-connect | COMMENT |
| LOW | INSTALL.md | 70 | ## Step 2: Install your AI Agent | COMMENT |
| LOW | INSTALL.md | 106 | ## Step 3: Create config.toml | COMMENT |
| LOW | INSTALL.md | 171 | ## Step 4: Configure a Messaging Platform | COMMENT |
| LOW | INSTALL.md | 464 | ## Step 5: Run cc-connect | COMMENT |
| LOW | INSTALL.md | 504 | ## Step 6: Chat Commands | COMMENT |
| LOW | INSTALL.md | 528 | ## Step 7: Enable Natural Language Scheduling (Non-Claude-Code Agents) | COMMENT |
| LOW | INSTALL.md | 744 | ## Step 8: Run as Background Service (Optional) | COMMENT |
| LOW⚡ | core/engine_test.go | 8016 | // Step 3: New turn creates Session B and calls getOrCreateInteractiveStateWith. | COMMENT |
| LOW⚡ | core/engine_test.go | 15616 | // Step 2: send a message (this triggers startOrResumeSession + processInteractiveEvents) | COMMENT |
| LOW⚡ | core/engine_test.go | 15626 | // Step 3: verify session name was mapped | COMMENT |
| LOW | core/engine_test.go | 8002 | // Step 1: Old turn created state S1 with old agent. | COMMENT |
| LOW | core/engine_test.go | 8028 | // Step 4: Old goroutine exits and calls cleanup with OLD state pointer. | COMMENT |
| LOW | core/engine_test.go | 15638 | // Step 4: verify /list displays the name | COMMENT |
| LOW⚡ | core/engine.go | 17142 | // Step 1: Check existing binding | COMMENT |
| LOW⚡ | core/engine.go | 17150 | // Step 2: Resolve channel name for convention match | COMMENT |
| LOW | core/engine.go | 17165 | // Step 3: Convention match — check if base_dir/<channel-name> exists | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1422 | // Step 1: opening message @mentions the bot — establishes the thread. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1436 | // Step 2: follow-up image in the same thread, no @mention — should pass through. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1453 | // Step 3: image in a *different* thread without @mention — should still be dropped. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1464 | // Step 4: text without @mention in the active thread — should be dropped | COMMENT |
| LOW | platform/wps-agentspace/wpsagentspace.go | 704 | // Step 1: Get login URL | COMMENT |
| LOW⚡ | platform/wps-agentspace/wpsagentspace.go | 740 | // Step 2: Open browser | COMMENT |
| LOW⚡ | platform/wps-agentspace/wpsagentspace.go | 745 | // Step 3: Poll for token | COMMENT |
| LOW | platform/qq/qq.go | 330 | // Step 1: Try direct URL from message segment (with longer timeout for large files) | COMMENT |
| LOW | platform/qq/qq.go | 346 | // Step 2: Get fresh direct link via NapCat API (CDN URLs expire / have download limits) | COMMENT |
| LOW | platform/qq/qq.go | 390 | // Step 3: Last resort — get_file (downloads to NapCat local or returns base64) | COMMENT |
| LOW | agent/copilot/session.go | 165 | // Step 1: Ping | COMMENT |
| LOW | agent/copilot/session.go | 179 | // Step 2: Create or resume session | COMMENT |
| LOW | agent/claudecode/provider_env_test.go | 341 | // Step 1: simulate the user's first message after `/provider switch minimax`. | COMMENT |
| LOW⚡ | agent/claudecode/provider_env_test.go | 354 | // Step 2: simulate a cc-connect process restart. agent_session_id is | COMMENT |
| LOW⚡ | agent/claudecode/provider_env_test.go | 363 | // Step 3: engine looks up session.ActiveProvider and re-binds it before | COMMENT |
| LOW | agent/codex/provider_resume_test.go | 43 | // Step 1: simulate the user's `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/codex/provider_resume_test.go | 59 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/codex/provider_resume_test.go | 68 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| LOW | agent/codex/integration_test.go | 30 | // Step 1: write config.toml via our function | COMMENT |
| LOW | agent/codex/integration_test.go | 56 | // Step 2: write auth.json via our function | COMMENT |
| LOW | agent/codex/integration_test.go | 78 | // Step 3: run codex exec with the generated config | COMMENT |
| LOW | agent/kimi/provider_resume_test.go | 42 | // Step 1: simulate `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/kimi/provider_resume_test.go | 58 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/kimi/provider_resume_test.go | 67 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| LOW | agent/opencode/provider_resume_test.go | 43 | // Step 1: simulate `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/opencode/provider_resume_test.go | 59 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/opencode/provider_resume_test.go | 68 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| LOW | docs/slack.md | 15 | ## Step 1: Create a Slack App | COMMENT |
| LOW | docs/slack.md | 36 | ## Step 2: Configure Bot User | COMMENT |
| LOW | docs/slack.md | 58 | ## Step 3: Configure Permissions (OAuth Scopes) | COMMENT |
| LOW | docs/slack.md | 81 | ## Step 4: Enable Socket Mode | COMMENT |
| LOW | docs/slack.md | 107 | ## Step 5: Configure Event Subscriptions | COMMENT |
| LOW | docs/slack.md | 133 | ## Step 6: Install App to Workspace | COMMENT |
| LOW | docs/slack.md | 155 | ## Step 7: Configure cc-connect | COMMENT |
| LOW | docs/slack.md | 187 | ## Step 8: Start cc-connect | COMMENT |
| LOW | docs/slack.md | 209 | ## Step 9: Start Chatting | COMMENT |
| LOW | docs/matrix.md | 15 | ## Step 1: Create a Matrix Account | COMMENT |
| LOW | docs/matrix.md | 28 | ## Step 2: Get Your Access Token | COMMENT |
| LOW | docs/matrix.md | 59 | ## Step 3: Find Your User ID (Optional) | COMMENT |
| LOW | docs/matrix.md | 67 | ## Step 4: Configure cc-connect | COMMENT |
| LOW | docs/matrix.md | 104 | ## Step 5: Start cc-connect | COMMENT |
| LOW | docs/matrix.md | 125 | ## Step 6: Start Chatting | COMMENT |
| LOW | docs/telegram.md | 15 | ## Step 1: Create a Telegram Bot | COMMENT |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | core/engine_test.go | 8013 | // Step 2: /new runs — unconditional cleanup deletes S1. | COMMENT |
| LOW⚡ | core/engine_test.go | 8016 | // Step 3: New turn creates Session B and calls getOrCreateInteractiveStateWith. | COMMENT |
| LOW⚡ | core/engine_test.go | 15613 | // Step 1: /new "我的新会话" | COMMENT |
| LOW⚡ | core/engine_test.go | 15616 | // Step 2: send a message (this triggers startOrResumeSession + processInteractiveEvents) | COMMENT |
| LOW⚡ | core/engine_test.go | 15626 | // Step 3: verify session name was mapped | COMMENT |
| LOW | core/engine_test.go | 8002 | // Step 1: Old turn created state S1 with old agent. | COMMENT |
| LOW | core/engine_test.go | 8028 | // Step 4: Old goroutine exits and calls cleanup with OLD state pointer. | COMMENT |
| LOW | core/engine_test.go | 15638 | // Step 4: verify /list displays the name | COMMENT |
| LOW⚡ | core/engine.go | 17142 | // Step 1: Check existing binding | COMMENT |
| LOW⚡ | core/engine.go | 17150 | // Step 2: Resolve channel name for convention match | COMMENT |
| LOW | core/engine.go | 17165 | // Step 3: Convention match — check if base_dir/<channel-name> exists | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1422 | // Step 1: opening message @mentions the bot — establishes the thread. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1436 | // Step 2: follow-up image in the same thread, no @mention — should pass through. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1453 | // Step 3: image in a *different* thread without @mention — should still be dropped. | COMMENT |
| LOW | platform/feishu/feishu_test.go | 1464 | // Step 4: text without @mention in the active thread — should be dropped | COMMENT |
| LOW | platform/wps-agentspace/wpsagentspace.go | 704 | // Step 1: Get login URL | COMMENT |
| LOW⚡ | platform/wps-agentspace/wpsagentspace.go | 740 | // Step 2: Open browser | COMMENT |
| LOW⚡ | platform/wps-agentspace/wpsagentspace.go | 745 | // Step 3: Poll for token | COMMENT |
| LOW | platform/qq/qq.go | 330 | // Step 1: Try direct URL from message segment (with longer timeout for large files) | COMMENT |
| LOW | platform/qq/qq.go | 346 | // Step 2: Get fresh direct link via NapCat API (CDN URLs expire / have download limits) | COMMENT |
| LOW | platform/qq/qq.go | 390 | // Step 3: Last resort — get_file (downloads to NapCat local or returns base64) | COMMENT |
| LOW | agent/copilot/session.go | 165 | // Step 1: Ping | COMMENT |
| LOW | agent/copilot/session.go | 179 | // Step 2: Create or resume session | COMMENT |
| LOW | agent/claudecode/provider_env_test.go | 341 | // Step 1: simulate the user's first message after `/provider switch minimax`. | COMMENT |
| LOW⚡ | agent/claudecode/provider_env_test.go | 354 | // Step 2: simulate a cc-connect process restart. agent_session_id is | COMMENT |
| LOW⚡ | agent/claudecode/provider_env_test.go | 363 | // Step 3: engine looks up session.ActiveProvider and re-binds it before | COMMENT |
| LOW | agent/codex/provider_resume_test.go | 43 | // Step 1: simulate the user's `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/codex/provider_resume_test.go | 59 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/codex/provider_resume_test.go | 68 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| LOW | agent/codex/integration_test.go | 30 | // Step 1: write config.toml via our function | COMMENT |
| LOW | agent/codex/integration_test.go | 56 | // Step 2: write auth.json via our function | COMMENT |
| LOW | agent/codex/integration_test.go | 78 | // Step 3: run codex exec with the generated config | COMMENT |
| LOW | agent/kimi/provider_resume_test.go | 42 | // Step 1: simulate `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/kimi/provider_resume_test.go | 58 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/kimi/provider_resume_test.go | 67 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| LOW | agent/opencode/provider_resume_test.go | 43 | // Step 1: simulate `/provider switch alt-provider`. | COMMENT |
| LOW⚡ | agent/opencode/provider_resume_test.go | 59 | // Step 2: simulate restart — activeIdx is back to -1. | COMMENT |
| LOW⚡ | agent/opencode/provider_resume_test.go | 68 | // Step 3: engine calls restoreActiveProviderFromSession → SetActiveProvider. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/engine_test.go | 11890 | {"git", "config", "user.email", "test@test.com"}, | CODE |
| LOW | core/engine_test.go | 11943 | {"git", "config", "user.email", "test@test.com"}, | CODE |
| LOW | core/engine_test.go | 12013 | {"git", "config", "user.email", "test@test.com"}, | CODE |
| LOW | core/bridge.go | 1433 | "type": "select", "placeholder": e.Placeholder, | CODE |
| LOW | config/config.go | 859 | "var", parts[1], "placeholder", match) | CODE |
| LOW | platform/feishu/card.go | 233 | "placeholder": plainText(e.Placeholder), | CODE |
| LOW | platform/cloud-web/card.go | 47 | "type": "select", "placeholder": e.Placeholder, | CODE |
| LOW | agent/pi/session.go | 751 | placeholder, _ := raw["placeholder"].(string) | CODE |
| LOW | agent/pi/session.go | 768 | "placeholder": placeholder, | CODE |
| LOW | docs/bridge-protocol.zh-CN.md | 575 | "placeholder": "选择一个模型", | CODE |
| LOW | docs/bridge-protocol.md | 575 | "placeholder": "Choose a model", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | platform/feishu/feishu.go | 4274 | // Typed syscall checks — more robust than string matching. | COMMENT |
| MEDIUM | agent/claudecode/session_test.go | 894 | // Issue #1736 regression harness: act as a Claude Code stub that | COMMENT |
| MEDIUM | agent/kimi/probe.go | 84 | // To stay robust against future layout tweaks the parser only treats a line | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | config.example.toml | 56 | # Set 0 to keep the default. Raise it to send larger files; the /send request | COMMENT |
| LOW | config.example.toml | 1277 | # Set webhook_url to switch from long-poll to webhook. Required for high-traffic | COMMENT |
| LOW | config.example.toml | 1904 | # Set init_command to start claude automatically; adjust prompt_pattern to match | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config.example.toml | 992 | # # MiniMax — OpenAI-compatible agent provider with 1M context window | COMMENT |