Repository Analysis

Mentra-Community/MentraOS

MentraOS is the leading smart glasses OS. See live captions, stream your view, talk to AI, and capture photos hands-free on compatible glasses.

4.1 Likely human-written View on GitHub

Analysis Overview

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).

4.1
Adjusted Score
4.1
Raw Score
100%
Time Factor
2026-08-29
Last Push
2.3K
Stars
Language
713.4K
Lines of Code
3.1K
Files
1.2K
Pattern Hits
2026-08-29
Scan Date
0.04
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 137HIGH 0MEDIUM 202LOW 834

Directory Score Breakdown

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.

Pattern Findings

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.

Hallucination Indicators137 hits · 1330 pts
SeverityFileLineSnippetContext
CRITICALasg_client/build_log.txt2972 at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:91)CODE
CRITICALasg_client/build_log.txt2973 at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open(DefaultPersistentDirectoryStore.java:43)CODE
CRITICALasg_client/build_log.txt2974 at org.gradle.cache.internal.DefaultCacheFactory.doOpen(DefaultCacheFactory.java:103)CODE
CRITICALasg_client/build_log.txt2975 at org.gradle.cache.internal.DefaultCacheFactory.open(DefaultCacheFactory.java:68)CODE
CRITICALasg_client/build_log.txt2977 at org.gradle.groovy.scripts.internal.FileCacheBackedScriptClassCompiler.compile(FileCacheBackedScriptClassCompiler.javCODE
CRITICALasg_client/build_log.txt2978 at org.gradle.groovy.scripts.internal.CrossBuildInMemoryCachingScriptClassCache.getOrCompile(CrossBuildInMemoryCachingSCODE
CRITICALasg_client/build_log.txt2979 at org.gradle.groovy.scripts.internal.BuildScopeInMemoryCachingScriptClassCompiler.compile(BuildScopeInMemoryCachingScrCODE
CRITICALasg_client/build_log.txt2987 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)CODE
CRITICALasg_client/build_log.txt2988 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)CODE
CRITICALasg_client/build_log.txt2989 at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)CODE
CRITICALasg_client/build_log.txt2990 at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)CODE
CRITICALasg_client/build_log.txt2992 at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)CODE
CRITICALasg_client/build_log.txt3004 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)CODE
CRITICALasg_client/build_log.txt3005 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)CODE
CRITICALasg_client/build_log.txt3006 at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)CODE
CRITICALasg_client/build_log.txt3007 at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)CODE
CRITICALasg_client/build_log.txt3012 at org.gradle.internal.composite.CommandLineIncludedBuildSettingsLoader.findAndLoadSettings(CommandLineIncludedBuildSetCODE
CRITICALasg_client/build_log.txt3013 at org.gradle.internal.composite.ChildBuildRegisteringSettingsLoader.findAndLoadSettings(ChildBuildRegisteringSettingsLCODE
CRITICALasg_client/build_log.txt3014 at org.gradle.internal.composite.CompositeBuildSettingsLoader.findAndLoadSettings(CompositeBuildSettingsLoader.java:35)CODE
CRITICALasg_client/build_log.txt3024 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)CODE
CRITICALasg_client/build_log.txt3025 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)CODE
CRITICALasg_client/build_log.txt3026 at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)CODE
CRITICALasg_client/build_log.txt3027 at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)CODE
CRITICALasg_client/build_log.txt3031 at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)CODE
CRITICALasg_client/build_log.txt3032 at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235)CODE
CRITICALasg_client/build_log.txt3034 at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)CODE
CRITICALasg_client/build_log.txt3035 at org.gradle.internal.model.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:206)CODE
CRITICALasg_client/build_log.txt3040 at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)CODE
CRITICALasg_client/build_log.txt3041 at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:235)CODE
CRITICALasg_client/build_log.txt3043 at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)CODE
CRITICALasg_client/build_log.txt3044 at org.gradle.internal.model.StateTransitionController.maybeTransition(StateTransitionController.java:183)CODE
CRITICALasg_client/build_log.txt3045 at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.javCODE
CRITICALasg_client/build_log.txt3046 at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:CODE
CRITICALasg_client/build_log.txt3048 at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewWorkGraph(DefaultIncludedBuildTaskGraph.java:109)CODE
CRITICALasg_client/build_log.txt3049 at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleConCODE
CRITICALasg_client/build_log.txt3053 at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:247)CODE
CRITICALasg_client/build_log.txt3055 at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)CODE
CRITICALasg_client/build_log.txt3056 at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:166)CODE
CRITICALasg_client/build_log.txt3057 at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:CODE
CRITICALasg_client/build_log.txt3058 at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleContrCODE
CRITICALasg_client/build_log.txt3059 at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleContrCODE
CRITICALasg_client/build_log.txt3060 at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)CODE
CRITICALasg_client/build_log.txt3061 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)CODE
CRITICALasg_client/build_log.txt3062 at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)CODE
CRITICALasg_client/build_log.txt3063 at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)CODE
CRITICALasg_client/build_log.txt3064 at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.javCODE
CRITICALasg_client/build_log.txt3065 at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.javCODE
CRITICALasg_client/build_log.txt3067 at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122)CODE
CRITICALasg_client/build_log.txt3068 at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40CODE
CRITICALasg_client/build_log.txt3069 at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)CODE
CRITICALasg_client/build_log.txt3071 at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)CODE
CRITICALasg_client/build_log.txt3072 at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65CODE
CRITICALasg_client/build_log.txt3079 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)CODE
CRITICALasg_client/build_log.txt3080 at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)CODE
CRITICALasg_client/build_log.txt3081 at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)CODE
CRITICALasg_client/build_log.txt3082 at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)CODE
CRITICALasg_client/build_log.txt3083 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:CODE
CRITICALasg_client/build_log.txt3085 at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)CODE
CRITICALasg_client/build_log.txt3086 at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)CODE
CRITICALasg_client/build_log.txt3087 at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)CODE
77 more matches not shown…
Decorative Section Separators181 hits · 543 pts
SeverityFileLineSnippetContext
MEDIUM…tions/src/background/controllers/CaptionsController.ts80// ── Settings defaults (mirror SettingsManager) ─────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts104// ── Profile selection (verbatim from DisplayManager) ───────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts195 // ── Settings state (SettingsManager) ─────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts198 // ── Transcript list state (TranscriptsManager) ───────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts202 // ── Display state (DisplayManager) ───────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts297 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts299 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts375 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts377 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts527 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts529 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts598 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts600 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts736 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tions/src/background/controllers/CaptionsController.ts738 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUMminiapps/captions/src/shared/channels.ts26 // ── background → UI ────────────────────────────────────────────────────COMMENT
MEDIUMminiapps/captions/src/shared/channels.ts43 // ── UI → background ────────────────────────────────────────────────────COMMENT
MEDIUM…iapps/teleprompter/src/background/core/ScriptEngine.ts86 // ── Configuration ────────────────────────────────────────────────────────COMMENT
MEDIUM…iapps/teleprompter/src/background/core/ScriptEngine.ts121 // ── Cursor ↔ layout mapping ────────────────────────────────────────────────COMMENT
MEDIUM…iapps/teleprompter/src/background/core/ScriptEngine.ts168 // ── Voice following ────────────────────────────────────────────────────────COMMENT
MEDIUM…iapps/teleprompter/src/background/core/ScriptEngine.ts221 // ── Internals ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts99 // ── Playback state ─────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts118 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts120 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts221 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts223 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts244 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts246 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts318 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts320 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts392 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts394 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts427 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts429 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts512 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts514 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts639 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts641 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts675 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts677 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts731 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts733 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts756 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…r/src/background/controllers/TeleprompterController.ts758 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…niapps/teleprompter/src/ui/components/SettingsView.tsx107// ── Building blocks ─────────────────────────────────────────────────────────COMMENT
MEDIUMminiapps/teleprompter/src/ui/hooks/useTeleprompter.ts64 // ── Settings writes (optimistic) ─────────────────────────────────────────COMMENT
MEDIUMminiapps/teleprompter/src/ui/hooks/useTeleprompter.ts119 // ── Transport ──────────────────────────────────────────────────────────COMMENT
MEDIUMminiapps/teleprompter/src/shared/channels.ts14 // ── background → UI ────────────────────────────────────────────────────COMMENT
MEDIUMminiapps/teleprompter/src/shared/channels.ts23 // ── UI → background ────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts89// ── Settings defaults (mirror SettingsManager) ─────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts108// ── Profile selection (verbatim from DisplayManager) ───────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts152 // ── Settings state (SettingsManager) ─────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts155 // ── Translation list state ───────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts159 // ── Display state (DisplayManager) ───────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts239 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts241 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts295 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts297 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts348 // ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…on/src/background/controllers/TranslationController.ts350 // ───────────────────────────────────────────────────────────────────────COMMENT
121 more matches not shown…
Over-Commented Block383 hits · 370 pts
SeverityFileLineSnippetContext
LOWbunfig.toml1# Use the isolated linker so workspace packages that are ALSO members of otherCOMMENT
LOWminiapps/navigation/build.ts21COMMENT
LOWminiapps/navigation/build.ts121// Silence on success — failures already print via the .successCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts81 // when the turn direction changes (rasterizing the BMP is the cost; resendingCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts101 // page was torn down it may be blank. So: a recurring timer checks whether aCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts121 private forceMinimapPush = falseCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts141 // pump so it doesn't repaint the minimap/text over the large map.COMMENT
LOW…apps/navigation/src/background/NavigationController.ts161 private lastCoordsAt = 0COMMENT
LOW…apps/navigation/src/background/NavigationController.ts181 // Live perpendicular distance to the route while in the advisoryCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts581 // A fresh route landing means any in-flight reroute is resolved.COMMENT
LOW…apps/navigation/src/background/NavigationController.ts741 // idle "Welcome to Mentra Maps!" frame to "Starting…" the instant theCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts1261 } catch {COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1381 */COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1541 let maneuverArrow: string | null = nullCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts1561 next = `You have arrived${at}${side}`COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1581 // instruction + stats entirely (GLASSES ONLY) with "Go back in X m", whereCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts1721 // one if the other is absent.COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1801 */COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1881 })COMMENT
LOW…apps/navigation/src/background/NavigationController.ts1921 this.trip.maneuver?.distanceToDestinationMeters ?? remainingRouteMeters(me, this.trip.routePoints) ?? undefinedCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts2061 }COMMENT
LOW…apps/navigation/src/background/NavigationController.ts2141 // NOTE: the former `triggerAutoRebuild()` (JS-side off-route → re-fireCOMMENT
LOW…apps/navigation/src/background/NavigationController.ts2161 // case where the pin is a building entrance set BACK from the walkableCOMMENT
LOW…s/navigation/src/background/managers/DisplayManager.ts21 static readonly HUD = {COMMENT
LOWminiapps/navigation/src/ui/pages/AddPlacePage/index.tsx41 const [loading, setLoading] = useState(false)COMMENT
LOWminiapps/navigation/src/ui/pages/AddPlacePage/index.tsx61 const [editingType, setEditingType] = useState<"home" | "work" | null>(presetType ?? null)COMMENT
LOWminiapps/navigation/src/ui/pages/AddPlacePage/index.tsx101 const queryRef = useRef(query)COMMENT
LOWminiapps/navigation/src/ui/pages/AddPlacePage/index.tsx141 }, [searchActive])COMMENT
LOWminiapps/navigation/src/ui/pages/AddPlacePage/index.tsx181 entryPushed: searchEntryPushedRef.current,COMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx61function normalizeRoad(road: string): string {COMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx81// PROBE_METERS is deliberately wide (~22m): real street corners areCOMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx301 // emits `off_route` on EVERY tick while you're off the path, soCOMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx321 if (status === "navigating") setOffRouteSticky(false)COMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx401 //COMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx741 // would be too easy to do by accident.COMMENT
LOW…igation/src/ui/pages/NavigationPage/NavigationPage.tsx781 lat: coord.lat,COMMENT
LOWminiapps/navigation/src/shared/maneuverDisplay.ts81 // but `kind` still points at the wrong/next turn — that's the flash of theCOMMENT
LOW…/example-miniapp/src/ui/pages/tester/StreamingPage.tsx1// Tester page — exercises session.stream.COMMENT
LOW…java/com/mentra/asg_client/camera/CameraConstants.java101 // =========================================================================COMMENT
LOW…client/io/bluetooth/managers/K900BluetoothManager.java121 75; // Delay between successful packets - BES2700 needs time to drain BLE TXCOMMENT
LOW…client/io/bluetooth/managers/K900BluetoothManager.java681 }COMMENT
LOW…/com/mentra/asg_client/io/ota/services/OtaService.java381 // was already cleared, e.g. by an installApk failure rollback). Without thisCOMMENT
LOW…ntra/asg_client/io/media/core/MediaCaptureService.java101 private volatile boolean isRecordingVideo = false;COMMENT
LOW…ntra/asg_client/io/media/core/MediaCaptureService.java241 // ~19KB single-notification ceiling. Two rules drive the ladder:COMMENT
LOW…java/com/mentra/asg_client/utils/PermissionsUtils.java161 Manifest.permission.BLUETOOTH_ADVERTISE,COMMENT
LOWasg_client/docs/fps-thermal-test/fps-thermal-test.sh1#!/usr/bin/env bashCOMMENT
LOWasg_client/docs/agents/set-ci-signing-secrets.sh1#!/usr/bin/env bashCOMMENT
LOWasg_client/scripts/update-mentra-live.sh1#!/bin/bashCOMMENT
LOWasg_client/scripts/test-apk-ota.sh1#!/bin/bashCOMMENT
LOWasg_client/scripts/test-webrtc-streaming.sh1#!/bin/bashCOMMENT
LOW…ent/scripts/assemble-release-upload-restore-version.sh1#!/usr/bin/env bashCOMMENT
LOWasg_client/scripts/fps-thermal-test.sh1#!/usr/bin/env bashCOMMENT
LOWasg_client/scripts/upload-asg-client-github-release.sh1#!/usr/bin/env bashCOMMENT
LOWasg_client/scripts/test-rtmp-streaming.sh1#!/bin/bashCOMMENT
LOWasg_client/scripts/test-mtk-ota.sh1#!/bin/bashCOMMENT
LOWasg_client/scripts/dev-setup.sh1#!/bin/bashCOMMENT
LOWagents/mentrajs-two-layer-miniapp-architecture.md661 // Fires once each time a WebView mounts and acks `mentra.ready()`.COMMENT
LOWmobile/boundary-allowlist.txt1# Temporary allowlist for production host files that still touch raw islandCOMMENT
LOWmobile/doppler.yaml1# Repo-level Doppler defaults for the mobile client.COMMENT
LOWmobile/metro.config.js61 // cloud-runtime/protocol entry is a shim that re-exports it, so bothCOMMENT
323 more matches not shown…
Hyper-Verbose Identifiers245 hits · 261 pts
SeverityFileLineSnippetContext
LOW…tions/src/background/controllers/CaptionsController.ts908export function isSupportedCaptionTimeoutSeconds(seconds: number): boolean {CODE
LOW…on/src/background/controllers/TranslationController.ts53function isSameLanguagePassthrough(CODE
LOW…erge/backend/src/services/insights/insights.service.ts336function isContextSensitiveWorkstream(text: string): boolean {CODE
LOW…gation/src/background/managers/AudioGuidanceManager.ts510export function selectAudioGuidanceDistance(CODE
LOWminiapps/navigation/src/ui/router.tsx34export function suppressNextRouterPopOnce(): void {CODE
LOWminiapps/navigation/src/ui/router.tsx42export function clearSuppressNextRouterPop(): void {CODE
LOWminiapps/navigation/src/ui/store/navStore.ts77export function installChannelSubscribers(): void {CODE
LOW…app/src/background/controllers/ElevenLabsController.ts1086async function fetchSignedUrlFromLocalServer(endpoint: string, agentId: string): Promise<string> {CODE
LOWagents/frame_supp.md147export function BrilliantLabsFramePairingGuide() {CODE
LOWagents/ios_ctkd_resolution.md497export function BluetoothAudioPairingGuide({CODE
LOW…s/2026-05-16-navigation-miniapp-two-layer-migration.md3012export function installChannelSubscribers(): void {CODE
LOWmobile/plugins/android.ts38function withAppBuildGradleModifications(config: any) {CODE
LOWmobile/plugins/android.ts185function withAndroidManifestModifications(config: any) {CODE
LOWmobile/plugins/android.ts475function withGradlePropertiesModifications(config: any) {CODE
LOWmobile/plugins/android.ts549function withSettingsGradleModifications(config: any) {CODE
LOWmobile/plugins/remove-ipad-orientations.js3module.exports = function withRemoveIpadOrientations(config) {CODE
LOWmobile/agents/notifications_restoration_plan.md252export async function setNotificationsBlocklist(blocklist: string[]) {CODE
LOWmobile/agents/notifications_restoration_plan.md256export async function getNotificationsBlocklist() {CODE
LOWmobile/agents/notifications_restoration_plan.md280export function usePhoneNotificationListener(onNotification?: (notification: PhoneNotification) => void) {CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py726 def incident_primary_sort_key(self, incident: dict[str, Any]) -> tuple[int, str, int, str]:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py733 def current_primary_incident_id(self, device_id: str) -> str | None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py740 def recompute_primary_incident(self, device_id: str, now_ms: int) -> tuple[str | None, str | None]:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py801 def snapshot_word_history_limit(self) -> int:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py804 def snapshot_completed_utterance_limit(self) -> int:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py807 def snapshot_recent_word_match_limit(self) -> int:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py817 def find_ongoing_incident_by_type(self, device_id: str, incident_type: str) -> dict[str, Any] | None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py766 def append_primary_transition_event(self, device_id: str, previous_primary_id: str | None, new_primary_id: str | NonCODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1084def build_candidate_token_positions(candidate_tokens: list[str]) -> dict[str, list[int]]:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1131def get_default_output_device_name() -> str | None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1154def ensure_audio_output_device(device_name: str) -> None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1203 def should_accept_display_payload(self, payload: dict[str, Any]) -> bool:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1352 def handle_captions_tester_incident_result(self, device_id: str, payload: dict[str, Any], now_ms: int) -> dict[str, CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1373 def find_latest_unreported_alert_id(self, device_id: str) -> str | None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1382 def handle_legacy_captions_tester_filed_log(self, device_id: str, line: str, now_ms: int) -> dict[str, Any] | None:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1611 def evaluate_high_average_latency_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> NCODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1683 def evaluate_audio_output_device_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> NoCODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1797 def evaluate_app_not_foreground_incident(self, device_id: str, device_state: MonitorDeviceState, now_ms: int) -> NonCODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1836 def handle_captions_app_lifecycle_line(self, device_id: str, line: str, now_ms: int) -> bool:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1888 def maybe_record_word_matches(CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts31function withSettingsGradleModifications(config: any) {CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts81function withGradlePropertiesModifications(config: any) {CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts129function withSherpaOnnxLocalMavenRepo(config: any) {CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withAndroid.ts194function withAnalyticsManifestMetadata(config: any, props: BluetoothSdkPluginProps | undefined) {CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withIos.ts79export function applyBluetoothSdkInfoPlist(CODE
LOWmobile/modules/bluetooth-sdk/plugin/src/withIos.ts103function withBluetoothSdkInfoPlist(config: any, props: BluetoothSdkPluginProps | undefined) {CODE
LOWmobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts65export function isConnectedGlassesConnectionStatus(CODE
LOWmobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts71export function isReadyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean {CODE
LOWmobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts75export function isBusyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean {CODE
LOWmobile/modules/bluetooth-sdk/src/BluetoothSdk.types.ts79export function createDisconnectedGlassesStatus(): Partial<GlassesStatus> {CODE
LOW…dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts342function dashboardMenuItemToNative(item: DashboardMenuItem): Record<string, unknown> {CODE
LOW…dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts350function adaptConnectionStatusToNative(connection: GlassesStatus["connection"]): Record<string, unknown> {CODE
LOW…dules/bluetooth-sdk/src/_private/BluetoothSdkModule.ts365function adaptGlassesUpdateToNative(values: Partial<GlassesStatus>): Record<string, unknown> {CODE
LOW…ules/bluetooth-sdk/src/_private/photoRequestPayload.ts5function photoTransferMethodForNative(value: unknown): PhotoTransferMethod {CODE
LOW…ules/bluetooth-sdk/src/_private/photoRequestPayload.ts38export function photoRequestParamsForNative(params: PhotoRequestParams): Record<string, string | number | boolean> {CODE
LOW…les/bluetooth-sdk/src/_private/cameraRequestPayload.ts10export function warmUpCameraParamsForNative(CODE
LOW…/modules/bluetooth-sdk/src/react/useMentraBluetooth.ts290 async function setVoiceActivityDetectionEnabled(enabled: boolean) {CODE
LOWmobile/modules/miniapp/src/dev-reload.ts23export function installDevReloadListenerIfDevMode(): void {CODE
LOWmobile/modules/miniapp/src/transport/mock.ts30export function isMockExplicitlyRequested(): boolean {CODE
LOWmobile/modules/miniapp/src/modules/languages.ts50export function requireTranscriptionLanguage(value: string, param: string): TranscriptionLanguage {CODE
LOWmobile/modules/miniapp/src/modules/navigation.ts641function buildNavRouteFromComputed(computed: ComputedRoute): NavRoute {CODE
185 more matches not shown…
Structural Annotation Overuse68 hits · 134 pts
SeverityFileLineSnippetContext
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java55 // Step 1: Send acknowledgment back to BESCOMMENT
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java58 // Step 2: Stop active video recording to finalize moov atom and prevent corruptionCOMMENT
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java61 // Step 3: Perform graceful shutdown after delay to ensure ACK is sent and recordingCOMMENT
LOWasg_client/scripts/restore-stock.sh92# Step 1: Uninstall third-party buildCOMMENT
LOWasg_client/scripts/restore-stock.sh103# Step 2: Re-enable stock appCOMMENT
LOWasg_client/scripts/restore-stock.sh114# Step 3: Grant permissions (failsafe)COMMENT
LOWasg_client/scripts/restore-stock.sh144# Step 4: Check for updatesCOMMENT
LOWasg_client/scripts/restore-stock.sh212# Step 5: Restore stock as default launcherCOMMENT
LOWasg_client/scripts/restore-stock.sh224# Step 6: Launch stock appCOMMENT
LOWasg_client/scripts/dev-setup.sh95# Step 1: Build the debug APKCOMMENT
LOWasg_client/scripts/dev-setup.sh118# Step 2: Put the stock firmware on a known-compatible staging baseline.COMMENT
LOWasg_client/scripts/dev-setup.sh124# Step 3: Disable stock and its recovery agents.COMMENT
LOWasg_client/scripts/dev-setup.sh138# Step 4: Uninstall any previous dev buildCOMMENT
LOWasg_client/scripts/dev-setup.sh143# Step 5: Install new buildCOMMENT
LOWasg_client/scripts/dev-setup.sh157# Step 6: Grant additional permissionsCOMMENT
LOWasg_client/scripts/dev-setup.sh188# Step 7: Set as default home launcherCOMMENT
LOWasg_client/scripts/dev-setup.sh202# Step 8: Launch the appCOMMENT
LOW…va/com/augmentos/otaupdater/worker/RecoveryWorker.java197 // Step 1: Try restarting the service multiple timesCOMMENT
LOW…va/com/augmentos/otaupdater/worker/RecoveryWorker.java219 // Step 2: If restart didn't work, try APK reinstallationCOMMENT
LOWagents/ai-denoising-plan.md158// Step 1: Lens distortion correction (existing)COMMENT
LOWagents/ai-denoising-plan.md159// Step 2: AI denoising (NEW)COMMENT
LOWagents/ai-denoising-plan.md164// Step 3: Tone mapping (existing)COMMENT
LOWagents/ai-denoising-plan.md165// Step 4: Color correction (existing)COMMENT
LOWagents/ai-denoising-plan.md219// Step 1: Lens distortion correction (existing)COMMENT
LOWagents/ai-denoising-plan.md220// Step 2: AI denoising (NEW)COMMENT
LOWagents/ai-denoising-plan.md224// Step 3: Tone mapping (existing)COMMENT
LOWagents/ai-denoising-plan.md225// Step 4: Vibrance (existing)COMMENT
LOWagents/ai-denoising-plan.md226// Step 5: Color correction (existing)COMMENT
LOWmobile/scripts/setup-ios.sh91 # Step 1: Install npm dependenciesCOMMENT
LOWmobile/scripts/setup-ios.sh96 # Step 2: Run expo prebuildCOMMENT
LOWmobile/scripts/setup-ios.sh101 # Step 3: Install CocoaPods dependenciesCOMMENT
LOWmobile/scripts/setup-ios.sh118 # Step 4: Open Xcode workspaceCOMMENT
LOWmobile/scripts/old/fix-android-build.sh18# Step 1: Clean all build artifacts, caches, and lock filesCOMMENT
LOWmobile/scripts/old/fix-android-build.sh35# Step 2: Install dependencies with clean slateCOMMENT
LOWmobile/scripts/old/fix-android-build.sh40# Step 3: Verify dependencies are healthyCOMMENT
LOWmobile/scripts/old/fix-android-build.sh49# Step 4: Prebuild with ExpoCOMMENT
LOWmobile/scripts/old/fix-android-build.sh54# Step 5: Fix React Native symlinksCOMMENT
LOWmobile/scripts/old/fix-android-build.sh90# Step 6: Clean Gradle cacheCOMMENT
LOWmobile/scripts/old/fix-android-build.sh95# Step 7: Final dependency checkCOMMENT
LOWmobile/scripts/old/fix-android-build.sh103# Step 8: Build AndroidCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift66 // Step 1: Lens distortion correctionCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift71 // Step 2: Tone mapping — S-curve + vibranceCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift77 // Step 3: Color correction — linear warmth/tintCOMMENT
LOW…c/main/java/com/mentra/crust/utils/ImageProcessor.java157 // Step 1: Lens distortion correctionCOMMENT
LOW…c/main/java/com/mentra/crust/utils/ImageProcessor.java165 // Step 2: Tone mapping + vibrance + color correction in linear spaceCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx100 // Step 1: Initial warningCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx111 // Step 2: Generic confirmation - delay to let first modal closeCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx123 // Step 3: Final severe warning - delay to let second modal closeCOMMENT
LOWmobile/src/app/auth/signup.tsx128 // Step 1: Email inputCOMMENT
LOWmobile/src/app/auth/signup.tsx172 // Step 2: Password + Confirm passwordCOMMENT
LOWmobile/src/utils/LogoutUtils.ts20 // Step 1: Sign out first, so the UI leaves the screen that called us.COMMENT
LOWmobile/src/utils/LogoutUtils.ts37 // Step 2: Let that unmount actually commit before destroying what it wasCOMMENT
LOWmobile/src/utils/LogoutUtils.ts42 // Step 3: Disconnect and forget any connected glassesCOMMENT
LOWmobile/src/utils/LogoutUtils.ts45 // Step 4: Stop island runtime servicesCOMMENT
LOWmobile/src/utils/LogoutUtils.ts48 // Step 5: Clear all app settings and user dataCOMMENT
LOWmobile/src/utils/LogoutUtils.ts51 // Step 6: Clear any remaining auth-related storageCOMMENT
LOWmobile/src/utils/LogoutUtils.ts54 // Step 7: Reset status providers and event emittersCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx51 // Step 1: Capture the current viewCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx58 // Step 2: Show the overlay with the old snapshotCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx63 // Step 3: Perform the navigation (user still sees old snapshot)COMMENT
8 more matches not shown…
Verbosity Indicators56 hits · 110 pts
SeverityFileLineSnippetContext
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java55 // Step 1: Send acknowledgment back to BESCOMMENT
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java58 // Step 2: Stop active video recording to finalize moov atom and prevent corruptionCOMMENT
LOW…core/handlers/subscribers/ShutdownEventSubscriber.java61 // Step 3: Perform graceful shutdown after delay to ensure ACK is sent and recordingCOMMENT
LOWasg_client/scripts/restore-stock.sh92# Step 1: Uninstall third-party buildCOMMENT
LOWasg_client/scripts/restore-stock.sh103# Step 2: Re-enable stock appCOMMENT
LOWasg_client/scripts/restore-stock.sh114# Step 3: Grant permissions (failsafe)COMMENT
LOWasg_client/scripts/restore-stock.sh144# Step 4: Check for updatesCOMMENT
LOWasg_client/scripts/restore-stock.sh212# Step 5: Restore stock as default launcherCOMMENT
LOWasg_client/scripts/restore-stock.sh224# Step 6: Launch stock appCOMMENT
LOWasg_client/scripts/dev-setup.sh95# Step 1: Build the debug APKCOMMENT
LOWasg_client/scripts/dev-setup.sh118# Step 2: Put the stock firmware on a known-compatible staging baseline.COMMENT
LOWasg_client/scripts/dev-setup.sh124# Step 3: Disable stock and its recovery agents.COMMENT
LOWasg_client/scripts/dev-setup.sh138# Step 4: Uninstall any previous dev buildCOMMENT
LOWasg_client/scripts/dev-setup.sh143# Step 5: Install new buildCOMMENT
LOWasg_client/scripts/dev-setup.sh157# Step 6: Grant additional permissionsCOMMENT
LOWasg_client/scripts/dev-setup.sh188# Step 7: Set as default home launcherCOMMENT
LOWasg_client/scripts/dev-setup.sh202# Step 8: Launch the appCOMMENT
LOW…va/com/augmentos/otaupdater/worker/RecoveryWorker.java197 // Step 1: Try restarting the service multiple timesCOMMENT
LOW…va/com/augmentos/otaupdater/worker/RecoveryWorker.java219 // Step 2: If restart didn't work, try APK reinstallationCOMMENT
LOWmobile/scripts/setup-ios.sh91 # Step 1: Install npm dependenciesCOMMENT
LOWmobile/scripts/setup-ios.sh96 # Step 2: Run expo prebuildCOMMENT
LOWmobile/scripts/setup-ios.sh101 # Step 3: Install CocoaPods dependenciesCOMMENT
LOWmobile/scripts/setup-ios.sh118 # Step 4: Open Xcode workspaceCOMMENT
LOWmobile/scripts/old/fix-android-build.sh18# Step 1: Clean all build artifacts, caches, and lock filesCOMMENT
LOWmobile/scripts/old/fix-android-build.sh35# Step 2: Install dependencies with clean slateCOMMENT
LOWmobile/scripts/old/fix-android-build.sh40# Step 3: Verify dependencies are healthyCOMMENT
LOWmobile/scripts/old/fix-android-build.sh49# Step 4: Prebuild with ExpoCOMMENT
LOWmobile/scripts/old/fix-android-build.sh54# Step 5: Fix React Native symlinksCOMMENT
LOWmobile/scripts/old/fix-android-build.sh90# Step 6: Clean Gradle cacheCOMMENT
LOWmobile/scripts/old/fix-android-build.sh95# Step 7: Final dependency checkCOMMENT
LOWmobile/scripts/old/fix-android-build.sh103# Step 8: Build AndroidCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift66 // Step 1: Lens distortion correctionCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift71 // Step 2: Tone mapping — S-curve + vibranceCOMMENT
LOW…le/modules/crust/ios/Source/utils/ImageProcessor.swift77 // Step 3: Color correction — linear warmth/tintCOMMENT
LOW…c/main/java/com/mentra/crust/utils/ImageProcessor.java157 // Step 1: Lens distortion correctionCOMMENT
LOW…c/main/java/com/mentra/crust/utils/ImageProcessor.java165 // Step 2: Tone mapping + vibrance + color correction in linear spaceCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx100 // Step 1: Initial warningCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx111 // Step 2: Generic confirmation - delay to let first modal closeCOMMENT
LOWmobile/src/app/miniapps/settings/profile.tsx123 // Step 3: Final severe warning - delay to let second modal closeCOMMENT
LOWmobile/src/app/auth/signup.tsx128 // Step 1: Email inputCOMMENT
LOWmobile/src/app/auth/signup.tsx172 // Step 2: Password + Confirm passwordCOMMENT
LOWmobile/src/utils/LogoutUtils.ts20 // Step 1: Sign out first, so the UI leaves the screen that called us.COMMENT
LOWmobile/src/utils/LogoutUtils.ts37 // Step 2: Let that unmount actually commit before destroying what it wasCOMMENT
LOWmobile/src/utils/LogoutUtils.ts42 // Step 3: Disconnect and forget any connected glassesCOMMENT
LOWmobile/src/utils/LogoutUtils.ts45 // Step 4: Stop island runtime servicesCOMMENT
LOWmobile/src/utils/LogoutUtils.ts48 // Step 5: Clear all app settings and user dataCOMMENT
LOWmobile/src/utils/LogoutUtils.ts51 // Step 6: Clear any remaining auth-related storageCOMMENT
LOWmobile/src/utils/LogoutUtils.ts54 // Step 7: Reset status providers and event emittersCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx51 // Step 1: Capture the current viewCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx58 // Step 2: Show the overlay with the old snapshotCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx63 // Step 3: Perform the navigation (user still sees old snapshot)COMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx66 // Step 4: Wait a frame for navigation to complete, then capture new viewCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx76 // Step 5: Set the new snapshotCOMMENT
LOW…rc/components/navigation/SnapshotTransitionOverlay.tsx79 // Step 6: Animate the transitionCOMMENT
LOWcloud-v2/tests/account-auth.integration.test.ts327 // Step 1: request. Issues a code to the new address, applies NOTHING yet.COMMENT
LOWcloud-v2/tests/account-auth.integration.test.ts338 // Step 2: a valid code (minted via the same service the email uses) applies it.COMMENT
Modern AI Meta-Vocabulary11 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUM…rc/main/java/com/mentra/asg_client/reporting/README.md42│ ├── ReportManager.java # Singleton manager orchestrating all providersCODE
MEDIUM…/src/main/java/com/mentra/asg_client/io/file/README.md21│ ├── FileManagerImpl.java # Main implementation orchestrating managersCODE
MEDIUMagents/miniapp-sdk-overview.md208bunx create-mentra-miniapp my-app # scaffoldCODE
MEDIUM…superpowers/plans/2026-08-26-public-hotspot-ota-api.md130### Task 1: Move orchestration into `useMentraLiveOta`COMMENT
MEDIUM…owers/plans/2026-08-27-cloud-v2-coordinated-release.md113## Phase 2: Dev and beta orchestrationCOMMENT
MEDIUM…owers/plans/2026-08-27-cloud-v2-coordinated-release.md165## Phase 3: Production orchestrationCOMMENT
MEDIUM…les/bluetooth-sdk/ios/Source/utils/JSCExperiment.swift34/// idevicesyslog is unreliable. The Documents file is the agentic-testCOMMENT
MEDIUMmobile/modules/miniapp/src/sub-path-types.test-d.ts55// ----- compile-time guardrails ------------------------------------------COMMENT
MEDIUM…sues/020-glasses-status-boundary/integration-review.md237## Residual scaffolding (reconciled from the PR #3298 review)COMMENT
MEDIUM…sues/020-glasses-status-boundary/integration-review.md239PR #3298 (`notes/pr3167-island-scaffolding-review.md`, written against #3167 atCODE
MEDIUMcloud-v2/docs/issues/004-cloud-client/design.md55 runtime.ts # cloud.runtime: the RuntimeModule, orchestrates the restCODE
AI Slop Vocabulary9 hits · 27 pts
SeverityFileLineSnippetContext
MEDIUMmobile/.maestro/flows/99-stress-jetsam-background.yaml7# Mount N dummies, then send the app to background. The harness's dwellCOMMENT
MEDIUMmobile/.maestro/flows/99-stress-jetsam-leak.yaml42# Leave the screen alive so the harness's dwell timer can collect samples.COMMENT
MEDIUMmobile/.maestro/flows/99-stress-jetsam-leak.yaml43# The harness will tear down via app launch state on the next run.COMMENT
MEDIUMmobile/.maestro/flows/99-stress-jetsam-long.yaml7# Mount N dummies, then send the app to background. The harness's dwellCOMMENT
MEDIUMmobile/.maestro/flows/99-stress-jetsam-foreground.yaml42# Leave the screen alive so the harness's dwell timer can collect samples.COMMENT
MEDIUMmobile/.maestro/flows/99-stress-jetsam-foreground.yaml43# The harness will tear down via app launch state on the next run.COMMENT
MEDIUMmobile/src/effects/Compositor.tsx209 // is seamless. Clamp the seed so a violent flick doesn't overshoot.COMMENT
MEDIUMcloud-v2/tests/soniox.integration.test.ts112 // robust word checks, not an exact match (STT punctuation/casing varies)COMMENT
MEDIUM…ackages/runtime/src/services/audio/providers/soniox.ts159 // Soniox identify even when hinted is robust to user accent / code-switch.)COMMENT
Example Usage Blocks18 hits · 26 pts
SeverityFileLineSnippetContext
LOWasg_client/docs/fps-thermal-test/fps-thermal-test.sh17# Usage:COMMENT
LOWasg_client/docs/agents/set-ci-signing-secrets.sh12# Usage:COMMENT
LOWasg_client/scripts/update-mentra-live.sh6# Usage:COMMENT
LOWasg_client/scripts/test-webrtc-streaming.sh4# Usage:COMMENT
LOWasg_client/scripts/update-stock-for-dev.sh7# Usage:COMMENT
LOWasg_client/scripts/restore-stock.sh8# Usage:COMMENT
LOWasg_client/scripts/fps-thermal-test.sh17# Usage:COMMENT
LOWasg_client/scripts/test-rtmp-streaming.sh4# Usage:COMMENT
LOWasg_client/scripts/test-mtk-ota.sh5# Usage:COMMENT
LOWasg_client/scripts/dev-setup.sh15# Usage:COMMENT
LOWmobile/scripts/runner-cleanup.sh30# Usage:COMMENT
LOWmobile/scripts/setup-runner.sh66# Usage:COMMENT
LOWmobile/scripts/stress-test/run-jetsam-test.sh13# Usage:COMMENT
LOWmobile/src/utils/dev/debugging.tsx291// Example usage:COMMENT
LOWmobile/src/theme/colorTools.ts109// Example usage:COMMENT
LOWscripts/fetch-incident-logs.sh8# Usage:COMMENT
LOWscripts/local-stream/watch-local-stream-stats.sh5# Usage:COMMENT
LOWcloud-v2/scripts/sync-doppler-to-porter.sh4# Usage:COMMENT
Redundant / Tautological Comments14 hits · 22 pts
SeverityFileLineSnippetContext
LOWasg_client/setup-sentry.sh12# Check if sentry.properties already existsCOMMENT
LOWasg_client/switch-sentry-env.sh14# Check if the environment configuration existsCOMMENT
LOWagents/xiaomi_glasses_wifi_capture.sh22 # Check if this line contains WiFi credentialsCOMMENT
LOWmobile/scripts/trim-transparent-borders.sh14# Check if ImageMagick is installedCOMMENT
LOWmobile/scripts/trim-transparent-borders.sh26# Check if directory existsCOMMENT
LOWmobile/scripts/setup-ios.sh169 # Check if we're in the right directoryCOMMENT
LOWmobile/scripts/setup-sherpa-onnx-optional.sh9# Check if we're in a "scripts" directoryCOMMENT
LOWmobile/scripts/old/fix-android-build.sh2# Check if we're in a "scripts" directoryCOMMENT
LOWmobile/scripts/old/fix-android-build.sh108# Check if build was successfulCOMMENT
LOWmobile/scripts/old/fix-react-native-symlinks.sh2# Check if we're in a "scripts" directoryCOMMENT
LOWmobile/scripts/old/fix-react-native-symlinks.sh25# Check if node_modules existsCOMMENT
LOWmobile/scripts/old/fixXcodeCompletely.sh3# Check if we're in a "scripts" directoryCOMMENT
LOW.github/workflows/mentra-asg-client-build.yml172 # Check if retry succeeded by looking for the APKCOMMENT
LOW.github/workflows/mentra-app-android-build.yml325 # Check if retry succeeded by looking for the APKCOMMENT
Fake / Example Data17 hits · 17 pts
SeverityFileLineSnippetContext
LOW…s/navigation/src/background/managers/DisplayManager.ts148 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum molCODE
LOW…s/navigation/src/background/managers/DisplayManager.ts148 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum molCODE
LOWasg_client/docs/ASG_CLIENT_API.md854{"type": "user_email", "email": "user@example.com"}CODE
LOWagents/miniapp-store-backend-plan.md334 "allowlist": ["user@example.com", "..."] // required when policy=ALLOWLISTCODE
LOWagents/tpa_triggers_wifi_setup_plan.md710 userId: "user@example.com",CODE
LOWagents/tpa_triggers_wifi_setup_plan.md765 userId: "user@example.com",CODE
LOWmobile/TEST_GALLERY_GUIDE.md74All test images are served from **picsum.photos** - a free Lorem Ipsum service for photos:CODE
LOWmobile/agents/notifications_restoration_plan.md398 "title": "John Doe",CODE
LOWmobile/agents/notifications_restoration_plan.md412 "title": "John Doe",CODE
LOW…droid/src/main/java/com/mentra/bluetoothsdk/sgcs/G1.kt3689 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.kt3689 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.ts19 expect(redactSecrets("user@example.com")).toBe("user@example.com")CODE
LOWmobile/assets/icons/tabler/glyph-map.json3705 "placeholder": 63014,CODE
LOWmobile/src/components/glasses/Gallery/GalleryScreen.tsx73 type: "server" | "local" | "placeholder"CODE
LOWmobile/src/components/glasses/Gallery/GalleryScreen.tsx968 type: "placeholder" as const,CODE
LOWsdk/miniapp-cli/src/qr.test.ts58 writeFileSync(outPath, 'placeholder', {mode: 0o644});CODE
LOW…-v2/packages/runtime/src/services/audio/result.test.ts19 mentraUserId: "user@example.com",CODE
Excessive Try-Catch Wrapping14 hits · 12 pts
SeverityFileLineSnippetContext
LOWmobile/e2e-tests/scripts/live_word_monitor.py331 except Exception:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py380 except Exception:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1335 except Exception as exc:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1677 except Exception as exc:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1762 except Exception as exc:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1997 except Exception as exc:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py2117 except Exception as exc:CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py2153 except Exception as exc:CODE
LOWmobile/scripts/stress-test/run-jetsam-test.sh248 except Exception:CODE
LOWscripts/local-stream/watch-local-stream-stats.sh72except Exception:CODE
LOWscripts/local-stream/watch-local-stream-stats.sh144except Exception:CODE
LOWscripts/local-stream/start-local-stream.sh94 except Exception:CODE
LOWscripts/local-stream/start-local-stream.sh121 except Exception:CODE
LOWscripts/local-stream/start-local-stream.sh164 except Exception:CODE
Unused Imports8 hits · 8 pts
SeverityFileLineSnippetContext
LOWmobile/e2e-tests/scripts/live_word_monitor.py6CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py3CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py5CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py9CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py11CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py12CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py13CODE
LOW…ndroid/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py16CODE
Deep Nesting8 hits · 4 pts
SeverityFileLineSnippetContext
LOWmobile/e2e-tests/scripts/live_word_monitor.py456CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py531CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1091CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1728CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1836CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py1888CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py2005CODE
LOWmobile/e2e-tests/scripts/live_word_monitor.py2121CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMcloud-v2/doppler.yaml8# This file is checked in. It contains NO secrets — only project pointer.COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…e/core/handlers/subscribers/ButtonEventSubscriber.java292 // TODO: implement this at a later timeCOMMENT
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…bile/modules/bluetooth-sdk/ios/Source/sgcs/Mach1.swift533 // // don't forget to commit, this is a common mistake.COMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWmobile/e2e-tests/scripts/live_word_monitor.py1551 def update_drop_tracking(self, device_id: str, device_state: MonitorDeviceState, utterance: UtteranceState | None, nCODE