MentraOS is the leading smart glasses OS. See live captions, stream your view, talk to AI, and capture photos hands-free on compatible glasses.
This report presents the forensic synthetic code analysis of Mentra-Community/MentraOS with 2,326 GitHub stars. SynthScan v2.0 examined 713,415 lines of code across 3117 source files, recording 1173 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 4.1 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1173 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | asg_client/build_log.txt | 2972 | at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:91) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2973 | at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:43) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2974 | at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:103) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2975 | at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2977 | at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler.compile(FileCacheBackedScriptClassCompiler.jav | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2978 | at org.gradle.groovy.scripts.internal.CrossBuildInMemoryCachingScriptClassCache.getOrCompile(CrossBuildInMemoryCachingS | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2979 | at org.gradle.groovy.scripts.internal.BuildScopeInMemoryCachingScriptClassCompiler.compile(BuildScopeInMemoryCachingScr | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2987 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2988 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2989 | at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2990 | at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 2992 | at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3004 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3005 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3006 | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3007 | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3012 | at org.gradle.internal.composite.CommandLineIncludedBuildSettingsLoader.findAndLoadSettings(CommandLineIncludedBuildSet | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3013 | at org.gradle.internal.composite.ChildBuildRegisteringSettingsLoader.findAndLoadSettings(ChildBuildRegisteringSettingsL | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3014 | at org.gradle.internal.composite.CompositeBuildSettingsLoader.findAndLoadSettings(CompositeBuildSettingsLoader.java:35) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3024 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3025 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3026 | at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3027 | at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3031 | at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3032 | at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3034 | at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3035 | at org.gradle.internal.model.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:206) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3040 | at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3041 | at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3043 | at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3044 | at org.gradle.internal.model.StateTransitionController.maybeTransition(StateTransitionController.java:183) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3045 | at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.jav | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3046 | at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java: | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3048 | at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewWorkGraph(DefaultIncludedBuildTaskGraph.java:109) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3049 | at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleCon | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3053 | at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3055 | at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3056 | at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:166) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3057 | at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java: | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3058 | at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleContr | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3059 | at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleContr | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3060 | at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3061 | at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3062 | at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3063 | at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3064 | at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.jav | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3065 | at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.jav | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3067 | at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3068 | at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40 | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3069 | at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3071 | at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3072 | at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65 | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3079 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3080 | at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3081 | at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3082 | at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3083 | at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java: | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3085 | at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3086 | at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) | CODE |
| CRITICAL⚡ | asg_client/build_log.txt | 3087 | at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36) | CODE |
| 77 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 80 | // ── Settings defaults (mirror SettingsManager) ───────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 104 | // ── Profile selection (verbatim from DisplayManager) ─────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 195 | // ── Settings state (SettingsManager) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 198 | // ── Transcript list state (TranscriptsManager) ─────────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 202 | // ── Display state (DisplayManager) ─────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 297 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 299 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 375 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 377 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 527 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 529 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 598 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 600 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 736 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 738 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/captions/src/shared/channels.ts | 26 | // ── background → UI ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/captions/src/shared/channels.ts | 43 | // ── UI → background ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iapps/teleprompter/src/background/core/ScriptEngine.ts | 86 | // ── Configuration ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iapps/teleprompter/src/background/core/ScriptEngine.ts | 121 | // ── Cursor ↔ layout mapping ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iapps/teleprompter/src/background/core/ScriptEngine.ts | 168 | // ── Voice following ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …iapps/teleprompter/src/background/core/ScriptEngine.ts | 221 | // ── Internals ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 99 | // ── Playback state ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 118 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 120 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 221 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 223 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 244 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 246 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 318 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 320 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 392 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 394 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 427 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 429 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 512 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 514 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 639 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 641 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 675 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 677 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 731 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 733 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 756 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 758 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …niapps/teleprompter/src/ui/components/SettingsView.tsx | 107 | // ── Building blocks ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/teleprompter/src/ui/hooks/useTeleprompter.ts | 64 | // ── Settings writes (optimistic) ───────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/teleprompter/src/ui/hooks/useTeleprompter.ts | 119 | // ── Transport ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/teleprompter/src/shared/channels.ts | 14 | // ── background → UI ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/teleprompter/src/shared/channels.ts | 23 | // ── UI → background ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 89 | // ── Settings defaults (mirror SettingsManager) ───────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 108 | // ── Profile selection (verbatim from DisplayManager) ─────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 152 | // ── Settings state (SettingsManager) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 155 | // ── Translation list state ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 159 | // ── Display state (DisplayManager) ─────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 239 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 241 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 295 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 297 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 348 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 350 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| 121 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bunfig.toml | 1 | # Use the isolated linker so workspace packages that are ALSO members of other | COMMENT |
| LOW | miniapps/navigation/build.ts | 21 | COMMENT | |
| LOW | miniapps/navigation/build.ts | 121 | // Silence on success — failures already print via the .success | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 81 | // when the turn direction changes (rasterizing the BMP is the cost; resending | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 101 | // page was torn down it may be blank. So: a recurring timer checks whether a | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 121 | private forceMinimapPush = false | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 141 | // pump so it doesn't repaint the minimap/text over the large map. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 161 | private lastCoordsAt = 0 | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 181 | // Live perpendicular distance to the route while in the advisory | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 581 | // A fresh route landing means any in-flight reroute is resolved. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 741 | // idle "Welcome to Mentra Maps!" frame to "Starting…" the instant the | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1261 | } catch { | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1381 | */ | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1541 | let maneuverArrow: string | null = null | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1561 | next = `You have arrived${at}${side}` | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1581 | // instruction + stats entirely (GLASSES ONLY) with "Go back in X m", where | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1721 | // one if the other is absent. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1801 | */ | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1881 | }) | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1921 | this.trip.maneuver?.distanceToDestinationMeters ?? remainingRouteMeters(me, this.trip.routePoints) ?? undefined | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2061 | } | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2141 | // NOTE: the former `triggerAutoRebuild()` (JS-side off-route → re-fire | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2161 | // case where the pin is a building entrance set BACK from the walkable | COMMENT |
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 21 | static readonly HUD = { | COMMENT |
| LOW | miniapps/navigation/src/ui/pages/AddPlacePage/index.tsx | 41 | const [loading, setLoading] = useState(false) | COMMENT |
| LOW | miniapps/navigation/src/ui/pages/AddPlacePage/index.tsx | 61 | const [editingType, setEditingType] = useState<"home" | "work" | null>(presetType ?? null) | COMMENT |
| LOW | miniapps/navigation/src/ui/pages/AddPlacePage/index.tsx | 101 | const queryRef = useRef(query) | COMMENT |
| LOW | miniapps/navigation/src/ui/pages/AddPlacePage/index.tsx | 141 | }, [searchActive]) | COMMENT |
| LOW | miniapps/navigation/src/ui/pages/AddPlacePage/index.tsx | 181 | entryPushed: searchEntryPushedRef.current, | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 61 | function normalizeRoad(road: string): string { | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 81 | // PROBE_METERS is deliberately wide (~22m): real street corners are | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 301 | // emits `off_route` on EVERY tick while you're off the path, so | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 321 | if (status === "navigating") setOffRouteSticky(false) | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 401 | // | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 741 | // would be too easy to do by accident. | COMMENT |
| LOW | …igation/src/ui/pages/NavigationPage/NavigationPage.tsx | 781 | lat: coord.lat, | COMMENT |
| LOW | miniapps/navigation/src/shared/maneuverDisplay.ts | 81 | // but `kind` still points at the wrong/next turn — that's the flash of the | COMMENT |
| LOW | …/example-miniapp/src/ui/pages/tester/StreamingPage.tsx | 1 | // Tester page — exercises session.stream. | COMMENT |
| LOW | …java/com/mentra/asg_client/camera/CameraConstants.java | 101 | // ========================================================================= | COMMENT |
| LOW | …client/io/bluetooth/managers/K900BluetoothManager.java | 121 | 75; // Delay between successful packets - BES2700 needs time to drain BLE TX | COMMENT |
| LOW | …client/io/bluetooth/managers/K900BluetoothManager.java | 681 | } | COMMENT |
| LOW | …/com/mentra/asg_client/io/ota/services/OtaService.java | 381 | // was already cleared, e.g. by an installApk failure rollback). Without this | COMMENT |
| LOW | …ntra/asg_client/io/media/core/MediaCaptureService.java | 101 | private volatile boolean isRecordingVideo = false; | COMMENT |
| LOW | …ntra/asg_client/io/media/core/MediaCaptureService.java | 241 | // ~19KB single-notification ceiling. Two rules drive the ladder: | COMMENT |
| LOW | …java/com/mentra/asg_client/utils/PermissionsUtils.java | 161 | Manifest.permission.BLUETOOTH_ADVERTISE, | COMMENT |
| LOW | asg_client/docs/fps-thermal-test/fps-thermal-test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | asg_client/docs/agents/set-ci-signing-secrets.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | asg_client/scripts/update-mentra-live.sh | 1 | #!/bin/bash | COMMENT |
| LOW | asg_client/scripts/test-apk-ota.sh | 1 | #!/bin/bash | COMMENT |
| LOW | asg_client/scripts/test-webrtc-streaming.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …ent/scripts/assemble-release-upload-restore-version.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | asg_client/scripts/fps-thermal-test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | asg_client/scripts/upload-asg-client-github-release.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | asg_client/scripts/test-rtmp-streaming.sh | 1 | #!/bin/bash | COMMENT |
| LOW | asg_client/scripts/test-mtk-ota.sh | 1 | #!/bin/bash | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 1 | #!/bin/bash | COMMENT |
| LOW | agents/mentrajs-two-layer-miniapp-architecture.md | 661 | // Fires once each time a WebView mounts and acks `mentra.ready()`. | COMMENT |
| LOW | mobile/boundary-allowlist.txt | 1 | # Temporary allowlist for production host files that still touch raw island | COMMENT |
| LOW | mobile/doppler.yaml | 1 | # Repo-level Doppler defaults for the mobile client. | COMMENT |
| LOW | mobile/metro.config.js | 61 | // cloud-runtime/protocol entry is a shim that re-exports it, so both | COMMENT |
| 323 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tions/src/background/controllers/CaptionsController.ts | 908 | export function isSupportedCaptionTimeoutSeconds(seconds: number): boolean { | CODE |
| LOW | …on/src/background/controllers/TranslationController.ts | 53 | function isSameLanguagePassthrough( | CODE |
| LOW | …erge/backend/src/services/insights/insights.service.ts | 336 | function isContextSensitiveWorkstream(text: string): boolean { | CODE |
| LOW | …gation/src/background/managers/AudioGuidanceManager.ts | 510 | export function selectAudioGuidanceDistance( | CODE |
| LOW | miniapps/navigation/src/ui/router.tsx | 34 | export function suppressNextRouterPopOnce(): void { | CODE |
| LOW | miniapps/navigation/src/ui/router.tsx | 42 | export function clearSuppressNextRouterPop(): void { | CODE |
| LOW | miniapps/navigation/src/ui/store/navStore.ts | 77 | export function installChannelSubscribers(): void { | CODE |
| LOW | …app/src/background/controllers/ElevenLabsController.ts | 1086 | async function fetchSignedUrlFromLocalServer(endpoint: string, agentId: string): Promise<string> { | CODE |
| LOW | agents/frame_supp.md | 147 | export function BrilliantLabsFramePairingGuide() { | CODE |
| LOW | agents/ios_ctkd_resolution.md | 497 | export function BluetoothAudioPairingGuide({ | CODE |
| LOW | …s/2026-05-16-navigation-miniapp-two-layer-migration.md | 3012 | export function installChannelSubscribers(): void { | CODE |
| LOW | mobile/plugins/android.ts | 38 | function withAppBuildGradleModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 185 | function withAndroidManifestModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 475 | function withGradlePropertiesModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 549 | function withSettingsGradleModifications(config: any) { | CODE |
| LOW | mobile/plugins/remove-ipad-orientations.js | 3 | module.exports = function withRemoveIpadOrientations(config) { | CODE |
| LOW | mobile/agents/notifications_restoration_plan.md | 252 | export async function setNotificationsBlocklist(blocklist: string[]) { | CODE |
| LOW | mobile/agents/notifications_restoration_plan.md | 256 | export async function getNotificationsBlocklist() { | CODE |
| LOW | mobile/agents/notifications_restoration_plan.md | 280 | export function usePhoneNotificationListener(onNotification?: (notification: PhoneNotification) => void) { | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 726 | def incident_primary_sort_key(self, incident: dict[str, Any]) -> tuple[int, str, int, str]: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 733 | def current_primary_incident_id(self, device_id: str) -> str | None: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 740 | def recompute_primary_incident(self, device_id: str, now_ms: int) -> tuple[str | None, str | None]: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 801 | def snapshot_word_history_limit(self) -> int: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 804 | def snapshot_completed_utterance_limit(self) -> int: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 807 | def snapshot_recent_word_match_limit(self) -> int: | CODE |
| LOW⚡ | mobile/e2e-tests/scripts/live_word_monitor.py | 817 | def find_ongoing_incident_by_type(self, device_id: str, incident_type: str) -> dict[str, Any] | None: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 766 | def append_primary_transition_event(self, device_id: str, previous_primary_id: str | None, new_primary_id: str | Non | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1084 | def build_candidate_token_positions(candidate_tokens: list[str]) -> dict[str, list[int]]: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1131 | def get_default_output_device_name() -> str | None: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1154 | def ensure_audio_output_device(device_name: str) -> None: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1203 | def should_accept_display_payload(self, payload: dict[str, Any]) -> bool: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1352 | def handle_captions_tester_incident_result(self, device_id: str, payload: dict[str, Any], now_ms: int) -> dict[str, | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1373 | def find_latest_unreported_alert_id(self, device_id: str) -> str | None: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1382 | def handle_legacy_captions_tester_filed_log(self, device_id: str, line: str, now_ms: int) -> dict[str, Any] | None: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1611 | def evaluate_high_average_latency_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> N | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1683 | def evaluate_audio_output_device_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> No | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1797 | def evaluate_app_not_foreground_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> Non | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1836 | def handle_captions_app_lifecycle_line(self, device_id: str, line: str, now_ms: int) -> bool: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1888 | def maybe_record_word_matches( | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts | 31 | function withSettingsGradleModifications(config: any) { | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts | 81 | function withGradlePropertiesModifications(config: any) { | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts | 129 | function withSherpaOnnxLocalMavenRepo(config: any) { | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts | 194 | function withAnalyticsManifestMetadata(config: any, props: BluetoothSdkPluginProps | undefined) { | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withIos.ts | 79 | export function applyBluetoothSdkInfoPlist( | CODE |
| LOW | mobile/modules/bluetooth-sdk/plugin/src/withIos.ts | 103 | function withBluetoothSdkInfoPlist(config: any, props: BluetoothSdkPluginProps | undefined) { | CODE |
| LOW⚡ | mobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts | 65 | export function isConnectedGlassesConnectionStatus( | CODE |
| LOW⚡ | mobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts | 71 | export function isReadyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean { | CODE |
| LOW⚡ | mobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts | 75 | export function isBusyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean { | CODE |
| LOW⚡ | mobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts | 79 | export function createDisconnectedGlassesStatus(): Partial<GlassesStatus> { | CODE |
| LOW | …dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts | 342 | function dashboardMenuItemToNative(item: DashboardMenuItem): Record<string, unknown> { | CODE |
| LOW | …dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts | 350 | function adaptConnectionStatusToNative(connection: GlassesStatus["connection"]): Record<string, unknown> { | CODE |
| LOW | …dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts | 365 | function adaptGlassesUpdateToNative(values: Partial<GlassesStatus>): Record<string, unknown> { | CODE |
| LOW | …ules/bluetooth-sdk/src/_private/photoRequestPayload.ts | 5 | function photoTransferMethodForNative(value: unknown): PhotoTransferMethod { | CODE |
| LOW | …ules/bluetooth-sdk/src/_private/photoRequestPayload.ts | 38 | export function photoRequestParamsForNative(params: PhotoRequestParams): Record<string, string | number | boolean> { | CODE |
| LOW | …les/bluetooth-sdk/src/_private/cameraRequestPayload.ts | 10 | export function warmUpCameraParamsForNative( | CODE |
| LOW | …/modules/bluetooth-sdk/src/react/useMentraBluetooth.ts | 290 | async function setVoiceActivityDetectionEnabled(enabled: boolean) { | CODE |
| LOW | mobile/modules/miniapp/src/dev-reload.ts | 23 | export function installDevReloadListenerIfDevMode(): void { | CODE |
| LOW | mobile/modules/miniapp/src/transport/mock.ts | 30 | export function isMockExplicitlyRequested(): boolean { | CODE |
| LOW | mobile/modules/miniapp/src/modules/languages.ts | 50 | export function requireTranscriptionLanguage(value: string, param: string): TranscriptionLanguage { | CODE |
| LOW | mobile/modules/miniapp/src/modules/navigation.ts | 641 | function buildNavRouteFromComputed(computed: ComputedRoute): NavRoute { | CODE |
| 185 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 55 | // Step 1: Send acknowledgment back to BES | COMMENT |
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 58 | // Step 2: Stop active video recording to finalize moov atom and prevent corruption | COMMENT |
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 61 | // Step 3: Perform graceful shutdown after delay to ensure ACK is sent and recording | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 92 | # Step 1: Uninstall third-party build | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 103 | # Step 2: Re-enable stock app | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 114 | # Step 3: Grant permissions (failsafe) | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 144 | # Step 4: Check for updates | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 212 | # Step 5: Restore stock as default launcher | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 224 | # Step 6: Launch stock app | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 95 | # Step 1: Build the debug APK | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 118 | # Step 2: Put the stock firmware on a known-compatible staging baseline. | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 124 | # Step 3: Disable stock and its recovery agents. | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 138 | # Step 4: Uninstall any previous dev build | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 143 | # Step 5: Install new build | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 157 | # Step 6: Grant additional permissions | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 188 | # Step 7: Set as default home launcher | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 202 | # Step 8: Launch the app | COMMENT |
| LOW | …va/com/augmentos/otaupdater/worker/RecoveryWorker.java | 197 | // Step 1: Try restarting the service multiple times | COMMENT |
| LOW | …va/com/augmentos/otaupdater/worker/RecoveryWorker.java | 219 | // Step 2: If restart didn't work, try APK reinstallation | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 158 | // Step 1: Lens distortion correction (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 159 | // Step 2: AI denoising (NEW) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 164 | // Step 3: Tone mapping (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 165 | // Step 4: Color correction (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 219 | // Step 1: Lens distortion correction (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 220 | // Step 2: AI denoising (NEW) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 224 | // Step 3: Tone mapping (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 225 | // Step 4: Vibrance (existing) | COMMENT |
| LOW⚡ | agents/ai-denoising-plan.md | 226 | // Step 5: Color correction (existing) | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 91 | # Step 1: Install npm dependencies | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 96 | # Step 2: Run expo prebuild | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 101 | # Step 3: Install CocoaPods dependencies | COMMENT |
| LOW | mobile/scripts/setup-ios.sh | 118 | # Step 4: Open Xcode workspace | COMMENT |
| LOW | mobile/scripts/old/fix-android-build.sh | 18 | # Step 1: Clean all build artifacts, caches, and lock files | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 35 | # Step 2: Install dependencies with clean slate | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 40 | # Step 3: Verify dependencies are healthy | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 49 | # Step 4: Prebuild with Expo | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 54 | # Step 5: Fix React Native symlinks | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 90 | # Step 6: Clean Gradle cache | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 95 | # Step 7: Final dependency check | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 103 | # Step 8: Build Android | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 66 | // Step 1: Lens distortion correction | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 71 | // Step 2: Tone mapping — S-curve + vibrance | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 77 | // Step 3: Color correction — linear warmth/tint | COMMENT |
| LOW⚡ | …c/main/java/com/mentra/crust/utils/ImageProcessor.java | 157 | // Step 1: Lens distortion correction | COMMENT |
| LOW⚡ | …c/main/java/com/mentra/crust/utils/ImageProcessor.java | 165 | // Step 2: Tone mapping + vibrance + color correction in linear space | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 100 | // Step 1: Initial warning | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 111 | // Step 2: Generic confirmation - delay to let first modal close | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 123 | // Step 3: Final severe warning - delay to let second modal close | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 128 | // Step 1: Email input | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 172 | // Step 2: Password + Confirm password | COMMENT |
| LOW | mobile/src/utils/LogoutUtils.ts | 20 | // Step 1: Sign out first, so the UI leaves the screen that called us. | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 37 | // Step 2: Let that unmount actually commit before destroying what it was | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 42 | // Step 3: Disconnect and forget any connected glasses | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 45 | // Step 4: Stop island runtime services | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 48 | // Step 5: Clear all app settings and user data | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 51 | // Step 6: Clear any remaining auth-related storage | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 54 | // Step 7: Reset status providers and event emitters | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 51 | // Step 1: Capture the current view | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 58 | // Step 2: Show the overlay with the old snapshot | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 63 | // Step 3: Perform the navigation (user still sees old snapshot) | COMMENT |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 55 | // Step 1: Send acknowledgment back to BES | COMMENT |
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 58 | // Step 2: Stop active video recording to finalize moov atom and prevent corruption | COMMENT |
| LOW⚡ | …core/handlers/subscribers/ShutdownEventSubscriber.java | 61 | // Step 3: Perform graceful shutdown after delay to ensure ACK is sent and recording | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 92 | # Step 1: Uninstall third-party build | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 103 | # Step 2: Re-enable stock app | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 114 | # Step 3: Grant permissions (failsafe) | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 144 | # Step 4: Check for updates | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 212 | # Step 5: Restore stock as default launcher | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 224 | # Step 6: Launch stock app | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 95 | # Step 1: Build the debug APK | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 118 | # Step 2: Put the stock firmware on a known-compatible staging baseline. | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 124 | # Step 3: Disable stock and its recovery agents. | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 138 | # Step 4: Uninstall any previous dev build | COMMENT |
| LOW⚡ | asg_client/scripts/dev-setup.sh | 143 | # Step 5: Install new build | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 157 | # Step 6: Grant additional permissions | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 188 | # Step 7: Set as default home launcher | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 202 | # Step 8: Launch the app | COMMENT |
| LOW | …va/com/augmentos/otaupdater/worker/RecoveryWorker.java | 197 | // Step 1: Try restarting the service multiple times | COMMENT |
| LOW | …va/com/augmentos/otaupdater/worker/RecoveryWorker.java | 219 | // Step 2: If restart didn't work, try APK reinstallation | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 91 | # Step 1: Install npm dependencies | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 96 | # Step 2: Run expo prebuild | COMMENT |
| LOW⚡ | mobile/scripts/setup-ios.sh | 101 | # Step 3: Install CocoaPods dependencies | COMMENT |
| LOW | mobile/scripts/setup-ios.sh | 118 | # Step 4: Open Xcode workspace | COMMENT |
| LOW | mobile/scripts/old/fix-android-build.sh | 18 | # Step 1: Clean all build artifacts, caches, and lock files | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 35 | # Step 2: Install dependencies with clean slate | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 40 | # Step 3: Verify dependencies are healthy | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 49 | # Step 4: Prebuild with Expo | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 54 | # Step 5: Fix React Native symlinks | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 90 | # Step 6: Clean Gradle cache | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 95 | # Step 7: Final dependency check | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 103 | # Step 8: Build Android | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 66 | // Step 1: Lens distortion correction | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 71 | // Step 2: Tone mapping — S-curve + vibrance | COMMENT |
| LOW⚡ | …le/modules/crust/ios/Source/utils/ImageProcessor.swift | 77 | // Step 3: Color correction — linear warmth/tint | COMMENT |
| LOW⚡ | …c/main/java/com/mentra/crust/utils/ImageProcessor.java | 157 | // Step 1: Lens distortion correction | COMMENT |
| LOW⚡ | …c/main/java/com/mentra/crust/utils/ImageProcessor.java | 165 | // Step 2: Tone mapping + vibrance + color correction in linear space | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 100 | // Step 1: Initial warning | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 111 | // Step 2: Generic confirmation - delay to let first modal close | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 123 | // Step 3: Final severe warning - delay to let second modal close | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 128 | // Step 1: Email input | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 172 | // Step 2: Password + Confirm password | COMMENT |
| LOW | mobile/src/utils/LogoutUtils.ts | 20 | // Step 1: Sign out first, so the UI leaves the screen that called us. | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 37 | // Step 2: Let that unmount actually commit before destroying what it was | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 42 | // Step 3: Disconnect and forget any connected glasses | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 45 | // Step 4: Stop island runtime services | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 48 | // Step 5: Clear all app settings and user data | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 51 | // Step 6: Clear any remaining auth-related storage | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 54 | // Step 7: Reset status providers and event emitters | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 51 | // Step 1: Capture the current view | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 58 | // Step 2: Show the overlay with the old snapshot | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 63 | // Step 3: Perform the navigation (user still sees old snapshot) | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 66 | // Step 4: Wait a frame for navigation to complete, then capture new view | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 76 | // Step 5: Set the new snapshot | COMMENT |
| LOW⚡ | …rc/components/navigation/SnapshotTransitionOverlay.tsx | 79 | // Step 6: Animate the transition | COMMENT |
| LOW | cloud-v2/tests/account-auth.integration.test.ts | 327 | // Step 1: request. Issues a code to the new address, applies NOTHING yet. | COMMENT |
| LOW | cloud-v2/tests/account-auth.integration.test.ts | 338 | // Step 2: a valid code (minted via the same service the email uses) applies it. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rc/main/java/com/mentra/asg_client/reporting/README.md | 42 | │ ├── ReportManager.java # Singleton manager orchestrating all providers | CODE |
| MEDIUM | …/src/main/java/com/mentra/asg_client/io/file/README.md | 21 | │ ├── FileManagerImpl.java # Main implementation orchestrating managers | CODE |
| MEDIUM | agents/miniapp-sdk-overview.md | 208 | bunx create-mentra-miniapp my-app # scaffold | CODE |
| MEDIUM | …superpowers/plans/2026-08-26-public-hotspot-ota-api.md | 130 | ### Task 1: Move orchestration into `useMentraLiveOta` | COMMENT |
| MEDIUM | …owers/plans/2026-08-27-cloud-v2-coordinated-release.md | 113 | ## Phase 2: Dev and beta orchestration | COMMENT |
| MEDIUM | …owers/plans/2026-08-27-cloud-v2-coordinated-release.md | 165 | ## Phase 3: Production orchestration | COMMENT |
| MEDIUM | …les/bluetooth-sdk/ios/Source/utils/JSCExperiment.swift | 34 | /// idevicesyslog is unreliable. The Documents file is the agentic-test | COMMENT |
| MEDIUM | mobile/modules/miniapp/src/sub-path-types.test-d.ts | 55 | // ----- compile-time guardrails ------------------------------------------ | COMMENT |
| MEDIUM | …sues/020-glasses-status-boundary/integration-review.md | 237 | ## Residual scaffolding (reconciled from the PR #3298 review) | COMMENT |
| MEDIUM | …sues/020-glasses-status-boundary/integration-review.md | 239 | PR #3298 (`notes/pr3167-island-scaffolding-review.md`, written against #3167 at | CODE |
| MEDIUM | cloud-v2/docs/issues/004-cloud-client/design.md | 55 | runtime.ts # cloud.runtime: the RuntimeModule, orchestrates the rest | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-background.yaml | 7 | # Mount N dummies, then send the app to background. The harness's dwell | COMMENT |
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-leak.yaml | 42 | # Leave the screen alive so the harness's dwell timer can collect samples. | COMMENT |
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-leak.yaml | 43 | # The harness will tear down via app launch state on the next run. | COMMENT |
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-long.yaml | 7 | # Mount N dummies, then send the app to background. The harness's dwell | COMMENT |
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-foreground.yaml | 42 | # Leave the screen alive so the harness's dwell timer can collect samples. | COMMENT |
| MEDIUM | mobile/.maestro/flows/99-stress-jetsam-foreground.yaml | 43 | # The harness will tear down via app launch state on the next run. | COMMENT |
| MEDIUM | mobile/src/effects/Compositor.tsx | 209 | // is seamless. Clamp the seed so a violent flick doesn't overshoot. | COMMENT |
| MEDIUM | cloud-v2/tests/soniox.integration.test.ts | 112 | // robust word checks, not an exact match (STT punctuation/casing varies) | COMMENT |
| MEDIUM | …ackages/runtime/src/services/audio/providers/soniox.ts | 159 | // Soniox identify even when hinted is robust to user accent / code-switch.) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | asg_client/docs/fps-thermal-test/fps-thermal-test.sh | 17 | # Usage: | COMMENT |
| LOW | asg_client/docs/agents/set-ci-signing-secrets.sh | 12 | # Usage: | COMMENT |
| LOW | asg_client/scripts/update-mentra-live.sh | 6 | # Usage: | COMMENT |
| LOW | asg_client/scripts/test-webrtc-streaming.sh | 4 | # Usage: | COMMENT |
| LOW | asg_client/scripts/update-stock-for-dev.sh | 7 | # Usage: | COMMENT |
| LOW | asg_client/scripts/restore-stock.sh | 8 | # Usage: | COMMENT |
| LOW | asg_client/scripts/fps-thermal-test.sh | 17 | # Usage: | COMMENT |
| LOW | asg_client/scripts/test-rtmp-streaming.sh | 4 | # Usage: | COMMENT |
| LOW | asg_client/scripts/test-mtk-ota.sh | 5 | # Usage: | COMMENT |
| LOW | asg_client/scripts/dev-setup.sh | 15 | # Usage: | COMMENT |
| LOW | mobile/scripts/runner-cleanup.sh | 30 | # Usage: | COMMENT |
| LOW | mobile/scripts/setup-runner.sh | 66 | # Usage: | COMMENT |
| LOW | mobile/scripts/stress-test/run-jetsam-test.sh | 13 | # Usage: | COMMENT |
| LOW | mobile/src/utils/dev/debugging.tsx | 291 | // Example usage: | COMMENT |
| LOW | mobile/src/theme/colorTools.ts | 109 | // Example usage: | COMMENT |
| LOW | scripts/fetch-incident-logs.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/local-stream/watch-local-stream-stats.sh | 5 | # Usage: | COMMENT |
| LOW | cloud-v2/scripts/sync-doppler-to-porter.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | asg_client/setup-sentry.sh | 12 | # Check if sentry.properties already exists | COMMENT |
| LOW | asg_client/switch-sentry-env.sh | 14 | # Check if the environment configuration exists | COMMENT |
| LOW | agents/xiaomi_glasses_wifi_capture.sh | 22 | # Check if this line contains WiFi credentials | COMMENT |
| LOW | mobile/scripts/trim-transparent-borders.sh | 14 | # Check if ImageMagick is installed | COMMENT |
| LOW | mobile/scripts/trim-transparent-borders.sh | 26 | # Check if directory exists | COMMENT |
| LOW | mobile/scripts/setup-ios.sh | 169 | # Check if we're in the right directory | COMMENT |
| LOW | mobile/scripts/setup-sherpa-onnx-optional.sh | 9 | # Check if we're in a "scripts" directory | COMMENT |
| LOW | mobile/scripts/old/fix-android-build.sh | 2 | # Check if we're in a "scripts" directory | COMMENT |
| LOW⚡ | mobile/scripts/old/fix-android-build.sh | 108 | # Check if build was successful | COMMENT |
| LOW | mobile/scripts/old/fix-react-native-symlinks.sh | 2 | # Check if we're in a "scripts" directory | COMMENT |
| LOW | mobile/scripts/old/fix-react-native-symlinks.sh | 25 | # Check if node_modules exists | COMMENT |
| LOW | mobile/scripts/old/fixXcodeCompletely.sh | 3 | # Check if we're in a "scripts" directory | COMMENT |
| LOW | .github/workflows/mentra-asg-client-build.yml | 172 | # Check if retry succeeded by looking for the APK | COMMENT |
| LOW | .github/workflows/mentra-app-android-build.yml | 325 | # Check if retry succeeded by looking for the APK | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 148 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum mol | CODE |
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 148 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum mol | CODE |
| LOW | asg_client/docs/ASG_CLIENT_API.md | 854 | {"type": "user_email", "email": "user@example.com"} | CODE |
| LOW | agents/miniapp-store-backend-plan.md | 334 | "allowlist": ["user@example.com", "..."] // required when policy=ALLOWLIST | CODE |
| LOW | agents/tpa_triggers_wifi_setup_plan.md | 710 | userId: "user@example.com", | CODE |
| LOW | agents/tpa_triggers_wifi_setup_plan.md | 765 | userId: "user@example.com", | CODE |
| LOW | mobile/TEST_GALLERY_GUIDE.md | 74 | All test images are served from **picsum.photos** - a free Lorem Ipsum service for photos: | CODE |
| LOW | mobile/agents/notifications_restoration_plan.md | 398 | "title": "John Doe", | CODE |
| LOW | mobile/agents/notifications_restoration_plan.md | 412 | "title": "John Doe", | CODE |
| LOW | …droid/src/main/java/com/mentra/bluetoothsdk/sgcs/G1.kt | 3689 | val text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | …droid/src/main/java/com/mentra/bluetoothsdk/sgcs/G1.kt | 3689 | val text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | …ine/src/services/__tests__/MentraJSLogPipeline.test.ts | 19 | expect(redactSecrets("user@example.com")).toBe("user@example.com") | CODE |
| LOW | mobile/assets/icons/tabler/glyph-map.json | 3705 | "placeholder": 63014, | CODE |
| LOW | mobile/src/components/glasses/Gallery/GalleryScreen.tsx | 73 | type: "server" | "local" | "placeholder" | CODE |
| LOW | mobile/src/components/glasses/Gallery/GalleryScreen.tsx | 968 | type: "placeholder" as const, | CODE |
| LOW | sdk/miniapp-cli/src/qr.test.ts | 58 | writeFileSync(outPath, 'placeholder', {mode: 0o644}); | CODE |
| LOW | …-v2/packages/runtime/src/services/audio/result.test.ts | 19 | mentraUserId: "user@example.com", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 331 | except Exception: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 380 | except Exception: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1335 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1677 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1762 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1997 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2117 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2153 | except Exception as exc: | CODE |
| LOW | mobile/scripts/stress-test/run-jetsam-test.sh | 248 | except Exception: | CODE |
| LOW | scripts/local-stream/watch-local-stream-stats.sh | 72 | except Exception: | CODE |
| LOW | scripts/local-stream/watch-local-stream-stats.sh | 144 | except Exception: | CODE |
| LOW | scripts/local-stream/start-local-stream.sh | 94 | except Exception: | CODE |
| LOW | scripts/local-stream/start-local-stream.sh | 121 | except Exception: | CODE |
| LOW | scripts/local-stream/start-local-stream.sh | 164 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 6 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 3 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 5 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 9 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 11 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 12 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 13 | CODE | |
| LOW | …ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 456 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 531 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1091 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1728 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1836 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1888 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2005 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2121 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | cloud-v2/doppler.yaml | 8 | # This file is checked in. It contains NO secrets — only project pointer. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …e/core/handlers/subscribers/ButtonEventSubscriber.java | 292 | // TODO: implement this at a later time | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …bile/modules/bluetooth-sdk/ios/Source/sgcs/Mach1.swift | 533 | // // don't forget to commit, this is a common mistake. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1551 | def update_drop_tracking(self, device_id: str, device_state: MonitorDeviceState, utterance: UtteranceState | None, n | CODE |