AI Slop Code Risk Monitor

Wei-Shaw/sub2api

SlopCodeMonitor badge for Wei-Shaw/sub2api Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Sub2API 一站式开源中转服务,让 Claude、Openai 、Gemini、Grok订阅统一接入,支持拼车共享,更高效分摊成本,原生工具无缝使用。

1.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Wei-Shaw/sub2api, a Go project with 45,202 GitHub stars. SynthScan examined 1,442,016 lines of code across 4097 source files, recording 1578 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.5 (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.

1.5
Adjusted Signal
1.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
45.2K
Stars
Go
Language
1.4M
Lines of Code
4.1K
Files
1.6K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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.

Cognitive Ownership Risk 4.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1139 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.8/100 · LOW

Are imports declared and package/API names verified? 186 finding(s).

Agent Over-Engineering Ratio 4.4/100 · LOW

Are wrappers, guards, and repeated structures necessary? 754 finding(s).

PR Review Velocity Impact 7.0/100 · LOW

Which changes need focused human review? 1578 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 0MEDIUM 258LOW 1320

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1578 distinct pattern matches across 14 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.

Decorative Section Separators253 hits · 784 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/src/utils/platformColors.ts27// ── Badge (bg + text + border, for inline badges with border) ───────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts46// ── Light badge (softer bg, no border) ──────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts64// ── Border ──────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts122// ── Accent bar (gradient) ───────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts141// ── Text (price, icon) ─────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts160// ── Icon (check mark etc.) ──────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts179// ── Button (solid bg) ───────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts198// ── Discount badge ──────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts217// ── Header gradient (subscription confirm) ─────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts236// ── Header text (light text on gradient bg) ────────────────────────COMMENT
MEDIUMfrontend/src/utils/platformColors.ts273// ── Public API ──────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/components/admin/channel/types.ts261// ── 模型模式冲突检测 ──────────────────────────────────────COMMENT
MEDIUMfrontend/src/components/admin/channel/types.ts300// ── 区间校验 ──────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/components/channels/SupportedModelChip.vue272// ── Popover positioning ─────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/api/admin/settings.ts22// ── 平台限额类型 ──────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/api/admin/settings.ts474 // ── 平台限额(嵌套 JSON,系统层 + 7 auth-source 层)────────────────────────────────COMMENT
MEDIUMfrontend/src/api/admin/settings.ts827 // ── 平台限额(嵌套 JSON,系统层 + 7 auth-source 层)────────────────────────────────COMMENT
MEDIUM⚡deploy/docker-compose.local.yml20# =============================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml23 # ===========================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml25 # ===========================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml45 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml47 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml50 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml52 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml77 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml79 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml89 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml91 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml95 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml97 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml105 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml107 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml110 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml112 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml120 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml128 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml131 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml133 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml145 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml147 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml157 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml159 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml164 # =======================================================================COMMENT
MEDIUM⚡deploy/docker-compose.local.yml166 # =======================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml1# =============================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml3# =============================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml63 # =======================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml65 # =======================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml223 # ===========================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml225 # ===========================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml254 # ===========================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml256 # ===========================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml292# =============================================================================COMMENT
MEDIUMdeploy/docker-compose.local.yml294# =============================================================================COMMENT
MEDIUMdeploy/install.sh47# ============================================================COMMENT
MEDIUMdeploy/install.sh49# ============================================================COMMENT
MEDIUM⚡deploy/docker-deploy.sh2# =============================================================================COMMENT
MEDIUM⚡deploy/docker-deploy.sh4# =============================================================================COMMENT
MEDIUM⚡deploy/docker-deploy.sh13# =============================================================================COMMENT
MEDIUM⚡deploy/docker-compose.dev.yml1# =============================================================================COMMENT
193 more matches not shown…
Over-Commented Block552 hits · 520 pts
SeverityFileLineSnippetContext
LOWfrontend/src/components/keys/UseKeyModal.vue1121 // Shape follows Grok Build user guide (~/.grok/docs + custom-models) and production-ready Sub2API setups.COMMENT
LOWfrontend/src/views/auth/README.md201COMMENT
LOWfrontend/src/views/auth/USAGE_EXAMPLES.md1# Authentication Views Usage ExamplesCOMMENT
LOWfrontend/src/views/auth/USAGE_EXAMPLES.md21COMMENT
LOWfrontend/src/views/auth/USAGE_EXAMPLES.md41```typescriptCOMMENT
LOWfrontend/src/views/auth/USAGE_EXAMPLES.md61// - On success:COMMENT
LOWdeploy/docker-compose.local.yml1# =============================================================================COMMENT
LOWdeploy/docker-compose.local.yml101 # Generate a secure secret: openssl rand -hex 32COMMENT
LOWdeploy/docker-compose.local.yml121 # Timezone ConfigurationCOMMENT
LOWdeploy/docker-compose.local.yml141 - GEMINI_CLI_OAUTH_CLIENT_SECRET=${GEMINI_CLI_OAUTH_CLIENT_SECRET:-}COMMENT
LOWdeploy/docker-deploy.sh1#!/bin/bashCOMMENT
LOWdeploy/config.example.yaml1# Sub2API Configuration FileCOMMENT
LOWdeploy/config.example.yaml21 # 运行模式:"debug" 用于开发,"release" 用于生产环境COMMENT
LOWdeploy/config.example.yaml41 # Set [] explicitly to disable forwarded-IP trust in high-security mode.COMMENT
LOWdeploy/config.example.yaml61 max_concurrent_streams: 50COMMENT
LOWdeploy/config.example.yaml81# Passkey 在生产环境要求 HTTPS。RP ID 只填写域名(不含协议和端口),RP originsCOMMENT
LOWdeploy/config.example.yaml101run_mode: "standard"COMMENT
LOWdeploy/config.example.yaml121 allow_credentials: trueCOMMENT
LOWdeploy/config.example.yaml141 # Legacy compatibility switch. When true, raw forwarded headers take overCOMMENT
LOWdeploy/config.example.yaml181 crs_hosts: []COMMENT
LOWdeploy/config.example.yaml201 enabled: trueCOMMENT
LOWdeploy/config.example.yaml221 proxy_fallback:COMMENT
LOWdeploy/config.example.yaml241 openai_response_header_timeout: 0COMMENT
LOWdeploy/config.example.yaml261 # 非流式上游响应体读取上限(默认 8MB)COMMENT
LOWdeploy/config.example.yaml281 # - account_proxy: Isolate by account+proxy combination (default, finest granularity)COMMENT
LOWdeploy/config.example.yaml301 #COMMENT
LOWdeploy/config.example.yaml321 # - {{ .UpstreamModel }} : final upstream modelCOMMENT
LOWdeploy/config.example.yaml341 # requests skip this retired fallback and keep their selected model.COMMENT
LOWdeploy/config.example.yaml361 enabled: trueCOMMENT
LOWdeploy/config.example.yaml481 # Stats cache for free-tier soft gate. Hot path never waits on DB: missesCOMMENT
LOWdeploy/config.example.yaml501 # max_upstream_clients: 最大缓存客户端数量,超出后淘汰最久未使用的COMMENT
LOWdeploy/config.example.yaml521 # Non-streaming Images JSON keepalive interval (seconds), 0=disable; commits HTTP 200 after the first heartbeatCOMMENT
LOWdeploy/config.example.yaml541 max_waiting_requests: 100COMMENT
LOWdeploy/config.example.yaml561 # 粘性会话最大排队长度COMMENT
LOWdeploy/config.example.yaml601 # 全量重建周期(秒),0 表示禁用COMMENT
LOWdeploy/config.example.yaml621 level: "info"COMMENT
LOWdeploy/config.example.yaml641 # Enable file output (default path auto-derived)COMMENT
LOWdeploy/config.example.yaml661 # Compress rotated filesCOMMENT
LOWdeploy/config.example.yaml681 # Candidate accounts loaded per cursor page (maximum 1000)COMMENT
LOWdeploy/config.example.yaml701# API Key Auth Cache ConfigurationCOMMENT
LOWdeploy/config.example.yaml721 # 缓存未命中时启用 singleflight 合并回源COMMENT
LOWdeploy/config.example.yaml741# =============================================================================COMMENT
LOWdeploy/config.example.yaml761 enabled: trueCOMMENT
LOWdeploy/config.example.yaml781 # 启用聚合作业COMMENT
LOWdeploy/config.example.yaml801 # Raw usage_logs retentionCOMMENT
LOWdeploy/config.example.yaml821 max_range_days: 31COMMENT
LOWdeploy/config.example.yaml841 # 关键写接口幂等记录 TTL(秒)COMMENT
LOWdeploy/config.example.yaml861 # SSE ping interval during concurrency wait (seconds)COMMENT
LOWdeploy/config.example.yaml881 password: "your_secure_password_here"COMMENT
LOWdeploy/config.example.yaml901COMMENT
LOWdeploy/config.example.yaml921 db: 0COMMENT
LOWdeploy/config.example.yaml941 # Other detailed settings (cleanup, aggregation, etc.) are configured in ops settings dialogCOMMENT
LOWdeploy/config.example.yaml961 access_token_expire_minutes: 0COMMENT
LOWdeploy/config.example.yaml1041 userinfo_username_path: ""COMMENT
LOWdeploy/config.example.yaml1061COMMENT
LOWdeploy/config.example.yaml1081# =============================================================================COMMENT
LOWdeploy/config.example.yaml1101# =============================================================================COMMENT
LOWdeploy/config.example.yaml1121 # Model names must match catalog keys exactly. Edits are detected by content hashCOMMENT
LOWdeploy/config.example.yaml1141 # and is retried next check.COMMENT
LOWdeploy/config.example.yaml1161 # Number of requests to allow in half-open stateCOMMENT
492 more matches not shown…
Hyper-Verbose Identifiers501 hits · 516 pts
SeverityFileLineSnippetContext
LOWfrontend/src/App.vue68function onAdminComplianceRequired(event: Event) {CODE
LOWfrontend/src/composables/useSwipeSelect.ts49export function findRowIndexByDomPosition(scrollEl: Element, clientY: number): number {CODE
LOWfrontend/src/composables/useSwipeSelect.ts326 function shouldPreferNativeTextSelection(target: HTMLElement): boolean {CODE
LOWfrontend/src/composables/useSwipeSelect.ts342 function shouldPreferNativeSelectionOutsideRows(target: HTMLElement): boolean {CODE
LOWfrontend/src/composables/useNavigationLoading.ts119export function useNavigationLoadingState() {CODE
LOWfrontend/src/composables/useModelWhitelist.ts474export async function fetchAntigravityDefaultMappings(): Promise<{ from: string; to: string }[]> {CODE
LOWfrontend/src/composables/useModelWhitelist.ts552export function getPresetMappingsByPlatform(platform: string) {CODE
LOWfrontend/src/constants/platformCatalog.ts89export function supportsUpstreamModelSync(platform: string | null | undefined): boolean {CODE
LOWfrontend/src/constants/platformCatalog.ts105export function compositePrecedencePlatformIds(): string[] {CODE
LOWfrontend/src/features/prompt-audit/viewModel.ts158export function resolveDeleteRangeFilters(CODE
LOWfrontend/src/features/prompt-audit/PromptAuditView.vue386function requestFilterDeletePreview() {CODE
LOW…ntend/src/features/channel-monitor-v2/monitorFormat.ts54export function formatMonitorTokensPerSecond(tpm: number | null | undefined): string {CODE
LOW…ntend/src/features/channel-monitor-v2/monitorFormat.ts76export function formatMonitorSuccessRateFromError(errorRate: number): string {CODE
LOW…ntend/src/features/channel-monitor-v2/monitorFormat.ts172export function formatLatencyKpiSecondary(CODE
LOW…ntend/src/features/channel-monitor-v2/monitorFormat.ts185export function monitorErrorCategoryLabel(category: string): string {CODE
LOWfrontend/src/stores/adminSettings.ts87 function setOpsMonitoringEnabledLocal(value: boolean) {CODE
LOWfrontend/src/stores/adminSettings.ts93 function setOpsRealtimeMonitoringEnabledLocal(value: boolean) {CODE
LOWfrontend/src/stores/adminSettings.ts105 function setOpsQueryModeDefaultLocal(value: string) {CODE
LOWfrontend/src/stores/auth.ts37function normalizePendingAuthTokenField(value: unknown): PendingAuthTokenField {CODE
LOWfrontend/src/stores/auth.ts41function getPersistedPendingAuthSession(): PendingAuthSessionSummary | null {CODE
LOWfrontend/src/stores/auth.ts69function persistPendingAuthSession(session: PendingAuthSessionSummary): void {CODE
LOWfrontend/src/stores/auth.ts73function clearPendingAuthSessionStorage(): void {CODE
LOWfrontend/src/utils/geminiExplicitCache.ts23export function normalizeExplicitCacheUpstreamMaxTTL(value: unknown): number | null {CODE
LOWfrontend/src/utils/geminiExplicitCache.ts30export function applyExplicitCacheUpstreamCredentials(CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts12export function normalizeRegistrationEmailSuffixDomain(raw: string): string {CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts22export function normalizeRegistrationEmailSuffixDomains(CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts42export function parseRegistrationEmailSuffixWhitelistInput(input: string): string[] {CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts62export function normalizeRegistrationEmailSuffixWhitelist(CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts68function extractRegistrationEmailDomain(email: string): string {CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts83export function isRegistrationEmailSuffixAllowed(CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts108export function formatRegistrationEmailSuffixWhitelistForMessage(CODE
LOW⚡frontend/src/utils/registrationEmailPolicy.ts125function normalizeRegistrationEmailSuffixDomainStrict(raw: string): string {CODE
LOW⚡frontend/src/utils/registrationEmailPolicy.ts134export function isRegistrationEmailSuffixDomainValid(domain: string): boolean {CODE
LOW⚡frontend/src/utils/registrationEmailPolicy.ts144function normalizeRegistrationEmailSuffixToken(value: string, strict: boolean): string {CODE
LOWfrontend/src/utils/registrationEmailPolicy.ts163function toCanonicalRegistrationEmailSuffix(domain: string): string {CODE
LOWfrontend/src/utils/ccswitchImport.ts57export function resolveCcSwitchImportConfig(CODE
LOWfrontend/src/utils/ccswitchImport.ts95export function buildCcSwitchImportDeeplink(input: CcSwitchImportDeeplinkInput): string {CODE
LOWfrontend/src/utils/usageServiceTier.ts1export function normalizeUsageServiceTier(serviceTier?: string | null): string | null {CODE
LOWfrontend/src/utils/platformColors.ts306export function platformBorderStrongClass(p: string): string {CODE
LOWfrontend/src/utils/platformColors.ts338export function platformGradientTextClass(p: string): string {CODE
LOWfrontend/src/utils/platformColors.ts342export function platformGradientSubtextClass(p: string): string {CODE
LOWfrontend/src/utils/featureFlags.ts183export function isChannelMonitorRouteEnabled(): boolean {CODE
LOWfrontend/src/utils/featureFlags.ts204export function getChannelMonitorRefreshIntervalSeconds(): number {CODE
LOWfrontend/src/utils/featureFlags.ts211export function isChannelMonitorThroughputHidden(): boolean {CODE
LOWfrontend/src/utils/featureFlags.ts222export function isChannelMonitorQuotaVisible(): boolean {CODE
LOWfrontend/src/utils/featureFlags.ts228export function isChannelMonitorUserRankingHidden(): boolean {CODE
LOWfrontend/src/utils/subscriptionQuota.ts30export function getRemainingDurationParts(CODE
LOWfrontend/src/utils/subscriptionQuota.ts50export function getExpirationDateRelation(CODE
LOWfrontend/src/utils/subscriptionQuota.ts70export function getRemainingExpiryDuration(CODE
LOWfrontend/src/utils/oauthAffiliate.ts10export function normalizeOAuthAffiliateCode(value?: unknown): string {CODE
LOWfrontend/src/utils/oauthAffiliate.ts25export function storeAffiliateReferralCode(value?: unknown, now = Date.now()): void {CODE
LOWfrontend/src/utils/oauthAffiliate.ts44export function loadAffiliateReferralCode(now = Date.now()): string {CODE
LOWfrontend/src/utils/oauthAffiliate.ts67export function clearAffiliateReferralCode(): void {CODE
LOWfrontend/src/utils/oauthAffiliate.ts78export function resolveAffiliateReferralCode(...values: unknown[]): string {CODE
LOWfrontend/src/utils/oauthAffiliate.ts125export function clearAllAffiliateReferralCodes(): void {CODE
LOWfrontend/src/utils/format.ts268function normalizeReasoningEffortKey(effort: string | null | undefined): string {CODE
LOWfrontend/src/utils/format.ts298export function reasoningEffortValuesEqual(CODE
LOWfrontend/src/utils/format.ts309export function formatReasoningEffortMapping(CODE
LOWfrontend/src/utils/format.ts426export function formatCountdownWithSuffix(targetDate: string | Date | null | undefined): string | null {CODE
LOWfrontend/src/utils/format.ts437export function formatRelativeWithDateTime(date: string | Date | null | undefined): string {CODE
441 more matches not shown…
Fake / Example Data185 hits · 217 pts
SeverityFileLineSnippetContext
LOW…src/features/prompt-audit/__tests__/components.spec.ts40 expect(token.attributes('placeholder')).toContain('admin.promptAudit.pool.keepSecret')CODE
LOW…src/features/prompt-audit/__tests__/components.spec.ts65 expect(token.attributes('placeholder')).toContain('admin.promptAudit.pool.reenterSecret')CODE
LOWfrontend/src/stores/__tests__/app.spec.ts405 contact_info: 'test@test.com',CODE
LOWfrontend/src/stores/__tests__/auth.spec.ts42 email: 'admin@example.com',CODE
LOWfrontend/src/stores/__tests__/auth.spec.ts304 store.register({ email: 'user@example.com', password: 'secret-123' })CODE
LOWfrontend/src/stores/__tests__/auth.spec.ts325 await store.login({ email: 'admin@example.com', password: '123456' })CODE
LOW…nd/src/utils/__tests__/registrationEmailPolicy.spec.ts83 expect(isRegistrationEmailSuffixAllowed('user@example.com', [])).toBe(true)CODE
LOW…nd/src/utils/__tests__/registrationEmailPolicy.spec.ts87 expect(isRegistrationEmailSuffixAllowed('user@example.com', ['@example.com'])).toBe(true)CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts59 props: { testIdPrefix: 'oidc', initialEmail: 'user@example.com', isSubmitting: false },CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts100 initialEmail: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts118 email: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts151 email: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts259 email: 'user@example.com'CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts274 await wrapper.get('[data-testid="linuxdo-create-account-email"]').setValue('user@example.com')CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts292 initialEmail: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts351 email: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts365 initialEmail: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts396 email: 'user@example.com',CODE
LOW…s/auth/__tests__/PendingOAuthCreateAccountForm.spec.ts416 initialEmail: 'user@example.com',CODE
LOW…in/group/__tests__/GroupRPMOverridesModal.edit.spec.ts15 { user_id: 7, user_email: 'user@example.com', user_name: '', user_status: 'active', rpm_override: 100 }CODE
LOW…omponents/admin/group/__tests__/GroupI18nField.spec.ts124 expect(input.attributes('placeholder')).toBe('admin.groups.i18nField.placeholder:English')CODE
LOW…omponents/admin/group/__tests__/GroupI18nField.spec.ts163 expect(input.attributes('placeholder')).toBe('Enter name')CODE
LOW…in/group/__tests__/ReasoningEffortPolicyFields.spec.ts86 props: ["id", "modelValue", "placeholder"],CODE
LOW…in/group/__tests__/ReasoningEffortPolicyFields.spec.ts88 '<input :id="id" :value="modelValue ?? \'\'" :placeholder="placeholder" />',CODE
LOW…s/admin/group/__tests__/GroupRPMOverridesModal.spec.ts16 mocks.list.mockResolvedValue({ items: [{ id: 7, email: 'user@example.com', status: 'active' }] })CODE
LOW…s/admin/group/__tests__/GroupRPMOverridesModal.spec.ts33 await wrapper.findAll('button').find(b => b.text().includes('user@example.com'))!.trigger('click')CODE
LOW…dmin/group/__tests__/GroupRateMultipliersModal.spec.ts16 mocks.list.mockResolvedValue({ items: [{ id: 7, email: 'user@example.com', status: 'active' }] })CODE
LOW…dmin/group/__tests__/GroupRateMultipliersModal.spec.ts33 await wrapper.findAll('button').find(b => b.text().includes('user@example.com'))!.trigger('click')CODE
LOW…group/__tests__/GroupRateMultipliersModal.edit.spec.ts14 { user_id: 7, user_email: 'user@example.com', user_name: '', user_status: 'active', rate_multiplier: 2, rpm_overrideCODE
LOW…ts/admin/user/__tests__/UserAllowedGroupsModal.spec.ts21 props: { show: false, user: { id: 1, email: 'user@example.com', allowed_groups: [7], group_rates: { 7: 0.5 } } as AdCODE
LOW…channel/__tests__/PricingEntryCard.timePricing.spec.ts143 expect(wrapper.get('[data-reasoning-effort="max"]').attributes('placeholder'))CODE
LOW…nts/admin/channel/__tests__/TimePricingSection.spec.ts98 expect(timeInputs.every(input => input.attributes('placeholder') === 'HH:mm:ss')).toBe(true)CODE
LOWfrontend/src/components/common/SearchInput.vue10 :placeholder="placeholder"CODE
LOW…omponents/account/__tests__/CreateAccountModal.spec.ts832 .find((candidate) => candidate.attributes('placeholder') === 'https://cloudcode-pa.googleapis.com')CODE
LOWfrontend/src/api/__tests__/admin.grok.spec.ts46 email: 'user@example.com',CODE
LOWfrontend/src/api/__tests__/tokenRefresh.spec.ts16 localStorage.setItem('auth_user', JSON.stringify({ id: 7, email: 'admin@example.com' }))CODE
LOWfrontend/src/api/__tests__/passkey.spec.ts163 user: { id: 'BAU', name: 'user@example.com', displayName: 'user' }CODE
LOW…tend/src/views/auth/__tests__/MCPLoginRedirect.spec.ts69 await wrapper.get('#email').setValue('user@example.com')CODE
LOWfrontend/src/views/auth/__tests__/RegisterView.spec.ts151 await wrapper.get('#email').setValue('user@example.com')CODE
LOWfrontend/src/views/auth/__tests__/RegisterView.spec.ts171 email: 'user@example.com',CODE
LOWfrontend/src/views/auth/__tests__/RegisterView.spec.ts190 await wrapper.get('#email').setValue('user@example.com')CODE
LOWfrontend/src/views/auth/__tests__/RegisterView.spec.ts204 email: 'user@example.com',CODE
LOW…ws/auth/__tests__/TencentCaptchaForgotPassword.spec.ts90 await wrapper.get('#email').setValue('user@example.com')CODE
LOW…ws/auth/__tests__/TencentCaptchaForgotPassword.spec.ts97 email: 'user@example.com',CODE
LOW…/views/auth/__tests__/TencentCaptchaActionGate.spec.ts135 await wrapper.get('#email').setValue('user@example.com')CODE
LOW…/views/auth/__tests__/TencentCaptchaActionGate.spec.ts152 await wrapper.get('#email').setValue('user@example.com')CODE
LOW…nd/src/views/auth/__tests__/WechatCallbackView.spec.ts586 await emailInput.setValue('user@example.com')CODE
LOW…src/views/auth/__tests__/MCPOAuthAuthorizeView.spec.ts8 auth: { isAdmin: false, user: { email: 'user@example.com' } },CODE
LOWfrontend/src/views/setup/SetupWizardView.vue320 placeholder="admin@example.com"CODE
LOW…ntend/src/views/admin/settings/EmailTemplateEditor.vue179 :key="placeholder"CODE
LOW…iews/admin/__tests__/GroupsView.columnSettings.spec.ts171 props: ['modelValue', 'options', 'placeholder'],CODE
LOWfrontend/src/views/admin/__tests__/SettingsView.spec.ts1841 .attributes("placeholder"),CODE
LOWfrontend/src/views/admin/__tests__/SettingsView.spec.ts1919 .attributes("placeholder"),CODE
LOW…/src/views/admin/__tests__/ProxiesView.filters.spec.ts36 props: ['modelValue', 'options', 'placeholder'],CODE
LOW…/src/views/admin/__tests__/ProxiesView.filters.spec.ts38 template: `<select :data-filter="placeholder" :value="modelValue"CODE
LOW…/admin/ops/utils/__tests__/errorDetailResponse.spec.ts21 user_email: 'user@example.com',CODE
LOW⚡deploy/config.example.yaml1050 admin_email: "admin@example.com"CODE
LOWbackend/ent/userattributedefinition.go41 // Placeholder holds the value of the "placeholder" field.COMMENT
LOWbackend/ent/userattributedefinition_update.go147// SetPlaceholder sets the "placeholder" field.COMMENT
LOWbackend/ent/userattributedefinition_update.go153// SetNillablePlaceholder sets the "placeholder" field if the given value is not nil.COMMENT
125 more matches not shown…
Structural Annotation Overuse33 hits · 67 pts
SeverityFileLineSnippetContext
LOWbackend/internal/handler/auth_dingtalk_oauth.go358 // Step 2: 必须 — UnionID 是全局唯一,作为 subject + 合成邮箱种子;nick 是用户在 App 自设的昵称COMMENT
LOW⚡backend/internal/payment/load_balancer.go94 // Step 1: query enabled instances matching payment type.COMMENT
LOW⚡backend/internal/payment/load_balancer.go100 // Step 2: batch-fetch daily usage for all candidates.COMMENT
LOW⚡backend/internal/payment/load_balancer.go103 // Step 3: filter by limits.COMMENT
LOW⚡backend/internal/payment/load_balancer.go112 // Step 4: pick by strategy.COMMENT
LOW⚡backend/internal/service/update_service.go263 // Step 1: Move current binary to backupCOMMENT
LOW⚡backend/internal/service/update_service.go268 // Step 2: Move new binary to target location (atomic, same filesystem)COMMENT
LOWbackend/internal/service/payment_config_providers.go289// NOTE: This function exceeds 30 lines due to per-field nil-check patch updateCOMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go773 // Step 1: parse Anthropic request (mirrors openai_gateway_messages.go:38-50).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go780 // Step 2: BetaFastMode header → service_tier="priority" (mirrors line 58-61).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go787 // Step 3: marshal & apply fast policy (mirrors line 78 + 149).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go795 // Step 4: default policy must preserve the explicit fast/priority request.COMMENT
LOW⚡backend/internal/service/oauth_service.go205 // Step 1: Get organization info using sessionKeyCOMMENT
LOW⚡backend/internal/service/oauth_service.go211 // Step 2: Generate PKCE valuesCOMMENT
LOW⚡backend/internal/service/oauth_service.go223 // Step 3: Get authorization code using cookieCOMMENT
LOW⚡backend/internal/service/oauth_service.go229 // Step 4: Exchange code for tokenCOMMENT
LOW⚡backend/internal/service/claude_code_validator.go75// Step 1: User-Agent 检查 (必需) - 必须是 claude-cli/x.x.xCOMMENT
LOW⚡backend/internal/service/claude_code_validator.go76// Step 2: 对于非 messages 路径和 /messages/count_tokens,只要 UA 匹配就通过COMMENT
LOW⚡backend/internal/service/claude_code_validator.go77// Step 3: 检查 max_tokens=1 + haiku 探测请求绕过(UA 已验证)COMMENT
LOW⚡backend/internal/service/claude_code_validator.go78// Step 4: 对于 messages 路径,进行严格验证:COMMENT
LOW⚡backend/internal/service/claude_code_validator.go85 // Step 1: User-Agent 检查COMMENT
LOW⚡backend/internal/service/claude_code_validator.go91 // Step 2: 非 messages 路径只要 UA 匹配就通过COMMENT
LOWbackend/internal/service/claude_code_validator.go102 // Step 3: 检查 max_tokens=1 + haiku 探测请求绕过COMMENT
LOWbackend/internal/service/claude_code_validator.go114 // Step 4: messages 路径,进行严格验证COMMENT
LOWbackend/internal/service/payment_config_plans.go159// NOTE: This function exceeds 30 lines due to per-field nil-check patch update boilerplateCOMMENT
LOWbackend/internal/service/payment_config_service.go335// NOTE: This function exceeds 30 lines because each field requires an independentCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go146 // Step 1: Create SOCKS5 dialerCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go169 // Step 2: Establish SOCKS5 tunnel to targetCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go178 // Step 3: Perform TLS handshake on the tunnel with utls fingerprintCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go187 // Step 1: TCP connect to proxy serverCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go208 // Step 2: Send CONNECT request to establish tunnelCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go231 // Step 3: Read CONNECT responseCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go249 // Step 4: Perform TLS handshake on the tunnel with utls fingerprintCOMMENT
Verbosity Indicators30 hits · 62 pts
SeverityFileLineSnippetContext
LOWbackend/internal/handler/auth_dingtalk_oauth.go358 // Step 2: 必须 — UnionID 是全局唯一,作为 subject + 合成邮箱种子;nick 是用户在 App 自设的昵称COMMENT
LOW⚡backend/internal/payment/load_balancer.go94 // Step 1: query enabled instances matching payment type.COMMENT
LOW⚡backend/internal/payment/load_balancer.go100 // Step 2: batch-fetch daily usage for all candidates.COMMENT
LOW⚡backend/internal/payment/load_balancer.go103 // Step 3: filter by limits.COMMENT
LOW⚡backend/internal/payment/load_balancer.go112 // Step 4: pick by strategy.COMMENT
LOW⚡backend/internal/service/update_service.go263 // Step 1: Move current binary to backupCOMMENT
LOW⚡backend/internal/service/update_service.go268 // Step 2: Move new binary to target location (atomic, same filesystem)COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go773 // Step 1: parse Anthropic request (mirrors openai_gateway_messages.go:38-50).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go780 // Step 2: BetaFastMode header → service_tier="priority" (mirrors line 58-61).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go787 // Step 3: marshal & apply fast policy (mirrors line 78 + 149).COMMENT
LOW⚡backend/internal/service/openai_fast_policy_ws_test.go795 // Step 4: default policy must preserve the explicit fast/priority request.COMMENT
LOW⚡backend/internal/service/oauth_service.go205 // Step 1: Get organization info using sessionKeyCOMMENT
LOW⚡backend/internal/service/oauth_service.go211 // Step 2: Generate PKCE valuesCOMMENT
LOW⚡backend/internal/service/oauth_service.go223 // Step 3: Get authorization code using cookieCOMMENT
LOW⚡backend/internal/service/oauth_service.go229 // Step 4: Exchange code for tokenCOMMENT
LOW⚡backend/internal/service/claude_code_validator.go75// Step 1: User-Agent 检查 (必需) - 必须是 claude-cli/x.x.xCOMMENT
LOW⚡backend/internal/service/claude_code_validator.go76// Step 2: 对于非 messages 路径和 /messages/count_tokens,只要 UA 匹配就通过COMMENT
LOW⚡backend/internal/service/claude_code_validator.go77// Step 3: 检查 max_tokens=1 + haiku 探测请求绕过(UA 已验证)COMMENT
LOW⚡backend/internal/service/claude_code_validator.go78// Step 4: 对于 messages 路径,进行严格验证:COMMENT
LOW⚡backend/internal/service/claude_code_validator.go85 // Step 1: User-Agent 检查COMMENT
LOW⚡backend/internal/service/claude_code_validator.go91 // Step 2: 非 messages 路径只要 UA 匹配就通过COMMENT
LOWbackend/internal/service/claude_code_validator.go102 // Step 3: 检查 max_tokens=1 + haiku 探测请求绕过COMMENT
LOWbackend/internal/service/claude_code_validator.go114 // Step 4: messages 路径,进行严格验证COMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go146 // Step 1: Create SOCKS5 dialerCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go169 // Step 2: Establish SOCKS5 tunnel to targetCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go178 // Step 3: Perform TLS handshake on the tunnel with utls fingerprintCOMMENT
LOW⚡backend/internal/pkg/tlsfingerprint/dialer.go187 // Step 1: TCP connect to proxy serverCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go208 // Step 2: Send CONNECT request to establish tunnelCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go231 // Step 3: Read CONNECT responseCOMMENT
LOWbackend/internal/pkg/tlsfingerprint/dialer.go249 // Step 4: Perform TLS handshake on the tunnel with utls fingerprintCOMMENT
Redundant / Tautological Comments11 hits · 16 pts
SeverityFileLineSnippetContext
LOWdeploy/install.sh328# Check if running interactively (can access terminal)COMMENT
LOWdeploy/install.sh331 # Check if /dev/tty is available (works even when piped)COMMENT
LOWdeploy/install.sh420# Check if running as rootCOMMENT
LOWdeploy/install.sh585 # Check if the release existsCOMMENT
LOWdeploy/install.sh856 # Check if Sub2API is installedCOMMENT
LOWdeploy/install.sh898 # Check if Sub2API is installedCOMMENT
LOWdeploy/install.sh915 # Check if same versionCOMMENT
LOWdeploy/install.sh939 # Set LATEST_VERSION to the target version for download_and_extractCOMMENT
LOWdeploy/docker-deploy.sh57# Check if command existsCOMMENT
LOWdeploy/docker-deploy.sh70 # Check if openssl is availableCOMMENT
LOWdeploy/docker-deploy.sh76 # Check if deployment already existsCOMMENT
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/src/components/keys/UseKeyModal.vue1174# Text multi-agent / client web_search sub-agent (NOT Imagine image/video).COMMENT
MEDIUMfrontend/src/components/keys/UseKeyModal.vue1266# Switch model: grok-4.5 | grok-4.3 | grok-build-0.1 | grok-4.20-multi-agent-0309 (text / web_search)COMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM⚡backend/internal/pkg/openai/codex_gpt61_sol.json75 "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your jobCODE
MEDIUM⚡backend/internal/pkg/openai/codex_gpt61_sol.json75 "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your jobCODE
Slop Phrases3 hits · 6 pts
SeverityFileLineSnippetContext
LOWfrontend/src/i18n/locales/en/misc.ts269 description: '<div style="line-height: 1.7;"><p style="margin-bottom: 12px;">Click the button to create your firCODE
MEDIUM⚡backend/internal/pkg/openai/codex_gpt61_sol.json75 "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your jobCODE
LOW⚡backend/internal/pkg/openai/codex_gpt61_sol.json75 "instructions_template": "You are Codex, an agent based on GPT-6. You and the user share one workspace, and your jobCODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOW⚡deploy/docker-compose.dev.yml6# Usage:COMMENT
LOW⚡deploy/docker-compose.standalone.yml7# Usage:COMMENT
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtools/check_pnpm_audit_exceptions.py23CODE
LOWtools/check_pnpm_audit_exceptions.py64CODE
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOWbackend/internal/handler/admin/group_handler.go939 _ = groupID // TODO: implement actual statsCODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.github/release-tools/test_release_matrix.py2CODE