AI Slop Code Risk Monitor

OpenWhispr/openwhispr

SlopCodeMonitor badge for OpenWhispr/openwhispr Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Voice-to-text dictation app with local (Nvidia Parakeet/Whisper) and cloud models (BYOK). Privacy-first and available cross-platform.

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for OpenWhispr/openwhispr, a JavaScript project with 10,457 GitHub stars. SynthScan examined 796,566 lines of code across 3300 source files, recording 1159 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
10.5K
Stars
JavaScript
Language
796.6K
Lines of Code
3.3K
Files
1.2K
Pattern Hits
2026-10-31
Scan Date
0.01
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 6.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.0/100 · LOW

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

Agent Over-Engineering Ratio 5.6/100 · LOW

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

PR Review Velocity Impact 8.0/100 · LOW

Which changes need focused human review? 1159 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 2HIGH 23MEDIUM 18LOW 1116

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 1159 distinct pattern matches across 18 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.

Hyper-Verbose Identifiers819 hits · 855 pts
SeverityFileLineSnippetContext
LOWmain.js86function configureChannelUserDataPath() {CODE
LOWmain.js163function shouldRegisterProtocolWithAppArg() {CODE
LOWmain.js181function restoreHtmlHandlerIfChanged(original) {CODE
LOWmain.js225function registerOpenWhisprProtocol() {CODE
LOWmain.js422function cleanupOrphanedLinuxRestoreToken() {CODE
LOWmain.js746function initializeDeferredManagers() {CODE
LOWmain.js810function handleEnterpriseAudioLink(url) {CODE
LOWmain.js980async function exchangeSignedTokenForRawBearer(signedToken) {CODE
LOWmain.js1004async function migrateCookieToBearerToken() {CODE
LOWmain.js1032async function applySessionTokenAndRefresh(token) {CODE
LOWmain.js1179async function dropUnsupportedStartupHold() {CODE
LOWopenwhispr-mobile/app.config.js32function deriveGoogleCalendarRedirectScheme(clientId) {CODE
LOWopenwhispr-mobile/app.config.js39function createGoogleCalendarRedirectConfig(environment, clientId) {CODE
LOWopenwhispr-mobile/app.config.js104function createGoogleCalendarConfig(environment) {CODE
LOWopenwhispr-mobile/config/openwhispr-environments.js21function resolveOpenWhisprEnvironment() {CODE
LOW…r-mobile/plugins/storekit/withStoreKitConfiguration.js47function validateStoreKitProductIds(storeKitConfiguration, canonicalProducts) {CODE
LOW…r-mobile/plugins/storekit/withStoreKitConfiguration.js60function createStoreKitReferenceBlock(indentation, reference) {CODE
LOW…r-mobile/plugins/storekit/withStoreKitConfiguration.js68function ensureStoreKitConfigurationReference(schemeContents, reference) {CODE
LOW…r-mobile/plugins/storekit/withStoreKitConfiguration.js86function withStoreKitConfiguration(config) {CODE
LOW…s/storekit/__tests__/withStoreKitConfiguration.test.ts21function createStoreKitConfiguration(productIds: string[]): object {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js36function resolveActivityEnvironment(cfg) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js61function writeExtensionSupportFiles(platformProjectRoot, environment) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js86function getBuildConfigurationIdsForTarget(xcodeProject, targetUuid) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js100function applyBuildSettingsToTarget(xcodeProject, targetUuid, buildSettings) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js169function findFileReferenceUuidByBasename(xcodeProject, basename) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js184function findBuildFileUuidForFileRef(xcodeProject, fileRefUuid) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js214function ensureSourcesBuildPhaseExists(xcodeProject, targetUuid) {CODE
LOW…le/plugins/activity-extension/withActivityExtension.js241function ensureSourceMembershipForTarget(xcodeProject, targetUuid, sourceBuildFileUuid, fileName) {CODE
LOW…/plugins/speaker-diarization/withSpeakerDiarization.js50 ' def generate_available_uuid_list(count = 100)\n' +CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js33function resolveKeyboardEnvironment(cfg) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js69function writeExtensionSupportFiles(platformProjectRoot, environment) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js97function getBuildConfigurationIdsForTarget(xcodeProject, targetUuid) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js113function applyBuildSettingsToTarget(xcodeProject, targetUuid, buildSettings) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js194function findGroupFileReferenceUuid(xcodeProject, groupKey, basename) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js206function findBuildFileUuidForFileRef(xcodeProject, fileRefUuid) {CODE
LOW…le/plugins/keyboard-extension/withKeyboardExtension.js240function ensurePhaseMembershipForTarget(xcodeProject, targetUuid, buildFileUuid, fileName, phase) {CODE
LOW…ugins/pod-deployment-target/withPodDeploymentTarget.js22function addPodDeploymentTargetFloor(contents) {CODE
LOW…enwhispr-mobile/modules/app-group-storage/src/index.ts210export function addRecordingStoppedListener(CODE
LOW⚡…enwhispr-mobile/modules/app-group-storage/src/index.ts225export function addRecordingErrorListener(CODE
LOW⚡…enwhispr-mobile/modules/app-group-storage/src/index.ts232export function addBackgroundRecordingStartedListener(CODE
LOW⚡…enwhispr-mobile/modules/app-group-storage/src/index.ts239export function addKeyboardStatusChangedListener(CODE
LOW…enwhispr-mobile/modules/app-group-storage/src/index.ts264export function addHardwareKeyboardChangedListener(CODE
LOWopenwhispr-mobile/src/types/index.ts58export function inferenceToProcessingMode(mode: InferenceMode): ProcessingMode {CODE
LOWopenwhispr-mobile/src/config/noteSharing.ts4export function getNoteShareViewerBaseUrl(): string {CODE
LOWopenwhispr-mobile/src/config/prompts/retiredPrompts.ts118export async function sweepRetiredPromptOverrides(CODE
LOWopenwhispr-mobile/src/config/prompts/registry.ts34export function normalizeCustomPromptForSave(draft: string, defaultText: string): string {CODE
LOWopenwhispr-mobile/src/utils/expoAudio.ts32export function getDefaultRecorderOptions(): RecordingOptions {CODE
LOWopenwhispr-mobile/src/screens/AccountScreen.tsx44function getSubscriptionManagementProvider(usage: UsageInfo): SubscriptionManagementProvider {CODE
LOWopenwhispr-mobile/src/screens/AccountScreen.tsx52function showWebSubscriptionSupport(): void {CODE
LOWopenwhispr-mobile/src/screens/AccountScreen.tsx106async function openGrantedBillingManagement(usage: UsageInfo): Promise<void> {CODE
LOWopenwhispr-mobile/src/screens/AIModelsScreen.tsx36function localReasoningStatusLabel(readiness: LocalReasoningReadiness | null): string {CODE
LOW…mobile/src/screens/GoogleCalendarIntegrationScreen.tsx374export default function GoogleCalendarIntegrationScreen() {CODE
LOW…spr-mobile/src/screens/TranscriptionLanguageScreen.tsx44export default function TranscriptionLanguageScreen() {CODE
LOW…-mobile/src/screens/HardwareKeyboardShortcutScreen.tsx41export function HardwareKeyboardShortcutScreen() {CODE
LOW…le/src/screens/onboarding/steps/KeyboardSwitchStep.tsx141function AnimatedKeyboardSwitchPreview() {CODE
LOW…c/components/superwall/OpenWhisprSuperwallProvider.tsx22export function OpenWhisprSuperwallProvider({ children }: Props) {CODE
LOW…ile/src/components/superwall/SuperwallGateProvider.tsx138function runAccessGrantedWithoutPurchaseCallback(CODE
LOW…ile/src/components/superwall/SuperwallGateProvider.tsx152function reportAccessGrantedWithoutPurchase(gate: PendingGate): void {CODE
LOW…ile/src/components/superwall/SuperwallGateProvider.tsx213function recordPurchaseWithTimeout(productId: string): Promise<void> {CODE
LOW…ile/src/components/superwall/SuperwallGateProvider.tsx270export function DisabledSuperwallGateProvider({ children }: Props) {CODE
759 more matches not shown…
Fake / Example Data172 hits · 174 pts
SeverityFileLineSnippetContext
LOW…src/screens/__tests__/AccountScreen.anonymous.test.tsx17 email: 'user@example.com',CODE
LOW…ns/__tests__/NoteEditorScreen.calendarContext.test.tsx73 user: { id: 'user-1', email: 'user@example.com', emailVerified: true },CODE
LOW…ns/__tests__/NoteEditorScreen.calendarContext.test.tsx547 mockAuthState.user = { id: 'user-1', email: 'user@example.com', emailVerified: true };CODE
LOW…ns/__tests__/NoteEditorScreen.calendarContext.test.tsx1634 email: 'user@example.com',CODE
LOW…ens/__tests__/NoteEditorScreen.conflictBanner.test.tsx71 user: { id: 'user-1', email: 'user@example.com', emailVerified: true },CODE
LOW…/src/screens/__tests__/AccountScreen.referral.test.tsx8 email: 'user@example.com',CODE
LOW…e/src/screens/__tests__/AccountScreen.billing.test.tsx17 email: 'user@example.com',CODE
LOW…nts/superwall/__tests__/SuperwallGateProvider.test.tsx225 email: 'user@example.com',CODE
LOW…pr-mobile/src/lib/__tests__/authClient.cookies.test.ts6 data: { user: { id: 'user-1', email: 'user@example.com', emailVerified: true } },CODE
LOW…pr-mobile/src/lib/__tests__/authClient.cookies.test.ts39 (auth: AuthClientModule) => auth.signInWithEmail('user@example.com', 'password'),CODE
LOW…pr-mobile/src/lib/__tests__/authClient.cookies.test.ts41 ['sign-up', (auth: AuthClientModule) => auth.signUpWithEmail('user@example.com', 'password')],CODE
LOW…bile/src/store/__tests__/useNotesStore.meeting.test.ts165const signedInUser = { id: 'user-1', email: 'user@example.com', emailVerified: true };CODE
LOW…bile/src/store/__tests__/useNotesStore.meeting.test.ts687 mockAuthState.user = { id: 'user-1', email: 'user@example.com', emailVerified: true };CODE
LOW…bile/src/store/__tests__/useNotesStore.meeting.test.ts936 mockAuthState.user = { id: 'user-1', email: 'user@example.com', emailVerified: true };CODE
LOWtest/utils/snippets.test.js401 snippets: [{ trigger: "acme", replacement: "Acme Corp" }],CODE
LOWtest/components/authenticationStep.test.js300 const offline = await submitEmail(unavailableDiscovery, "user@example.com");CODE
LOWtest/components/authenticationStep.test.js309 const company = await submitEmail(ssoAccount, "user@example.com");CODE
LOWtest/components/dictionaryView.test.js308 node.getAttribute("placeholder") === "dictionary.shared.add.placeholder"CODE
LOWtest/components/createSkillScreen.test.js324 { ok: false, problems: [{ code: "placeholder" }] },CODE
LOW⚡test/lib/emailAuthDiscovery.test.js66 await discoverEmailAuth("user@example.com", "https://auth.example.test"),CODE
LOW⚡test/lib/emailAuthDiscovery.test.js75 assert.equal(await discoverEmailAuth("user@example.com", "https://auth.example.test"), null);CODE
LOW⚡test/lib/emailAuthDiscovery.test.js80 await assert.rejects(discoverEmailAuth("user@example.com", "https://auth.example.test"), {CODE
LOW⚡test/lib/emailAuthDiscovery.test.js87 await assert.rejects(discoverEmailAuth("user@example.com", "https://auth.example.test"), {CODE
LOW⚡test/lib/emailAuthDiscovery.test.js93 await assert.rejects(discoverEmailAuth("user@example.com", "https://auth.example.test"), {CODE
LOWtest/helpers/connectors/emailCompose.test.js7 to: ["gabe+lunch@example.com", "dana@example.org"],CODE
LOWtest/helpers/connectors/createConnectors.test.js131 getGoogleCalendarAccounts: () => [{ email: "user@example.com" }],CODE
LOWtest/helpers/connectors/createConnectors.test.js137 email: "user@example.com",CODE
LOWtest/helpers/connectors/createConnectors.test.js170 return [{ email: "user@example.com" }];CODE
LOWtest/helpers/connectors/createConnectors.test.js178 email: "user@example.com",CODE
LOWtest/helpers/connectors/createConnectors.test.js191 email: "user@example.com",CODE
LOWtest/helpers/skills/skillFormat.test.js163 assert.deepEqual(codes(validateSkillFiles(inBody, { source: "app" }).problems), ["placeholder"]);CODE
LOWtest/helpers/skills/skillsIpc.test.js197 const problems = [{ code: "placeholder" }];CODE
LOWtest/helpers/skills/skillsIpc.test.js330 const problems = [{ code: "placeholder" }];CODE
LOWtest/helpers/skills/skillUpdate.test.js363 { code: "placeholder" },CODE
LOWtest/helpers/skills/skillLibraryModel.test.js135 problems: [{ code: "placeholder" }],CODE
LOWtest/helpers/skills/skillLibraryModel.test.js138 problems: [{ code: "placeholder" }],CODE
LOWtest/helpers/skills/skillLibrary.test.js881 problems: [{ code: "placeholder" }],CODE
LOWtest/services/skillProposalTools.test.js105 const electron = fakeElectron({ problems: [{ code: "placeholder" }, { code: "tooLarge" }] });CODE
LOWsrc/types/skills.ts25 | "placeholder"CODE
LOWsrc/locales/ja/translation.json265 "placeholder": "ここをクリックしてからショートカットを押してください。OpenWhispr はどんなテキスト欄にも入力します。"CODE
LOWsrc/locales/ja/translation.json1495 "placeholder": "カスタムシステムプロンプトを入力..."CODE
LOWsrc/locales/ja/translation.json1809 "placeholder": "お名前",CODE
LOWsrc/locales/ja/translation.json1857 "placeholder": "例: ジャービス、ノヴァ、アトラス...",CODE
LOWsrc/locales/ja/translation.json1956 "placeholder": "単語またはフレーズを追加...",CODE
LOWsrc/locales/ja/translation.json3451 "placeholder": "何でも質問",CODE
LOWsrc/locales/ja/translation.json3533 "placeholder": "カンマ区切りで単語を追加",CODE
LOWsrc/locales/ja/translation.json3697 "placeholder": "friend@example.com",CODE
LOWsrc/locales/ja/translation.json3939 "placeholder": "API キーを入力",CODE
LOWsrc/locales/ja/translation.json4856 "placeholder": "先に [TODO: …] のプレースホルダーを置き換えてください",CODE
LOWsrc/locales/ja/translation.json5059 "placeholder": "ノートと文字起こしを検索…",CODE
LOWsrc/locales/ja/translation.json5182 "namePlaceholder": "Acme Corp",CODE
LOWsrc/locales/it/translation.json265 "placeholder": "Clicca qui, poi premi la tua scorciatoia. OpenWhispr scrive in qualsiasi campo di testo."CODE
LOWsrc/locales/it/translation.json1495 "placeholder": "Inserisci il tuo prompt di sistema personalizzato..."CODE
LOWsrc/locales/it/translation.json1809 "placeholder": "Il tuo nome",CODE
LOWsrc/locales/it/translation.json1857 "placeholder": "es. Jarvis, Nova, Atlas...",CODE
LOWsrc/locales/it/translation.json1956 "placeholder": "Aggiungi una parola o frase...",CODE
LOWsrc/locales/it/translation.json2834 "placeholder": "friend@example.com",CODE
LOWsrc/locales/it/translation.json3523 "placeholder": "Chiedi qualsiasi cosa",CODE
LOWsrc/locales/it/translation.json3606 "placeholder": "Aggiungi parole separate da virgole",CODE
LOWsrc/locales/it/translation.json3957 "placeholder": "Incolla la tua chiave API",CODE
112 more matches not shown…
Over-Commented Block102 hits · 100 pts
SeverityFileLineSnippetContext
LOW…ns/keyboard-extension/ios/KeyboardViewController.swift1221 private var agentReviewSessionId = ""COMMENT
LOW…ns/keyboard-extension/ios/KeyboardViewController.swift3501COMMENT
LOW…speaker-diarization/ios/SpeakerDiarizationModule.swift1import ExpoModulesCoreCOMMENT
LOW…obile/modules/parakeet-asr/ios/ParakeetASRModule.swift21// AsrModels.load(from:version:encoderPrecision:) — loads what JS installed (the ANE-compileCOMMENT
LOWopenwhispr-mobile/src/config/constants.ts21};COMMENT
LOWopenwhispr-mobile/src/config/prompts/retiredPrompts.ts1import * as Crypto from 'expo-crypto';COMMENT
LOW…ile/src/screens/__tests__/personalFolderScope.test.tsx1// Fix round 2, Finding 3: every personal folder surface — the FoldersScreenCOMMENT
LOWopenwhispr-mobile/src/lib/policyMessages.ts1// Single source of truth for the org-policy / client-version rejectionCOMMENT
LOWopenwhispr-mobile/src/lib/chat/chatContext.ts21// Most two-character words are filler ("he", "go"), so one is kept only when it is clearly a name orCOMMENT
LOWopenwhispr-mobile/src/lib/chat/chatTerms.ts1// How a chat search term is matched. The note search (SQL) and the transcript passages sent with aCOMMENT
LOWopenwhispr-mobile/src/lib/notes/localMeetingNotes.ts21import type { StructuredMeetingNotes } from '@/types';COMMENT
LOWopenwhispr-mobile/src/sync/pushNotes.ts81 | { type: 'retry' } // count as failure, retry on the next sync (default)COMMENT
LOWopenwhispr-mobile/src/sync/pushNotes.ts241 // A pending delete is exempt from the filter: DELETE carries no body, soCOMMENT
LOWopenwhispr-mobile/src/sync/pushNotes.ts281 continue;COMMENT
LOWopenwhispr-mobile/src/sync/pushNotes.ts461 // draw one — batch-create also checks the SOURCE space of any existingCOMMENT
LOWopenwhispr-mobile/src/sync/pushFolders.ts141 // A pending delete is exempt from the filter: DELETE carries no body, soCOMMENT
LOWopenwhispr-mobile/src/sync/pushFolders.ts381 // and team_not_found also arrive as 404s, and those mean "the scope is notCOMMENT
LOWopenwhispr-mobile/src/sync/pullDictionary.ts201// Using delta on the first sync would mid-stream two orderings — the server'sCOMMENT
LOWopenwhispr-mobile/src/data/local/notesRepository.ts701 .run();COMMENT
LOWopenwhispr-mobile/src/data/local/notesRepository.ts1301 .set({ remoteId, pendingSync: 0, updatedAt: serverUpdatedAt })COMMENT
LOW…ile/src/services/transcription/TranscriptionService.ts181 return info.exists ? (info as any).size : undefined;COMMENT
LOWopenwhispr-mobile/src/store/useAuthStore.ts141 // build. Silently creating a server-side record for someone who declined oneCOMMENT
LOWnative/meeting-aec-helper/compat/rtc_base/win32.h1// Shim: webrtc-apm omits rtc_base/win32.h but time_utils.cc includes it underCOMMENT
LOWtest/utils/githubMentions.test.js41 // "@@x" and a domain immediately before "@" ("medium.com/@x") still don'tCOMMENT
LOWtest/helpers/audioManagerCancelLifecycle.test.js221});COMMENT
LOWtest/helpers/useChatStreamingCancellation.test.js21//COMMENT
LOWtest/helpers/connectors/githubFixtures.js1// GitHub replies for the GitHub connector tests. The shapes follow GitHub'sCOMMENT
LOWtest/helpers/connectors/linearFixtures.js1// Linear replies for the Linear connector tests. The shapes follow what aCOMMENT
LOWtest/helpers/harness/fakeCloud.js1// In-memory stand-in for the cloud API behind window.electronAPI.cloudApiRequest.COMMENT
LOWresources/linux-system-audio-helper.c1#define _GNU_SOURCECOMMENT
LOWresources/linux-system-audio-helper.c21#define TARGET_SAMPLE_RATE 24000COMMENT
LOWresources/windows-text-monitor.c21 * Compile:COMMENT
LOWresources/linux-key-listener.c1/**COMMENT
LOWresources/windows-system-audio-helper.c21 * audio so the output timeline stays continuous.COMMENT
LOWresources/windows-mic-listener.c401 } else {COMMENT
LOWresources/linux-fast-paste.c1#define _GNU_SOURCECOMMENT
LOWresources/mediaremote-adapter/src/adapter/get.m1// Copyright (c) 2025 Jonas van den BergCOMMENT
LOWresources/mediaremote-adapter/src/adapter/stream.m1// Copyright (c) 2025 Jonas van den BergCOMMENT
LOWresources/mediaremote-adapter/src/utility/helpers.m1// Copyright (c) 2025 Jonas van den BergCOMMENT
LOW…superpowers/plans/2026-09-10-agent-paste-plain-text.md381//COMMENT
LOWscripts/afterPack.js1// electron-builder afterPack hookCOMMENT
LOWscripts/download-sherpa-onnx.js21const GITHUB_RELEASE_URL = `https://github.com/k2-fsa/sherpa-onnx/releases/download/v${SHERPA_ONNX_VERSION}`;COMMENT
LOWsrc/config/retiredPrompts.js1// Registry of default prompt texts the app has shipped over time, as SHA-256COMMENT
LOWsrc/stores/settingsStore.ts601 if (v !== null) localStorage.setItem(dst, v);COMMENT
LOWsrc/stores/settingsStore.ts661 if (v !== null) localStorage.setItem(dst, v);COMMENT
LOWsrc/stores/settingsStore.ts881// migrateProviderSettings() had created `transcriptionMode` / `reasoningMode`,COMMENT
LOWsrc/stores/settingsStore.ts2861 // other three LLM scopes — used when onboarding routes every reasoning scope toCOMMENT
LOWsrc/stores/actionProcessingStore.ts41// meeting on the default 9B while the merge still had room to spare.COMMENT
LOWsrc/stores/noteStore.ts101COMMENT
LOWsrc/utils/gpuBannerPolicy.ts21// each branch must require an engine that actually runs locally — otherwise theCOMMENT
LOWsrc/utils/audioContainer.ts1// Chromium's MediaRecorder only offers WebM/Opus (and MP4/AAC) on the desktopCOMMENT
LOWsrc/utils/dictionaryPromptCap.js1import { usesTranscriptionKeywords } from "./dictionaryKeywords.js";COMMENT
LOWsrc/utils/dictionaryPromptCap.js21// rare proper nouns fragment. Used to warn in the UI, not to trim: the trueCOMMENT
LOWsrc/utils/sharedDictionaryHints.ts41// A colon that ends a token ("SYSTEM:", "Note:") opens a clause; inside oneCOMMENT
LOWsrc/utils/whisperGpuPack.ts1import type { CudaWhisperStatus, VulkanWhisperStatus } from "../types/electron";COMMENT
LOWsrc/components/ui/overlayBlur.ts1import { getCachedPlatform } from "../../utils/platform";COMMENT
LOWsrc/components/ui/pageWidth.ts1// Content column shared by the control panel pages. Apply it inside a scrollCOMMENT
LOWsrc/components/ui/gradientCircle.ts1// Brand blue as glass, matched to the app icon: the --gradient-brand-glass ramp under theCOMMENT
LOWsrc/components/icons/primitives.tsx181// under Lucide's ISC License:COMMENT
LOWsrc/helpers/database.js201COMMENT
42 more matches not shown…
Cross-Language Confusion (JS/TS)15 hits · 100 pts
SeverityFileLineSnippetContext
HIGHtest/helpers/macosPasteTyping.test.js21 print("{\\"browser\\":\\"\\(bundleId)\\",\\"typed\\":\\(isTypedBrowser(bundleId))}")CODE
HIGHtest/helpers/macosPasteTyping.test.js27 print("{\\"chunks\\":\\(encoded)}")CODE
HIGHtest/helpers/macosPasteLayout.test.js93print("layout scenarios passed")CODE
HIGH⚡test/helpers/macosPasteRead.test.js27 print("PASTE_POSTED")CODE
HIGH⚡test/helpers/macosPasteRead.test.js29 print(promise.waitForRead(postedAt: postedAt, budgetMs: Int(arguments[3])!))CODE
HIGH⚡test/helpers/macosPasteRead.test.js31 print(pasteboard.string(forType: .string) ?? "<none>", terminator: "")CODE
HIGH⚡test/helpers/macosPasteRead.test.js34 print(tag ?? "<none>", (pasteboard.types ?? []).map(\\.rawValue).joined(separator: ","))CODE
HIGH⚡scripts/lib/meeting-aec-build.js194 return NoneCODE
HIGH⚡scripts/lib/meeting-aec-build.js197 return NoneCODE
HIGH⚡scripts/lib/meeting-aec-build.js200 return NoneCODE
HIGH⚡scripts/lib/meeting-aec-build.js203 return NoneCODE
HIGH⚡scripts/lib/meeting-aec-build.js206 return NoneCODE
HIGH⚡scripts/lib/meeting-aec-build.js209 return NoneCODE
HIGHscripts/lib/meeting-aec-build.js255 return NoneCODE
HIGHscripts/lib/meeting-aec-build.js296print(json.dumps({"regular": sorted(collected), "avx2": sorted(avx2)}))CODE
Decorative Section Separators9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts85// ─── Mirror keys ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts237// ─── Request consumption ───────────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts355// ─── readKeyboardAgentJob ──────────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts396// ─── readKeyboardAgentDraft ─────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts437// ─── clearKeyboardAgentJob ─────────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts451// ─── writeKeyboardAgentResult ─────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts549// ─── consumeKeyboardAgentAction ────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts609// ─── isKeyboardAgentCancelled ──────────────────────────────────────────────────COMMENT
MEDIUM…spr-mobile/src/lib/__tests__/keyboardAgentSync.test.ts628// ─── Example instructions ─────────────────────────────────────────────────────COMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALtest/locales/orukeetModelCard.test.js14 assert.ok(translation.models.descriptions.parakeet.orukeet.trim());CODE
CRITICALtest/helpers/assistantPanel.test.js634 const onKeyDown = globalThis.document.addEventListener.mock.calls.findLast(CODE
Excessive Try-Catch Wrapping15 hits · 20 pts
SeverityFileLineSnippetContext
LOW⚡resources/linux-text-monitor.py61 except Exception:CODE
LOW⚡resources/linux-text-monitor.py77 except Exception:CODE
LOW⚡resources/linux-text-monitor.py85 except Exception:CODE
LOWresources/linux-text-monitor.py120 except Exception:CODE
LOWresources/linux-text-monitor.py147 except Exception:CODE
LOWresources/linux-text-monitor.py167 except Exception:CODE
LOWresources/linux-text-monitor.py180 except Exception:CODE
LOW⚡resources/linux-text-monitor.py203 except Exception:CODE
LOW⚡resources/linux-text-monitor.py214 except Exception:CODE
LOW⚡resources/linux-text-monitor.py223 except Exception:CODE
LOWresources/linux-text-monitor.py242 except Exception:CODE
MEDIUMresources/linux-text-monitor.py101def _parse_pid(value):CODE
MEDIUMresources/linux-text-monitor.py231def on_text_changed(event):CODE
LOWexamples/custom-asr-shim/shim_template.py160 except Exception as exc: # surface, never swallowCODE
LOWexamples/custom-asr-shim/stepaudio_shim.py234 except Exception as exc: # surface, never swallowCODE
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHresources/linux-text-monitor.py61except Exception:CODE
HIGHresources/linux-text-monitor.py267except KeyboardInterrupt:CODE
HIGHresources/linux-text-monitor.py120except Exception:CODE
HIGHresources/linux-text-monitor.py242except Exception:CODE
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtest/components/integrationsView.test.js460 assert.match(shownText(container), /Authorization: Bearer YOUR_API_KEY/);CODE
HIGHdocs/integrations-compatibility.md43For OAuth, add the server URL in a supporting client, sign in to OpenWhispr and approve access. For a client accepting rCODE
HIGHsrc/components/integrations/McpPane.tsx101 Authorization: Bearer YOUR_API_KEYCODE
Slop Phrases3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM⚡src/locales/en/translation.json5409 "formal": "Hi Sarah,\n\nThank you for your time today. I will send the updated proposal by Thursday. Please let CODE
MEDIUM⚡src/locales/en/translation.json5410 "casual": "Hi Sarah,\n\nThanks for today. I'll send the updated proposal over by Thursday, let me know if you neCODE
MEDIUM⚡src/locales/en/translation.json5411 "excited": "Hi Sarah,\n\nThanks so much for your time today! I'll send the updated proposal by Thursday. Let me CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtest/components/backdropBlurCost.test.js8// (#2298). The harness renders i18n keys verbatim; the assertions only read classes.COMMENT
MEDIUMtest/helpers/cloudChunkPolicy.test.js255// 73-minute file read as a seamless transcript.COMMENT
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOW…kground-uploader/tests/run-provider-transport-tests.py26CODE
LOW…kground-uploader/tests/run-provider-transport-tests.py43CODE
LOWresources/linux-text-monitor.py109CODE
LOWexamples/custom-asr-shim/stepaudio_shim.py91CODE
LOWexamples/custom-asr-shim/test_shim.py224CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…sources/mediaremote-adapter/bin/mediaremote-adapter.pl3# This file is licensed under the BSD 3-Clause License.COMMENT
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWexamples/custom-asr-shim/shim_template.py21CODE
LOWexamples/custom-asr-shim/stepaudio_shim.py17CODE
LOWexamples/custom-asr-shim/test_shim.py14CODE
Cross-Language Confusion1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHexamples/custom-asr-shim/test_shim.py11 cd examples/custom-asr-shim && python3 -m unittestSTRING
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW⚡resources/linux-text-monitor.py208 # Check if the element supports the Text interfaceCOMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMCLAUDE.md298Offline semantic search that finds notes by meaning, not just keywords. Used by the AI agent's `search_notes` tool. Its CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/components/JoinYourTeamModal.tsx73 async function handleRequest(entry: JoinableWorkspace) {CODE