Claude / Codex / Gemini API Proxy - CCX
This report summarizes scanner evidence for BenedictKing/ccx, a Go project with 3,985 GitHub stars. SynthScan examined 525,639 lines of code across 1628 source files, recording 445 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 338 finding(s).
Are imports declared and package/API names verified? 7 finding(s).
Are wrappers, guards, and repeated structures necessary? 273 finding(s).
Which changes need focused human review? 445 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 445 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frontend/src/services/api-types.ts | 2522 | // ─── 预置数据(GET /api/presets)─────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 8 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 10 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 48 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 50 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 94 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 96 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 171 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 174 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 520 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 522 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 553 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 555 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 591 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 593 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 606 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 608 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 626 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/volcengine_afp_pricing_test.go | 628 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/provider_usage_recover_test.go | 52 | // ── Kimi ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/provider_usage_recover_test.go | 107 | // ── MiMo ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/provider_usage_recover_test.go | 130 | // ── Volcengine ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/provider_usage_recover_test.go | 211 | // ── 非自动恢复原因 ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/config/provider_usage_recover_test.go | 236 | // ── 无渠道/无账号 ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_plan_scope.go | 8 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_plan_scope.go | 13 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 9 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 12 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 40 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 43 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 108 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 110 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 135 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 137 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 199 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/config/volcengine_afp_pricing.go | 201 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/newapi_adapter.go | 21 | // ─── new-api 订阅集成适配器(§8.5.1)────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_cockpit.go | 9 | // ── 驾驶舱 API 响应类型 ──────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_cockpit.go | 63 | // ── 路由注册 ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_cockpit.go | 73 | // ── Handler ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_cockpit.go | 98 | // ── 内部聚合函数 ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_abtest.go | 12 | // ─── A/B 测试 API 路由注册 ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_abtest.go | 29 | // ─── 响应类型 ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_abtest.go | 45 | // ─── 处理函数 ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …kend-go/internal/autopilot/handlers_recommendations.go | 10 | // ─── 渠道推荐 API(Phase 4 Item 4)─────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/model_frontier_scoring.go | 9 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/model_frontier_scoring.go | 20 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers.go | 11 | // ─── 响应类型 ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers.go | 102 | // ─── 路由注册 ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers.go | 125 | // ─── Handler 实现 ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers.go | 289 | // ─── 内部辅助 ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckend-go/internal/autopilot/handlers_routing_config.go | 12 | // ─── 请求/响应类型 ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckend-go/internal/autopilot/handlers_routing_config.go | 44 | // ─── 路由注册 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckend-go/internal/autopilot/handlers_routing_config.go | 59 | // ─── 处理函数 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_auto_managed.go | 21 | // ─── 请求/响应类型 ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_auto_managed.go | 111 | // ─── 路由注册 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_auto_managed.go | 1928 | // ─── 辅助函数 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_auto_managed.go | 1943 | // ─── 处理函数 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/handlers_auto_managed.go | 3033 | // ─── 辅助函数 ───────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend-go/internal/autopilot/model_frontier.go | 8 | // ──────────────────────────────────────────────────────────────── | COMMENT |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/src/composables/useChannelEditorFormDerived.ts | 13 | export function useChannelEditorFormDerived( | CODE |
| LOW | frontend/src/composables/useGlobalTick.ts | 80 | function getOrCreateEntry(intervalMs: number): TimerEntry { | CODE |
| LOW | frontend/src/composables/useChannelEditorHeaderState.ts | 13 | export function useChannelEditorHeaderState(theme: ThemeLike) { | CODE |
| LOW | frontend/src/composables/useEditChannelSectionNav.ts | 37 | function updateActiveSectionFromScroll() { | CODE |
| LOW | frontend/src/composables/useRuntimePresets.ts | 79 | function normalizeSubscriptionPreset(subscription?: Partial<SubscriptionPreset> | null): SubscriptionPreset { | CODE |
| LOW | frontend/src/composables/useRuntimePresets.ts | 143 | function normalizeBenchmarkProfiles(modelRegistry?: PresetBundle['modelRegistry'] | null): RuntimeBenchmarkProfiles { | CODE |
| LOW | frontend/src/composables/useRuntimePresets.ts | 200 | export async function ensureRuntimePresetsLoaded(force = false): Promise<RuntimePresetState> { | CODE |
| LOW | frontend/src/composables/useDialogHotkeys.ts | 45 | export function dispatchDialogHotkeyEvent(e: KeyboardEvent) { | CODE |
| LOW | frontend/src/utils/channelApiKeys.ts | 91 | export function availableChannelApiKeyCount(channel: ChannelKeyState): number { | CODE |
| LOW⚡ | frontend/src/utils/channelApiKeys.ts | 103 | export function disabledChannelApiKeyCount(channel: ChannelKeyState): number { | CODE |
| LOW⚡ | frontend/src/utils/channelApiKeys.ts | 108 | export function hasOnlyDisabledChannelApiKeys(channel: ChannelKeyState): boolean { | CODE |
| LOW⚡ | frontend/src/utils/channelApiKeys.ts | 114 | export function hasNoUsableChannelApiKeys(channel: ChannelKeyState): boolean { | CODE |
| LOW | frontend/src/utils/quickAddChannel.ts | 44 | function normalizeQuickAddURLIdentity(rawUrl: string): string { | CODE |
| LOW | frontend/src/utils/quickAddChannel.ts | 59 | function equivalentQuickAddURLIdentities(rawUrl: string): Set<string> { | CODE |
| LOW | frontend/src/utils/quickAddChannel.ts | 68 | export function findExistingQuickAddChannel( | CODE |
| LOW⚡ | frontend/src/utils/quickAddChannel.ts | 90 | export function supportsQuickAddProtocolDiscovery(kind: ChannelKind): kind is ChannelDiscoveryKind { | CODE |
| LOW⚡ | frontend/src/utils/quickAddChannel.ts | 94 | export function defaultQuickAddServiceType(kind: ChannelKind): Channel['serviceType'] { | CODE |
| LOW⚡ | frontend/src/utils/quickAddChannel.ts | 102 | export function normalizeQuickAddBaseUrls(rawUrls: string[], kind: ChannelKind): string[] { | CODE |
| LOW | frontend/src/utils/quickAddChannel.ts | 192 | export function normalizeDiscoveredChannelKind(kind: string): ChannelDiscoveryKind | null { | CODE |
| LOW | frontend/src/utils/newApiGroups.ts | 10 | export function isValidNewApiGroupMultiplier(value: number): boolean { | CODE |
| LOW | frontend/src/utils/add-channel-modal-state.ts | 6 | export function resolveChannelWatcherAction(params: { | CODE |
| LOW | frontend/src/utils/add-channel-modal-state.ts | 164 | export function isValidSupportedModelPattern(pattern: string): boolean { | CODE |
| LOW | frontend/src/utils/add-channel-modal-state.ts | 200 | export function filterValidSupportedModelPatterns(patterns: string[]): { | CODE |
| LOW | frontend/src/utils/channelModelAvailability.ts | 115 | export async function loadLegacyManagedModelAvailability( | CODE |
| LOW | frontend/src/utils/channelModelAvailability.ts | 198 | export function buildNativeProtocolModelRoutes( | CODE |
| LOW | frontend/src/utils/conversationDashboard.ts | 19 | export function buildConversationBoardItems(items: ConversationInfo[]): ConversationBoardItem[] { | CODE |
| LOW | frontend/src/utils/conversationDashboard.ts | 83 | export function buildConversationColumnBuckets(items: ConversationInfo[]): Record<BoardColumnKey, ConversationBoardItem[ | CODE |
| LOW | frontend/src/utils/conversationDashboard.ts | 96 | export function filterConversationBoardItems(items: ConversationBoardItem[], kindFilter: string, searchQuery: string): C | CODE |
| LOW | frontend/src/utils/conversationDashboard.ts | 108 | export function getConversationBoardColumnKey(conversation: ConversationInfo, subagents: ConversationInfo[] = []): Board | CODE |
| LOW | frontend/src/utils/conversationDashboard.ts | 140 | function matchesConversationSearch(query: string): (conversation: ConversationInfo) => boolean { | CODE |
| LOW | frontend/src/utils/baseUrlSemantics.ts | 25 | export function stripDashboardPathFromBaseUrl(rawUrl: string): string { | CODE |
| LOW | frontend/src/utils/baseUrlSemantics.ts | 80 | export function deduplicateEquivalentBaseUrls(urls: string[], serviceType: ServiceType): string[] { | CODE |
| LOW | frontend/src/utils/channelMerge.ts | 56 | export function mergeChannelsWithLocalData( | CODE |
| LOW | frontend/src/utils/channelMerge.ts | 92 | function deduplicateChannelsByIndex(channels: Channel[]): Channel[] { | CODE |
| LOW | frontend/src/utils/exchangeRates.ts | 3 | export function defaultExchangeRateQuotes(): ExchangeRateQuote[] { | CODE |
| LOW | frontend/src/utils/exchangeRates.ts | 10 | export function normalizeExchangeRateQuotes(quotes: ExchangeRateQuote[]): ExchangeRateQuote[] { | CODE |
| LOW | frontend/src/utils/expectedRequestUrls.ts | 28 | export function buildDiscoveryExpectedRequestUrls(baseUrl: string): DiscoveryExpectedRequestUrlItem[] { | CODE |
| LOW | frontend/src/utils/managedChannelPatch.ts | 64 | export function listDroppedManagedChannelFields( | CODE |
| LOW | frontend/src/utils/managedChannelPatch.ts | 102 | export function buildStagedKeyMultiplierConfigs( | CODE |
| LOW | frontend/src/utils/editChannelHelpers.ts | 12 | export function normalizeModelCapabilities(record: Channel['modelCapabilities'] = {}): Channel['modelCapabilities'] { | CODE |
| LOW | frontend/src/utils/editChannelHelpers.ts | 21 | export function requiresAnthropicBillingHeader(baseUrl: string): boolean { | CODE |
| LOW | frontend/src/utils/editChannelHelpers.ts | 38 | export function defaultStripBillingHeader(baseUrls: string[]): boolean { | CODE |
| LOW | frontend/src/utils/channelWebsite.ts | 21 | export function getVolcenginePlanConsoleURL(plan?: string): string | undefined { | CODE |
| LOW | frontend/src/utils/channelWebsite.ts | 54 | export function getVolcenginePlanWebsiteLinks(channel: WebsiteChannel): ChannelWebsiteLink[] { | CODE |
| LOW | frontend/src/utils/channelWebsite.ts | 77 | export function getManagedProviderWebsiteLinks(channel: WebsiteChannel): ChannelWebsiteLink[] { | CODE |
| LOW | frontend/src/utils/editChannelPayload.ts | 14 | export function extractEditChannelPayloadFields(channel: Channel): Record<string, unknown> { | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 32 | export function buildConversationTurnPreview(text: string, options: ConversationTurnPreviewOptions): string { | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 51 | export function normalizeConversationTurnSources(text: string, structuredTurns?: string[]): string[] { | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 62 | export function buildConversationTurnMiddlePreview( | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 103 | function normalizeConversationSourceText(text: string): string { | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 107 | function wrapConversationParagraph( | CODE |
| LOW | frontend/src/utils/conversationPreview.ts | 224 | function splitConversationGraphemes(text: string): string[] { | CODE |
| LOW | frontend/src/utils/channelPayload.ts | 46 | export function normalizeMaxGroupMultiplier(value: unknown): number | null { | CODE |
| LOW | frontend/src/utils/channelPayload.ts | 152 | export function parseModelCapabilitiesText(text?: string): Record<string, UpstreamModelCapability> | null { | CODE |
| LOW⚡ | frontend/src/utils/channelPayload.ts | 259 | export function setRuntimeUpstreamModelCapabilities(capabilities: Record<string, UpstreamModelCapability> | null | undef | CODE |
| LOW⚡ | frontend/src/utils/channelPayload.ts | 263 | function getEffectiveUpstreamModelCapabilities(): Record<string, UpstreamModelCapability> { | CODE |
| LOW⚡ | frontend/src/utils/channelPayload.ts | 267 | export function resolveBuiltinUpstreamModelCapability(model: string): { capability: UpstreamModelCapability; pattern: st | CODE |
| LOW | frontend/src/utils/channelPayload.ts | 315 | export function capabilityRowDefaultsFromBuiltin(capability: UpstreamModelCapability) { | CODE |
| LOW | frontend/src/utils/channelPayload.ts | 340 | export function modelCapabilityRowsToRecord(rows: ModelCapabilityRow[] = []): Record<string, UpstreamModelCapability> | | CODE |
| LOW | frontend/src/utils/channelPayload.ts | 385 | export function createEmbeddingCapabilityRow( | CODE |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 1 | services: | COMMENT |
| LOW | frontend/src/plugins/vuetify.ts | 61 | // 引入样式 | COMMENT |
| LOW | backend-go/.air.toml | 41 | # 在发送中断信号时添加额外的参数 | COMMENT |
| LOW | backend-go/cmd/benchmark-report/main.go | 1 | // 独立 CLI:根据当前 model-registry snapshot 输出渠道无关的 | COMMENT |
| LOW | backend-go/.serena/project.yml | 1 | # the name by which the project can be referenced within Serena/when chatting with the LLM. | COMMENT |
| LOW | backend-go/.serena/project.yml | 21 | ignore_all_files_in_gitignore: true | COMMENT |
| LOW | backend-go/.serena/project.yml | 41 | # whether the project is in read-only mode | COMMENT |
| LOW | backend-go/.serena/project.yml | 61 | # list of mode names that are to be activated by default, overriding the setting in the global configuration. | COMMENT |
| LOW | backend-go/.serena/project.yml | 81 | # such as docstrings or parameter information. | COMMENT |
| LOW | backend-go/.serena/project.yml | 101 | # symbols and references across package boundaries, but these folders are not indexed by Serena, | COMMENT |
| LOW | backend-go/.serena/project.yml | 121 | # optional shell command to run before the language backend (LSP or JetBrains) is initialised. | COMMENT |
| LOW | backend-go/.serena/project.yml | 141 | # json julia julia_fatou kotlin latex | COMMENT |
| LOW | backend-go/.serena/project.yml | 161 | # - For Deno projects, use deno (serves the same .ts/.js files as typescript; requires the deno CLI on PATH) | COMMENT |
| LOW | backend-go/internal/metrics/key_autoweight.go | 1 | package metrics | COMMENT |
| LOW | backend-go/internal/metrics/channel_metrics_response.go | 1161 | ChannelIndex int `json:"channelIndex"` | COMMENT |
| LOW | backend-go/internal/guardrails/guardrails.go | 1 | // Package guardrails 提供内容级防护链(credential 掩码起步,预留 PII/注入/模态桥扩展点)。 | COMMENT |
| LOW | backend-go/internal/guardrails/guardrails.go | 41 | } | COMMENT |
| LOW | backend-go/internal/config/channel_compat_latency.go | 21 | COMMENT | |
| LOW | backend-go/internal/config/config.go | 81 | // LearnedRejectedBetaTokens 运行时字段:本次请求应从 anthropic-beta header 中剥离的 | COMMENT |
| LOW | backend-go/internal/config/config.go | 141 | // 超过该值时自动退出调度(倍率回落后自动恢复)。nil=不启用闸门,Key 倍率仅用于成本折算。 | COMMENT |
| LOW | backend-go/internal/config/config.go | 161 | // Autopilot 来源信任分类(设计 §3.2.1,仅用于隐私/治理展示和同分 tie-breaker,不参与质量推导) | COMMENT |
| LOW | backend-go/internal/config/config.go | 1121 | // 六个兼容性开关(developer role 降级、图片工具剥离、Codex 原生工具透传、空文本块剥离、 | COMMENT |
| LOW | backend-go/internal/config/config.go | 1461 | // LogicalChannelSchemaVersion 逻辑渠道配置 schema 版本。 | COMMENT |
| LOW | backend-go/internal/config/provider_templates.go | 61 | type ProviderCandidate struct { | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 41 | TraitStripImageGenTool CompatTrait = "strip_image_generation_tool" | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 61 | TraitNoToolCallSupport CompatTrait = "no_tool_call_support" | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 81 | // 带工具请求的候选只从验证组合中产生;无记录渠道 fail-open 不受影响。 | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 101 | // ToolRouteIdentity 返回工具能力学习(TraitVerifiedToolCalls / TraitNoToolCallSupport) | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 181 | COMMENT | |
| LOW | backend-go/internal/config/channel_compat_cache.go | 201 | Evidence string `json:"evidence"` | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 461 | // rejectedBetaTokenPattern 从上游错误文案/合并态证据中提取被拒 anthropic-beta token 名。 | COMMENT |
| LOW | backend-go/internal/config/channel_compat_cache.go | 941 | COMMENT | |
| LOW | backend-go/internal/config/channel_compat_cache.go | 1201 | COMMENT | |
| LOW | backend-go/internal/config/config_loader.go | 761 | // compatSeedMigrationJSONKeys 历史手工兼容开关的 JSON 字段名 -> trait。 | COMMENT |
| LOW | backend-go/internal/config/config_loader.go | 921 | } | COMMENT |
| LOW | backend-go/internal/config/config_loader.go | 1481 | // 任何物理渠道变更(Add/Update/Remove、状态/促销/批量导入等)持久化前, | COMMENT |
| LOW | backend-go/internal/config/channel_authoritative.go | 1 | package config | COMMENT |
| LOW | backend-go/internal/config/channel_authoritative.go | 421 | return fmt.Errorf("%s[%d] 字段不一致\n磁盘: %s\n重建: %s", p.kind, i, wb, gb) | COMMENT |
| LOW | backend-go/internal/config/autopilot_config.go | 21 | // 避免 omitempty 字段在后续重载时被重复解释为“缺失”。 | COMMENT |
| LOW | backend-go/internal/config/autopilot_config.go | 121 | COMMENT | |
| LOW | backend-go/internal/config/autopilot_config.go | 181 | // PerTaskClass 按任务类别覆盖价格偏向模式。 | COMMENT |
| LOW | backend-go/internal/config/autopilot_config.go | 441 | COMMENT | |
| LOW | backend-go/internal/config/autopilot_config.go | 461 | } | COMMENT |
| LOW | backend-go/internal/config/channel_model.go | 1 | package config | COMMENT |
| LOW | backend-go/internal/config/logical_channel.go | 181 | // RegisterLogicalChannelTagDeriver 注册逻辑渠道标签推导函数。 | COMMENT |
| LOW | backend-go/internal/config/logical_channel.go | 241 | // 历史一次性缺陷曾给同账号的不同协议渠道分别回填了不同的 LogicalChannelUID, | COMMENT |
| LOW | backend-go/internal/config/converter_upstream_cache.go | 21 | // ConverterUpstreamEntry 记录某个渠道被识别为"转换层上游"的事实。 | COMMENT |
| LOW | backend-go/internal/racing/registry.go | 81 | type Behavior struct { | COMMENT |
| LOW | …ckend-go/internal/providers/client_budget_reminders.go | 21 | // - messages → chat/gemini/responses 转换:无条件剔(跨协议必换模型语义), | COMMENT |
| LOW | backend-go/internal/providers/responses.go | 1501 | ctx := converters.BuildCodexToolContextFromRaw(rawTools) | COMMENT |
| LOW | backend-go/internal/healthcheck/model_select.go | 61 | IsAlias bool // 是否为另一候选模型的别名 | COMMENT |
| LOW | backend-go/internal/converters/responses_to_chat.go | 21 | // | COMMENT |
| LOW | …o/internal/converters/responses_reasoning_normalize.go | 1 | package converters | COMMENT |
| LOW | backend-go/internal/scheduler/channel_scheduler.go | 221 | } | COMMENT |
| LOW | backend-go/internal/utils/image_tokens_test.go | 781 | // 这里用 makeNoisePNG 造不可压缩的随机像素图:base64 体积巨大,于是 | COMMENT |
| LOW | backend-go/internal/utils/image_tokens.go | 21 | // | COMMENT |
| LOW | backend-go/internal/utils/audio_tokens.go | 1 | package utils | COMMENT |
| LOW | backend-go/internal/utils/audio_tokens.go | 21 | // 时长解析零第三方依赖,只读容器头(sniff 策略与图片模块一致): | COMMENT |
| LOW | backend-go/internal/utils/image_tokens_gjson.go | 81 | start int | COMMENT |
| LOW | backend-go/internal/utils/image_tokens_gjson.go | 101 | // 其他附件(固定 attachmentTokenFallback): | COMMENT |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend-go/internal/guardrails/guardrails.go | 1 | // Package guardrails 提供内容级防护链(credential 掩码起步,预留 PII/注入/模态桥扩展点)。 | COMMENT |
| MEDIUM | backend-go/internal/guardrails/guardrails.go | 6 | // - 请求头豁免:x-ccx-disabled-guardrails 逗号分隔的 guardrail 名称可跳过 | COMMENT |
| MEDIUM | backend-go/internal/guardrails/guardrails.go | 39 | // Headers 是入站请求头,用于解析 x-ccx-disabled-guardrails。 | COMMENT |
| MEDIUM | backend-go/internal/guardrails/guardrails.go | 59 | // 统一入口 MaskForLog(handlers/common/guardrails.go),转发路径不挂载。 | COMMENT |
| MEDIUM | backend-go/internal/config/channel_compat_cache.go | 83 | // 调用,负向清单打地鼠)的根治:agentic 流量只走实证可用的组合。 | COMMENT |
| MEDIUM | backend-go/internal/config/channel_compat_cache.go | 1106 | // (qwen3.7-max),探针正向结论不得单独作为 agentic 白名单依据。 | COMMENT |
| MEDIUM | backend-go/internal/handlers/tool_call_probe.go | 133 | // 正向结论:实测返回了真实工具调用 → 记入正向白名单(agentic 流量 | COMMENT |
| MEDIUM | …go/internal/handlers/common/tool_unsupported_signal.go | 224 | // MaybeCountPseudoToolCallMiss 白名单负反馈补盲:agentic 干净 200 却零真实工具调用、 | COMMENT |
| MEDIUM | backend-go/internal/handlers/common/compression.go | 30 | // 复用 guardrails 落定的钩子姿势:在 TryUpstreamWithAllKeys 入口附近调用。 | COMMENT |
| MEDIUM | backend-go/internal/handlers/common/guardrails.go | 10 | // 日志脱敏是安全底线,不受 x-ccx-disabled-guardrails 请求头影响。 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | backend-go/internal/autopilot/model_resolver.go | 200 | // Step 2: 无 ModelProfileStore 时自动映射不可用,fail-open。 | COMMENT |
| LOW⚡ | backend-go/internal/autopilot/model_resolver.go | 205 | // Step 3: 查询候选模型画像。 | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 233 | // Step 4: 能力过滤——上下文、推理、视觉、工具调用仍是硬约束; | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 257 | // Step 5: 精确模型始终优先;非自适应入口不得跨模型替代。 | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 275 | // Step 6: 自适应入口在满足下界的候选中按模型质量、实测表现和成本选优。 | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 87 | // Step 1: jobA (messages) → snapshot 含 messages | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 110 | // Step 2: jobB (chat) → snapshot 含 messages + chat,messages 保持 active | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 151 | // Step 3: jobC (messages, done) → messages 更新为 done,chat 保持 done | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | backend-go/internal/autopilot/model_resolver.go | 200 | // Step 2: 无 ModelProfileStore 时自动映射不可用,fail-open。 | COMMENT |
| LOW⚡ | backend-go/internal/autopilot/model_resolver.go | 205 | // Step 3: 查询候选模型画像。 | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 233 | // Step 4: 能力过滤——上下文、推理、视觉、工具调用仍是硬约束; | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 257 | // Step 5: 精确模型始终优先;非自适应入口不得跨模型替代。 | COMMENT |
| LOW | backend-go/internal/autopilot/model_resolver.go | 275 | // Step 6: 自适应入口在满足下界的候选中按模型质量、实测表现和成本选优。 | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 87 | // Step 1: jobA (messages) → snapshot 含 messages | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 110 | // Step 2: jobB (chat) → snapshot 含 messages + chat,messages 保持 active | COMMENT |
| LOW | …go/internal/handlers/capability_snapshot_store_test.go | 151 | // Step 3: jobC (messages, done) → messages 更新为 done,chat 保持 done | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend-go/.serena/project.yml | 30 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| MEDIUM | .serena/project.yml | 30 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| MEDIUM | desktop/.serena/project.yml | 30 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …src/components/edit-channel/NewApiAccountPanel.test.ts | 45 | props: ['modelValue', 'type', 'placeholder'], | CODE |
| LOW | …src/components/edit-channel/NewApiAccountPanel.test.ts | 47 | template: '<input :type="type" :placeholder="placeholder" :value="modelValue" @input="$emit(\'update:modelValue\', $ev | CODE |
| LOW | …omponents/edit-channel/ApiKeyManagementSection.test.ts | 46 | props: ['modelValue', 'type', 'placeholder'], | CODE |
| LOW | …omponents/edit-channel/ApiKeyManagementSection.test.ts | 48 | template: '<input :type="type" :placeholder="placeholder" :value="modelValue" @input="$emit(\'update:modelValue\', $ev | CODE |
| LOW | …sktop/frontend/src/components/ui/textarea/Textarea.vue | 10 | placeholder?: TextareaHTMLAttributes["placeholder"] | CODE |
| LOW | …sktop/frontend/src/components/ui/textarea/Textarea.vue | 28 | :placeholder="placeholder" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ude/skills/store-update/scripts/download_store_msix.py | 66 | except FileNotFoundError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ude/skills/store-update/scripts/download_store_msix.py | 8 | CODE |