Jetbrains Claude Code and Codex GUI Plugin
This report presents the forensic synthetic code analysis of zhukunpenglinyutong/jetbrains-cc-gui, a TypeScript project with 4,601 GitHub stars. SynthScan v2.0 examined 272,297 lines of code across 1121 source files, recording 530 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 7.2 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 530 distinct pattern matches across 12 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 |
|---|---|---|---|---|
| CRITICAL | …degui/provider/claude/ClaudeSDKBridgeRefactorTest.java | 171 | com.intellij.openapi.diagnostic.Logger.getInstance(ClaudeDaemonRequestExecutor.class), | CODE |
| CRITICAL | …degui/provider/common/PaginatedSessionLoadingTest.java | 33 | new com.github.claudecodegui.provider.claude.ClaudeSessionLiteReader(); | CODE |
| CRITICAL | …degui/provider/common/PaginatedSessionLoadingTest.java | 76 | new com.github.claudecodegui.provider.claude.ClaudeSessionLiteReader(); | CODE |
| CRITICAL | src/main/resources/libs/marked.min.js | 47 | `+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(e){let r="Infinite loop on byt | CODE |
| CRITICAL | …ithub/claudecodegui/handler/PermissionModeHandler.java | 84 | com.github.claudecodegui.notifications.ClaudeNotifier.setMode(this.context.getProject(), mode); | CODE |
| CRITICAL | …om/github/claudecodegui/handler/PermissionHandler.java | 255 | com.github.claudecodegui.ui.toolwindow.ClaudeSDKToolWindow.getChatWindow(targetProject); | CODE |
| CRITICAL⚡ | …ava/com/github/claudecodegui/handler/AgentHandler.java | 283 | com.github.claudecodegui.notifications.ClaudeNotifier.setAgent(context.getProject(), agentName); | CODE |
| CRITICAL⚡ | …ava/com/github/claudecodegui/handler/AgentHandler.java | 285 | com.github.claudecodegui.notifications.ClaudeNotifier.setAgent(context.getProject(), ""); | CODE |
| CRITICAL⚡ | …ava/com/github/claudecodegui/handler/AgentHandler.java | 288 | com.github.claudecodegui.notifications.ClaudeNotifier.setAgent(context.getProject(), ""); | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/AgentHandler.java | 380 | com.github.claudecodegui.notifications.ClaudeNotifier.showSuccess( | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/AgentHandler.java | 390 | com.github.claudecodegui.notifications.ClaudeNotifier.showError( | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/AgentHandler.java | 488 | com.github.claudecodegui.notifications.ClaudeNotifier.showError( | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/AgentHandler.java | 528 | com.github.claudecodegui.notifications.ClaudeNotifier.showSuccess( | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/AgentHandler.java | 544 | com.github.claudecodegui.notifications.ClaudeNotifier.showError( | CODE |
| CRITICAL | …github/claudecodegui/handler/SoundSettingsHandler.java | 202 | com.intellij.openapi.fileChooser.FileChooser.chooseFile( | CODE |
| CRITICAL | …com/github/claudecodegui/handler/McpServerHandler.java | 274 | String errorMsg = escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("mcp.addServerFaile | CODE |
| CRITICAL | …com/github/claudecodegui/handler/McpServerHandler.java | 297 | String errorMsg = escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("mcp.updateServerFa | CODE |
| CRITICAL⚡ | …com/github/claudecodegui/handler/McpServerHandler.java | 321 | String reason = com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("mcp.serverNotFound"); | CODE |
| CRITICAL⚡ | …com/github/claudecodegui/handler/McpServerHandler.java | 322 | String errorMsg = escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message( | CODE |
| CRITICAL⚡ | …com/github/claudecodegui/handler/McpServerHandler.java | 330 | String errorMsg = escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("mcp.deleteServerFa | CODE |
| CRITICAL | …ava/com/github/claudecodegui/handler/SkillHandler.java | 387 | .finishOnUiThread(com.intellij.openapi.application.ModalityState.defaultModalityState(), virtualFile -> | CODE |
| CRITICAL | …ithub/claudecodegui/handler/CodexMcpServerHandler.java | 167 | sendToolsError("", com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("error.codexLocalAccessNotA | CODE |
| CRITICAL | …laudecodegui/handler/context/JavaContextCollector.java | 516 | PsiClass cls = com.intellij.psi.util.PsiUtil.resolveClassInType(type); | CODE |
| CRITICAL | …laudecodegui/handler/context/JavaContextCollector.java | 527 | return com.intellij.openapi.roots.ProjectFileIndex.getInstance(project).isInContent(vFile); | CODE |
| CRITICAL | …thub/claudecodegui/handler/file/FileExportHandler.java | 47 | handleSaveFile(content, ".md", com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("file.saveMarkdownD | CODE |
| CRITICAL | …thub/claudecodegui/handler/file/FileExportHandler.java | 51 | handleSaveFile(content, ".json", com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("file.saveJsonDia | CODE |
| CRITICAL⚡ | …thub/claudecodegui/handler/file/FileExportHandler.java | 123 | notifySuccess(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("file.saved")); | CODE |
| CRITICAL⚡ | …thub/claudecodegui/handler/file/FileExportHandler.java | 126 | String errorDetail = e.getMessage() != null ? e.getMessage() : com.github.claudecodegui.i18n.ClaudeCodeG | CODE |
| CRITICAL⚡ | …thub/claudecodegui/handler/file/FileExportHandler.java | 127 | notifyError(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("file.saveFailedWithReason", error | CODE |
| CRITICAL | …thub/claudecodegui/handler/file/FileExportHandler.java | 143 | String errorDetail = message != null ? message : com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message(" | CODE |
| CRITICAL | …thub/claudecodegui/handler/file/FileExportHandler.java | 144 | String errorMsg = escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("file.saveFailedWithRea | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 73 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 108 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 127 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCode | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 153 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL⚡ | …ecodegui/handler/provider/CodexProviderOperations.java | 183 | if (com.github.claudecodegui.settings.CodexProviderManager.CODEX_CLI_LOGIN_PROVIDER_ID.equals(id)) { | CODE |
| CRITICAL⚡ | …ecodegui/handler/provider/CodexProviderOperations.java | 193 | String successMsg = com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.providerSwitchSucce | CODE |
| CRITICAL⚡ | …ecodegui/handler/provider/CodexProviderOperations.java | 194 | + com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("provider.switchSyncCodex"); | CODE |
| CRITICAL⚡ | …ecodegui/handler/provider/CodexProviderOperations.java | 203 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 239 | com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.codexLocalConfigAuthorizationRe | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 248 | com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.providerSwitchFailed") + ": " + | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 270 | com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.codexCliLoginSwitchSuccess"))); | CODE |
| CRITICAL | …ecodegui/handler/provider/CodexProviderOperations.java | 279 | com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.providerSwitchFailed") + ": " + | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 134 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 173 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 192 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCode | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 221 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 259 | context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.providerDi | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 282 | context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("error.localP | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 295 | context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("error.localP | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 314 | context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.localProvi | CODE |
| CRITICAL | …codegui/handler/provider/ClaudeProviderOperations.java | 345 | context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.cliLoginSw | CODE |
| CRITICAL⚡ | …codegui/handler/provider/ClaudeProviderOperations.java | 360 | String successMsg = com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("toast.providerSwitchSucce | CODE |
| CRITICAL⚡ | …codegui/handler/provider/ClaudeProviderOperations.java | 361 | + com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("provider.switchSyncClaude"); | CODE |
| CRITICAL⚡ | …codegui/handler/provider/ClaudeProviderOperations.java | 369 | context.callJavaScript("window.showError", context.escapeJs(com.github.claudecodegui.i18n.ClaudeCodeGuiB | CODE |
| CRITICAL | …audecodegui/handler/provider/ModelProviderHandler.java | 92 | com.github.claudecodegui.notifications.ClaudeNotifier.setModel(context.getProject(), model); | CODE |
| CRITICAL⚡ | …egui/handler/provider/ProviderImportExportSupport.java | 154 | String errorMsg = com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("provider.ccswitch.notFo | CODE |
| CRITICAL⚡ | …egui/handler/provider/ProviderImportExportSupport.java | 156 | sendErrorToFrontend(com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("provider.ccswitch.not | CODE |
| CRITICAL⚡ | …egui/handler/provider/ProviderImportExportSupport.java | 161 | String errorMsg = com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("error.cannotReadFile") | CODE |
| CRITICAL⚡ | …egui/handler/provider/ProviderImportExportSupport.java | 163 | com.github.claudecodegui.i18n.ClaudeCodeGuiBundle.message("error.checkFile | CODE |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | webview/e2e/menu-viewports.spec.ts | 173 | async function expectSubmenuAnchoredToRow(page: Page, trigger: Locator, submenu: Locator, label: string) { | CODE |
| LOW | webview/src/main.tsx | 37 | function createBridgeHeartbeatStarter() { | CODE |
| LOW | webview/src/main.tsx | 394 | function applyEditorTypographyConfig(config: { | CODE |
| LOW | webview/src/types/provider.ts | 140 | export function validateCodexCustomModels(models: unknown): CodexCustomModel[] { | CODE |
| LOW | webview/src/utils/linkifyCapabilities.ts | 14 | function normalizeLinkifyCapabilities(value: unknown): LinkifyCapabilities { | CODE |
| LOW | webview/src/utils/linkifyCapabilities.ts | 56 | export function applyLinkifyCapabilitiesPayload(json: string): LinkifyCapabilities { | CODE |
| LOW | webview/src/utils/linkifyCapabilities.ts | 64 | export function subscribeLinkifyCapabilities( | CODE |
| LOW | webview/src/utils/skipNewSessionConfirm.ts | 72 | export function isNewSessionConfirmEnabled(): boolean { | CODE |
| LOW | webview/src/utils/skipNewSessionConfirm.ts | 82 | export function setNewSessionConfirmEnabled(enabled: boolean): void { | CODE |
| LOW | webview/src/utils/runtimeProviderCapabilities.ts | 38 | export function installRuntimeProviderDispatchers(): void { | CODE |
| LOW | webview/src/utils/runtimeProviderCapabilities.ts | 83 | export function subscribeCodexProviderList(listener: ProviderListListener): () => void { | CODE |
| LOW | webview/src/utils/runtimeProviderCapabilities.ts | 91 | export function subscribeActiveCodexProvider(listener: ActiveProviderListener): () => void { | CODE |
| LOW | webview/src/utils/linkify.ts | 477 | export function normalizeFileNavigationTarget(href: string): string | null { | CODE |
| LOW | webview/src/utils/linkify.ts | 490 | export function isMarkdownFileNavigationHref(href: string): boolean { | CODE |
| LOW | webview/src/utils/codexSubscriptionQuotaCapabilities.ts | 61 | export function installCodexSubscriptionQuotaDispatchers(): void { | CODE |
| LOW | webview/src/utils/codexSubscriptionQuotaCapabilities.ts | 74 | export function subscribeCodexSubscriptionQuota(listener: QuotaListener): () => void { | CODE |
| LOW | webview/src/utils/codexSubscriptionQuotaCapabilities.ts | 82 | export function fetchCodexSubscriptionQuota(): void { | CODE |
| LOW | webview/src/utils/toolConstants.ts | 59 | export function isTransientInternalToolName(toolName: string | undefined): boolean { | CODE |
| LOW | webview/src/utils/expandedState.ts | 18 | export function clearAllPersistedExpanded(): void { | CODE |
| LOW | webview/src/utils/contentBlockNormalize.ts | 150 | export function formatTaskNotificationForDisplay( | CODE |
| LOW | webview/src/utils/contentBlockNormalize.ts | 179 | export function createTaskNotificationBlock(text: string): ClaudeContentBlock | null { | CODE |
| LOW | webview/src/utils/contentBlockNormalize.ts | 195 | export function extractCommandMessageContent(text: string): string { | CODE |
| LOW | webview/src/utils/contentBlockNormalize.ts | 229 | export function isSyntheticToolMessageContent( | CODE |
| LOW | webview/src/utils/turnScope.ts | 3 | export function isToolResultOnlyUserMessage(message: ClaudeMessage): boolean { | CODE |
| LOW⚡ | webview/src/utils/turnScope.ts | 18 | export function findLatestConversationTurnStart(messages: ClaudeMessage[]): number { | CODE |
| LOW⚡ | webview/src/utils/turnScope.ts | 28 | export function sliceLatestConversationTurn(messages: ClaudeMessage[]): ClaudeMessage[] { | CODE |
| LOW⚡ | webview/src/utils/turnScope.ts | 33 | export function finalizeTodosForSettledTurn(todos: TodoItem[], isStreaming: boolean): TodoItem[] { | CODE |
| LOW⚡ | webview/src/utils/turnScope.ts | 42 | export function finalizeSubagentsForSettledTurn(subagents: SubagentInfo[], isStreaming: boolean): SubagentInfo[] { | CODE |
| LOW | webview/src/utils/bridge.ts | 43 | function installResolveFilePathHandler() { | CODE |
| LOW | webview/src/utils/messageUtils.ts | 121 | export function isTaskNotificationOnlyMessage(message: ClaudeMessage): boolean { | CODE |
| LOW | webview/src/utils/messageUtils.ts | 515 | export function mergeConsecutiveAssistantMessages( | CODE |
| LOW | webview/src/utils/nodeProcessCapabilities.ts | 93 | export function installNodeProcessDispatchers(): void { | CODE |
| LOW | webview/src/utils/nodeProcessCapabilities.ts | 119 | export function subscribeNodeProcessKillResult(listener: KillResultListener): () => void { | CODE |
| LOW | webview/src/utils/permissionDialogTimeout.ts | 9 | export function clampPermissionDialogTimeoutSeconds(value: unknown): number { | CODE |
| LOW | webview/src/components/MessageList.tsx | 33 | function getMessageToolResultSignature( | CODE |
| LOW | webview/src/components/MarkdownBlock.tsx | 83 | function ensureSafeHrefSanitizerHook(): void { | CODE |
| LOW | webview/src/components/MarkdownBlock.tsx | 209 | function hasPossibleMermaidContent(content: string): boolean { | CODE |
| LOW | webview/src/components/MarkdownBlock.tsx | 331 | function stripAndEscapeOutsideCodeBlocks(content: string): string { | CODE |
| LOW | webview/src/components/MarkdownBlock.tsx | 364 | function renderStreamingInlineText( | CODE |
| LOW | webview/src/components/MarkdownBlock.tsx | 409 | function renderStreamingProseSegment( | CODE |
| LOW | webview/src/components/ProviderDialog.tsx | 42 | export function normalizeProviderEnvForSave( | CODE |
| LOW | webview/src/components/ProviderDialog.tsx | 74 | export function sanitizeProviderJsonConfig( | CODE |
| LOW | …s/settings/PromptSection/PromptImportConfirmDialog.tsx | 14 | export default function PromptImportConfirmDialog({ | CODE |
| LOW | …components/settings/hooks/useConfiguredModelPricing.ts | 12 | function normalizeComparableModelId(modelId: string): string { | CODE |
| LOW | …components/settings/hooks/useConfiguredModelPricing.ts | 82 | function mergeConfiguredPricingModels( | CODE |
| LOW | …components/settings/hooks/useConfiguredModelPricing.ts | 102 | export function useConfiguredClaudeModelPricing(customModels: CodexCustomModel[]) { | CODE |
| LOW | …omponents/settings/hooks/useCodexProviderManagement.ts | 27 | export function useCodexProviderManagement(options: UseCodexProviderManagementOptions = {}) { | CODE |
| LOW | …omponents/settings/hooks/useSettingsWindowCallbacks.ts | 99 | export function useSettingsWindowCallbacks(deps: SettingsWindowCallbacksDeps) { | CODE |
| LOW | …bview/src/components/settings/hooks/usePluginModels.ts | 37 | function readConfiguredClaudePricingModels(): CodexCustomModel[] { | CODE |
| LOW | …bview/src/components/settings/hooks/usePluginModels.ts | 60 | function normalizeComparableModelId(modelId: string): string { | CODE |
| LOW | …/BasicConfigSection/PermissionDialogTimeoutSetting.tsx | 16 | export function PermissionDialogTimeoutSetting({ | CODE |
| LOW | …c/components/MessageItem/ProviderNotConfiguredCard.tsx | 33 | export function isProviderNotConfiguredError(errorText: string): boolean { | CODE |
| LOW | …c/components/MessageItem/ProviderNotConfiguredCard.tsx | 39 | export const ProviderNotConfiguredCard = memo(function ProviderNotConfiguredCard({ | CODE |
| LOW | webview/src/components/StatusPanel/subagentProcess.ts | 48 | export function buildSubagentProcessModel(history?: SubagentHistoryResponse): SubagentProcessModel { | CODE |
| LOW | webview/src/components/mcp/McpMarketplaceDialog.tsx | 25 | function rememberPreferredSourceId(sourceId: string) { | CODE |
| LOW | webview/src/components/mcp/McpMarketplaceDialog.tsx | 397 | function createServerFromMarketplaceEntry( | CODE |
| LOW | …rc/components/ChatInputBox/providers/promptProvider.ts | 379 | export function updateProjectPromptsCache(prompts: PromptItem[]) { | CODE |
| LOW | …onents/ChatInputBox/providers/dollarCommandProvider.ts | 41 | export function setupDollarCommandsCallback() { | CODE |
| LOW | …onents/ChatInputBox/providers/dollarCommandProvider.ts | 145 | export function dollarCommandToDropdownItem(cmd: CommandItem): DropdownItemData { | CODE |
| LOW | …ponents/ChatInputBox/providers/slashCommandProvider.ts | 24 | function getLocalNewSessionCommands(): CommandItem[] { | CODE |
| 101 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | webview/src/i18n/locales/zh.json | 101 | "placeholder": "在对话中搜索…", | CODE |
| LOW | webview/src/i18n/locales/zh.json | 160 | "placeholder": "Windows: C:\\Program Files\\nodejs\\node.exe (必须以 .exe 结尾) | macOS/Linux: /usr/local/bin/node", | CODE |
| LOW | webview/src/i18n/locales/zh.json | 172 | "placeholder": "例如 /usr/local/bin/claude — 留空则使用内置 SDK", | CODE |
| LOW | webview/src/i18n/locales/zh.json | 177 | "placeholder": "例如 project1 或留空使用项目根目录", | CODE |
| LOW⚡ | webview/src/i18n/locales/zh.json | 438 | "placeholder": "在此添加您的额外要求,例如:使用中文生成 commit、包含 issue 编号,使用表情符号等等...", | CODE |
| LOW⚡ | webview/src/i18n/locales/zh.json | 443 | "placeholder": "在此添加当前项目的专属要求,例如:scope 必须使用模块名、commit body 需包含影响范围等...", | CODE |
| LOW⚡ | webview/src/i18n/locales/zh.json | 449 | "placeholder": "此功能正在开发中,敬请期待...", | CODE |
| LOW | webview/src/i18n/locales/zh.json | 1199 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/zh.json | 1786 | "placeholder": "文件上下文", | CODE |
| LOW | webview/src/i18n/locales/ja.json | 101 | "placeholder": "会話内を検索...", | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 160 | "placeholder": "例: C:\\Program Files\\nodejs\\node.exe または /usr/local/bin/node", | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 168 | "placeholder": "例: /usr/local/bin/claude — 空欄の場合は内蔵 SDK を使用", | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 173 | "placeholder": "例: project1 または空欄でプロジェクトルートを使用", | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 367 | "placeholder": "Add your extra requirements here, e.g., generate commit in English, include issue number, etc... | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 372 | "placeholder": "現在のプロジェクト固有の要件をここに追加してください。例:scopeにはモジュール名を使用、commit bodyに影響範囲を含めるなど...", | CODE |
| LOW⚡ | webview/src/i18n/locales/ja.json | 378 | "placeholder": "This feature is under development, stay tuned...", | CODE |
| LOW | webview/src/i18n/locales/ja.json | 1007 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/ja.json | 1548 | "placeholder": "ファイルコンテキスト", | CODE |
| LOW | webview/src/i18n/locales/ru.json | 101 | "placeholder": "Поиск в беседе…", | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 160 | "placeholder": "например, C:\\Program Files\\nodejs\\node.exe или /usr/local/bin/node", | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 168 | "placeholder": "напр. /usr/local/bin/claude — оставьте пустым для использования встроенного SDK", | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 173 | "placeholder": "например, project1 или оставьте пустым для корня проекта", | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 367 | "placeholder": "Добавьте дополнительные требования, например, генерировать коммит на английском, включать номер | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 372 | "placeholder": "Добавьте здесь требования, специфичные для проекта, например: scope должен содержать имя модуля, | CODE |
| LOW⚡ | webview/src/i18n/locales/ru.json | 378 | "placeholder": "Эта функция в разработке, следите за обновлениями...", | CODE |
| LOW | webview/src/i18n/locales/ru.json | 1029 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/ru.json | 1569 | "placeholder": "Файловый контекст", | CODE |
| LOW | webview/src/i18n/locales/en.json | 101 | "placeholder": "Search in conversation…", | CODE |
| LOW | webview/src/i18n/locales/en.json | 160 | "placeholder": "Windows: C:\\Program Files\\nodejs\\node.exe (must end with .exe) | macOS/Linux: /usr/local/bin/ | CODE |
| LOW | webview/src/i18n/locales/en.json | 172 | "placeholder": "e.g. /usr/local/bin/claude — leave empty to use the bundled SDK", | CODE |
| LOW | webview/src/i18n/locales/en.json | 177 | "placeholder": "e.g. project1 or leave empty to use project root", | CODE |
| LOW⚡ | webview/src/i18n/locales/en.json | 438 | "placeholder": "Add your extra requirements here, e.g., generate commit in English, include issue number, etc... | CODE |
| LOW⚡ | webview/src/i18n/locales/en.json | 443 | "placeholder": "Add project-specific requirements here, e.g., scope must use module name, commit body should inc | CODE |
| LOW⚡ | webview/src/i18n/locales/en.json | 449 | "placeholder": "This feature is under development, stay tuned...", | CODE |
| LOW | webview/src/i18n/locales/en.json | 1194 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/en.json | 1781 | "placeholder": "File Context", | CODE |
| LOW | webview/src/i18n/locales/fr.json | 101 | "placeholder": "Rechercher dans la conversation…", | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 160 | "placeholder": "ex. C:\\Program Files\\nodejs\\node.exe ou /usr/local/bin/node", | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 168 | "placeholder": "ex. /usr/local/bin/claude — laissez vide pour utiliser le SDK intégré", | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 173 | "placeholder": "e.g. project1 or leave empty to use project root", | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 367 | "placeholder": "Add your extra requirements here, e.g., generate commit in English, include issue number, etc... | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 372 | "placeholder": "Ajoutez ici les exigences spécifiques au projet, par exemple : le scope doit utiliser le nom du | CODE |
| LOW⚡ | webview/src/i18n/locales/fr.json | 378 | "placeholder": "This feature is under development, stay tuned...", | CODE |
| LOW | webview/src/i18n/locales/fr.json | 1002 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/fr.json | 1543 | "placeholder": "Contexte de fichier", | CODE |
| LOW | webview/src/i18n/locales/hi.json | 101 | "placeholder": "बातचीत में खोजें...", | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 160 | "placeholder": "जैसे C:\\Program Files\\nodejs\\node.exe या /usr/local/bin/node", | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 168 | "placeholder": "उदा. /usr/local/bin/claude — अंतर्निहित SDK का उपयोग करने के लिए खाली छोड़ें", | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 173 | "placeholder": "e.g. project1 or leave empty to use project root", | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 367 | "placeholder": "Add your extra requirements here, e.g., generate commit in English, include issue number, etc... | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 372 | "placeholder": "यहाँ प्रोजेक्ट-विशिष्ट आवश्यकताएँ जोड़ें, जैसे: scope में मॉड्यूल नाम का उपयोग करें, commit body | CODE |
| LOW⚡ | webview/src/i18n/locales/hi.json | 378 | "placeholder": "This feature is under development, stay tuned...", | CODE |
| LOW | webview/src/i18n/locales/hi.json | 1002 | "placeholder": "{\n \"servers\": {\n \"my-server\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \ | CODE |
| LOW | webview/src/i18n/locales/hi.json | 1542 | "placeholder": "File Context", | CODE |
| LOW | webview/src/i18n/locales/pt-BR.json | 101 | "placeholder": "Pesquisar na conversa…", | CODE |
| LOW⚡ | webview/src/i18n/locales/pt-BR.json | 160 | "placeholder": "ex: C:\\Program Files\\nodejs\\node.exe ou /usr/local/bin/node", | CODE |
| LOW⚡ | webview/src/i18n/locales/pt-BR.json | 168 | "placeholder": "ex. /usr/local/bin/claude — deixe vazio para usar o SDK integrado", | CODE |
| LOW⚡ | webview/src/i18n/locales/pt-BR.json | 173 | "placeholder": "ex: projeto1 ou deixe vazio para usar a raiz do projeto", | CODE |
| LOW | webview/src/i18n/locales/pt-BR.json | 434 | "placeholder": "Adicione seus requisitos extras aqui, ex: gerar commit em português, incluir número do issue, et | CODE |
| LOW | webview/src/i18n/locales/pt-BR.json | 440 | "placeholder": "Este recurso está em desenvolvimento, aguarde...", | CODE |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | webview/src/components/AnimatedText/index.tsx | 23 | // Step 1: Animate out current text (Right to Left) | COMMENT |
| LOW⚡ | webview/src/components/AnimatedText/index.tsx | 33 | // Step 2: Swap content and animate in (Left to Right) | COMMENT |
| LOW⚡ | webview/src/hooks/useScrollBehavior.ts | 98 | // Step 1: deterministic scrollTop adjustment. | COMMENT |
| LOW⚡ | webview/src/hooks/useScrollBehavior.ts | 103 | // Step 2: native end-positioning (handles late-arriving layout). | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 616 | // Step 1: Frontend begins session transition | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 619 | // Step 2: During transition, stale messages are blocked | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 625 | // Step 3: Java calls historyLoadComplete (failure path also calls this before addErrorMessage) | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 631 | // Step 4: Java calls addErrorMessage | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 637 | // Step 5: After guard release, new messages work | COMMENT |
| LOW | ai-bridge/services/claude/permission-mode.js | 155 | // Step 1: ExitPlanMode triggers plan approval dialog (must check BEFORE safe tools | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 193 | // Step 2: Safe always-allow tools yield to SDK so settings.json deny rules can fire. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 198 | // Step 3: Agent/Task are auto-approved in plan mode, matching CLI behavior. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 208 | // Step 4: Edit/Write tools allow PLAN.md only; other writes require permission. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 282 | // Step 5: Plan mode specific allowed tools (read-only exploration tools) | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 287 | // Step 6: Auto-approve read-only MCP tools (positive verb allowlist; see isReadOnlyMcpTool). | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 57 | // Step 1: GET the SSE endpoint to establish event stream | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 75 | // Step 2: Wait for endpoint event | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 87 | // Step 3: POST initialize request to the discovered endpoint | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 108 | // Step 4: Read initialize response | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 54 | // Step 1: Establish SSE connection | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 72 | // Step 2: Wait for endpoint event | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 84 | // Step 3: Send initialize request | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 123 | // Step 4: Send tools/list request | COMMENT |
| LOW | docs/codex/MULTI-PROVIDER-ARCHITECTURE.md | 171 | ### Step 1: Create Service Module | COMMENT |
| LOW | docs/codex/MULTI-PROVIDER-ARCHITECTURE.md | 178 | ### Step 2: Implement Message Service | COMMENT |
| LOW | docs/codex/MULTI-PROVIDER-ARCHITECTURE.md | 202 | ### Step 3: Add Permission Mapper | COMMENT |
| LOW | docs/codex/MULTI-PROVIDER-ARCHITECTURE.md | 222 | ### Step 4: Update Router | COMMENT |
| LOW | docs/codex/MULTI-PROVIDER-ARCHITECTURE.md | 242 | ### Step 5: Create Java Bridge | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 124 | // Step 1: Locate SKILL.md | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 130 | // Step 2: Extract frontmatter YAML text | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 136 | // Step 3: Parse YAML | COMMENT |
| LOW | …github/claudecodegui/skill/SkillFrontmatterParser.java | 155 | // Step 4: Extract name (optional per docs, falls back to directory name) | COMMENT |
| LOW | …github/claudecodegui/skill/SkillFrontmatterParser.java | 170 | // Step 5: Extract description (optional per docs, falls back to first paragraph) | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 186 | // Step 6: Extract optional fields | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 191 | // Step 7: Extract user-invocable (default true per docs) | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 198 | // Step 8: Extract paths (conditional skills - glob patterns for file matching) | COMMENT |
| LOW⚡ | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 219 | // Step 1: Refresh file system on UI thread (not under read lock) | COMMENT |
| LOW⚡ | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 225 | // Step 2: Find the file in a non-blocking read action | COMMENT |
| LOW | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 237 | // Step 3: Handle the result on UI thread | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 427 | // Step 1: Get Terminal object | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 431 | // Step 2: Get TextBuffer | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 435 | // Step 3: Scrape lines | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | webview/src/components/AnimatedText/index.tsx | 23 | // Step 1: Animate out current text (Right to Left) | COMMENT |
| LOW⚡ | webview/src/components/AnimatedText/index.tsx | 33 | // Step 2: Swap content and animate in (Left to Right) | COMMENT |
| LOW⚡ | webview/src/hooks/useScrollBehavior.ts | 98 | // Step 1: deterministic scrollTop adjustment. | COMMENT |
| LOW⚡ | webview/src/hooks/useScrollBehavior.ts | 103 | // Step 2: native end-positioning (handles late-arriving layout). | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 616 | // Step 1: Frontend begins session transition | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 619 | // Step 2: During transition, stale messages are blocked | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 625 | // Step 3: Java calls historyLoadComplete (failure path also calls this before addErrorMessage) | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 631 | // Step 4: Java calls addErrorMessage | COMMENT |
| LOW⚡ | webview/src/hooks/useWindowCallbacks.test.ts | 637 | // Step 5: After guard release, new messages work | COMMENT |
| LOW | ai-bridge/services/claude/permission-mode.js | 155 | // Step 1: ExitPlanMode triggers plan approval dialog (must check BEFORE safe tools | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 193 | // Step 2: Safe always-allow tools yield to SDK so settings.json deny rules can fire. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 198 | // Step 3: Agent/Task are auto-approved in plan mode, matching CLI behavior. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 208 | // Step 4: Edit/Write tools allow PLAN.md only; other writes require permission. | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 282 | // Step 5: Plan mode specific allowed tools (read-only exploration tools) | COMMENT |
| LOW⚡ | ai-bridge/services/claude/permission-mode.js | 287 | // Step 6: Auto-approve read-only MCP tools (positive verb allowlist; see isReadOnlyMcpTool). | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 57 | // Step 1: GET the SSE endpoint to establish event stream | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 75 | // Step 2: Wait for endpoint event | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 87 | // Step 3: POST initialize request to the discovered endpoint | COMMENT |
| LOW | ai-bridge/services/claude/mcp-status/sse-verifier.js | 108 | // Step 4: Read initialize response | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 54 | // Step 1: Establish SSE connection | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 72 | // Step 2: Wait for endpoint event | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 84 | // Step 3: Send initialize request | COMMENT |
| LOW | …-bridge/services/claude/mcp-status/sse-tools-getter.js | 123 | // Step 4: Send tools/list request | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 124 | // Step 1: Locate SKILL.md | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 130 | // Step 2: Extract frontmatter YAML text | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 136 | // Step 3: Parse YAML | COMMENT |
| LOW | …github/claudecodegui/skill/SkillFrontmatterParser.java | 155 | // Step 4: Extract name (optional per docs, falls back to directory name) | COMMENT |
| LOW | …github/claudecodegui/skill/SkillFrontmatterParser.java | 170 | // Step 5: Extract description (optional per docs, falls back to first paragraph) | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 186 | // Step 6: Extract optional fields | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 191 | // Step 7: Extract user-invocable (default true per docs) | COMMENT |
| LOW⚡ | …github/claudecodegui/skill/SkillFrontmatterParser.java | 198 | // Step 8: Extract paths (conditional skills - glob patterns for file matching) | COMMENT |
| LOW⚡ | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 219 | // Step 1: Refresh file system on UI thread (not under read lock) | COMMENT |
| LOW⚡ | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 225 | // Step 2: Find the file in a non-blocking read action | COMMENT |
| LOW | …ava/com/github/claudecodegui/util/EditorFileUtils.java | 237 | // Step 3: Handle the result on UI thread | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 427 | // Step 1: Get Terminal object | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 431 | // Step 2: Get TextBuffer | COMMENT |
| LOW⚡ | …hub/claudecodegui/terminal/TerminalMonitorService.java | 435 | // Step 3: Scrape lines | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | webview/src/utils/linkify.ts | 81 | // Ruby | COMMENT |
| LOW | webview/src/utils/messageUtils.ts | 341 | const rawText = getRawTextContent(); | COMMENT |
| LOW | webview/src/components/ChatScreen.tsx | 161 | // The content size is REQUIRED because during streaming the last assistant | COMMENT |
| LOW | webview/src/components/mcp/McpServerDialog.tsx | 21 | const [jsonContent, setJsonContent] = useState(''); | COMMENT |
| LOW | webview/src/components/mcp/McpServerDialog.tsx | 41 | // "mcpServers": { | COMMENT |
| LOW | webview/src/hooks/useScrollBehavior.ts | 61 | COMMENT | |
| LOW | webview/src/hooks/useStreamingMessages.ts | 241 | // let the next backend snapshot author the correct blocks. Overwriting a | COMMENT |
| LOW | webview/src/hooks/windowCallbacks/messageSync.ts | 121 | } | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 301 | // If the last streaming assistant belongs to an OLDER turn, its onStreamEnd | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 581 | // Initialize denied tool ids set if not exists | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 621 | window.__lastStreamEndedTurnId = endedStreamingTurnId; | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 681 | COMMENT | |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 741 | // | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 801 | }; | COMMENT |
| LOW | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 821 | return; | COMMENT |
| LOW | …rc/hooks/windowCallbacks/__tests__/messageSync.test.ts | 1101 | expect(streamingIndex).toBe(-1); | COMMENT |
| LOW | ai-bridge/permission-handler.js | 21 | // READ_ONLY tools: pure read operations with no side effects. | COMMENT |
| LOW | ai-bridge/daemon.js | 41 | } from './services/claude/persistent-query-service.js'; | COMMENT |
| LOW | ai-bridge/daemon.js | 61 | const DAEMON_VERSION = '1.0.0'; | COMMENT |
| LOW | ai-bridge/daemon.js | 81 | const _originalStderrWrite = process.stderr.write.bind(process.stderr); | COMMENT |
| LOW | ai-bridge/daemon.js | 421 | COMMENT | |
| LOW | ai-bridge/daemon.js | 681 | // --- Parent process monitoring --- | COMMENT |
| LOW | ai-bridge/utils/model-utils.js | 161 | const lower = modelId.toLowerCase(); | COMMENT |
| LOW | ai-bridge/services/claude/stream-event-processor.js | 161 | // Pure text/thinking content is delivered via [CONTENT_DELTA] / [THINKING_DELTA] | COMMENT |
| LOW | …-bridge/services/claude/stream-event-processor.test.js | 721 | // assistant message whose content blocks re-number from index 0). The maps are | COMMENT |
| LOW | …-bridge/services/claude/stream-event-processor.test.js | 961 | ); | COMMENT |
| LOW | …-bridge/services/claude/stream-event-processor.test.js | 1081 | // a documented behavior for any provider we support. | COMMENT |
| LOW | …-bridge/services/claude/stream-event-processor.test.js | 1121 | // • snapshot path: identical incoming = "nothing new to deliver beyond | COMMENT |
| LOW | ai-bridge/services/claude/permission-mode.js | 301 | } | COMMENT |
| LOW | ai-bridge/services/claude/stream-delta-normalizer.js | 41 | // block in the UI (issue tracker streaming-duplication-fix). This was | COMMENT |
| LOW | ai-bridge/services/claude/stream-delta-normalizer.js | 61 | } | COMMENT |
| LOW | ai-bridge/services/claude/stream-delta-normalizer.js | 81 | // snapshot mid-stream: a typo correction, a token re-translation, or a | COMMENT |
| LOW | ai-bridge/services/claude/runtime-lifecycle.js | 321 | // cleanupStaleSessionRuntimes reaps runtimes idle past SESSION_RUNTIME_MAX_IDLE_MS | COMMENT |
| LOW | docs/codex/docs/example-config.md | 1 | # Example config.toml | COMMENT |
| LOW | docs/codex/docs/example-config.md | 21 | # Primary model used by Codex. Default: "gpt-5.1-codex-max" on all platforms. | COMMENT |
| LOW | docs/codex/docs/example-config.md | 61 | COMMENT | |
| LOW | docs/codex/docs/example-config.md | 81 | COMMENT | |
| LOW | docs/codex/docs/example-config.md | 161 | # hide_rate_limit_model_nudge = true | COMMENT |
| LOW | docs/codex/docs/example-config.md | 221 | # Experimental toggles (legacy; prefer [features]) | COMMENT |
| LOW | docs/codex/docs/example-config.md | 241 | # disabled_tools = ["slow-tool"] # optional deny-list (applied after allow-list) | COMMENT |
| LOW | docs/codex/docs/example-config.md | 261 | [model_providers] | COMMENT |
| LOW | docs/codex/docs/example-config.md | 281 | # query_params = { api-version = "2025-04-01-preview" } | COMMENT |
| LOW | docs/codex/docs/example-config.md | 301 | # model = "gpt-5.1-codex-max" | COMMENT |
| LOW | docs/codex/docs/example-config.md | 321 | [projects] | COMMENT |
| LOW | docs/codex/docs/example-config.md | 341 | COMMENT | |
| LOW | docs/codex/docs/config.md | 881 | # Defaults to true. | COMMENT |
| LOW | docs/codex/docs/config.md | 901 | # | COMMENT |
| LOW | …i/toolwindow/ClaudeChatWindowReloadCoalescingTest.java | 81 | // ========================================================================= | COMMENT |
| LOW | …thub/claudecodegui/ui/toolwindow/ClaudeChatWindow.java | 681 | COMMENT | |
| LOW | …thub/claudecodegui/session/SessionCallbackAdapter.java | 241 | // The reset happens-before flush() schedules any callbacks, so no race exists. | COMMENT |
| LOW | …github/claudecodegui/session/ClaudeMessageHandler.java | 181 | // Signal stream-end BEFORE pushing the error snapshot, and do it | COMMENT |
| LOW | …github/claudecodegui/session/ClaudeMessageHandler.java | 341 | // Update status bar with usage from the final assistant message (matches CLI's PP1 behavior). | COMMENT |
| LOW | …thub/claudecodegui/session/StreamMessageCoalescer.java | 41 | // During streaming, delta channel (onContentDelta/onThinkingDelta) provides | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ponents/ConversationSearch/ConversationSearch.test.tsx | 159 | // ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/ConversationSearch/ConversationSearch.test.tsx | 161 | // ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | webview/src/hooks/useMessageProcessing.ts | 124 | // ── Compact summary → notification ───────────────────────────────── | COMMENT |
| MEDIUM | webview/src/hooks/useMessageProcessing.ts | 140 | // ── Standard visibility + type transforms ────────────────────────── | COMMENT |
| MEDIUM | …ub/claudecodegui/ui/toolwindow/DeferredReloadTest.java | 31 | // ── Park + take-and-clear ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ub/claudecodegui/ui/toolwindow/DeferredReloadTest.java | 60 | // ── Coalescing (last writer wins) ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ub/claudecodegui/ui/toolwindow/DeferredReloadTest.java | 75 | // ── Disposed gate ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ub/claudecodegui/ui/toolwindow/DeferredReloadTest.java | 101 | // ── Thread-safety: concurrent defer/take never loses or duplicates ─────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 47 | // ── Enums & Inner Types ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 111 | // ── Constructor & Factory Methods ────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 160 | // ── Public API ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 238 | // ── Common Helpers ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 304 | // ── Permission Request Handling ──────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 437 | // ── AskUserQuestion Request Handling ─────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 513 | // ── PlanApproval Request Handling ────────────────────────────────── | COMMENT |
| MEDIUM | …github/claudecodegui/permission/PermissionService.java | 576 | // ── Diff Review ──────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | webview/src/components/mcp/McpServerDialog.tsx | 46 | // "CONTEXT7_API_KEY": "your-api-key" | COMMENT |
| HIGH | docs/codex/docs/exec.md | 111 | CODEX_API_KEY=your-api-key-here codex exec "Fix merge conflict" | CODE |
| HIGH | docs/sdk/codex-cli-sdk.md | 86 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/sdk/codex-cli-sdk.md | 92 | > OPENAI_API_KEY=your-api-key-here | CODE |
| HIGH | docs/sdk/codex-cli-sdk.md | 117 | > export <provider>_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/sdk/codex-cli-sdk.md | 471 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/sdk/codex-sdk.md | 172 | CODEX_API_KEY=your-api-key codex exec --json "triage open bug reports" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | webview/src/hooks/useSessionManagement.ts | 388 | // AI-generated titles are already persisted by saveAiTitle to the JSONL | COMMENT |
| HIGH | …/windowCallbacks/registerCallbacks/sessionCallbacks.ts | 49 | // AI-generated titles can exceed the backend limit. Fall back to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | webview/package-lock.json | 5362 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | …indowCallbacks/registerCallbacks/streamingCallbacks.ts | 601 | // - Benefit: More robust handling of async callback ordering, especially important | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | webview/src/ARCHITECTURE.md | 51 | ├── App.tsx # Main orchestration component | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ithub/claudecodegui/handler/PermissionModeHandler.java | 111 | // TODO: implement live permission-mode switch for the Codex provider | COMMENT |