AI Slop Code Risk Monitor

fishjar/kiss-translator

SlopCodeMonitor badge for fishjar/kiss-translator Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本)

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for fishjar/kiss-translator, a JavaScript project with 13,111 GitHub stars. SynthScan examined 377,755 lines of code across 1136 source files, recording 244 pattern matches distributed across 5 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
13.1K
Stars
JavaScript
Language
377.8K
Lines of Code
1.1K
Files
244
Pattern Hits
2026-10-31
Scan Date
0.02
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 2.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.5/100 · LOW

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

Agent Over-Engineering Ratio 3.6/100 · LOW

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

PR Review Velocity Impact 7.5/100 · LOW

Which changes need focused human review? 244 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 27HIGH 0MEDIUM 51LOW 166

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 244 distinct pattern matches across 5 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.

Hallucination Indicators27 hits · 270 pts
SeverityFileLineSnippetContext
CRITICALsrc/fileTranslation/bridgeRecovery.test.js53 browser.scripting.executeScript.mock.calls.map(([args]) => args)CODE
CRITICALsrc/fileTranslation/pipelineCore.test.js724 HTMLCanvasElement.prototype.getContext.mock.results.map(({ value }) =>CODE
CRITICALsrc/providers/fallback.test.js87 ctx.http.request.mock.calls.at(-1)[0].body[CODE
CRITICALsrc/libs/translatorManager.test.js622 browser.runtime.onMessage.addListener.mock.calls.at(-1)[0](CODE
CRITICALsrc/libs/translatorManager.test.js653 browser.runtime.onMessage.addListener.mock.calls.at(-1)[0](CODE
CRITICALsrc/libs/translatorManager.test.js2072 const handler = browser.runtime.onMessage.addListener.mock.calls.at(-1)[0];CODE
CRITICALsrc/libs/storage.gm-compatibility.test.js153 expect(globalThis.GM.setValue.mock.calls.map(([key]) => key)).toEqual([CODE
CRITICALsrc/libs/localAiBackground.test.js19 global.chrome.storage.local.get.mockResolvedValue({CODE
CRITICALsrc/libs/localAiBackground.test.js35 global.chrome.storage.local.set.mockRejectedValue(Error("storage failed"));CODE
CRITICALsrc/libs/storage.gm-destination.regression.test.js344 expect(globalThis.GM.setValue.mock.calls.map(([key]) => key)).toEqual(CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js158 f.bridge.request.mock.calls.some(([action]) => action === "fetch")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js179 f.bridge.request.mock.calls.some(([action]) => action === "metadata")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js248 f.bridge.request.mock.calls.filter(([action]) => action === "refresh")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js261 f.bridge.request.mock.calls.filter(([action]) => action === "fetch")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js279 f.bridge.request.mock.calls.filter(([action]) => action === "fetch")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js282 f.bridge.request.mock.calls.filter(([action]) => action === "refresh")CODE
CRITICALsrc/subtitle/youtubeAcquisition.test.js301 f.bridge.request.mock.calls.filter(([action]) => action === "metadata")CODE
CRITICALsrc/subtitle/asr/videoSession.test.js551 middle.textProcessor.translate.mock.calls.map(([cues]) => cues[0].start)CODE
CRITICALsrc/subtitle/asr/downloadManager.test.js214 expect(test.bridge.open.mock.calls.map((call) => call[2])).toEqual([0, 1000]);CODE
CRITICALsrc/subtitle/asr/downloadManager.test.js424 expect(test.cache.getAudio.mock.calls.map(([, index]) => index)).toEqual([CODE
CRITICALsrc/subtitle/asr/downloadManager.test.js475 expect(test.bridge.open.mock.calls.map(([, , position]) => position)).toEqual(CODE
CRITICALsrc/views/Options/Diagnostics.test.js249 expect(navigator.clipboard.writeText.mock.calls.at(-1)[0]).not.toContain(CODE
CRITICALsrc/views/Options/Diagnostics.test.js254 expect(navigator.clipboard.writeText.mock.calls.at(-1)[0]).toContain(CODE
CRITICALsrc/views/Options/startup.integration.test.js593 browser.storage.local.set.mock.calls.filter(CODE
CRITICALsrc/views/Options/startup.integration.test.js598 const normalizedCall = browser.storage.local.set.mock.calls.find(CODE
CRITICALsrc/views/Options/startup.integration.test.js639 browser.storage.local.set.mock.calls.filter(CODE
CRITICALsrc/views/Selection/FavBtn.storage.test.js70 const wordWrites = browser.storage.local.set.mock.calls.filter(CODE
Decorative Section Separators51 hits · 153 pts
SeverityFileLineSnippetContext
MEDIUMsrc/config/locales/terminologyPlayground.js143 // ── _delivery_*:四态 Chip 与实际值包装 ─────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js199 // ── _channel_*:注入通道描述 ────────────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js237 // ── _prompt_*:提示词标签 ───────────────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js302 // ── _alert_*:Snackbar 与错误弹窗文案 ──────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js579 // ── _api_*:接口选择器区 ────────────────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js644 // ── _local_*:本地术语区按钮与标签 ──────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js701 // ── _terms_*:AI 专业术语输入区 ─────────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js896 // ── _result_*:测试结果区(含发送/接收面板) ────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js1068 // ── _check_*:术语表贡献与生效检测表 ────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js1196 // ── _truncated:截断提示 ────────────────────────────────────────────COMMENT
MEDIUMsrc/config/locales/terminologyPlayground.js1207 // ── 诊断提示多语言(Task 5:替换 terms.js 内部硬编码中文直出)────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js14// ─── 确定性字符串 hash(djb2)───────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js26// ─── 内置自然语境模板库 ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js118// ─── 冲突检测 ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js280// ─── 测试文本生成 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js452// ─── 结构化断言 ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js909// ─── 固定诊断样例 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js927// ─── 开发态故意失败样例 ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.js1005// ─── UI 展示规模控制 ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js13// ─── hashKey ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js45// ─── detectTermConflicts ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js126// ─── generateTermTestText ────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js293// ─── generateTermTestText 严格字面量 $ 样例完整性 ────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js343// ─── generateTermTestText 显式 seed 轮换(Task 11) ──────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js405// ─── joinIntoParagraph ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js425// ─── assertTermReplacements ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js545 // ─── 构造错误场景:验证断言能正确检测问题 ─────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js724 // ─── 转义 key 冲突对(span 口径对称性)────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js836// ─── generateTermTestText treatKeysAsLiteral(AI 术语字面样例)───────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js894// ─── detectTermConflicts treatKeysAsLiteral(AI 字面冲突语义)────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js931// ─── 冲突对字面样例含占位符字面量(单 pass 插值)─────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js957// ─── M2/M6:零宽转义样例 + 冲突对去重分隔符 ─────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js988// ─── getDiagnosticSampleTerms ────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js1037// ─── getDeliberateFailureFixtures ────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js1088// ─── selectDisplayedResults ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js1169// ─── 冲突分析记忆化与 conflicts 复用(统一计划 20260829 Task 4)──────────────COMMENT
MEDIUMsrc/libs/termTestUtils.test.js1255// ─── 零宽断言样例回验与空样例守卫 ───────────────────────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js408// ─── Task 14:点号字面量与正则语义 ──────────────────────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js492// ─── P1:分支识别上下文丢失导致的正文丢失 ────────────────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js599// ─── 零宽防护与 flags 继承(统一计划 20260829 Task 2)────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js747// ─── matcher 缓存与 naive 缓存(统一计划 20260829 Task 3)────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js965// ─── Task 2:fast/full 解析契约与生产热路径性能解耦 ──────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js1052// ─── Task 10:严格非法输入诊断 ──────────────────────────────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js1217 // ─── v4:hasErrors 不等于 terms 为空,合法条目逐条保留 ─────────────────────COMMENT
MEDIUMsrc/libs/terms.test.js1264// ─── 术语冲突分析引擎加固(统一计划 20260829 Task 4)─────────────────────────COMMENT
MEDIUMsrc/libs/rules.test.js365// ─── 术语规则链路集成测试 ─────────────────────────────────────────────────COMMENT
MEDIUMsrc/scripts/test-term-replace.js25// ─── 内置固定用例(覆盖冲突矩阵 4 类场景)────────────────────────────────COMMENT
MEDIUMsrc/scripts/test-term-replace.js32// ─── 参数解析 ────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/scripts/test-term-replace.js52// ─── 格式化输出 ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/scripts/test-term-replace.js62// ─── 主逻辑 ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/views/Selection/TranForm.js72// ─── 接口多选本地持久化(可选)───────────────────────────────────────────────COMMENT
Hyper-Verbose Identifiers124 hits · 126 pts
SeverityFileLineSnippetContext
LOWsrc/background.js356function cacheSeparateWindowBounds(win) {CODE
LOWsrc/background.js390async function persistSeparateWindowBounds(bounds) {CODE
LOWsrc/background.js405async function openSeparateWindowWithSavedBounds() {CODE
LOWsrc/common.js213function hasIframeTranslatableText() {CODE
LOWsrc/common.js237async function waitForIframeTranslatableText() {CODE
LOWsrc/common.test.js91function expectNoNormalUserscriptStartup() {CODE
LOWsrc/apis/trans.translate.test.js1686 async function runNonStreamContextRounds(apiType, responses, update = {}) {CODE
LOWsrc/apis/index.js121function getTranslatePromptCacheScope(apiSetting = {}) {CODE
LOWsrc/apis/vision.js40export async function recognizeNativeNetworkImage(file, api, prompt, signal) {CODE
LOWsrc/apis/trans.js1790async function handleSubtitleStreamInternal(CODE
LOWsrc/fileTranslation/pipelineCore.js622async function executeImagePipelineInternal({CODE
LOWsrc/fileTranslation/bridgeRecovery.js5export async function restoreFileTranslationBridges() {CODE
LOWsrc/fileTranslation/backend.js951export function installFileTranslationBackend() {CODE
LOWsrc/builtin-plugins/responses.js227function parseCloudflareaiResponse(res) {CODE
LOWsrc/builtin-plugins/textResponses.js27export function parseNativeDictionaryResponse(res, apiType) {CODE
LOWsrc/builtin-plugins/textResponses.js59export function parseNativeSummaryResponse(res, apiType) {CODE
LOWsrc/builtin-plugins/textResponses.js96export async function parseNativeSubtitleResponse(CODE
LOWsrc/builtin-plugins/fields.js116export function validateBuiltinSettingChanges(previous = {}, next = {}) {CODE
LOWsrc/builtin-plugins/capabilities.js7export function resolveBuiltinCapabilities(api) {CODE
LOWsrc/config/prompt.js342function findPromptBySlugOrDefault(userPrompts, promptSlug, defaultPromptSlug) {CODE
LOWsrc/config/prompt.js411function findPresetPromptByContent(sourcePrompt) {CODE
LOWsrc/config/prompt.js451function getAvailableMigratedPromptSlug(promptBySlug, sourcePrompt, baseSlug) {CODE
LOWsrc/config/prompt.js492export function getPromptCategoryDisplayName(category, i18n) {CODE
LOWsrc/config/prompt.js553export function getAllTranslationPromptOptions(prompts = [], api) {CODE
LOWsrc/config/prompt.js572export function getTranslationPromptDisplayName(prompt = {}, i18n) {CODE
LOWsrc/config/prompt.js600export function getDictionaryPromptOptions(prompts = []) {CODE
LOWsrc/config/prompt.js697function createLegacyApiPromptSource(apiSetting, migration) {CODE
LOWsrc/config/prompt.js727function isStoredPromptListNormalized(sourcePrompts = [], normalizedPrompts) {CODE
LOWsrc/config/prompt.js753function removeLegacySubtitlePromptId(subtitleSetting) {CODE
LOWsrc/config/prompt.js763function removeApiPromptTextFields(apiSetting, migration) {CODE
LOWsrc/config/api.js177function createEnglishDictionaryPrompt({CODE
LOWsrc/config/api.js460export function fillDefaultApiModelListUrl(apiSetting) {CODE
LOWsrc/config/api.js488export function normalizeApiModelListUrls(transApis = []) {CODE
LOWsrc/localAi/core/paddleOcrVlOnnx.ts156export function splicePaddleOcrVlImageEmbeds(CODE
LOWsrc/localAi/core/senseVoice.ts196export function extractSenseVoiceFeatures(CODE
LOWsrc/localAi/workers/llm-worker.ts118async function downscaleImageForCpuIfNeeded(CODE
LOWsrc/localAi/workers/ortOpfsBridge.ts56export function initTransformersOpfsBridge(): void {CODE
LOWsrc/localAi/workers/llm-onnx-worker.ts112async function createOrtSessionWithFallback(CODE
LOWsrc/providers/instances.js114export function validateFieldCapabilities(service, fields, permissions = {}) {CODE
LOWsrc/providers/upgrade.js39export function isServiceUpgradeAvailable(api, pack) {CODE
LOWsrc/providers/timeout.js29export function registerInvocationDeadline(signal, deadlineAt) {CODE
LOWsrc/providers/compatibility.js21export function validatePluginCompatibilityFields(definition) {CODE
LOWsrc/providers/compatibility.js49export function assertPluginCompatibility(CODE
LOWsrc/providers/compatibility.js77export function pluginCompatibilityFields(definition) {CODE
LOWsrc/providers/packageStore.js12export function subscribeProviderPackageChanges(listener) {CODE
LOWsrc/providers/capabilities.js23export function getSupportedCapabilityDescriptor(instance, capability) {CODE
LOWsrc/providers/capabilities.js57export function validateEnabledCapabilities(instance, enabled) {CODE
LOWsrc/providers/capabilities.js71export function reconcileEnabledCapabilities(previous, supported) {CODE
LOWsrc/providers/capabilities.js78export function supportsProviderCapability(CODE
LOWsrc/providers/pluginDirectory.js100export function validateOfficialDirectory(data) {CODE
LOWsrc/providers/pluginDirectory.js141export function validateCommunityDirectory(data) {CODE
LOWsrc/providers/sdk/audio.js12export function buildTranscriptionRequest({CODE
LOWsrc/providers/sdk/translation.js159export async function createTranslationStreamParser(options, ParserClass) {CODE
LOWsrc/libs/termTestUtils.js948export function getDeliberateFailureFixtures() {CODE
LOWsrc/libs/storageEvents.js104export function subscribeStorageInvalidation(key, listener) {CODE
LOWsrc/libs/stream.js164export function createStreamingJsonParser() {CODE
LOWsrc/libs/stream.js257export function createStreamingSubtitleParser(CODE
LOWsrc/libs/stream.js471export function createRealtimeStreamParser() {CODE
LOWsrc/libs/storageCoordination.js252export function installStorageCoordinator() {CODE
LOWsrc/libs/tranboxPosition.js13function getTranBoxViewportElement() {CODE
64 more matches not shown…
Over-Commented Block39 hits · 39 pts
SeverityFileLineSnippetContext
LOWconfig-overrides.js221// @description A simple bilingual translation extension & Greasemonkey script (一个简约的双语对照翻译扩展 & 油猴脚本)COMMENT
LOWconfig-overrides.js241// @grant GM.addValueChangeListenerCOMMENT
LOWconfig-overrides.js261// @connect workers.devCOMMENT
LOWconfig-overrides.js281// @connect translate.yandex.netCOMMENT
LOWsrc/config/api.js141// "text": "string", // Full sentence with correct punctuationCOMMENT
LOWsrc/localAi/patchOpencvCsp.ts1import type { Plugin } from "vite";COMMENT
LOWsrc/localAi/patchOpencvCsp.ts21// —— 语义同 new Function(...names)(...values),但参数/函数体分离,旧 B 类COMMENT
LOWsrc/libs/tranboxPosition.js1// Combined width of the left and right resize grips (8px on each side).COMMENT
LOWsrc/libs/terms.js1// 专业术语(terms)解析与替换纯函数模块COMMENT
LOWsrc/libs/translator.js381COMMENT
LOWsrc/libs/translator.js401 #combinedSkipsRegex; // 跳过文本正则表达式COMMENT
LOWsrc/libs/translator.js421COMMENT
LOWsrc/libs/translator.js521 this.#touchPending.delete(node);COMMENT
LOWsrc/libs/translator.js541 #mouseHoldSuppressContextMenu = false; // 本次右键按住翻译成功后是否屏蔽原生右键菜单COMMENT
LOWsrc/libs/translator.js561 #favoriteHoverTimer = null;COMMENT
LOWsrc/libs/translator.js1401 this.#termMatcher = buildTermsMatcher(terms);COMMENT
LOWsrc/libs/translator.js1421COMMENT
LOWsrc/libs/translatorManager.js61 * 因为 SPA 页面可能替换 body/html,运行期子模块必须能被销毁并重建。COMMENT
LOWsrc/libs/translatorManager.js81 #documentToken = null;COMMENT
LOWsrc/libs/browser.js41COMMENT
LOWsrc/libs/inputTranslate.js241 const div = document.getElementById(loadingId);COMMENT
LOWsrc/libs/imageTranslate/screenshotOverlay.js21import ImageLayoutOverlay from "../../views/ImageTranslate/ImageLayoutOverlay";COMMENT
LOWsrc/libs/imageTranslate/screenshotOverlay.js41 #selection = null; // { x, y, w, h }COMMENT
LOWsrc/libs/imageTranslate/imageHoverDetector.js21} from "../../config/serviceSelection";COMMENT
LOWsrc/libs/imageTranslate/imageHoverDetector.js41 #managedLayout = false;COMMENT
LOWsrc/libs/imageTranslate/imageTranslateManager.js21import ImageTranslate from "../../views/ImageTranslate";COMMENT
LOWsrc/libs/imageTranslate/imageTranslateManager.js41 #screenshotSession = 0;COMMENT
LOWsrc/components/TextareaResizeGrip.js1import { useCallback, useLayoutEffect, useRef, useState } from "react";COMMENT
LOWsrc/components/TextareaResizeGrip.js481 // resize。置于全部 hooks 之后满足 Rules of Hooks——hidden ↔ 其他样式COMMENT
LOWsrc/components/TextareaResizeGrip.js701 onResize(clampHeight(candidate));COMMENT
LOWsrc/hooks/useTextareaHeightLock.js121 const remembered = sessionHeightMap.get(lockKey);COMMENT
LOWsrc/subtitle/youtubePlayerUi.js41 childList: true,COMMENT
LOWsrc/subtitle/YouTubeCaptionProvider.js61 #captionFinalCues = new Map();COMMENT
LOWsrc/subtitle/YouTubeCaptionProvider.js81 #watchTimer;COMMENT
LOWsrc/subtitle/YouTubeCaptionProvider.js101 #terminologyLoading = null;COMMENT
LOWsrc/subtitle/YouTubeCaptionProvider.js121 // 当前正在处理的字幕轨唯一标识 KeyCOMMENT
LOWsrc/subtitle/BilingualSubtitleManager.js21 * @description 负责控制在 YouTube 原生视频播放器上悬浮渲染双语字幕,以及对字幕进行预翻译缓存管理的核心逻辑类COMMENT
LOWsrc/scripts/test-term-replace.js1// 免打包专业术语 CLI 验证脚本COMMENT
LOWsrc/views/Options/TerminologyPlayground.js1361 inputGlossary[key] !== undefinedCOMMENT
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/builtin-plugins/fields.js8 "placeholder",CODE
LOWsrc/builtin-plugins/fields.js53 "placeholder",CODE
LOWsrc/views/Options/Apis.js1510 name="placeholder"CODE