原汁原昧 Claude Code 可运行,可构建, 可调试版; 生产级工程化, 企业级可靠性; 安全无毒, 内存泄露修复
This report presents the forensic synthetic code analysis of claude-code-best/claude-code, a TypeScript project with 21,186 GitHub stars. SynthScan v2.0 examined 755,320 lines of code across 3429 source files, recording 3268 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 6.4 places this repository in the Low AI signal 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).
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.
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.
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.
The scanner identified 3268 distinct pattern matches across 17 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/integration/context-build.test.ts | 14 | // ─── CLAUDE.md Integration with System Prompt ───────────────────────── | COMMENT |
| MEDIUM | tests/integration/context-build.test.ts | 67 | // ─── CLAUDE.md Discovery with Real File System ─────────────────────── | COMMENT |
| MEDIUM | tests/integration/context-build.test.ts | 95 | // ─── Large Memory File Filtering ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/message-pipeline.test.ts | 9 | // ─── Message Structure ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/message-pipeline.test.ts | 34 | // ─── Tag Extraction ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/message-pipeline.test.ts | 51 | // ─── Normalization ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/tool-chain.test.ts | 9 | // ─── Tool Registration & Discovery ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/tool-chain.test.ts | 68 | // ─── Tool Presets ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/tool-chain.test.ts | 85 | // ─── getTools (with permission context) ──────────────────────────────── | COMMENT |
| MEDIUM | tests/integration/tool-chain.test.ts | 106 | // ─── buildTool + findToolByName end-to-end ───────────────────────────── | COMMENT |
| MEDIUM | scripts/check-bundle-integrity.ts | 19 | // ─── 从 package.json 读取 dependencies 作为白名单 ──────────────── | COMMENT |
| MEDIUM | scripts/check-bundle-integrity.ts | 26 | // ─── Node.js 内置模块白名单 ──────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/check-bundle-integrity.ts | 86 | // ─── 模式 ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/ink/src/theme/Divider.tsx | 37 | * // ─────────── Title ─────────── | COMMENT |
| MEDIUM | …vider/src/shared/__tests__/openaiStreamAdapter.test.ts | 720 | // ── cache_read_input_tokens in message_delta (the core bug fix) ────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/executor.ts | 117 | // ── Window management (Windows only, optional) ────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/executor.ts | 131 | // ── Element-targeted actions (Windows UIA, optional) ──────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/mcpServer.ts | 143 | // ─── Async lock gate ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/mcpServer.ts | 186 | // ─── Build overrides fresh ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/mcpServer.ts | 237 | // ─── Dispatch ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/deniedApps.ts | 53 | // ─── Bundle-ID deny sets (macOS) ───────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/deniedApps.ts | 205 | // ─── Policy-deny (not a tier — cannot be granted at all) ───────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/deniedApps.ts | 316 | // ─── Display-name fallback (cross-platform) ────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/types.ts | 298 | // ── Read state fresh per call ────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/types.ts | 313 | // ── Write-back callbacks ─────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/types.ts | 345 | // ── Lock (async) ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/types.ts | 531 | // ── Teach mode ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4048 | // ── Bound-window auto-routing ────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4153 | // ── Standard dispatch (unbound or tools not rerouted above) ──────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4310 | // ─── Gate 1: kill switch ───────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4318 | // ─── Gate 2: TCC ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4353 | // ─── Gate 3: global CU lock ────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4422 | // ─── Fail-closed dispatch ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …ols/src/tools/VaultHttpFetchTool/VaultHttpFetchTool.ts | 29 | // ── Schemas ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ols/src/tools/VaultHttpFetchTool/VaultHttpFetchTool.ts | 101 | // ── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ols/src/tools/VaultHttpFetchTool/VaultHttpFetchTool.ts | 124 | // ── Tool ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …aultHttpFetchTool/__tests__/VaultHttpFetchTool.test.ts | 78 | // ── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …aultHttpFetchTool/__tests__/VaultHttpFetchTool.test.ts | 98 | // ── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 25 | // ── Per-turn fetch budget tracking ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 177 | // ── Schemas ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 243 | // ── Output truncation helpers ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 296 | // ── Tool ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …n-tools/src/tools/FileEditTool/__tests__/utils.test.ts | 10 | // ─── stripTrailingWhitespace ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …n-tools/src/tools/FileEditTool/__tests__/utils.test.ts | 50 | // ─── findActualString ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …n-tools/src/tools/FileEditTool/__tests__/utils.test.ts | 76 | // ─── applyEditToFile ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iltin-tools/src/tools/PowerShellTool/pathValidation.ts | 122 | // ─── Write/create operations ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iltin-tools/src/tools/PowerShellTool/pathValidation.ts | 372 | // ─── Read operations ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ges/builtin-tools/src/tools/BashTool/pathValidation.ts | 1152 | // ─────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ges/builtin-tools/src/tools/BashTool/pathValidation.ts | 1172 | // ─────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 5 | // ─── Git data loss ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 51 | // ─── Git safety bypass ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 62 | // ─── File deletion ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 78 | // ─── Database ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 94 | // ─── Infrastructure ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/BashTool/__tests__/destructiveCommandWarning.test.ts | 105 | // ─── Safe commands ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tools/BashTool/__tests__/networkDeviceRedirect.test.ts | 5 | // ─── TCP output redirect — should block ────────────────────── | COMMENT |
| MEDIUM | …tools/BashTool/__tests__/networkDeviceRedirect.test.ts | 27 | // ─── UDP redirect — should block ───────────────────────────── | COMMENT |
| MEDIUM | …tools/BashTool/__tests__/networkDeviceRedirect.test.ts | 42 | // ─── Input redirect from network device — should block ─────── | COMMENT |
| MEDIUM | …tools/BashTool/__tests__/networkDeviceRedirect.test.ts | 48 | // ─── exec with network fd — should block ───────────────────── | COMMENT |
| MEDIUM | …tools/BashTool/__tests__/networkDeviceRedirect.test.ts | 61 | // ─── Quoted variants — should block ────────────────────────── | COMMENT |
| 637 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | vite.config.ts | 25 | function isAcknowledgedBuildWarning(warning: { | CODE |
| LOW | spec/feature_20260508_F001_tool-search/spec-plan-2.md | 221 | function buildToolDiscoveryAttachment( | CODE |
| LOW | spec/feature_20260508_F001_tool-search/spec-plan-2.md | 266 | export async function getTurnZeroToolSearchPrefetch( | CODE |
| LOW | spec/feature_20260508_F001_tool-search/spec-plan-2.md | 287 | export async function collectToolSearchPrefetch( | CODE |
| LOW | docs/memory-leak-audit.md | 490 | function coerceToolContentToString(value: unknown): string { | CODE |
| LOW | …superpowers/plans/2026-06-13-workflow-tui-ultracode.md | 564 | export function createProgressStoreFromBus(bus: ProgressBus): ProgressStore { | CODE |
| LOW | docs/superpowers/plans/2026-06-20-artifacts-feature.md | 755 | export function registerUseArtifactsSkill(): void { | CODE |
| LOW | packages/@ant/ink/docs/09-hooks-reference.md | 252 | function useExitOnCtrlCDWithKeybindings( | CODE |
| LOW | packages/@ant/ink/src/core/squash-text-nodes.ts | 18 | export function squashTextNodesToSegments( | CODE |
| LOW | packages/@ant/ink/src/core/output.ts | 555 | function styledCharsWithGraphemeClustering( | CODE |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 1337 | function blitEscapingAbsoluteDescendants( | CODE |
| LOW | packages/@ant/ink/src/core/colorize.ts | 20 | function boostChalkLevelForXtermJs(): boolean { | CODE |
| LOW | packages/@ant/ink/src/core/node-cache.ts | 50 | export function consumeAbsoluteRemovedFlag(): boolean { | CODE |
| LOW | packages/@ant/ink/src/core/terminal.ts | 23 | export function isProgressReportingAvailable(): boolean { | CODE |
| LOW | packages/@ant/ink/src/core/terminal.ts | 68 | export function isSynchronizedOutputSupported(): boolean { | CODE |
| LOW | packages/@ant/ink/src/core/terminal.ts | 175 | export function hasCursorUpViewportYankBug(): boolean { | CODE |
| LOW | packages/@ant/ink/src/core/screen.ts | 1138 | export function extractHyperlinkFromStyles( | CODE |
| LOW | packages/@ant/ink/src/keybindings/KeybindingContext.tsx | 159 | export function useOptionalKeybindingContext(): KeybindingContextValue | null { | CODE |
| LOW | packages/@ant/ink/src/keybindings/KeybindingContext.tsx | 178 | export function useRegisterKeybindingContext(context: KeybindingContextName, isActive: boolean = true): void { | CODE |
| LOW | packages/@ant/ink/src/hooks/useExitOnCtrlCD.ts | 58 | export function useExitOnCtrlCDWithKeybindings( | CODE |
| LOW | packages/@ant/model-provider/src/errorUtils.ts | 42 | export function extractConnectionErrorDetails( | CODE |
| LOW | packages/@ant/model-provider/src/errorUtils.ts | 150 | function extractNestedErrorMessage(error: APIError): string | null { | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 24 | export function anthropicMessagesToGemini( | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 76 | function convertInternalUserMessage( | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 104 | function convertUserContentBlockToGeminiParts( | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 152 | function convertInternalAssistantMessage(msg: AssistantMessage): GeminiContent { | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 264 | function toolResultToResponseObject( | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 280 | function normalizeToolResultContent(content: unknown): unknown { | CODE |
| LOW | …model-provider/src/providers/gemini/convertMessages.ts | 310 | function getGeminiThoughtSignature( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 14 | function normalizeGeminiJsonSchemaType( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 34 | function inferGeminiJsonSchemaTypeFromValue( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 48 | function inferGeminiJsonSchemaTypeFromEnum( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 59 | function addNullToGeminiJsonSchemaType( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 69 | function sanitizeGeminiJsonSchemaProperties( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 87 | function sanitizeGeminiJsonSchemaArray( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 218 | function sanitizeGeminiFunctionParameters( | CODE |
| LOW | …nt/model-provider/src/providers/gemini/convertTools.ts | 261 | export function anthropicToolChoiceToGemini( | CODE |
| LOW | …s/@ant/model-provider/src/shared/openaiConvertTools.ts | 129 | export function anthropicToolChoiceToOpenAI( | CODE |
| LOW | …ant/model-provider/src/shared/openaiConvertMessages.ts | 32 | export function anthropicMessagesToOpenAI( | CODE |
| LOW | …ant/model-provider/src/shared/openaiConvertMessages.ts | 70 | function convertInternalUserMessage( | CODE |
| LOW | …ant/model-provider/src/shared/openaiConvertMessages.ts | 163 | function convertInternalAssistantMessage( | CODE |
| LOW | …ant/model-provider/src/shared/openaiConvertMessages.ts | 241 | function convertImageBlockToOpenAI( | CODE |
| LOW | packages/@ant/claude-for-chrome-mcp/src/mcpServer.ts | 30 | export function createClaudeForChromeMcpServer( | CODE |
| LOW | packages/@ant/claude-for-chrome-mcp/src/toolCalls.ts | 181 | function handleToolCallDisconnected( | CODE |
| LOW | packages/@ant/computer-use-mcp/src/mcpServer.ts | 255 | export function createComputerUseMcpServer( | CODE |
| LOW | packages/@ant/computer-use-mcp/src/deniedApps.ts | 491 | export function getDeniedCategoryByDisplayName( | CODE |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 311 | function coordToPercentageForPixelCompare( | CODE |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 1373 | function buildPolicyDeniedGuidance( | CODE |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 3539 | function handleListGrantedApplications( | CODE |
| LOW | packages/weixin/src/permissions.ts | 31 | function pruneExpiredPendingPermissions(now = Date.now()): void { | CODE |
| LOW | packages/weixin/src/permissions.ts | 80 | export function clearPermissionStateForTests(): void { | CODE |
| LOW | packages/weixin/src/server.ts | 37 | function formatPermissionRequestMessage( | CODE |
| LOW | packages/builtin-tools/src/tools/utils.ts | 30 | export function getToolUseIDFromParentMessage( | CODE |
| LOW | …ckages/builtin-tools/src/tools/NotebookEditTool/UI.tsx | 49 | export function renderToolUseRejectedMessage( | CODE |
| LOW | …ckages/builtin-tools/src/tools/NotebookEditTool/UI.tsx | 74 | export function renderToolUseErrorMessage( | CODE |
| LOW | …/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx | 153 | function AskUserQuestionResultMessage({ answers }: { answers: Output['answers'] }): React.ReactNode { | CODE |
| LOW | …ckages/builtin-tools/src/tools/ExitPlanModeTool/UI.tsx | 75 | export function renderToolUseRejectedMessage( | CODE |
| LOW | …src/tools/SearchExtraToolsTool/SearchExtraToolsTool.ts | 120 | export function clearSearchExtraToolsDescriptionCache(): void { | CODE |
| LOW | …s/builtin-tools/src/tools/WebFetchTool/WebFetchTool.ts | 52 | function webFetchToolInputToPermissionRuleContent(input: { | CODE |
| LOW | packages/builtin-tools/src/tools/WebFetchTool/utils.ts | 238 | export async function getWithPermittedRedirects( | CODE |
| 1899 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/integration/autonomy-lifecycle-user-flow.test.ts | 1 | // Why we use the BUILT bundle instead of src/entrypoints/cli.tsx: | COMMENT |
| LOW | docs/features/voice-mode.md | 201 | ## 五、使用方式 | COMMENT |
| LOW | scripts/defines.ts | 61 | 'WORKFLOW_SCRIPTS', // 工作流脚本(.claude/workflows/ 中的 YAML/MD) | COMMENT |
| LOW | scripts/defines.ts | 81 | // defaults to OFF (see featureCheck.ts). Operators turn on via the | COMMENT |
| LOW | packages/@ant/ink/src/core/dom.ts | 41 | onImmediateRender?: () => void | COMMENT |
| LOW | packages/@ant/ink/src/core/dom.ts | 61 | // naturally cancels (pure accumulator, no target tracking). | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 721 | // padding) begins. Exposed via ScrollBoxHandle.getViewportTop() so | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 741 | node.pendingScrollDelta = undefined | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 761 | // transiently SHRINK scrollHeight (tail unmount + stale heightCache | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 801 | // startup) the probe has resolved — same timing guarantee the | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 881 | } else { | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 961 | // 1. Dirty children — their content changed, blitted pixels are | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 981 | // check cached.y−delta === screenY reduces to delta === delta | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 1101 | boxBackgroundColor, | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 1221 | nodeCache.set(node, rect) | COMMENT |
| LOW | packages/@ant/ink/src/core/render-node-to-output.ts | 1241 | // Without this, a spinner inside a ScrollBox dirties the wrapper on every | COMMENT |
| LOW | packages/@ant/ink/src/core/searchHighlight.ts | 41 | const rowOff = row * w | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 181 | // Search highlight query (alt-screen only). Setter below triggers | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 201 | // against this set and mutates it in place. | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 401 | // Terminals often emit 2+ resize events for one user action (window | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 541 | // TEXT (native terminal behavior — the selection walks up the screen | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 561 | this.selection.anchor.row <= follow.viewportBottom | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 581 | // teleporting the highlight from static footer into the scrollbox. | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 601 | if (cleared) for (const cb of this.selectionListeners) cb(); | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 721 | } | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 741 | // position independently. Parking at bottom (not 0,0) keeps the guide | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 761 | // Native cursor positioning: park the terminal cursor at the declared | COMMENT |
| LOW | packages/@ant/ink/src/core/ink.tsx | 1601 | COMMENT | |
| LOW | packages/@ant/ink/src/core/parse-keypress.ts | 21 | // biome-ignore lint/suspicious/noControlCharactersInRegex: terminal escape sequence parsing | COMMENT |
| LOW | packages/@ant/ink/src/core/parse-keypress.ts | 41 | const DA2_RE = /^\x1b\[>([\d;]*)c$/ | COMMENT |
| LOW | packages/@ant/ink/src/core/parse-keypress.ts | 261 | } else if ( | COMMENT |
| LOW | packages/@ant/ink/src/core/log-update.ts | 141 | // _after_ the viewport change which means calcuating text wrapping. | COMMENT |
| LOW | packages/@ant/ink/src/core/log-update.ts | 181 | RESET_SCROLL_REGION + | COMMENT |
| LOW | packages/@ant/ink/src/core/renderer.ts | 81 | cursor: { x: 0, y: 0, visible: true }, | COMMENT |
| LOW | packages/@ant/ink/src/core/renderer.ts | 141 | // root blit would skip the subtree. markDirty walks ancestors so the | COMMENT |
| LOW | packages/@ant/ink/src/core/yoga-layout/index.ts | 421 | // per child per layout pass — ~11k calls for the 1000-node bench, nearly | COMMENT |
| LOW | packages/@ant/ink/src/core/yoga-layout/index.ts | 481 | // generation have stale cache (subtree changed), but within the SAME | COMMENT |
| LOW | packages/@ant/ink/src/core/events/input-event.ts | 81 | COMMENT | |
| LOW | packages/@ant/ink/src/core/events/input-event.ts | 101 | // that converted input to the key name (CSI u or application keypad mode). | COMMENT |
| LOW | packages/@ant/ink/src/core/termio/tokenize.ts | 201 | } | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 81 | readonly onExit: (error?: Error) => void; | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 101 | // MULTI_CLICK_TIMEOUT_MS so double-click can cancel it. | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 321 | // Enable terminal focus reporting (DECSET 1004) | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 381 | // Helper to flush incomplete escape sequences | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 721 | // (so an unrelated middle/right click-release doesn't touch selection). | COMMENT |
| LOW | packages/@ant/ink/src/components/App.tsx | 741 | if (!hasSelection(sel) && sel.anchor) { | COMMENT |
| LOW | packages/@ant/ink/src/components/ScrollBox.tsx | 201 | [], | COMMENT |
| LOW | packages/@ant/ink/src/hooks/use-terminal-viewport.ts | 41 | // Runs on every render because yoga layout values can change | COMMENT |
| LOW | packages/@ant/ink/src/hooks/use-declared-cursor.ts | 41 | // When active, set unconditionally. When inactive, clear conditionally | COMMENT |
| LOW | packages/@ant/model-provider/src/index.ts | 1 | // @ant/model-provider | COMMENT |
| LOW | packages/@ant/computer-use-mcp/src/deniedApps.ts | 201 | // Robinhood, NinjaTrader, Coinbase, Kraken, Bloomberg. thinkorswim | COMMENT |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 381 | // | COMMENT |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 2221 | // — if a non-allowlisted app is on top, SCContentFilter would composite it | COMMENT |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4261 | COMMENT | |
| LOW | packages/@ant/computer-use-mcp/src/toolCalls.ts | 4361 | // cuLockChanged, and showing "Claude is using your computer" while the | COMMENT |
| LOW | …ols/src/tools/VaultHttpFetchTool/VaultHttpFetchTool.ts | 201 | // M2 fix (codecov-100 audit #5): the `host` property of `URL` includes | COMMENT |
| LOW | …es/builtin-tools/src/tools/WebFetchTool/preapproved.ts | 1 | // For legal and security concerns, we typically only allow Web Fetch to access | COMMENT |
| LOW | packages/builtin-tools/src/tools/WebFetchTool/utils.ts | 101 | } | COMMENT |
| LOW | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 21 | import { DESCRIPTION, PROMPT } from './prompt.js' | COMMENT |
| LOW | …c/tools/LocalMemoryRecallTool/LocalMemoryRecallTool.ts | 41 | // The Map is module-level. `consumeBudget` evicts oldest entries when the | COMMENT |
| 386 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | build.ts | 8 | // Step 1: Clean output directory | COMMENT |
| LOW⚡ | build.ts | 18 | // Step 2: Bundle with splitting | COMMENT |
| LOW | build.ts | 43 | // Step 3: Post-process — replace Bun-only `import.meta.require` with Node.js compatible version | COMMENT |
| LOW⚡ | build.ts | 86 | // Step 4: Copy native .node addon files (audio-capture) and vendored binaries (ripgrep) | COMMENT |
| LOW⚡ | build.ts | 95 | // Step 5: Generate cli-bun and cli-node executable entry points | COMMENT |
| LOW | .claude/skills/teach-me/SKILL.md | 56 | ### Step 0: Parse Input | COMMENT |
| LOW | .claude/skills/teach-me/SKILL.md | 66 | ### Step 1: Diagnose Level | COMMENT |
| LOW | .claude/skills/teach-me/SKILL.md | 104 | ### Step 2: Build Concept List | COMMENT |
| LOW | .claude/skills/teach-me/SKILL.md | 133 | ### Step 3: Tutor Loop | COMMENT |
| LOW | .claude/skills/teach-me/SKILL.md | 274 | ### Step 4: Session End | COMMENT |
| LOW | scripts/post-build.ts | 16 | // Step 1: Patch globalThis.Bun destructuring in ALL output files | COMMENT |
| LOW | scripts/post-build.ts | 60 | // Step 2: Copy native addon files | COMMENT |
| LOW | scripts/post-build.ts | 71 | // Step 3: Generate dual entry points | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 268 | // Step 1: Protect literal backslashes (\\) first - in both BRE and ERE, \\ is literal backslash | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 270 | // Step 2: Replace escaped metacharacters with placeholders (these should become unescaped in JS) | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 276 | // Step 3: Escape unescaped metacharacters (these are literal in BRE) | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 282 | // Step 4: Replace placeholders with their JS equivalents | COMMENT |
| LOW | packages/acp-link/src/rcs-upstream.ts | 120 | // Step 1: REST registration | COMMENT |
| LOW | packages/acp-link/src/rcs-upstream.ts | 131 | // Step 2: WebSocket connection with identify | COMMENT |
| LOW | src/tasks/LocalShellTask/LocalShellTask.tsx | 335 | // Step 1: Get the task and shell command from current state | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 715 | // Step 1: Migrate to single file format (consolidates V1/V2 files, cleans up legacy cache) | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 718 | // Step 2: Sync enabledPlugins from settings.json to installed_plugins.json | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 726 | // Step 3: Initialize in-memory session state | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 1131 | // Step 2: Start with existing data (or start empty if no file exists) | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 1140 | // Step 3: Update V2 scopes based on settings.json (settings is source of truth) | COMMENT |
| LOW | src/utils/plugins/installedPluginsManager.ts | 1096 | // Step 1: Build a map of pluginId -> scope from all settings.json files | COMMENT |
| LOW | src/utils/plugins/installedPluginsManager.ts | 1260 | // Step 4: Save to single file (V2 format) | COMMENT |
| LOW⚡ | src/utils/plugins/pluginLoader.ts | 1358 | // Step 1: Load or create the plugin manifest | COMMENT |
| LOW⚡ | src/utils/plugins/pluginLoader.ts | 1363 | // Step 2: Create the base plugin object | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1374 | // Step 3: Auto-detect optional directories in parallel | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1530 | // Step 4: Register agents directory if detected | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1614 | // Step 5: Load hooks configuration | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1762 | // Step 6: Load plugin settings | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 118 | // Step 1: Get minimum (longest word) and ideal (full content) widths | COMMENT |
| LOW⚡ | src/components/MarkdownTable.tsx | 135 | // Step 2: Calculate available space | COMMENT |
| LOW⚡ | src/components/MarkdownTable.tsx | 142 | // Step 3: Calculate column widths that fit available space | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 172 | // Step 4: Single-pass cell preparation — wraps each cell once, caches results | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 187 | // Step 5: Calculate max row lines using cached wrapped results | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 346 | // Step 1: Transform lines to line objects with type information | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 349 | // Step 2: Group adjacent add/remove lines for word-level diffing | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 352 | // Step 3: Number the diff lines | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 359 | // Step 4: Render formatting | COMMENT |
| LOW⚡ | src/hooks/usePipeMuteSync.ts | 84 | // Step 1: Update master-side muted set FIRST (before sending control packets) | COMMENT |
| LOW⚡ | src/hooks/usePipeMuteSync.ts | 89 | // Step 2: For newly muted slaves — abort pending permissions, then send relay_mute | COMMENT |
| LOW | src/hooks/usePipeMuteSync.ts | 121 | // Step 3: For newly unmuted slaves — send relay_unmute | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 41 | ### Step 1: Analyze the Session | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 53 | ### Step 2: Interview the User | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 91 | ### Step 3: Write the SKILL.md | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 149 | ### Step 4: Confirm and Save | COMMENT |
| LOW⚡ | src/services/compact/sessionMemoryCompact.ts | 244 | // Step 1: Handle tool_use/tool_result pairs | COMMENT |
| LOW | src/services/compact/sessionMemoryCompact.ts | 290 | // Step 2: Handle thinking blocks that share message.id with kept assistant messages | COMMENT |
| LOW⚡ | src/services/api/__tests__/betaHeaders.test.ts | 210 | // Step 1: 基础 betas(来自 getAllModelBetas) | COMMENT |
| LOW⚡ | src/services/api/__tests__/betaHeaders.test.ts | 217 | // Step 2: paramsFromContext 中的动态添加 | COMMENT |
| LOW | src/services/api/__tests__/betaHeaders.test.ts | 242 | // Step 3: 最终过滤(我们的防御层) | COMMENT |
| LOW | src/services/acp/agent/AcpAgent.ts | 61 | // NOTE: This class is intentionally merged with the `AcpAgent` interface | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | build.ts | 8 | // Step 1: Clean output directory | COMMENT |
| LOW⚡ | build.ts | 18 | // Step 2: Bundle with splitting | COMMENT |
| LOW | build.ts | 43 | // Step 3: Post-process — replace Bun-only `import.meta.require` with Node.js compatible version | COMMENT |
| LOW⚡ | build.ts | 86 | // Step 4: Copy native .node addon files (audio-capture) and vendored binaries (ripgrep) | COMMENT |
| LOW⚡ | build.ts | 95 | // Step 5: Generate cli-bun and cli-node executable entry points | COMMENT |
| LOW | scripts/post-build.ts | 16 | // Step 1: Patch globalThis.Bun destructuring in ALL output files | COMMENT |
| LOW | scripts/post-build.ts | 60 | // Step 2: Copy native addon files | COMMENT |
| LOW | scripts/post-build.ts | 71 | // Step 3: Generate dual entry points | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 268 | // Step 1: Protect literal backslashes (\\) first - in both BRE and ERE, \\ is literal backslash | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 270 | // Step 2: Replace escaped metacharacters with placeholders (these should become unescaped in JS) | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 276 | // Step 3: Escape unescaped metacharacters (these are literal in BRE) | COMMENT |
| LOW⚡ | …ages/builtin-tools/src/tools/BashTool/sedEditParser.ts | 282 | // Step 4: Replace placeholders with their JS equivalents | COMMENT |
| LOW | packages/acp-link/src/rcs-upstream.ts | 120 | // Step 1: REST registration | COMMENT |
| LOW | packages/acp-link/src/rcs-upstream.ts | 131 | // Step 2: WebSocket connection with identify | COMMENT |
| LOW | src/tasks/LocalShellTask/LocalShellTask.tsx | 335 | // Step 1: Get the task and shell command from current state | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 715 | // Step 1: Migrate to single file format (consolidates V1/V2 files, cleans up legacy cache) | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 718 | // Step 2: Sync enabledPlugins from settings.json to installed_plugins.json | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 726 | // Step 3: Initialize in-memory session state | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 1131 | // Step 2: Start with existing data (or start empty if no file exists) | COMMENT |
| LOW⚡ | src/utils/plugins/installedPluginsManager.ts | 1140 | // Step 3: Update V2 scopes based on settings.json (settings is source of truth) | COMMENT |
| LOW | src/utils/plugins/installedPluginsManager.ts | 1096 | // Step 1: Build a map of pluginId -> scope from all settings.json files | COMMENT |
| LOW | src/utils/plugins/installedPluginsManager.ts | 1260 | // Step 4: Save to single file (V2 format) | COMMENT |
| LOW⚡ | src/utils/plugins/pluginLoader.ts | 1358 | // Step 1: Load or create the plugin manifest | COMMENT |
| LOW⚡ | src/utils/plugins/pluginLoader.ts | 1363 | // Step 2: Create the base plugin object | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1374 | // Step 3: Auto-detect optional directories in parallel | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1530 | // Step 4: Register agents directory if detected | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1614 | // Step 5: Load hooks configuration | COMMENT |
| LOW | src/utils/plugins/pluginLoader.ts | 1762 | // Step 6: Load plugin settings | COMMENT |
| LOW | src/utils/permissions/permissionSetup.ts | 901 | // We need to check if base tools were explicitly provided (not just empty default) | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 118 | // Step 1: Get minimum (longest word) and ideal (full content) widths | COMMENT |
| LOW⚡ | src/components/MarkdownTable.tsx | 135 | // Step 2: Calculate available space | COMMENT |
| LOW⚡ | src/components/MarkdownTable.tsx | 142 | // Step 3: Calculate column widths that fit available space | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 172 | // Step 4: Single-pass cell preparation — wraps each cell once, caches results | COMMENT |
| LOW | src/components/MarkdownTable.tsx | 187 | // Step 5: Calculate max row lines using cached wrapped results | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 346 | // Step 1: Transform lines to line objects with type information | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 349 | // Step 2: Group adjacent add/remove lines for word-level diffing | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 352 | // Step 3: Number the diff lines | COMMENT |
| LOW⚡ | src/components/StructuredDiff/Fallback.tsx | 359 | // Step 4: Render formatting | COMMENT |
| LOW⚡ | src/hooks/usePipeMuteSync.ts | 84 | // Step 1: Update master-side muted set FIRST (before sending control packets) | COMMENT |
| LOW⚡ | src/hooks/usePipeMuteSync.ts | 89 | // Step 2: For newly muted slaves — abort pending permissions, then send relay_mute | COMMENT |
| LOW | src/hooks/usePipeMuteSync.ts | 121 | // Step 3: For newly unmuted slaves — send relay_unmute | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 41 | ### Step 1: Analyze the Session | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 53 | ### Step 2: Interview the User | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 91 | ### Step 3: Write the SKILL.md | COMMENT |
| LOW | src/skills/bundled/skillify.ts | 149 | ### Step 4: Confirm and Save | COMMENT |
| LOW⚡ | src/services/compact/sessionMemoryCompact.ts | 244 | // Step 1: Handle tool_use/tool_result pairs | COMMENT |
| LOW | src/services/compact/sessionMemoryCompact.ts | 290 | // Step 2: Handle thinking blocks that share message.id with kept assistant messages | COMMENT |
| LOW⚡ | src/services/api/__tests__/betaHeaders.test.ts | 210 | // Step 1: 基础 betas(来自 getAllModelBetas) | COMMENT |
| LOW⚡ | src/services/api/__tests__/betaHeaders.test.ts | 217 | // Step 2: paramsFromContext 中的动态添加 | COMMENT |
| LOW | src/services/api/__tests__/betaHeaders.test.ts | 242 | // Step 3: 最终过滤(我们的防御层) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codecov.yml | 20 | # require the full async-agent orchestration chain (registerAsyncAgent, | COMMENT |
| MEDIUM | packages/@ant/computer-use-mcp/src/deniedApps.ts | 84 | 'company.thebrowser.dia', // Dia (agentic) | CODE |
| MEDIUM | …ges/builtin-tools/src/tools/AgentTool/loadAgentsDir.ts | 118 | maxTurns?: number // Maximum number of agentic turns before stopping | CODE |
| MEDIUM | src/main.tsx | 3866 | // of a remote assistant session. The agentic loop runs remotely; this | COMMENT |
| MEDIUM | src/query.ts | 252 | // budget for the whole agentic turn; `remaining` is computed per iteration | COMMENT |
| MEDIUM | src/utils/betas.ts | 354 | // excluded by getAllModelBetas() since non-agentic Haiku calls don't need them. | COMMENT |
| MEDIUM | src/utils/attachments.ts | 1107 | // During proactive agentic loops, task-notification commands would otherwise | COMMENT |
| MEDIUM | src/utils/attachments.ts | 1341 | // long agentic sessions, where this accumulated 60-105× per session. | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 192 | // AbortController for cancelling agentic search | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 430 | // Use agentic search results when available and non-empty, otherwise use regular filtered logs | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 584 | // Handler for triggering agentic search | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 626 | // Clear agentic search results/error when query changes | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 639 | // Cleanup: abort any in-progress agentic search on unmount | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 646 | // Focus first item when agentic search completes with results | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 697 | // Escape to abort agentic search in progress | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 725 | // Escape when agentic search option focused - clear and cancel | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 765 | // Focus agentic search option if applicable | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 776 | // Handle agentic search option when focused (escape handled via keybinding) | COMMENT |
| MEDIUM | src/components/LogSelector.tsx | 779 | // Trigger agentic search | COMMENT |
| MEDIUM | src/services/langfuse/tracing.ts | 14 | // Root trace is an agent observation — represents one full agentic turn/session | COMMENT |
| MEDIUM | src/services/api/claude.ts | 725 | // (query.ts decrements across the agentic loop). | COMMENT |
| MEDIUM | src/services/api/claude.ts | 1105 | // non-agentic queries (compact, side_question, extract_memories, etc.) | COMMENT |
| MEDIUM | src/services/api/claude.ts | 1510 | // per-call so non-agentic queries keep their own stable header set. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/utils/settings/__tests__/config.test.ts | 80 | commit: 'Generated by AI', | CODE |
| HIGH | src/utils/claudeInChrome/setup.ts | 318 | REM Generated by Claude Code - do not edit manually | CODE |
| HIGH | src/utils/claudeInChrome/setup.ts | 323 | # Generated by Claude Code - do not edit manually | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tin-tools/src/tools/PowerShellTool/commandSemantics.ts | 71 | // robocopy.exe: Windows native robust file copy | COMMENT |
| MEDIUM | src/utils/swarm/backends/PaneBackendExecutor.ts | 394 | // A more robust check would query the backend for pane existence | COMMENT |
| MEDIUM | src/utils/powershell/parser.ts | 1068 | // and extracting .Redirections) is both simpler and more robust: it catches | COMMENT |
| MEDIUM | src/hooks/useVoiceIntegration.tsx | 168 | // the gap is seamless once transcript text arrives. | COMMENT |
| MEDIUM | …llLearning/__tests__/throttleAndCircuitBreaker.test.ts | 291 | // In the test environment, queryHaiku will fail (no API key). We leverage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/remote-control-server/README.md | 21 | -e RCS_API_KEYS=your-api-key-here \ | CODE |
| HIGH | packages/remote-control-server/README.md | 58 | export CLAUDE_BRIDGE_OAUTH_TOKEN="your-api-key-here" | CODE |
| HIGH | src/services/providerRegistry/switcher.ts | 84 | `Set it before starting Claude Code: export ${found.apiKeyEnv}=<your-api-key>`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/builtin-tools/src/tools/AgentTool/UI.tsx | 966 | const toolResultBlock = lastToolResult.data.message.message.content.find( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/utils/plugins/pluginLoader.ts | 1115 | * "name": "John Doe", | COMMENT |
| LOW | src/utils/plugins/marketplaceManager.ts | 1238 | * "owner": { "name": "John Doe", "email": "john@example.com" }, | COMMENT |
| LOW | src/utils/mcp/elicitationValidation.ts | 24 | example: 'user@example.com', | CODE |
| LOW | src/utils/git/__tests__/gitConfigParser.test.ts | 39 | const config = '[user]\n\tname = "John Doe"' | CODE |
| LOW | src/utils/git/__tests__/gitConfigParser.test.ts | 40 | expect(parseConfigString(config, 'user', null, 'name')).toBe('John Doe') | CODE |
| LOW | src/skills/bundled/loremIpsum.ts | 273 | // Just dump the lorem ipsum text into the conversation | COMMENT |
| LOW | src/services/langfuse/__tests__/langfuse.test.ts | 782 | username: 'user@example.com', | CODE |
| LOW | src/services/langfuse/__tests__/langfuse.test.ts | 787 | 'user@example.com', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/utils/computerUse/win32/bridge.py | 392 | except Exception: | CODE |
| LOW⚡ | src/utils/computerUse/win32/bridge.py | 398 | except Exception as e: | CODE |
| LOW⚡ | src/utils/computerUse/win32/bridge.py | 418 | except Exception: | CODE |
| LOW⚡ | src/utils/computerUse/win32/bridge.py | 421 | except Exception: | CODE |
| LOW | src/utils/computerUse/win32/bridge.py | 329 | except Exception: | CODE |
| LOW | src/utils/computerUse/win32/bridge.py | 362 | except Exception: | CODE |
| LOW | src/utils/computerUse/win32/bridge.py | 378 | except Exception: | CODE |
| LOW | src/utils/computerUse/win32/bridge.py | 515 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ckages/builtin-tools/src/tools/TodoWriteTool/prompt.ts | 100 | print("Hello World") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/utils/computerUse/win32/bridge.py | 207 | CODE | |
| LOW | src/utils/computerUse/win32/bridge.py | 267 | CODE | |
| LOW | src/utils/computerUse/win32/bridge.py | 334 | CODE | |
| LOW | src/utils/computerUse/win32/bridge.py | 404 | CODE | |
| LOW | src/utils/computerUse/win32/bridge.py | 497 | CODE | |
| LOW | src/utils/computerUse/win32/bridge.py | 356 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/constants/prompts.ts | 390 | When the task is done, report the result. Do not append "Is there anything else?" or "Let me know if you need anything e | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/utils/hooks.ts | 1326 | // TODO: Add tests for EPIPE handling. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/utils/computerUse/win32/bridge.py | 338 | CODE |