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 summarizes scanner evidence for Mentra-Community/MentraOS, a TypeScript project with 2,396 GitHub stars. SynthScan examined 1,060,267 lines of code across 4700 source files, recording 1904 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 3.0 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1587 finding(s).
Are imports declared and package/API names verified? 115 finding(s).
Are wrappers, guards, and repeated structures necessary? 1085 finding(s).
Which changes need focused human review? 1904 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1904 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ndroid/src/main/java/com/mentra/bluetoothsdk/Bridge.kt | 105 | com.mentra.bluetoothsdk.utils.NativeLog.i(TAG, message) | CODE |
| CRITICAL | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 907 | com.mentra.bluetoothsdk.stt.WakeWordDetector.configure(enabled, modelDir) | CODE |
| CRITICAL | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 931 | com.mentra.bluetoothsdk.stt.SpeechActivityDetector.configure(enabled, minSilenceMs) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1046 | com.mentra.bluetoothsdk.stt.STTTools.setSttModelDetails(context, path, languageCode) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1054 | com.mentra.bluetoothsdk.stt.STTTools.getSttModelPath(context) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1062 | com.mentra.bluetoothsdk.stt.STTTools.checkSTTModelAvailable(context) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1066 | com.mentra.bluetoothsdk.stt.STTTools.validateSTTModel(path) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1074 | com.mentra.bluetoothsdk.stt.STTTools.extractTarBz2(sourcePath, destinationPath) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1085 | com.mentra.core.tts.TTSTools.setTtsModelDetails(context, path, languageCode) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1093 | com.mentra.core.tts.TTSTools.getTtsModelPath(context) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1101 | com.mentra.core.tts.TTSTools.getTtsModelLanguage(context) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1109 | com.mentra.core.tts.TTSTools.checkTTSModelAvailable(context) | CODE |
| CRITICAL⚡ | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1113 | com.mentra.core.tts.TTSTools.validateTTSModel(path) | CODE |
| CRITICAL | …ain/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt | 1129 | com.mentra.core.tts.TTSTools.generateTtsAudio( | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 377 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Processing received bytes for JSON extraction"); | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 381 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Received data is null or too short to be val | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 387 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Not in K900 protocol format (missing ## mark | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 402 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Command type: 0x" + String.format("%02X", comman | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 407 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Not a JSON/string command type (0x30), got: | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 413 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Received data size (" + data.length + | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 420 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "End markers ($$) not found where expected"); | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 432 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Extracted JSON payload bytes: " + payloadLen | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 434 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "Error converting payload to string", e); | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 440 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Payload is not valid JSON"); | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 451 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Detected C-wrapped format"); | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 458 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Inner content is not JSON, returning | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 467 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "Error parsing JSON payload: " + e.getMessage | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 499 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "📦 JSON DATA BEFORE C-WRAPPING: " + origi | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 503 | if (com.mentra.bluetoothsdk.utils.NativeLog.isLoggable("K900ProtocolUtils", com.mentra.bluetoothsdk.util | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 508 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "📦 AFTER C-WRAPPING & PROTOCOL FORMAT | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 509 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "📦 Total formatted length: " + format | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 515 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "📦 Data already C-wrapped or not JSON: " | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 516 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Formatting data with K900 protocol (addi | CODE |
| CRITICAL⚡ | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 521 | com.mentra.bluetoothsdk.utils.NativeLog.d("K900ProtocolUtils", "Applying protocol format to raw bytes"); | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 81 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "Error creating JSON wrapper", e); | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 193 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "Error creating JSON wrapper for K900", e); | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 217 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "🔄 Formatting message: " + jsonData); | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 228 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "🔄 After C-wrapping: " + wrappedJson); | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 246 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "❌ Error in formatMessageForTransmission", e) | CODE |
| CRITICAL | …a/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java | 265 | com.mentra.bluetoothsdk.utils.NativeLog.e("K900ProtocolUtils", "Error creating C-wrapped JSON", e); | CODE |
| CRITICAL | …d/src/main/java/com/mentra/bluetoothsdk/utils/AES.java | 32 | com.mentra.bluetoothsdk.utils.NativeLog.e("AES", "Native exception", e); | CODE |
| CRITICAL | …d/src/main/java/com/mentra/bluetoothsdk/utils/AES.java | 35 | com.mentra.bluetoothsdk.utils.NativeLog.e("AES", "Native exception", e); | CODE |
| CRITICAL | …ntra/bluetoothsdk/utils/audio/ByteUtilAudioPlayer.java | 192 | com.mentra.bluetoothsdk.utils.NativeLog.e("ByteUtilAudioPlayer", "Native exception", e); | CODE |
| CRITICAL | …id/src/main/java/com/mentra/bluetoothsdk/sgcs/Mach1.kt | 1130 | com.mentra.bluetoothsdk.utils.NativeLog.e("Mach1", "Native exception", e!!) | CODE |
| CRITICAL | …c/main/java/com/mentra/bluetoothsdk/sgcs/MentraLive.kt | 4442 | com.mentra.bluetoothsdk.streaming.StreamControllerProbe.response(values)?.let { | CODE |
| CRITICAL | …/src/main/java/com/mentra/bluetoothsdk/tts/TTSTools.kt | 167 | com.mentra.bluetoothsdk.utils.NativeLog.e("TTSTools", "Native exception", e) | CODE |
| CRITICAL | …main/java/com/mentra/bluetoothsdk/services/PhoneMic.kt | 358 | com.mentra.bluetoothsdk.utils.NativeLog.e("PhoneMic", "Native exception", e) | CODE |
| CRITICAL | …/src/main/java/com/mentra/bluetoothsdk/stt/STTTools.kt | 300 | com.mentra.bluetoothsdk.utils.NativeLog.e("STTTools", "Native exception", e) | CODE |
| CRITICAL | …t/java/com/mentra/acsmeeting/audio/PcmResamplerTest.kt | 99 | assertThat(pieces[i].toInt()).isCloseTo(whole[i].toInt(), org.assertj.core.data.Offset.offset(1)) | CODE |
| CRITICAL | …t/java/com/mentra/acsmeeting/audio/PcmResamplerTest.kt | 122 | assertThat(taps.sum().toDouble()).isCloseTo(1.0, org.assertj.core.data.Offset.offset(1e-4)) | CODE |
| CRITICAL | …rc/main/java/com/mentra/acsmeeting/AcsMeetingModule.kt | 110 | com.mentra.glassesmedia.trace.SoftApTrace.begin(traceId) | CODE |
| CRITICAL | …rc/main/java/com/mentra/acsmeeting/AcsMeetingModule.kt | 153 | com.mentra.glassesmedia.trace.SoftApTrace.failure("scoped_network_lost_midcall", "code" to error.code) | CODE |
| CRITICAL | …rc/main/java/com/mentra/acsmeeting/AcsMeetingModule.kt | 168 | com.mentra.glassesmedia.trace.SoftApTrace.failure("wifi_disabled_at_join") | CODE |
| CRITICAL | …rc/main/java/com/mentra/acsmeeting/AcsMeetingModule.kt | 175 | com.mentra.glassesmedia.trace.SoftApTrace.stage( | CODE |
| CRITICAL | mobile/modules/crust/plugin/src/withAndroid.ts | 154 | if (com.mentra.crust.services.NotificationProcess.isCurrent(this)) { | CODE |
| CRITICAL | mobile/modules/crust/plugin/src/withAndroid.ts | 160 | if (com.mentra.crust.services.NotificationProcess.isCurrent(this)) { | CODE |
| CRITICAL | mobile/modules/crust/plugin/src/withAndroid.ts | 178 | if (com.mentra.crust.services.NotificationProcess.isCurrent(this)) { | CODE |
| CRITICAL | mobile/modules/crust/plugin/src/withAndroid.ts | 184 | if (com.mentra.crust.services.NotificationProcess.isCurrent(this)) { | CODE |
| CRITICAL⚡ | …/android/src/main/java/com/mentra/crust/CrustModule.kt | 488 | com.google.android.gms.location.LocationRequest.Builder( | CODE |
| CRITICAL⚡ | …/android/src/main/java/com/mentra/crust/CrustModule.kt | 495 | com.google.android.gms.location.LocationSettingsRequest.Builder() | CODE |
| 16 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tions/src/background/controllers/CaptionsController.ts | 751 | export function isSupportedCaptionTimeoutSeconds(seconds: number): boolean { | CODE |
| LOW | …on/src/background/controllers/TranslationController.ts | 52 | function isSameLanguagePassthrough( | 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 | 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 | 57 | function withProjectBuildGradleModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 161 | function withAppBuildGradleModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 311 | function withAndroidManifestModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 621 | function withGradlePropertiesModifications(config: any) { | CODE |
| LOW | mobile/plugins/android.ts | 695 | function withSettingsGradleModifications(config: any) { | CODE |
| LOW | mobile/plugins/remove-ipad-orientations.js | 3 | module.exports = function withRemoveIpadOrientations(config) { | CODE |
| LOW | mobile/ci/coordinated-downloads-test.py | 21 | def test_registered_device_export_explicitly_preserves_swift_symbols(self): | CODE |
| LOW | mobile/ci/coordinated-downloads-test.py | 37 | def test_ota_runtime_override_cannot_hide_behind_correct_bundle_strings(self): | CODE |
| LOW | mobile/ci/coordinated-downloads-test.py | 85 | def test_accepts_resigning_without_dropping_the_bytewise_guarantee(self): | CODE |
| LOW | mobile/ci/coordinated-downloads-test.py | 93 | def test_accepts_changed_signature_allocation_without_touching_signed_exports(self): | CODE |
| LOW | mobile/ci/coordinated-downloads-test.py | 111 | def test_changed_code_is_rejected_and_exact_pair_survives_temporary_cleanup(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 15 | def test_legacy_download_includes_the_shared_app_lease_dependency(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 54 | def test_allows_one_profile_for_both_device_types(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 57 | def test_rejects_app_store_enterprise_development_and_expired_profiles(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 85 | def test_accepts_embedded_pin_for_both_iphone_and_mac(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 88 | def test_rejects_disabled_ota_and_stale_head_or_pr(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 96 | def test_packaged_config_cannot_silently_disable_or_override_embedded_pin(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 105 | def test_requires_exported_expo_config(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 118 | def test_records_the_backend_selected_by_the_pr_base(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 124 | def test_never_relabels_another_backend_or_a_different_compilation(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 138 | def test_failed_private_signing_is_not_reported_as_success(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 143 | def test_private_probe_uses_selected_identity_and_rejects_a_different_signer(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_artifacts.py | 151 | def test_framework_signing_only_mutates_a_temporary_copy(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 177 | def test_framework_symlinks_cannot_escape_to_other_files(self): | CODE |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 189 | def test_existing_signing_selection_does_not_need_profile_or_secret_import(self): | CODE |
| LOW | mobile/ci/pr-ios/test_cleanup_workflow.py | 33 | def test_directory_not_empty_and_busy_races_recover(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_cleanup_workflow.py | 49 | def test_persistent_race_exhausts_bounded_retries_and_fails(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_cleanup_workflow.py | 57 | def test_permission_and_io_errors_fail_without_retry(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_cleanup_workflow.py | 64 | def test_missing_child_is_retried_but_missing_root_is_success(self): | CODE |
| LOW | mobile/ci/pr-ios/test_cleanup_workflow.py | 78 | def test_root_recreated_after_deletion_is_retried(self): | CODE |
| LOW | mobile/ci/pr-ios/test_cleanup_workflow.py | 91 | def test_cli_removes_only_requested_outputs_and_preserves_symlink_destination(self): | CODE |
| LOW | mobile/ci/pr-ios/test_cleanup_workflow.py | 117 | def test_cli_refuses_a_symlinked_parent_directory(self): | CODE |
| LOW | mobile/ci/pr-ios/test_cleanup_workflow.py | 129 | def test_bootstrap_precedes_checkout_and_clean_retry_reuses_it(self): | CODE |
| LOW | mobile/ci/pr-ios/test_repackage.py | 44 | def test_repackaging_updates_pr_identity_and_ota_without_changing_compiled_code(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_repackage.py | 55 | def test_rejects_mutated_javascript_or_resources(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_repackage.py | 61 | def test_rejects_mutated_native_code_even_after_valid_resigning(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_repackage.py | 69 | def test_signature_allocation_does_not_reject_unchanged_compiled_app(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_repackage.py | 79 | def test_rejects_unrelated_info_plist_changes(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_repackage.py | 87 | def test_legacy_or_different_source_artifacts_require_compilation(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 27 | def test_installer_origin_follows_the_building_repository(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 33 | def test_missing_credentials_fail_before_importing_or_building(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 39 | def test_only_one_valid_mentra_developer_id_application_is_accepted(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 54 | def test_intermediate_match_requires_exact_der_bytes(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 64 | def test_existing_exact_intermediate_is_not_imported_again(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 73 | def test_missing_intermediate_is_imported_and_verified_in_the_exact_job_keychain(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 82 | def test_intermediate_failures_are_not_treated_as_already_installed(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 182 | def test_doppler_rejects_unrelated_secret_names_and_invalid_service_tokens_without_requests(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 191 | def test_secret_failure_does_not_echo_password_or_command(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 198 | def test_secret_timeout_does_not_echo_password_or_command(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 206 | def test_signing_lock_wait_does_not_use_the_general_command_timeout(self): | CODE |
| LOW⚡ | mobile/ci/pr-ios/test_mac_installer.py | 290 | def test_rejected_notarization_keeps_diagnostics_and_never_staples(self): | CODE |
| 823 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 72 | // ── Settings defaults (mirror SettingsManager) ───────────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 112 | // ── Settings state (SettingsManager) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 115 | // ── Transcript list state (TranscriptsManager) ─────────────────────────── | COMMENT |
| MEDIUM⚡ | …tions/src/background/controllers/CaptionsController.ts | 119 | // ── Display state (DisplayManager) ─────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 185 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 187 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 263 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 265 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 414 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 416 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 485 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 487 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 623 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tions/src/background/controllers/CaptionsController.ts | 625 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/captions/src/shared/channels.ts | 26 | // ── background → UI ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | miniapps/captions/src/shared/channels.ts | 43 | // ── UI → background ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 88 | // ── Playback state ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 108 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 110 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 206 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 208 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 229 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 231 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 306 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 308 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 383 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 385 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 419 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 421 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 506 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 508 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 633 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 635 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 666 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 668 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 750 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 752 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 775 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …r/src/background/controllers/TeleprompterController.ts | 777 | // ─────────────────────────────────────────────────────────────────────── | 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 | 88 | // ── Settings defaults (mirror SettingsManager) ───────────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 124 | // ── Settings state (SettingsManager) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 127 | // ── Translation list state ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …on/src/background/controllers/TranslationController.ts | 131 | // ── Display state (DisplayManager) ─────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 195 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 197 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 251 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 253 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 304 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 306 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 440 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 442 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 488 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 490 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 623 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …on/src/background/controllers/TranslationController.ts | 625 | // ─────────────────────────────────────────────────────────────────────── | COMMENT |
| 107 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 | …r/src/background/controllers/TeleprompterController.ts | 641 | this.manualTopLine = null | 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 | ? this.cachedInstructions[i] || null | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 621 | // Push the initial pivot snapshot. The SDK's onPivot only fires | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 741 | this.cancelPendingRebuild() | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1261 | // "Welcome" on the glasses after dispose() has already cleared. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1541 | COMMENT | |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1561 | // layout, same source, same precedence. If you tweak one, tweak the | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1581 | // stays null below, which clears the HUD. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1601 | // box is — recomputed live from this.coords against the route polyline | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1621 | // replaces the distance right at the turn. The ARROW and atTurn come from | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1681 | // The separate top maneuver box lagged/glitched, so we drop it and blank it. | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1721 | } | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1801 | /** | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 1841 | // position after a burst of rapid GPS fixes still reaches the glasses. (A | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2061 | /* next maneuver tick will retry */ | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2101 | // the HUD) or the user returns to within ADVISORY_M (back to the original | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2141 | this.appendLog(`[NavOffRoute] ${msg}`) | COMMENT |
| LOW | …apps/navigation/src/background/NavigationController.ts | 2161 | // 1. ALONG-ROUTE: the user has walked nearly the whole route polyline (the | COMMENT |
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 61 | // without overlapping and still fit the 220px-tall HUD canvas exactly. | 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 | agents/mentrajs-two-layer-miniapp-architecture.md | 661 | // Fires once each time a WebView mounts and acks `mentra.ready()`. | COMMENT |
| LOW | mobile/jest.setup.js | 321 | default: {forwardEvent: jest.fn()}, | 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 | // exact import specifiers to their source files sidesteps that and the package | COMMENT |
| LOW | mobile/metro.config.js | 81 | // we hit exactly this (an engine-side rename never took effect; a stale | COMMENT |
| LOW | mobile/metro.config.js | 101 | "@mentra/miniapp/react": path.join(MINIAPP_SRC, "react/index"), | COMMENT |
| LOW | mobile/.maestro/scripts/stream-preview-run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | mobile/.maestro/flows/99-stress-jetsam-leak.yaml | 1 | appId: ${MAESTRO_APP_ID} | COMMENT |
| LOW | mobile/.maestro/flows/99-stress-jetsam-foreground.yaml | 1 | appId: ${MAESTRO_APP_ID} | COMMENT |
| LOW | mobile/scripts/runner-cleanup.sh | 1 | #!/bin/bash | COMMENT |
| LOW | mobile/scripts/runner-cleanup.sh | 21 | # * ~/.android/avd (any configured emulators) | COMMENT |
| LOW | mobile/scripts/setup-runner.sh | 1 | #!/bin/bash | COMMENT |
| LOW | mobile/scripts/setup-runner.sh | 21 | # (sudo xcodebuild -license accept will be run by this script too.) | COMMENT |
| LOW | mobile/scripts/setup-runner.sh | 41 | # GH_RUNNER_TOKEN - short-lived registration token from | COMMENT |
| LOW | mobile/scripts/stress-test/run-jetsam-test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | mobile/modules/jspolyfill/src/startup.ts | 861 | if (bits >= 8) { | COMMENT |
| LOW | …e/modules/bluetooth-sdk/ios/Source/DeviceManager.swift | 1 | // | COMMENT |
| LOW | …ile/modules/bluetooth-sdk/ios/Source/Bridging-Header.h | 1 | // | COMMENT |
| LOW | …ios/Source/internal/BluetoothSdkAnalyticsTracker.swift | 21 | let name: String | COMMENT |
| LOW | …les/bluetooth-sdk/ios/Source/utils/JSCExperiment.swift | 1 | // | COMMENT |
| 488 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 119 | # 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 | 71 | // Step 1: Initial warning | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 82 | // Step 2: Generic confirmation - delay to let first modal close | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 94 | // Step 3: Final severe warning - delay to let second modal close | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 129 | // Step 1: Email input | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 173 | // Step 2: Password + Confirm password | COMMENT |
| LOW | mobile/src/utils/LogoutUtils.ts | 23 | // Step 1: Invalidate both local credential owners before waiting for | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 64 | // Step 2: Let that unmount actually commit before destroying what it was | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 69 | // Step 3: Disconnect and forget any connected glasses | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 72 | // Step 4: Stop island runtime services | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 75 | // Step 5: Clear all app settings and user data | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 78 | // Step 6: Clear any remaining auth-related storage | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 81 | // 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 | 387 | // Step 1: request. Issues a code to the new address, applies NOTHING yet. | COMMENT |
| LOW | cloud-v2/tests/account-auth.integration.test.ts | 398 | // Step 2: a valid code (minted via the same service the email uses) applies it. | COMMENT |
| LOW | …d-v2/docs/runbooks/incident-response/pod-crash-loop.md | 24 | ### Step 1: What was the exit code? | COMMENT |
| LOW | …d-v2/docs/runbooks/incident-response/pod-crash-loop.md | 37 | ### Step 2: Look at the logs leading up to the crash | COMMENT |
| LOW | …d-v2/docs/runbooks/incident-response/pod-crash-loop.md | 56 | ### Step 3: Was a deploy just rolling? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 119 | # 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 | 71 | // Step 1: Initial warning | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 82 | // Step 2: Generic confirmation - delay to let first modal close | COMMENT |
| LOW | mobile/src/app/miniapps/settings/profile.tsx | 94 | // Step 3: Final severe warning - delay to let second modal close | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 129 | // Step 1: Email input | COMMENT |
| LOW | mobile/src/app/auth/signup.tsx | 173 | // Step 2: Password + Confirm password | COMMENT |
| LOW | mobile/src/utils/LogoutUtils.ts | 23 | // Step 1: Invalidate both local credential owners before waiting for | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 64 | // Step 2: Let that unmount actually commit before destroying what it was | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 69 | // Step 3: Disconnect and forget any connected glasses | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 72 | // Step 4: Stop island runtime services | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 75 | // Step 5: Clear all app settings and user data | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 78 | // Step 6: Clear any remaining auth-related storage | COMMENT |
| LOW⚡ | mobile/src/utils/LogoutUtils.ts | 81 | // 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 | 387 | // Step 1: request. Issues a code to the new address, applies NOTHING yet. | COMMENT |
| LOW | cloud-v2/tests/account-auth.integration.test.ts | 398 | // Step 2: a valid code (minted via the same service the email uses) applies it. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mobile/e2e-tests/scripts/live_word_monitor.py | 324 | except Exception: | CODE |
| HIGH | mobile/e2e-tests/scripts/live_word_monitor.py | 2164 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | mobile/e2e-tests/scripts/live_word_monitor.py | 2251 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | mobile/e2e-tests/scripts/live_word_monitor.py | 2198 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | mobile/e2e-tests/scripts/live_word_monitor.py | 1306 | except (ValueError, TypeError): | CODE |
| HIGH | examples/bluetooth/local-demo-cloud/server.py | 90 | except OSError: | CODE |
| HIGH | examples/bluetooth/photo-webhook-server/server.py | 126 | except OSError: | CODE |
| HIGH | examples/bluetooth/photo-webhook-server/server.py | 133 | except OSError: | CODE |
| HIGH | examples/bluetooth/photo-webhook-server/server.py | 337 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | …loy/azure/enterprise-reference/installer/test_setup.py | 278 | except RuntimeError: | CODE |
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 1965 | except SetupError: | CODE |
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 828 | except ValueError: | CODE |
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 1203 | except (OSError, http.client.HTTPException, ValueError, AttributeError): | CODE |
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 789 | except ValueError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .gitguardian.yaml | 7 | # Fake handshake token in the StreamPreview test harness; never a credential. | COMMENT |
| MEDIUM | .gitguardian.yaml | 10 | # SHA-256 of the earlier StreamPreview harness token fixture (GitGuardian incident 37534669). | COMMENT |
| 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/contexts/AuthContext.tsx | 98 | // chooses the consumer path. Preserve seamless upgrades for already | COMMENT |
| MEDIUM | mobile/src/effects/Compositor.tsx | 303 | // 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 | 201 | // Soniox identify even when hinted is robust to user accent / code-switch.) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 195 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum mol | CODE |
| LOW | …s/navigation/src/background/managers/DisplayManager.ts | 195 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec venenatis vulputate lorem. Maecenas vestibulum mol | 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 | 21 | 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 | 982 | type: "placeholder" as const, | CODE |
| LOW | sdk/miniapp-cli/src/qr.test.ts | 58 | writeFileSync(outPath, 'placeholder', {mode: 0o644}); | CODE |
| LOW⚡ | …loy/azure/enterprise-reference/installer/test_setup.py | 670 | setup.update_configuration(self.directory, self.config, self.state, coreAdminEmails='admin@example.com') | CODE |
| LOW⚡ | …loy/azure/enterprise-reference/installer/test_setup.py | 674 | self.assertEqual(config['coreAdminEmails'], 'admin@example.com') | CODE |
| LOW | cloud-v2/tests/miniapp-registry.integration.test.ts | 275 | const by = {reason: "test", createdBy: "admin@example.com"} | CODE |
| LOW | …oud-v2/tests/client-workspaces-api.integration.test.ts | 200 | const ws = await workspaceWithOwner("Acme Corp") | CODE |
| LOW | …oud-v2/tests/client-workspaces-api.integration.test.ts | 205 | workspace: {workspaceId: ws, name: "Acme Corp", role: "developer", membershipId: "wm_mu_dev"}, | CODE |
| LOW | cloud-v2/tests/registry-service-api.integration.test.ts | 240 | const by = {reason: "test", createdBy: "admin@example.com"} | CODE |
| LOW | …ges/workspace-contract/src/forwarded-principal.test.ts | 34 | email: "admin@example.com", | CODE |
| LOW | …-v2/packages/runtime/src/services/audio/result.test.ts | 19 | mentraUserId: "user@example.com", | CODE |
| LOW | …oud-v2/packages/console-mcp/test/id-resolution.test.ts | 18 | mentraUserId: "user@example.com", | CODE |
| LOW | cloud-v2/packages/workspace-ui/src/test-dom.tsx | 131 | const SPOKEN_ATTRIBUTES = ["aria-label", "aria-description", "aria-roledescription", "aria-valuetext", "aria-placeholder | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 |
|---|---|---|---|---|
| LOW | mobile/ci/pr-ios/keychain-search.py | 24 | CODE | |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 15 | CODE | |
| LOW | mobile/ci/pr-ios/test_artifacts.py | 27 | CODE | |
| LOW | mobile/ci/pr-ios/test_mac_installer.py | 121 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 449 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 524 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1084 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1287 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1712 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1820 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1872 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1989 | CODE | |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2105 | CODE | |
| LOW | examples/bluetooth/local-demo-cloud/server.py | 313 | CODE | |
| LOW | examples/bluetooth/photo-webhook-server/server.py | 309 | CODE | |
| LOW | .github/scripts/repackage-pr-apk.py | 19 | CODE | |
| LOW | .github/scripts/repackage-pr-apk.py | 75 | CODE | |
| LOW | .github/scripts/ios-build-timeline.py | 75 | CODE | |
| LOW | …loy/azure/enterprise-reference/installer/test_setup.py | 155 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 756 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1028 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1193 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1461 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1539 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1564 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 1779 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 2496 | CODE | |
| LOW | …2/deploy/azure/enterprise-reference/installer/setup.py | 2541 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/ci/pr-ios/mac_installer.py | 55 | except Exception as error: | CODE |
| LOW | mobile/ci/pr-ios/mac_installer.py | 113 | except Exception: | CODE |
| MEDIUM | mobile/ci/pr-ios/mac_installer.py | 63 | def run(*arguments, input=None, private=False, timeout=180): | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 324 | except Exception: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 373 | except Exception: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1273 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1284 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1661 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1746 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 1981 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2101 | except Exception as exc: | CODE |
| LOW | mobile/e2e-tests/scripts/live_word_monitor.py | 2137 | except Exception as exc: | CODE |
| LOW | mobile/scripts/stress-test/run-jetsam-test.sh | 248 | except Exception: | CODE |
| LOW | examples/bluetooth/photo-webhook-server/server.py | 230 | except Exception as error: # noqa: BLE001 - demo server should return readable errors. | 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 |
| MEDIUM | …ploy/azure/enterprise-reference/installer/bootstrap.sh | 44 | print('Error: ' + message, file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 170 | # 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 | 461 | # Check if retry succeeded by looking for the APK | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mobile/ci/pr-ios/test_repackage.py | 9 | CODE | |
| 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 | |
| LOW | examples/bluetooth/local-demo-cloud/server.py | 4 | CODE | |
| LOW | examples/bluetooth/photo-webhook-server/server.py | 4 | CODE | |
| LOW | .github/scripts/ios-build-timeline.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 1034 | command = f'''bun -e "console.log('MENTRA_SCRIPT_READY'); const rl=require('node:readline').createInterface({{input: | CODE |
| HIGH | …2/deploy/azure/enterprise-reference/installer/setup.py | 2116 | '$existing = try { Get-CsApplicationAccessPolicy -Identity MentraMeetings } catch { $null }', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | cloud-v2/doppler.yaml | 8 | # This file is checked in. It contains NO secrets — only project pointer. | COMMENT |
| MEDIUM | …e/enterprise-reference/scripts/ensure-vault-secrets.sh | 4 | # Create the deployment's signing keys directly in Key Vault, exactly once. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …bile/modules/bluetooth-sdk/ios/Source/sgcs/Mach1.swift | 545 | // // 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 | 1535 | def update_drop_tracking(self, device_id: str, device_state: MonitorDeviceState, utterance: UtteranceState | None, n | CODE |