AI that sees your screen, listens to your conversations and tells you what to do
This report summarizes scanner evidence for BasedHardware/omi, a Python project with 13,683 GitHub stars. SynthScan examined 4,537,412 lines of code across 14918 source files, recording 48677 pattern matches distributed across 28 syntactic categories. The legacy adjusted pattern signal is 12.6 (Moderate 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.
Can maintainers explain intent, assumptions, and trade-offs? 39054 finding(s).
Are imports declared and package/API names verified? 3200 finding(s).
Are wrappers, guards, and repeated structures necessary? 37742 finding(s).
Which changes need focused human review? 48677 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 48677 distinct pattern matches across 28 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 |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 25 | def wait_for_drive_disconnection(): | CODE |
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 31 | def wait_for_drive_connection(timeout=WAIT_FOR_DRIVE_TIMEOUT): | CODE |
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 44 | def wait_for_drive_to_disappear(drive_path, timeout=WAIT_FOR_DRIVE_DISAPPEAR_TIMEOUT): | CODE |
| LOW | app/ios/test/rayban_dat_xcode_graph_test.rb | 175 | def object_with_comment_and_isa(comment, isa) | CODE |
| LOW | app/ios/test/omi_dev_build_configuration_test.rb | 49 | def dev_extension_configurations(info_plist) | CODE |
| LOW | app/ios/test/rayban_dat_build_wrapper_test.rb | 429 | def assert_default_state_restored(fixture, generated_environment: true) | CODE |
| LOW | app/ios/test/audio_interruption_driver/test_driver.py | 34 | def test_full_lifecycle_qualifies_stimulus_only(self): | CODE |
| LOW | app/ios/test/audio_interruption_driver/test_driver.py | 39 | def test_absent_and_failed_scenarios_never_pass(self): | CODE |
| LOW⚡ | app/ios/test/audio_interruption_driver/test_driver.py | 51 | def test_short_or_reordered_call_does_not_qualify(self): | CODE |
| LOW⚡ | app/ios/test/audio_interruption_driver/test_driver.py | 60 | def test_stale_build_is_refused(self): | CODE |
| LOW⚡ | app/ios/test/audio_interruption_driver/test_driver.py | 66 | def test_cli_exit_codes_are_fail_closed(self): | CODE |
| LOW | app/ios/test/audio_interruption_driver/test_driver.py | 93 | def test_ready_provider_limits_and_no_existing_calls_are_required(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 23 | def test_confirmation_and_selected_build_are_required_before_store_calls(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 49 | def test_missing_release_file_prevents_store_calls(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 57 | def test_live_public_version_must_not_be_newer(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 68 | def test_only_valid_exact_build_is_selected(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 85 | def test_marketing_version_mismatch_blocks_submission(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 99 | def test_submission_identifies_existing_build_and_does_not_upload(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 108 | def test_locale_aware_submission_writes_whats_new_for_every_locale(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 142 | def test_only_alpha_exact_version_and_code_are_eligible(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 166 | def test_public_marketing_version_is_a_roll_forward_floor(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 178 | def test_production_release_version_parses_play_console_names(self) -> None: | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 184 | def test_promotion_updates_only_production_using_existing_code_and_derived_notes(self): | CODE |
| LOW | app/scripts/mobile_store_promote_test.py | 206 | def test_draft_status_is_the_only_alternative_to_completed(self): | CODE |
| LOW | app/scripts/l10n.py | 236 | def placeholder_names_fallback(message: str, use_escaping: bool = False) -> list[str]: | CODE |
| LOW | app/scripts/l10n.py | 285 | def require_placeholder_subset( | CODE |
| LOW | app/scripts/l10n.py | 309 | def require_placeholders_kept( | CODE |
| LOW | app/scripts/l10n.py | 401 | def values_and_meta_identical( | CODE |
| LOW | app/scripts/mobile_store_promote.py | 241 | def production_release_version(name: str) -> str | None: | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 95 | def test_in_flight_submission_holds_everything(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 101 | def test_no_newer_build_does_nothing(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 104 | def test_pending_with_newest_build_is_left_for_a_human(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 110 | def test_pending_with_older_build_is_replaced(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 117 | def test_pending_newer_than_testflight_is_never_rejected(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 122 | def test_two_pending_versions_need_a_human(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 137 | def test_candidate_is_highest_version_with_a_processed_build_and_its_highest_build(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 145 | def test_versions_are_read_per_state_because_the_unfiltered_listing_hides_them(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 153 | def test_missing_live_version_fails_closed(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 174 | def test_dry_run_reads_everything_and_mutates_nothing(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 182 | def test_hold_never_touches_notes_or_stores(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 190 | def test_submit_uses_manual_release_and_every_live_locale(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 332 | def test_newest_code_newer_than_live_wins_across_tracks(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 336 | def test_live_or_older_versions_and_drafts_are_ignored(self): | CODE |
| LOW⚡ | app/scripts/mobile_daily_train_test.py | 341 | def test_draft_is_written_from_the_source_track_and_never_completed(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 223 | def test_replace_cancels_the_completed_submission_before_submitting(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 270 | def test_rejection_that_does_not_reach_developer_rejected_fails_loudly(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 283 | def test_missing_credentials_fail_before_any_store_call(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 292 | def test_no_release_file_and_no_fragments_blocks_submission(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 306 | def test_dry_run_never_writes_release_files(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 361 | def test_existing_draft_with_the_same_code_is_idempotent(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 372 | def test_dry_run_does_not_write_the_track(self): | CODE |
| LOW | app/scripts/mobile_daily_train_test.py | 384 | def test_summary_line_and_exit_code(self): | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 24 | def test_blank_successful_reads_are_empty_history(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 28 | def test_failed_reads_are_errors_not_empty_history(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 34 | def test_valid_app_store_and_play_values_parse(self) -> None: | CODE |
| LOW | app/scripts/mobile_store_version_test.py | 49 | def test_malformed_or_zero_store_values_fail_closed(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 63 | def test_empty_history_seeds_from_pubspec_without_zero(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 72 | def test_ios_does_not_require_an_android_store_read(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 77 | def test_available_history_bumps_above_every_store(self) -> None: | CODE |
| LOW⚡ | app/scripts/mobile_store_version_test.py | 86 | def test_store_history_is_authoritative_over_a_higher_pubspec_build(self) -> None: | CODE |
| 31122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 4 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 379 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 381 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1725 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1764 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 2825 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 2840 | # ============================================ | COMMENT |
| MEDIUM⚡ | app/.maestro/scripts/run_all.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | app/.maestro/scripts/run_all.sh | 4 | # ============================================================================= | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 19 | # ============================================================================= | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 23 | # ── Configuration ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 37 | # ── Argument Parsing ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 54 | # ── Helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 68 | # ── Preflight Checks ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 97 | # ── Collect Flows ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 143 | # ── Run Flows ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 193 | # ── Generate Report ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/.maestro/scripts/run_all.sh | 249 | # ── Final Summary ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 23 | // ── Virtual main loop ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 78 | // ── Manual serial audio queue ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 92 | // ── Recorded sink ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 118 | // ── Fake engine ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 155 | // ── Fake ports ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 201 | // ── Vectors ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 242 | // ── Comparator ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …com/friend/ios/phonemic/PhoneMicLifecycleReplayTest.kt | 319 | // ── The eight canonical vectors ────────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/sync_provider.dart | 201 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/sync_provider.dart | 204 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 117 | // ───────────────────────── scanning ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 228 | // ───────────────────── upload / transcribe ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 308 | // ─────────────────────── auto-upload (offline fallback) ─────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 350 | // ───────────────────────── reconcile ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 436 | // ───────────────────────── delete ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 461 | // ───────────────────── playback / waveform ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 529 | // ───────────────────────── sidecar ───────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 164 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 166 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 294 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 296 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 327 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 329 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 371 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 373 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 426 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 428 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 727 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 729 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 788 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 790 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 869 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 871 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 76 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 106 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 158 | # --------------------------------------------------------------------------- | COMMENT |
| 1983 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 1 | # Pre-commit hooks for BasedHardware/omi | COMMENT |
| LOW | codemagic.yaml | 1721 | notify: | COMMENT |
| LOW | codemagic.yaml | 1741 | # OMI_DESKTOP_API_URL, OMI_PYTHON_API_URL | COMMENT |
| LOW | codemagic.yaml | 2821 | - build/*.app | COMMENT |
| LOW | omi/firmware/omi/src/sd_card.c | 1 | #include "lib/core/sd_card.h" | COMMENT |
| LOW | omi/firmware/omi/src/sd_card.c | 21 | #define DISK_SECTOR_SIZE 512U | COMMENT |
| LOW | omi/firmware/omi/src/t5838_aad.c | 21 | COMMENT | |
| LOW | omi/firmware/omi/src/battery.c | 1 | #include "lib/core/lib/battery/battery.h" | COMMENT |
| LOW | omi/firmware/omi/src/main.c | 1 | #include <zephyr/kernel.h> | COMMENT |
| LOW | omi/firmware/omi/src/mcuboot_boot_zephyr.c | 21 | #include <zephyr/devicetree.h> | COMMENT |
| LOW | omi/firmware/omi/src/mcuboot_boot_zephyr.c | 41 | #endif | COMMENT |
| LOW | omi/firmware/omi/src/mcuboot_boot_zephyr.c | 81 | #ifdef CONFIG_MCUBOOT_SERIAL | COMMENT |
| LOW | omi/firmware/omi/src/mcuboot_boot_zephyr.c | 261 | #ifdef CONFIG_CPU_CORTEX_M_HAS_VTOR | COMMENT |
| LOW | omi/firmware/omi/src/imu.c | 1 | #include "imu.h" | COMMENT |
| LOW | omi/firmware/omi/src/mic.c | 1 | /* | COMMENT |
| LOW | omi/firmware/omi/src/mic.c | 21 | COMMENT | |
| LOW | omi/firmware/omi/src/lib/core/codec.c | 1 | #include "codec.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/transport.c | 1 | #include "transport.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/transport.c | 21 | #include <zephyr/sys/ring_buffer.h> | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/transport.c | 121 | #define MTU_RECHECK_DELAY_MS 800 | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/speaker.c | 1 | #include "speaker.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/button.c | 1 | #include "button.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/config.h | 1 | #include <haly/nrfy_gpio.h> | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/config.h | 21 | #ifdef CONFIG_OMI_CODEC_OPUS | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/config.h | 41 | #endif | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/storage.c | 1 | #include "storage.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/storage.c | 21 | COMMENT | |
| LOW | omi/firmware/omi/src/lib/core/nfc.c | 1 | #include "nfc.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/nfc.c | 21 | // int get_device_id(char *device_id_out, size_t len) | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/sd_card.h | 1 | #ifndef SD_CARD_H | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/main.h | 21 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | COMMENT |
| LOW | …/src/lib/core/lib/opus-1.2.1/pitch_analysis_core_FIX.c | 41 | #define SCRATCH_SIZE 22 | COMMENT |
| LOW | …/firmware/omi/src/lib/core/lib/opus-1.2.1/os_support.h | 81 | /** Set n elements of dst to zero */ | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/mfrngcod.h | 41 | # define EC_CODE_SHIFT (EC_CODE_BITS-EC_SYM_BITS-1) | COMMENT |
| LOW | …firmware/omi/src/lib/core/lib/opus-1.2.1/stack_alloc.h | 41 | COMMENT | |
| LOW | …firmware/omi/src/lib/core/lib/opus-1.2.1/stack_alloc.h | 101 | #elif defined(USE_ALLOCA) | COMMENT |
| LOW | …firmware/omi/src/lib/core/lib/opus-1.2.1/stack_alloc.h | 121 | #else | COMMENT |
| LOW | …firmware/omi/src/lib/core/lib/opus-1.2.1/stack_alloc.h | 141 | #else | COMMENT |
| LOW | …firmware/omi/src/lib/core/lib/opus-1.2.1/stack_alloc.h | 161 | COMMENT | |
| LOW | …rmware/omi/src/lib/core/lib/opus-1.2.1/control_codec.c | 21 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | COMMENT |
| LOW | …rmware/omi/src/lib/core/lib/opus-1.2.1/fixed_generic.h | 41 | #define MULT16_32_Q16(a,b) ((opus_val32)SHR((opus_int64)((opus_val16)(a))*(b),16)) | COMMENT |
| LOW | …rmware/omi/src/lib/core/lib/opus-1.2.1/fixed_generic.h | 141 | b must fit in 31 bits. | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/main_FIX.h | 41 | #include "arm/warped_autocorrelation_FIX_arm.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/main_FIX.h | 241 | #endif /* __cplusplus */ | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/config.h | 1 | #define CONFIG_OPUS_MODE_CELT (1 << 0) | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/config.h | 21 | // <i> CBR - Constant Bit Rate allows you to set a specific bit rate that remains the same throughout the transmission. | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/config.h | 41 | // <80001=>CBR: 80 kbit/s | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/config.h | 61 | // <56000=>56 kbit/s | COMMENT |
| LOW | …re/omi/src/lib/core/lib/opus-1.2.1/pitch_est_defines.h | 41 | COMMENT | |
| LOW | …re/omi/src/lib/core/lib/opus-1.2.1/pitch_est_defines.h | 61 | #define PE_NB_CBKS_STAGE3_MAX 34 | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/define.h | 41 | COMMENT | |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/define.h | 61 | COMMENT | |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/define.h | 121 | /* Max increase in gain quantization index */ | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/define.h | 201 | /* NLSF quantizer */ | COMMENT |
| LOW | …irmware/omi/src/lib/core/lib/opus-1.2.1/opus_decoder.c | 41 | #include "arch.h" | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/mdct.c | 41 | COMMENT | |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/modes.c | 61 | 172,165,158,152,143,137,131,125,118,112,106,100, 94, 87, 81, 75, 69, 63, 56, 45, 20, | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/ecintrin.h | 61 | # define EC_CLZ0 (1) | COMMENT |
| LOW | omi/firmware/omi/src/lib/core/lib/opus-1.2.1/ecintrin.h | 81 | #define EC_CLZ(_x) (__CLZ(_x)) | COMMENT |
| LOW | …mware/omi/src/lib/core/lib/opus-1.2.1/_kiss_fft_guts.h | 81 | }while(0) | COMMENT |
| 5348 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/play_sound_on_friend.py | 51 | except Exception as e: | CODE |
| LOW | omi/firmware/scripts/devkit/decode_audio.py | 29 | except Exception as e: | CODE |
| MEDIUM | omi/firmware/scripts/devkit/decode_audio.py | 30 | print(f"Error decoding frame: {e}") | CODE |
| LOW | omi/firmware/scripts/devkit/local_client.py | 79 | except Exception as e: | CODE |
| MEDIUM | omi/firmware/scripts/devkit/local_client.py | 80 | print(f"Error decoding frame: {e}") | CODE |
| MEDIUM | omi/firmware/scripts/devkit/flash_batches/index.py | 67 | print("Error: XIAO-SENSE drive not detected. Skipping this file.") | CODE |
| MEDIUM | omi/firmware/scripts/devkit/flash_batches/index.py | 110 | print(f"Error: UF2 file not found at {uf2_file}") | CODE |
| LOW | …mware/scripts/devkit/sdcard_test_files/decode_audio.py | 28 | except Exception as e: | CODE |
| MEDIUM | …mware/scripts/devkit/sdcard_test_files/decode_audio.py | 29 | print(f"Error decoding frame: {e}") | CODE |
| MEDIUM | app/ios/Runner/AppleHealthService.swift | 89 | print("Error requesting HealthKit authorization: \(error.localizedDescription)") | CODE |
| MEDIUM | app/ios/omiWatchApp/WatchAudioRecorderViewModel.swift | 278 | print("Error details: \(error.localizedDescription)") | CODE |
| LOW | app/scripts/l10n.py | 496 | except Exception: | CODE |
| LOW | app/scripts/l10n.py | 755 | except Exception: | CODE |
| LOW | app/scripts/mobile_store_promote.py | 266 | except Exception as exc: | CODE |
| LOW | app/scripts/mobile_store_promote.py | 274 | except Exception as exc: | CODE |
| LOW | app/scripts/mobile_store_promote.py | 309 | except Exception as exc: | CODE |
| LOW | app/scripts/android_startup_smoke.py | 121 | except Exception: | CODE |
| MEDIUM | app/lib/providers/app_provider.dart | 975 | print('Error toggling app $appId: $e'); | CODE |
| MEDIUM | app/lib/pages/apps/providers/add_app_provider.dart | 1072 | print('Error loading provider API keys: $e'); | CODE |
| LOW | sdks/python/omi/decoder.py | 33 | except Exception as e: | CODE |
| LOW | sdks/python/omi/stt/parakeet.py | 126 | except Exception: | CODE |
| LOW | sdks/python/omi/stt/parakeet.py | 132 | except Exception: | CODE |
| LOW | sdks/python/omi/stt/deepgram.py | 96 | except Exception: | CODE |
| LOW | sdks/python/omi/stt/deepgram.py | 103 | except Exception as exc: | CODE |
| LOW⚡ | sdks/python/tests/test_stt_engines.py | 63 | except Exception: | CODE |
| MEDIUM | sdks/python/tests/test_stt_engines.py | 58 | def test_whisper_requires_dep_or_runner(): | CODE |
| LOW | sdks/python/examples/main.py | 29 | except Exception as e: | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 180 | print("Error checking file size: \(error.localizedDescription)") | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 246 | print("Error transcribing audio: \(error.localizedDescription)") | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 279 | print("Error transcribing audio: \(error.localizedDescription)") | CODE |
| LOW | sdks/python-cli/omi_cli/config.py | 339 | except Exception: | CODE |
| LOW⚡ | sdks/python-cli/omi_cli/client.py | 434 | except Exception: | CODE |
| LOW | sdks/python-cli/omi_cli/main.py | 302 | except Exception as exc: # noqa: BLE001 — last-chance handler | CODE |
| LOW | sdks/python-cli/examples/conversations_to_markdown.py | 100 | except Exception: | CODE |
| LOW | sdks/python-cli/examples/action_items_to_markdown.py | 72 | except Exception: | CODE |
| MEDIUM | sdks/python-cli/examples/action_items_to_markdown.py | 199 | print(f"Error: file not found: {path}", file=sys.stderr) | CODE |
| MEDIUM | sdks/python-cli/examples/action_items_to_markdown.py | 210 | print(f"Error: Invalid JSON input: {exc}", file=sys.stderr) | CODE |
| LOW | sdks/python-cli/examples/action_items_to_opml.py | 73 | except Exception as e: | CODE |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 74 | except Exception: | CODE |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 417 | except Exception: | CODE |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 439 | except Exception as exc: | CODE |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 483 | except Exception as exc: | CODE |
| LOW | plugins/db.py | 22 | except Exception as e: | CODE |
| MEDIUM | plugins/db.py | 23 | print(f'Error calling {func.__name__}', e) | CODE |
| LOW | plugins/db.py | 131 | except Exception: | CODE |
| MEDIUM | plugins/db.py | 19 | def wrapper(*args, **kwargs): | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 126 | except Exception: | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 270 | except Exception as exc: | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 311 | except Exception as exc: | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 353 | except Exception as exc: | CODE |
| LOW | plugins/omi-shopify-app/db.py | 37 | except Exception as e: | CODE |
| LOW⚡ | plugins/omi-shopify-app/main.py | 1960 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 852 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 927 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1047 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1218 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1804 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1864 | except Exception as e: | CODE |
| LOW | plugins/omi-linear-app/db.py | 36 | except Exception as e: | CODE |
| LOW⚡ | plugins/omi-linear-app/main.py | 1242 | except Exception as e: | STRING |
| 2896 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/scripts/l10n.py | 500 | except OSError: | CODE |
| HIGH | app/scripts/l10n.py | 683 | except OSError: | CODE |
| HIGH | sdks/python/omi/stt/parakeet.py | 126 | except Exception: | CODE |
| HIGH | sdks/python/omi/stt/parakeet.py | 132 | except Exception: | CODE |
| HIGH | sdks/python/omi/stt/deepgram.py | 96 | except Exception: | CODE |
| HIGH | sdks/python/tests/test_stt_engines.py | 48 | except ValueError: | CODE |
| HIGH | sdks/python/tests/test_stt_engines.py | 54 | except ValueError: | CODE |
| HIGH | sdks/python/tests/test_stt_engines.py | 72 | except ValueError: | CODE |
| HIGH | sdks/python/tests/test_ble_callbacks.py | 117 | except asyncio.CancelledError: | CODE |
| HIGH | sdks/python/tests/test_ble_callbacks.py | 185 | except asyncio.CancelledError: | CODE |
| HIGH | sdks/python/tests/test_ble_callbacks.py | 240 | except asyncio.CancelledError: | CODE |
| HIGH | sdks/python-cli/tests/conftest.py | 64 | except TypeError: | CODE |
| HIGH | sdks/python-cli/omi_cli/config.py | 308 | except OSError: | CODE |
| HIGH | sdks/python-cli/omi_cli/config.py | 345 | except FileNotFoundError: | CODE |
| HIGH | sdks/python-cli/omi_cli/_secure_file.py | 128 | except OSError: | CODE |
| HIGH | sdks/python-cli/omi_cli/auth/oauth.py | 304 | except httpx.HTTPError: | CODE |
| HIGH | sdks/python-cli/examples/memories_to_markdown.py | 417 | except Exception: | CODE |
| HIGH | plugins/omi-semantic-scholar-app/main.py | 126 | except Exception: | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 254 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 259 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 264 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 269 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 319 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 324 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 329 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 381 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 386 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 391 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 396 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 446 | except Exception: | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 457 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 463 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 470 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 475 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-whoop-app/main.py | 480 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-open-meteo-app/main.py | 237 | except ValueError: | CODE |
| HIGH | plugins/omi-open-meteo-app/main.py | 253 | except (TypeError, ValueError): | CODE |
| HIGH | plugins/omi-coingecko-crypto-app/smoke_test.py | 80 | except ValueError: | CODE |
| HIGH | plugins/omi-twitter-chat-tools-app/hermetic_stubs.py | 54 | except ImportError: | CODE |
| HIGH | plugins/omi-dropbox-app/main.py | 143 | except Exception: | CODE |
| HIGH | plugins/omi-shipbob-app/test_shipbob_tools_auth.py | 174 | except ImportError: | CODE |
| HIGH | plugins/omi-shipbob-app/main.py | 830 | except Exception: | CODE |
| HIGH | plugins/omi-google-calendar-app/main.py | 281 | except Exception: | CODE |
| HIGH | plugins/scripts/check_plugin_imports.py | 44 | except ValueError: | CODE |
| HIGH | plugins/omi-ms365-app/main.py | 217 | except Exception: | CODE |
| HIGH | plugins/omi-ms365-app/services/graph_client.py | 36 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-stack-overflow-app/main.py | 211 | except Exception: | CODE |
| HIGH | plugins/omi-clickup-app/clickup_client.py | 403 | except (ValueError, TypeError): | CODE |
| HIGH | plugins/omi-notion-app/main.py | 355 | except Exception: | CODE |
| HIGH | plugins/omi-arxiv-app/test_main.py | 642 | except Exception: | CODE |
| HIGH | omiGlass/firmware/scripts/build_uf2.py | 189 | except: | CODE |
| HIGH | desktop/macos/scripts/slow-mp3-server.py | 29 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | desktop/macos/scripts/owned_process.py | 635 | except (ProcessLookupError, PermissionError, TypeError, ValueError): | CODE |
| HIGH | desktop/macos/scripts/check-swiftlint-baseline.py | 163 | except ValueError: | CODE |
| HIGH | desktop/macos/scripts/trace_stats.py | 53 | except json.JSONDecodeError: | CODE |
| HIGH | desktop/macos/scripts/agent-continuity-gauntlet-lib.py | 430 | except FileNotFoundError: | CODE |
| HIGH | desktop/context-for-claude/scripts/testbench.py | 364 | except Exception: | CODE |
| HIGH | backend/main.py | 533 | except asyncio.CancelledError: | CODE |
| HIGH | backend/routers/sync.py | 992 | except Exception: | CODE |
| HIGH | backend/routers/sync.py | 1167 | except Exception: | CODE |
| 482 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/get_audio_file.py | 1 | CODE | |
| LOW | omi/firmware/scripts/devkit/get_audio_file.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/get_audio_file.py | 4 | CODE | |
| LOW | omi/firmware/scripts/devkit/play_sound_on_friend.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/decode_audio.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/client.py | 7 | CODE | |
| LOW | omi/firmware/scripts/devkit/client.py | 9 | CODE | |
| LOW | omi/firmware/scripts/devkit/client.py | 10 | CODE | |
| LOW | omi/firmware/scripts/devkit/client.py | 10 | CODE | |
| LOW | omi/firmware/scripts/devkit/get_info_list.py | 1 | CODE | |
| LOW | omi/firmware/scripts/devkit/get_info_list.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/get_info_list.py | 6 | CODE | |
| LOW | omi/firmware/scripts/devkit/delete_audio_files.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/delete_audio_files.py | 6 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 1 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 2 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 3 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 4 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 11 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 11 | CODE | |
| LOW | omi/firmware/scripts/devkit/storage.py | 11 | CODE | |
| LOW | omi/firmware/scripts/devkit/local_laptop_client.py | 7 | CODE | |
| LOW | omi/firmware/scripts/devkit/local_laptop_client.py | 9 | CODE | |
| LOW | omi/firmware/scripts/devkit/local_laptop_client.py | 10 | CODE | |
| LOW | omi/firmware/scripts/devkit/local_laptop_client.py | 10 | CODE | |
| LOW | …are/scripts/devkit/sdcard_test_files/get_audio_file.py | 3 | CODE | |
| LOW | …mware/scripts/devkit/sdcard_test_files/decode_audio.py | 2 | CODE | |
| LOW | …ware/scripts/devkit/sdcard_test_files/get_info_list.py | 2 | CODE | |
| LOW | …scripts/devkit/sdcard_test_files/delete_audio_files.py | 3 | CODE | |
| LOW | …rmware/scripts/devkit/button_test_files/button_test.py | 2 | CODE | |
| LOW | …rmware/scripts/devkit/button_test_files/button_test.py | 6 | CODE | |
| LOW | app/scripts/mobile_store_promote_test.py | 4 | CODE | |
| LOW | app/scripts/l10n.py | 13 | CODE | |
| LOW | app/scripts/mobile_store_promote.py | 4 | CODE | |
| LOW | app/scripts/mobile_daily_train_test.py | 4 | CODE | |
| LOW | app/scripts/mobile_store_version_test.py | 4 | CODE | |
| LOW | app/scripts/mobile_daily_train.py | 17 | CODE | |
| LOW | app/scripts/mobile_play_build_number.py | 12 | CODE | |
| LOW | app/scripts/patch_flutter_foreground_task.py | 15 | CODE | |
| LOW | app/scripts/mobile_release_identity_test.py | 4 | CODE | |
| LOW | app/scripts/mobile_store_version.py | 4 | CODE | |
| LOW | app/scripts/patch_flutter_foreground_task_test.py | 4 | CODE | |
| LOW | app/scripts/mobile_play_build_number_test.py | 4 | CODE | |
| LOW | app/scripts/test_l10n_placeholders.py | 4 | CODE | |
| LOW | app/scripts/mobile_release_identity.py | 9 | CODE | |
| LOW | sdks/python/omi/ble.py | 3 | CODE | |
| LOW | sdks/python/omi/ble.py | 13 | CODE | |
| LOW | sdks/python/omi/__init__.py | 8 | CODE | |
| LOW | sdks/python/omi/__init__.py | 12 | CODE | |
| LOW | sdks/python/omi/__init__.py | 13 | CODE | |
| LOW | sdks/python/omi/__init__.py | 13 | CODE | |
| LOW | sdks/python/omi/__init__.py | 13 | CODE | |
| LOW | sdks/python/omi/__init__.py | 13 | CODE | |
| LOW | sdks/python/omi/__init__.py | 13 | CODE | |
| LOW | sdks/python/omi/transcribe.py | 1 | CODE | |
| LOW | sdks/python/omi/bluetooth.py | 6 | CODE | |
| LOW | sdks/python/omi/stt/parakeet.py | 1 | CODE | |
| LOW | sdks/python/omi/stt/deepgram.py | 1 | CODE | |
| LOW | sdks/python/omi/stt/__init__.py | 3 | CODE | |
| LOW | sdks/python/omi/stt/whisper.py | 1 | CODE | |
| 2728 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 91 | CODE | |
| LOW | app/ios/test/audio_interruption_driver/test_driver.py | 66 | CODE | |
| LOW | app/scripts/android_emulator.py | 44 | CODE | |
| LOW | app/scripts/l10n.py | 637 | CODE | |
| LOW | app/scripts/l10n.py | 864 | CODE | |
| LOW | app/scripts/mobile_daily_train.py | 406 | CODE | |
| LOW | app/scripts/android_startup_smoke_test.py | 65 | CODE | |
| LOW | app/scripts/android_fgs_probe.py | 19 | CODE | |
| LOW | app/scripts/android_startup_smoke.py | 47 | CODE | |
| LOW | sdks/python/omi/stt/parakeet.py | 142 | CODE | |
| LOW | sdks/python/omi/stt/deepgram.py | 28 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 38 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 123 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 192 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 39 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 124 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 193 | CODE | |
| LOW | sdks/python/tests/test_ble_callbacks.py | 98 | CODE | |
| LOW | sdks/python-cli/omi_cli/config.py | 171 | CODE | |
| LOW | sdks/python-cli/omi_cli/client.py | 156 | CODE | |
| LOW | sdks/python-cli/omi_cli/local_client.py | 182 | CODE | |
| LOW | sdks/python-cli/omi_cli/main.py | 167 | CODE | |
| LOW | sdks/python-cli/omi_cli/json_input.py | 21 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/oauth.py | 281 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/memory.py | 68 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/conversation.py | 38 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/local.py | 243 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/chat.py | 62 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/chat.py | 133 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/action_item.py | 75 | CODE | |
| LOW | sdks/python-cli/examples/conversations_to_sqlite.py | 81 | CODE | |
| LOW | sdks/python-cli/examples/conversations_to_markdown.py | 71 | CODE | |
| LOW | sdks/python-cli/examples/action_items_to_markdown.py | 109 | CODE | |
| LOW | sdks/python-cli/examples/action_items_to_markdown.py | 192 | CODE | |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 88 | CODE | |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 131 | CODE | |
| LOW | sdks/python-cli/examples/memories_to_markdown.py | 278 | CODE | |
| LOW | plugins/omi-semantic-scholar-app/test_main.py | 31 | CODE | |
| LOW | plugins/omi-semantic-scholar-app/test_main.py | 136 | CODE | |
| LOW | plugins/omi-shopify-app/test_error_handling.py | 194 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 92 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 540 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 1140 | CODE | |
| LOW | plugins/omi-linear-app/test_issue_lookup.py | 100 | CODE | |
| LOW | plugins/omi-linear-app/main.py | 553 | CODE | |
| LOW | plugins/omi-usgs-earthquake-app/test_main.py | 236 | CODE | |
| LOW | …i-whoop-app/test_measurements_and_summary_hardening.py | 137 | CODE | |
| LOW | …i-whoop-app/test_measurements_and_summary_hardening.py | 165 | CODE | |
| LOW | plugins/omi-whoop-app/main.py | 97 | CODE | |
| LOW | plugins/omi-whoop-app/main.py | 830 | CODE | |
| LOW | plugins/omi-open-meteo-app/test_null_optionals.py | 266 | CODE | |
| LOW | plugins/hume-ai/app.py | 116 | CODE | |
| LOW | plugins/hume-ai/app.py | 170 | CODE | |
| LOW | plugins/hume-ai/app.py | 384 | CODE | |
| LOW | plugins/hume-ai/app.py | 410 | CODE | |
| LOW | plugins/hume-ai/app.py | 452 | CODE | |
| LOW | plugins/hume-ai/app.py | 515 | CODE | |
| LOW | plugins/hume-ai/app.py | 604 | CODE | |
| LOW | plugins/hume-ai/main.py | 84 | CODE | |
| LOW | plugins/hume-ai/main.py | 391 | CODE | |
| 1358 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/scripts/l10n.py | 674 | f"flutter gen-l10n && dart format --line-length 120 lib/l10n/app_localizations*.dart\n" | CODE |
| HIGH | app/scripts/patch_flutter_foreground_task.py | 214 | return true | CODE |
| HIGH | app/scripts/patch_flutter_foreground_task.py | 230 | return false | CODE |
| HIGH | app/scripts/patch_flutter_foreground_task.py | 237 | if (nm.getNotificationChannel(channelId) == null) { | CODE |
| HIGH | app/scripts/mobile_release_identity_test.py | 104 | ["sh", "-c", f"{sys.executable} {SCRIPT} --tag v1.2.3+0-ios-cm --platform ios && touch {marker}"], | CODE |
| HIGH | app/scripts/android_startup_smoke_test.py | 82 | if command[:2] == ("shell", "pidof com.friend.ios.dev || true"): | CODE |
| HIGH | plugins/omi-semantic-scholar-app/test_null_optionals.py | 7 | Requests such as {"query": "attention is all you need", "max_results": null, "min_year": null} | STRING |
| HIGH | plugins/omi-semantic-scholar-app/test_null_optionals.py | 8 | and {"author_id": "1741101", "max_results": null} must succeed with default max_results=5. | STRING |
| HIGH | plugins/omi-linear-app/test_search_issues_params.py | 10 | key is present and null, which is exactly what the backend sends for an | STRING |
| HIGH | plugins/omi-linear-app/test_team_disambiguation.py | 10 | - null optional fields (team/state/project/labels, nodes: null) | STRING |
| HIGH | plugins/omi-open-meteo-app/test_null_optionals.py | 7 | reaches this app as {"location": "Berlin", "temperature_unit": null}. | STRING |
| HIGH | plugins/omi-open-meteo-app/test_null_optionals.py | 9 | null-coercion, pydantic rejected the null, and calls failed with 422. | STRING |
| HIGH | plugins/omi-open-meteo-app/main.py | 140 | documented, a bare string, null); callers treat a miss as "no data". | STRING |
| HIGH | plugins/omi-coingecko-crypto-app/test_null_optionals.py | 8 | "vs_currency": null}. The request models typed vs_currency, limit and | STRING |
| HIGH | plugins/omi-coingecko-crypto-app/test_null_optionals.py | 9 | max_results as plain str/int, pydantic rejected the null, and every | STRING |
| HIGH | …gins/omi-coingecko-crypto-app/test_null_text_fields.py | 4 | and null, so `coin.get("symbol", "").upper()` raised AttributeError on an | STRING |
| HIGH | plugins/omi-coingecko-crypto-app/main.py | 50 | documented, a bare string, null); callers treat a miss as "no data". | STRING |
| HIGH | plugins/omi-coingecko-crypto-app/main.py | 64 | present and null, so ``coin.get("symbol", "").upper()`` raised | STRING |
| HIGH | plugins/iq_rating/test_main.py | 172 | "content": '[{"name": null, "iq": 130, "is_name": true}]' | CODE |
| HIGH | plugins/iq_rating/tests/test_iq_rating.py | 75 | "content": '[{"name": null, "iq": 130, "is_name": true}]' | CODE |
| HIGH | plugins/omi-github-app/test_create_issue_auto_labels.py | 10 | default -- when the key is present and null, which is what the backend sends | STRING |
| HIGH | plugins/omi-github-app/main.py | 1126 | if (!repo || repo === 'No repositories found') {{ | CODE |
| HIGH | plugins/omi-github-app/main.py | 1173 | if (!repo || repo === 'No repositories found') {{ | CODE |
| HIGH | plugins/omi-github-app/main.py | 1303 | lines.push('[' + entry.provider + '] ' + status + ' ' + msg + url + agentUrl); | CODE |
| HIGH | plugins/omi-github-app/main.py | 1306 | if (!logs.length && data.message) {{ | CODE |
| HIGH | plugins/omi-github-app/main.py | 249 | JSON null; strings and floats are coerced when unambiguous. | STRING |
| HIGH | plugins/omi-slack-app/main.py | 1157 | if (data.message && data.message.includes('✅')) {{ | CODE |
| HIGH | plugins/omi-slack-app/main.py | 1160 | }} else if (data.message && data.message.includes('❌')) {{ | CODE |
| HIGH | plugins/omi-hive-app/test_limit_coercion.py | 10 | is present with a JSON null, which is what the backend sends for an omitted | STRING |
| HIGH⚡ | plugins/omi-hive-app/main.py | 663 | the key is present with a null, and ``items[:None]`` is a legal slice that | STRING |
| HIGH | plugins/omi-clickup-app/main.py | 1235 | if (data.message && data.message.includes('✅')) {{ | CODE |
| HIGH | plugins/omi-clickup-app/main.py | 1238 | }} else if (data.message && data.message.includes('❌')) {{ | CODE |
| HIGH | desktop/macos/scripts/check-e2e-flow-coverage.py | 478 | f"cd desktop/macos && python3 scripts/omi-harness run {rel} " | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 253 | const out = []; let i = 0, list = null; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 254 | const closeList = () => { if(list){ out.push(`</${list}>`); list = null; } }; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 254 | const closeList = () => { if(list){ out.push(`</${list}>`); list = null; } }; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 259 | for(i++; i < lines.length && !/^```/.test(lines[i]); i++) body.push(lines[i]); | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 260 | i++; out.push(`<pre><code>${body.join('\n')}</code></pre>`); continue; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 267 | while(i < lines.length && /^\s*\|.*\|\s*$/.test(lines[i])) rows.push(cells(lines[i++])); | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 268 | out.push(`<table><thead><tr>${head.map(c=>`<th>${c}</th>`).join('')}</tr></thead><tbody>${ | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 274 | closeList(); out.push(`<h${m[1].length+2}>${inline(m[2])}</h${m[1].length+2}>`); i++; continue; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 277 | if(list !== 'ul'){ closeList(); out.push('<ul>'); list = 'ul'; } | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 278 | out.push(`<li>${inline(m[1])}</li>`); i++; continue; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 281 | if(list !== 'ol'){ closeList(); out.push('<ol>'); list = 'ol'; } | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 282 | out.push(`<li>${inline(m[1])}</li>`); i++; continue; | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 287 | while(i < lines.length && lines[i].trim() && !/^(#{1,4}\s|```|\s*[-*]\s|\s*\d+\.\s|\s*\|)/.test(lines[i])) | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 288 | para.push(lines[i++]); | CODE |
| HIGH⚡ | desktop/context-for-claude/scripts/testbench.py | 289 | out.push(`<p>${inline(para.join('<br>'))}</p>`); | CODE |
| HIGH | desktop/context-for-claude/scripts/testbench.py | 315 | rows.push(ev); paint(); | CODE |
| HIGH | backend/routers/chat.py | 909 | "is_user": false, "person_id": null}] | STRING |
| HIGH | backend/routers/search.py | 68 | (reported as null, so the tile shows no number rather than a false 0). Semantics: | STRING |
| HIGH | backend/routers/folders.py | 91 | # Released clients serialize an omitted field as null, not absent. The Folder model requires | COMMENT |
| HIGH⚡ | backend/routers/developer.py | 2454 | raise ValueError('success_criteria cannot be null; use an empty list to clear it') | CODE |
| HIGH | backend/database/users.py | 1036 | # pad with empty strings for the existing samples first (Dart expects non-null) | COMMENT |
| HIGH | backend/database/action_item_codec.py | 80 | # won't overwrite an existing null, so drop it first and let status derive a concrete | COMMENT |
| HIGH | backend/database/action_items.py | 622 | may omit it or store null, and Firestore equality filters exclude both. A | STRING |
| HIGH | backend/tests/routers/test_search.py | 202 | # A failed count is null, never a false 0: the app then shows the tile without a number. | COMMENT |
| HIGH | backend/tests/unit/test_workflow_contracts.py | 573 | assert "app-dev-debug-${{ github.event.pull_request.head.sha || github.sha }}" in android | CODE |
| HIGH | backend/tests/unit/test_workflow_contracts.py | 587 | assert "apk-size-${{ github.event.pull_request.head.sha || github.sha }}" in android | CODE |
| HIGH | …ests/unit/test_conversation_search_pagination_clamp.py | 3 | SearchRequest.page/per_page are Optional and unbounded, so a client sending null, 0, a negative, or a | STRING |
| 162 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omi/firmware/scripts/devkit/client.py | 0 | convert a sequence of µ-law encoded bytes to a list of 16-bit pcm values. | STRING |
| HIGH | omi/firmware/scripts/devkit/local_laptop_client.py | 0 | convert a sequence of µ-law encoded bytes to a list of 16-bit pcm values. | STRING |
| HIGH | backend/scripts/stt/a_generate_samples_from_device.py | 0 | convert a sequence of µ-law encoded bytes to a list of 16-bit pcm values. | STRING |
| HIGH | sdks/python-cli/tests/test_action_items_to_todotxt.py | 0 | only unpaired surrogates are dropped; all other text is preserved. | STRING |
| HIGH | sdks/python-cli/tests/test_memories_to_markdown.py | 0 | only unpaired surrogates are dropped; all other text is preserved. | STRING |
| HIGH | sdks/python-cli/tests/test_action_items_to_markdown.py | 0 | only unpaired surrogates are dropped; all other text is preserved. | STRING |
| HIGH | sdks/python-cli/tests/test_action_items_to_org.py | 0 | only unpaired surrogates are dropped; all other text is preserved. | STRING |
| HIGH | sdks/python-cli/tests/test_conversations_to_markdown.py | 0 | only unpaired surrogates are dropped; all other text is preserved. | STRING |
| HIGH | sdks/python-cli/examples/action_items_todotxt.md | 0 | render one exported field as single-line text. the dev api is loosely typed, so a field can arrive as a non-string; anyt | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_todotxt.py | 0 | render one exported field as single-line text. the dev api is loosely typed, so a field can arrive as a non-string; anyt | STRING |
| HIGH | sdks/python-cli/examples/action_items_org.md | 0 | render one exported field as single-line text. the dev api is loosely typed, so a field can arrive as a non-string; anyt | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_org.py | 0 | render one exported field as single-line text. the dev api is loosely typed, so a field can arrive as a non-string; anyt | STRING |
| HIGH | sdks/python-cli/examples/action_items_todotxt.md | 0 | unwrap action items from bare lists or wrapped envelope dictionaries. | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_todotxt.py | 0 | unwrap action items from bare lists or wrapped envelope dictionaries. | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_org.py | 0 | unwrap action items from bare lists or wrapped envelope dictionaries. | STRING |
| HIGH | sdks/python-cli/examples/conversations_ics.md | 0 | parse an iso-8601 timestamp into an aware utc datetime, or none if unusable. | STRING |
| HIGH | sdks/python-cli/examples/conversations_html.md | 0 | parse an iso-8601 timestamp into an aware utc datetime, or none if unusable. | STRING |
| HIGH | sdks/python-cli/examples/conversations_atom.md | 0 | parse an iso-8601 timestamp into an aware utc datetime, or none if unusable. | STRING |
| HIGH | sdks/python-cli/examples/conversations_digest.md | 0 | parse an iso-8601 timestamp into an aware utc datetime, or none if unusable. | STRING |
| HIGH | sdks/python-cli/examples/conversations_to_sqlite.py | 0 | raise valueerror if *db_path* is unsafe or points at a non-sqlite file. rules enforced: - the path must not contain '..' | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_sqlite.py | 0 | raise valueerror if *db_path* is unsafe or points at a non-sqlite file. rules enforced: - the path must not contain '..' | STRING |
| HIGH | sdks/python-cli/examples/action_items_sqlite.md | 0 | raise valueerror if *db_path* is unsafe or points at a non-sqlite file. rules enforced: - the path must not contain '..' | STRING |
| HIGH | sdks/python-cli/examples/conversations_to_markdown.py | 0 | drop unpaired surrogate code points that cannot be encoded as utf-8. json.loads accepts lone surrogates (e.g. "\\ud800") | STRING |
| HIGH | sdks/python-cli/examples/action_items_to_markdown.py | 0 | drop unpaired surrogate code points that cannot be encoded as utf-8. json.loads accepts lone surrogates (e.g. "\\ud800") | STRING |
| HIGH | sdks/python-cli/examples/memories_to_markdown.py | 0 | drop unpaired surrogate code points that cannot be encoded as utf-8. json.loads accepts lone surrogates (e.g. "\\ud800") | STRING |
| HIGH | plugins/omi-shopify-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-linear-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-whoop-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-twitter-chat-tools-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-shipbob-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-notion-app/db.py | 0 | redis-based storage for notion tokens and user settings. supports both local development (file fallback) and production | STRING |
| HIGH | plugins/omi-shopify-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-linear-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-whoop-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-twitter-chat-tools-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-shipbob-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-google-calendar-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-hive-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-notion-app/db.py | 0 | load json from file, return empty dict if not exists. | STRING |
| HIGH | plugins/omi-shopify-app/main.py | 0 | omi chat tools manifest endpoint. this endpoint returns the chat tools definitions that omi will fetch when the app is c | STRING |
| HIGH | plugins/omi-linear-app/main.py | 0 | omi chat tools manifest endpoint. this endpoint returns the chat tools definitions that omi will fetch when the app is c | STRING |
| HIGH | plugins/omi-github-app/main.py | 0 | omi chat tools manifest endpoint. this endpoint returns the chat tools definitions that omi will fetch when the app is c | STRING |
| HIGH | plugins/omi-hive-app/main.py | 0 | omi chat tools manifest endpoint. this endpoint returns the chat tools definitions that omi will fetch when the app is c | STRING |
| HIGH | plugins/omi-whoop-app/main.py | 0 | get a valid access token, refreshing if necessary. returns none if user is not authenticated. | STRING |
| HIGH | plugins/omi-twitter-chat-tools-app/main.py | 0 | get a valid access token, refreshing if necessary. returns none if user is not authenticated. | STRING |
| HIGH | plugins/omi-google-calendar-app/main.py | 0 | get a valid access token, refreshing if necessary. returns none if user is not authenticated. | STRING |
| HIGH | plugins/omi-whoop-app/main.py | 0 | <html> <head><style>{get_css()}</style></head> <body> <div class="container"> <div class="error-box"> <h2>authorization | STRING |
| HIGH | plugins/omi-twitter-chat-tools-app/main.py | 0 | <html> <head><style>{get_css()}</style></head> <body> <div class="container"> <div class="error-box"> <h2>authorization | STRING |
| HIGH | plugins/omi-google-calendar-app/main.py | 0 | <html> <head><style>{get_css()}</style></head> <body> <div class="container"> <div class="error-box"> <h2>authorization | STRING |
| HIGH | plugins/omi-notion-app/main.py | 0 | <html> <head><style>{get_css()}</style></head> <body> <div class="container"> <div class="error-box"> <h2>authorization | STRING |
| HIGH | plugins/oauth/client.py | 0 | implementation of the hume apis. this abstract class provides a python interface to all hume apis. | STRING |
| HIGH | plugins/zapier/client.py | 0 | implementation of the hume apis. this abstract class provides a python interface to all hume apis. | STRING |
| HIGH | backend/utils/other/hume.py | 0 | implementation of the hume apis. this abstract class provides a python interface to all hume apis. | STRING |
| HIGH | plugins/omi-github-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | plugins/omi-slack-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | plugins/omi-clickup-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | plugins/omi-github-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | plugins/omi-slack-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | plugins/omi-clickup-app/main.py | 0 | <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>{get_mobile_css()}</style> </h | STRING |
| HIGH | backend/database/redis_db.py | 0 | if redis.call('get', keys[1]) == argv[1] then return redis.call('del', keys[1]) end return 0 | STRING |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/omi/__init__.py | 21 | __all__ = [ | CODE |
| LOW | sdks/python/omi/stt/__init__.py | 39 | __all__ = ["SttEngine", "StreamingTranscriber", "create_transcriber", "TranscriptHandler"] | CODE |
| LOW | sdks/python-cli/omi_cli/config.py | 159 | def set_profile(self, profile: Profile) -> None: | CODE |
| LOW | sdks/python-cli/omi_cli/__init__.py | 8 | __all__ = ["__version__"] | CODE |
| LOW | sdks/python-cli/omi_cli/auth/__init__.py | 18 | __all__ = [ | CODE |
| LOW | plugins/omi-plugin-sdk/src/omi_plugin_sdk/__init__.py | 21 | __all__ = [ | CODE |
| LOW | plugins/iq_rating/main.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/omi-twitter-app/test_recording_state.py | 45 | def update_session(cls, session_id: str, **kwargs: Any) -> None: | CODE |
| LOW | plugins/omi-github-app/claude_coder.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/omi-github-app/claude_code_cli.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/composio/main.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/composio/src/omi_api.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/composio/src/notion.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/notifications/hey_omi.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 137 | def set_compare(query_holder: dict, url_key: str, **overrides) -> None: | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 152 | def set_stat_query(panel, path: str, root: str, selector: str, text: str) -> None: | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 495 | def set_kfactor_tile_description(dash, platform_label: str, scope: str = "all") -> None: | CODE |
| LOW | desktop/context-for-claude/scripts/generate-appcast.py | 108 | def set_channel_text(channel: ET.Element, tag: str, text: str) -> None: | CODE |
| LOW | backend/main.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/dependencies.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/sync.py | 168 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/pusher.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/auth.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_use.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_use.py | 188 | __all__ = [ | CODE |
| LOW | backend/routers/auto_model.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/account_cutover.py | 55 | __all__ = ['router'] | CODE |
| LOW⚡ | backend/routers/advice.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/x_connector.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/chat_generation.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/workstreams.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/workstreams.py | 309 | __all__ = ['router'] | CODE |
| LOW | backend/routers/firmware.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/feedback_admin.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/users.py | 161 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/email_preferences.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/wrapped.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/fair_use_admin.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/updates.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/frame_requests.py | 55 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/frame_requests.py | 645 | __all__ = ["router"] | CODE |
| LOW | backend/routers/tools.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/static_map.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/static_map.py | 80 | __all__ = [ | CODE |
| LOW | backend/routers/dream_sweep.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/desktop_experiments.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/jit_rollout.py | 189 | __all__ = [ | CODE |
| LOW | backend/routers/canonical_task_access.py | 20 | __all__ = ['require_canonical_task_user'] | CODE |
| LOW | backend/routers/tts.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/google_calendar.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_product.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_product.py | 269 | __all__ = [ | CODE |
| LOW⚡ | backend/routers/apps.py | 431 | def _set_instructions_url_flag(external_integration: dict) -> None: | CODE |
| LOW | backend/routers/apps.py | 155 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/imports.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/integration.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/screen_frames.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/conversation_finalization.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/chat.py | 119 | logger = logging.getLogger(__name__) | CODE |
| 657 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2262 | # Copy pi-mono-extension (default harness — registers the Omi provider | COMMENT |
| MEDIUM | app/setup.sh | 94 | # Use hostname or a hash of it as suffix; a session harness (or two | COMMENT |
| MEDIUM | app/setup.sh | 361 | # Named checks with remedies, matching the harness's own pattern | COMMENT |
| MEDIUM | app/setup.sh | 362 | # (scripts/dev-harness's `Cannot start; missing prerequisites:` block) instead | COMMENT |
| MEDIUM | app/integration_test/journeys/run_journeys.sh | 14 | # session harness backend + Auth emulator; pass its base URL) | COMMENT |
| MEDIUM | app/test/shell/ios_prerequisites_test.sh | 9 | # build instead of a named error with a remedy, unlike the harness's own | COMMENT |
| MEDIUM | app/test/shell/ios_prerequisites_test.sh | 49 | # coreutils (bash, sort, grep, awk, printf) so the harness itself still runs. | COMMENT |
| MEDIUM | app/scripts/visual_audit.sh | 11 | # exit. The harness and scenarios come from THIS checkout's app/integration_test/visual_audit/, | COMMENT |
| MEDIUM | app/scripts/visual_audit.sh | 60 | # One snapshot of the harness and registry, so both sides run exactly the same scenarios. | COMMENT |
| MEDIUM | plugins/test_oauth_error_params_escaped.py | 27 | # standalone harness: AST-driven per-app import stubbing (same loader as | COMMENT |
| MEDIUM⚡ | …ins/omi-shopify-app/test_robustness_and_null_guards.py | 28 | # Load test harness from test_limit_inputs | COMMENT |
| MEDIUM | plugins/zapier/client.py | 9 | # Fallback to direct package import when running outside parent package context (e.g. test harness) | COMMENT |
| MEDIUM | plugins/zapier/conversation_created.py | 15 | # Fallback to direct package import when running outside parent package context (e.g. test harness) | COMMENT |
| MEDIUM | plugins/iq_rating/main.py | 244 | """Use OpenAI to filter out non-names from a list with robust exception guards.""" | STRING |
| LOW | plugins/import/manual-import/app.py | 215 | # As a last resort, if nothing else was found, just return the whole text as one memory | STRING |
| MEDIUM | web/app/src/lib/transcriptionSocket.ts | 229 | // Don't call onDisconnected during token refresh - it's a seamless reconnection | COMMENT |
| MEDIUM⚡ | desktop/macos/run.sh | 114 | ./run.sh --fast-only --no-wait # Relaunch an eligible remote/harness bundle, then return | CODE |
| MEDIUM⚡ | desktop/macos/run.sh | 122 | # is a service-revision target, not an isolated local-data harness. | COMMENT |
| MEDIUM | desktop/macos/run.sh | 285 | # intended for the remote-dev and local-harness fast lanes; a run.sh-owned | COMMENT |
| MEDIUM | desktop/macos/run.sh | 345 | # An external harness may request an ownership proof for a detached `open` | COMMENT |
| MEDIUM | desktop/macos/run.sh | 769 | # `Aqua` — CI, an ssh shell, an agent harness, a LaunchDaemon) has no window server, so | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1160 | # The local harness already owns an isolated debug backend. Do not compete | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1696 | # A harness cleanup proof is valid only when this token has also been | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1779 | # (e.g. desktop-core-harness.sh). Default token discovery prefers Darwin | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1780 | # user temp in harness clients, matching NSTemporaryDirectory(). | COMMENT |
| MEDIUM | desktop/macos/tests/test-fault-suite-launch-env.sh | 130 | # the expected executable path and run-unique launch token, so the harness uses | COMMENT |
| MEDIUM | …ktop/macos/tests/test-fault-suite-owned-app-cleanup.sh | 152 | # the supervisor token, not by killing the shell that launched omi-harness. | COMMENT |
| MEDIUM | …ktop/macos/tests/test-fault-suite-owned-app-cleanup.sh | 187 | # the harness alongside the unguessable token. | COMMENT |
| MEDIUM | desktop/macos/tests/test-swift-test-suites.sh | 284 | # installing its temporary harness owner. | COMMENT |
| MEDIUM | desktop/macos/tests/test_desktop_flow_lint.py | 4 | #13550: harness-smoke and other flows waited on state.selectedTabIndex after the | STRING |
| MEDIUM | …/tests/test-desktop-core-harness-readiness-teardown.sh | 131 | # dev bundle up on the default 47777 the harness reached that check and sourced | COMMENT |
| MEDIUM | …op/macos/Desktop/Tests/GlassButtonPrimitiveTests.swift | 11 | /// the product decides at once. That leverage is why it is worth a test, and it is also exactly how | COMMENT |
| MEDIUM | …esktop/Sources/MainWindow/Dashboard/DayZeroChips.swift | 9 | /// on this week", "highest-leverage thing"). Users who stopped after one or two | COMMENT |
| MEDIUM | …top/macos/Desktop/Sources/Providers/ChatProvider.swift | 127 | metadataJSON: #"{"harness":"owner_isolation_probe"}"#, | CODE |
| MEDIUM | …top/macos/Desktop/Sources/Providers/ChatProvider.swift | 138 | metadataJSON: #"{"harness":"owner_isolation_probe"}"#, | CODE |
| MEDIUM | …op/Sources/ProactiveAssistants/UI/GlowEdgeWindow.swift | 22 | /// How much the edge window overlaps INTO the target window (for seamless appearance) | COMMENT |
| MEDIUM | desktop/macos/agent/src/adapters/interface.ts | 4 | // Issue #6594: Pi-mono harness with Omi API proxy. | COMMENT |
| MEDIUM | desktop/macos/agent/src/adapters/pi-mono.ts | 8 | // Issue #6594: Pi-mono harness with Omi API proxy for server-side cost control. | COMMENT |
| MEDIUM | desktop/macos/pi-mono-extension/index.ts | 10 | // pipe-to-shell, destructive git, etc.) so tool execution is seamless | COMMENT |
| MEDIUM | desktop/macos/pi-mono-extension/index.ts | 22 | // Issue #6594: Pi-mono harness with Omi API proxy for server-side cost control. | COMMENT |
| MEDIUM | desktop/macos/scripts/omi-fault-inject.sh | 5 | # The hermetic E2E harness is backend-only (Python); there is no desktop↔backend | COMMENT |
| MEDIUM | …sktop/macos/scripts/check-gauntlet-evidence-at-head.sh | 8 | # Looks for desktop/macos/.harness/agent-continuity-gauntlet/*/manifest.json with | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 2 | # Focused, self-driving harness for spatial overlay anchoring and connector guidance. | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 5 | # cd desktop/macos && ./scripts/spatial-overlay-harness.sh | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 6 | # ./scripts/spatial-overlay-harness.sh --visual --port 47919 | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 7 | # ./scripts/spatial-overlay-harness.sh --swift-only | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 8 | # ./scripts/spatial-overlay-harness.sh --verbose | COMMENT |
| MEDIUM | desktop/macos/scripts/spatial-overlay-harness.sh | 137 | local log_path="$RUN_DIR/$(printf '%02d' "$((${#STEP_NAMES[@]} + 1))")-harness-failure-propagation-self-check.log" | CODE |
| MEDIUM | …ktop/macos/scripts/omi-local-profile-keychain-reset.sh | 2 | # Clear disposable, bundle-scoped secrets before a local-harness app launch. | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 2 | # Focused, self-driving harness for desktop agent / realtime voice control-plane changes. | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 5 | # cd desktop/macos && ./scripts/agent-logic-harness.sh | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 6 | # ./scripts/agent-logic-harness.sh --swift-only | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 7 | # ./scripts/agent-logic-harness.sh --node-only | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 8 | # ./scripts/agent-logic-harness.sh --cross-surface-smoke | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 9 | # ./scripts/agent-logic-harness.sh --skip-install | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/agent-logic-harness.sh | 10 | # ./scripts/agent-logic-harness.sh --verbose | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-logic-harness.sh | 163 | local log_path="$RUN_DIR/$(printf '%02d' "$((${#STEP_NAMES[@]} + 1))")-harness-failure-propagation-self-check.log" | CODE |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 2 | # Desktop Core E2E harness — tiered dispatcher over existing runners. | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 5 | # ./scripts/desktop-core-harness.sh --self-check | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 6 | # ./scripts/desktop-core-harness.sh --self-check --skip-backend-contracts | COMMENT |
| 164 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …src/main/kotlin/com/example/my_project/MainActivity.kt | 41 | com.friend.ios.ble.DeviceHealthPersistence.setPolicy(applicationContext, | CODE |
| CRITICAL | …ages/conversations/widgets/conversation_list_item.dart | 554 | final text = widget.conversation.matchSnippets.first.text.trim(); | CODE |
| CRITICAL | …renderer/src/lib/voice/turn/voiceHubTurnDriver.test.ts | 445 | const [firstId, secondId] = h.spies.onRecordTurn.mock.calls.map((c) => c[3]) | CODE |
| CRITICAL⚡ | backend/tests/routers/test_search.py | 236 | client.collection.return_value.document.return_value.collection.assert_called_once_with('people') | CODE |
| CRITICAL⚡ | backend/tests/unit/test_conversation_typesense_index.py | 357 | typesense_client.collections.__getitem__.return_value.documents.upsert.assert_not_called() | CODE |
| CRITICAL | backend/tests/unit/test_conversation_typesense_index.py | 333 | typesense_client.collections.__getitem__.return_value.documents.upsert.assert_not_called() | CODE |
| CRITICAL | backend/tests/unit/test_conversation_typesense_index.py | 346 | typesense_client.collections.__getitem__.return_value.documents.upsert.assert_not_called() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 225 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 397 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 500 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 704 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 787 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 834 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 947 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 2134 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL | backend/tests/unit/test_live_recovery_matrix.py | 2216 | actual.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL⚡ | backend/tests/unit/test_onboarding_state_merge.py | 38 | client.collection.return_value.document.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | backend/tests/unit/test_live_death_socket_accounting.py | 148 | receiver.host.request.websocket.close.assert_awaited_once_with( | CODE |
| CRITICAL⚡ | backend/tests/unit/test_location_context_consent.py | 54 | client.collection.return_value.document.return_value.set.assert_called_once_with( | CODE |
| CRITICAL | backend/tests/unit/test_parakeet_failover_exhausted.py | 165 | actual.host.request.websocket.close.assert_awaited_once_with( | CODE |
| CRITICAL | backend/tests/unit/test_parakeet_failover_exhausted.py | 186 | actual.host.request.websocket.close.assert_awaited_once() | CODE |
| CRITICAL | backend/tests/unit/test_modulate_capacity_failover.py | 253 | actual.host.request.websocket.close.assert_awaited_once() | CODE |
| CRITICAL⚡ | backend/tests/unit/test_stt_session_failover.py | 347 | receiver.host.request.websocket.close.assert_not_awaited() | CODE |
| CRITICAL⚡ | backend/tests/unit/test_stt_session_failover.py | 361 | receiver.host.request.websocket.close.assert_awaited_once() | CODE |
| CRITICAL | backend/tests/unit/test_stt_session_failover.py | 189 | receiver.host.request.websocket.close.assert_not_called() | CODE |
| CRITICAL | …ests/unit/test_live_chain_exhaustion_classification.py | 189 | receiver.host.request.websocket.send_json.assert_awaited_once() | CODE |
| CRITICAL | backend/tests/unit/test_firestore_tier_context.py | 104 | client.collection.return_value.document.return_value.set.assert_not_called() | CODE |
| CRITICAL | backend/tests/unit/test_firestore_tier_context.py | 242 | client.collection.return_value.document.return_value.set.assert_not_called() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/FLASH_3.0.8/README.md | 25 | ### Step 1: Download Latest Firmware | COMMENT |
| LOW | omi/firmware/FLASH_3.0.8/README.md | 36 | ### Step 2: Replace Existing Firmware Files | COMMENT |
| LOW | omi/firmware/FLASH_3.0.8/README.md | 58 | ### Step 3: Verify File Replacement | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 78 | ### Step 1: Prepare the Adafruit 5769 board | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 88 | ### Step 2: Solder XIAO nRF52840 Sense to Adafruit 5769 board | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 125 | ### Step 3: Attach the button | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 153 | ### Step 4: Solder board edges with wire | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 190 | ### Step 5: Solder the speaker | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 200 | ### Step 6: Solder the battery | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 221 | ### Step 7: Clean the board | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 230 | ### Step 8: Assembly preparation | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 255 | ### Step 9: Attach the speaker to the enclosure | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 280 | ### Step 10: Microphone noise isolation (Optional) | COMMENT |
| LOW | omi/hardware/triangle v2 w memory/README.md | 292 | ### Step 11: Assemble the device | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 361 | // Step 1: API call gets 401, tries to refresh token | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 371 | // Step 2: signOut is called (clears cache) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 376 | // Step 3: isSignedIn returns false (no Firebase user, no cached fallback) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 380 | // Step 4: keepAlive timer checks auth — does NOT reconnect | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 390 | // Step 1: getIdToken returns cached expired token (BUG 1) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 398 | // Step 2: signOut doesn't clear cache (BUG 2) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 402 | // Step 3: isSignedIn returns true because of cached token (BUG 3) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 406 | // Step 4: keepAlive reconnects unconditionally (BUG 4) | COMMENT |
| LOW | …test/providers/omi_button_actions_controller_test.dart | 297 | onboarding.advanceStep(); // Step 1: single press | CODE |
| LOW | app/scripts/profile_flutter_android.sh | 108 | # Step 1: Build APK | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 153 | # Step 2: Start screen recording | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 183 | # Step 3: Install APK | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 188 | # Step 4: Launch app | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 199 | # Step 5: Wait for UI state | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 219 | # Step 6: Wait additional delay | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 223 | # Step 7: Measure CPU | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4830 | /// Step 1: Checking for audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4836 | /// Step 2: Syncing audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4842 | /// Step 3: Server processing | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 23 | // Step 0: Transcription demo | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 28 | // Step 1: Single press - ask a question | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 36 | // Step 2: Voice reply preference. Null until the step is visited so a user | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 40 | // Step 2: Power cycle | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 43 | // Step 3: Double press config | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 149 | // Step 1: Creating plan | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 156 | // Step 2: Developing logic | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 169 | // Step 3: Designing app | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 180 | // Step 4: Generating icon | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 194 | // Step 5: Final touches | COMMENT |
| LOW | …ib/services/sockets/transcription_polling_service.dart | 242 | // Step 1: Upload to get presigned URL | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 401 | // Step 1: Set WiFi credentials | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 410 | // Step 2: Set firmware URL | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 419 | // Step 3: Subscribe to status updates if callback provided | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 428 | // Step 4: Start OTA update | COMMENT |
| LOW⚡ | plugins/omi-shopify-app/README.md | 203 | ### Step 1: Create Railway Project | COMMENT |
| LOW⚡ | plugins/omi-shopify-app/README.md | 209 | ### Step 2: Add Redis Database (Optional) | COMMENT |
| LOW⚡ | plugins/omi-shopify-app/README.md | 215 | ### Step 3: Configure Environment Variables | COMMENT |
| LOW⚡ | plugins/omi-shopify-app/README.md | 225 | ### Step 4: Update Shopify Partner Dashboard | COMMENT |
| LOW⚡ | plugins/omi-shopify-app/README.md | 233 | ### Step 5: Update Omi App Store | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 217 | ### Step 1: Create Railway Project | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 223 | ### Step 2: Add Redis Database | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 229 | ### Step 3: Configure Environment Variables | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 241 | ### Step 4: Configure Root Directory | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 248 | ### Step 5: Update Linear OAuth App | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 256 | ### Step 6: Update Omi App Store | COMMENT |
| LOW | plugins/omi-github-app/claude_coder.py | 205 | # Step 1: Get the base branch reference | STRING |
| 112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 361 | // Step 1: API call gets 401, tries to refresh token | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 371 | // Step 2: signOut is called (clears cache) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 376 | // Step 3: isSignedIn returns false (no Firebase user, no cached fallback) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 380 | // Step 4: keepAlive timer checks auth — does NOT reconnect | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 390 | // Step 1: getIdToken returns cached expired token (BUG 1) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 398 | // Step 2: signOut doesn't clear cache (BUG 2) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 402 | // Step 3: isSignedIn returns true because of cached token (BUG 3) | COMMENT |
| LOW⚡ | app/test/unit/token_refresh_loop_test.dart | 406 | // Step 4: keepAlive reconnects unconditionally (BUG 4) | COMMENT |
| LOW | …test/providers/omi_button_actions_controller_test.dart | 297 | onboarding.advanceStep(); // Step 1: single press | CODE |
| LOW | app/scripts/profile_flutter_android.sh | 108 | # Step 1: Build APK | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 153 | # Step 2: Start screen recording | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 183 | # Step 3: Install APK | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 188 | # Step 4: Launch app | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 199 | # Step 5: Wait for UI state | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 219 | # Step 6: Wait additional delay | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 223 | # Step 7: Measure CPU | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4830 | /// Step 1: Checking for audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4836 | /// Step 2: Syncing audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4842 | /// Step 3: Server processing | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 23 | // Step 0: Transcription demo | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 28 | // Step 1: Single press - ask a question | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 36 | // Step 2: Voice reply preference. Null until the step is visited so a user | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 40 | // Step 2: Power cycle | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 43 | // Step 3: Double press config | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 149 | // Step 1: Creating plan | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 156 | // Step 2: Developing logic | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 169 | // Step 3: Designing app | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 180 | // Step 4: Generating icon | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 194 | // Step 5: Final touches | COMMENT |
| LOW | …ib/services/sockets/transcription_polling_service.dart | 242 | // Step 1: Upload to get presigned URL | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 401 | // Step 1: Set WiFi credentials | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 410 | // Step 2: Set firmware URL | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 419 | // Step 3: Subscribe to status updates if callback provided | COMMENT |
| LOW⚡ | …b/services/devices/connectors/omiglass_connection.dart | 428 | // Step 4: Start OTA update | COMMENT |
| LOW | plugins/omi-github-app/claude_coder.py | 205 | # Step 1: Get the base branch reference | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 219 | # Step 2: Get the base tree | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 233 | # Step 3: Create blobs for each file | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 267 | # Step 4: Create a new tree | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 286 | # Step 5: Create a commit | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 306 | # Step 6: Create/update the branch reference | STRING |
| LOW | …Arduino/src/nimble/nimble/controller/src/ble_ll_conn.c | 1010 | * We need to check if we are retrying a pdu or if there is a pdu on | COMMENT |
| LOW | …Arduino/src/nimble/nimble/controller/src/ble_ll_scan.c | 2055 | * If AdvA is an identity address, we need to check if that device was | COMMENT |
| LOW | …-Arduino/src/nimble/nimble/controller/src/ble_ll_adv.c | 361 | * resolving list. That is why we need to check if the generated address is | COMMENT |
| LOW | …-Arduino/src/nimble/nimble/controller/src/ble_ll_adv.c | 1548 | * In case duration is set for advertising set we need to check if newly | COMMENT |
| LOW | …-Arduino/src/nimble/nimble/controller/src/ble_ll_adv.c | 1677 | * In case duration is set for advertising set we need to check if at least | COMMENT |
| LOW | omiGlass/firmware/src/ota.cpp | 181 | // Step 1: Connect to WiFi | COMMENT |
| LOW⚡ | omiGlass/firmware/src/ota.cpp | 197 | // Step 2: Download and install firmware | COMMENT |
| LOW⚡ | omiGlass/firmware/src/ota.cpp | 205 | // Step 3: Reboot | COMMENT |
| LOW | web/admin/app/api/omi/notifications/regenerate/route.ts | 223 | // Step 1: Gate | COMMENT |
| LOW | web/admin/app/api/omi/notifications/regenerate/route.ts | 258 | // Step 2: Generate (uses the user's prompt template) | COMMENT |
| LOW | web/admin/app/api/omi/notifications/regenerate/route.ts | 304 | // Step 3: Critic | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 350 | // Step 1: Gate | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 353 | // Step 2: Generate (always run so we can show what it would produce) | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 363 | // Step 3: Critic (only if there's advice to critique) | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 731 | // Step 1: Generate nonce for security | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 736 | // Step 2: Perform native Apple Sign In | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 743 | // Step 3: Extract identity token | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 937 | // Step 2: Build authorization URL | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 946 | // Step 3: Open browser for authentication | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 956 | // Step 4: Wait for callback with authorization code | COMMENT |
| 85 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/integration_test/visual_audit/harness.dart | 51 | /// these revisions; null uses the theme's scaffold colour. | COMMENT |
| MEDIUM | …_test/visual_audit/compat/pre-ui-program/registry.dart | 52 | // The theme left the scaffold at Material's default grey; HomePage painted its tabs on | COMMENT |
| MEDIUM | …test/widgets/device_onboarding_step_contrast_test.dart | 9 | // scaffold used to hard-code white text and a white button, which vanished on the | COMMENT |
| MEDIUM | app/lib/ui/ui.dart | 27 | /// Page backgrounds are `OmiColors.surface0` (also the scaffold default); never read | COMMENT |
| MEDIUM | app/lib/pages/chat/page.dart | 730 | // Dismiss the keyboard before opening the drawer, once the scaffold has settled. | COMMENT |
| MEDIUM | app/e2e/FLOW-WALKER-SKILL.md | 253 | # Generate a named flow scaffold | COMMENT |
| MEDIUM | plugins/omi-github-app/claude_code_agentic.py | 83 | # Run agentic Claude with file access | COMMENT |
| MEDIUM | desktop/macos/test.sh | 78 | # (durable fix is singleton dependency injection; see the same issue). | COMMENT |
| MEDIUM | …cos/Desktop/Tests/MemoryVisibilityGuardrailTests.swift | 58 | /// **The regression.** Home's spine reads a projection with the guardrails applied; the raw | COMMENT |
| MEDIUM | …cos/Desktop/Tests/MemoryVisibilityGuardrailTests.swift | 132 | /// the guardrails reaches the day. | COMMENT |
| MEDIUM | …os/Desktop/Sources/MainWindow/Pages/MemoriesPage.swift | 964 | /// The guardrails, bound to this page's state. One definition, two readers, so they cannot drift. | COMMENT |
| MEDIUM | …rces/MainWindow/Pages/MemoryVisibilityGuardrails.swift | 22 | /// Apply the two guardrails every memory surface owes the user. | COMMENT |
| MEDIUM | desktop/macos/scripts/swift-test-suites.sh | 615 | # Static guardrails are part of the authoritative Swift component suite, not a | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/omi-hardening-smoke.sh | 568 | # run — orchestration | COMMENT |
| MEDIUM | …/docs/mac-parity-audit/11-fileindex-knowledge-graph.md | 168 | ### Chat agent local-context enrichment (`execute_sql` agentic pre-step) | COMMENT |
| MEDIUM | …dows/docs/mac-parity-audit/02-proactive-tasks-goals.md | 318 | ## "Execute" — full-desktop agentic task execution — engine exists generally, not wired to tasks | COMMENT |
| MEDIUM | …windows/docs/mac-parity-audit/04-chat-agent-runtime.md | 404 | ## ChatProvider orchestration + warmup (architecture) — unchanged from old audit | COMMENT |
| MEDIUM | …track2-groundtruth/09-phaseB-voiceturn-outbox-tools.md | 122 | ### `persistTurnToKernelThroughTransientFailures` — write orchestration (line 1457-1494) | COMMENT |
| MEDIUM | desktop/windows/src/renderer/src/lib/localAgent.ts | 32 | // cleaner context. Flip to true to restore the macOS-faithful agentic pre-step. | COMMENT |
| MEDIUM | …windows/src/main/agentKernel/desktopChatPrompt.test.ts | 46 | // guardrails, exactly as Mac front-loads them (ChatPrompts.desktopChat). | COMMENT |
| MEDIUM | backend/desktop_download_page.py | 92 | # One-time launch scaffolding: delete this constant, _product_hunt_badge_html, and its | COMMENT |
| MEDIUM⚡ | backend/AGENTS.md | 64 | llm/ # LLM orchestration (14 files): chat processing, conversation post-processing, | CODE |
| MEDIUM⚡ | backend/AGENTS.md | 73 | retrieval/ # RAG pipeline (25+ files): agentic RAG via gateway Luna (gpt-x-luna) with 18 tool types — | CODE |
| MEDIUM⚡ | backend/AGENTS.md | 73 | retrieval/ # RAG pipeline (25+ files): agentic RAG via gateway Luna (gpt-x-luna) with 18 tool types — | CODE |
| MEDIUM | backend/routers/agent_tools.py | 146 | # path in utils/retrieval/agentic.py. | COMMENT |
| MEDIUM | backend/llm_gateway/config/cost_rate_cards.yaml | 42 | # Sol and Terra (GPT-5.6) share one context window and one long-context | COMMENT |
| MEDIUM | backend/llm_gateway/gateway/validator.py | 42 | # The upstream route's context window is 32k tokens. Callers truncate first; | COMMENT |
| MEDIUM | backend/diarizer/embedding.py | 52 | # Instantiate pretrained speaker embedding model | COMMENT |
| MEDIUM | backend/config/jev_decisions.py | 27 | # The upstream route's context window is 32k tokens. Characters are a | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_mcp_action_item_writes.py | 178 | # Shared orchestration (utils/mcp_action_items.py) | COMMENT |
| MEDIUM | backend/tests/unit/test_action_items_timezone.py | 170 | # Stub utils.retrieval.agentic (agent_config_context) | COMMENT |
| MEDIUM | backend/tests/unit/test_screen_activity_search_utc.py | 50 | # the module can load under a plain name). The utils.retrieval.agentic import is left to fail so the | COMMENT |
| MEDIUM | backend/tests/unit/test_action_item_date_validation.py | 299 | # Stub utils.retrieval.agentic | COMMENT |
| MEDIUM | …nd/tests/unit/test_client_processing_trust_boundary.py | 100 | # Unique token that must never leak into structured / transcript / RAG cards. | COMMENT |
| MEDIUM | …nd/tests/unit/test_client_processing_trust_boundary.py | 122 | # goals, action-item stores, chat-RAG, and the daily recap (which may render | COMMENT |
| MEDIUM | …nd/tests/unit/test_client_processing_trust_boundary.py | 162 | # Chat RAG / retrieval (explicit, not a tree walk). | COMMENT |
| MEDIUM | …nd/tests/unit/test_client_processing_trust_boundary.py | 269 | # and RAG are absent. ``conversation_to_dict`` is a dump without a named read. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_extracted_date_bounds.py | 29 | # "the wedding is in about 18 months" must not be discarded as a hallucination. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_tool_services_timezone.py | 169 | # Memory dates — REST tool service and the agentic tool | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_dev_ask_endpoint.py | 56 | qa.assert_not_called() # no billable RAG call on an empty retrieval | CODE |
| MEDIUM | backend/tests/unit/test_day3_reengagement.py | 459 | # --- run_day3_reengagement: orchestration ---------------------------------- | COMMENT |
| MEDIUM | backend/tests/unit/test_llm_usage_db.py | 252 | # RAG should be first (700 total tokens vs 150) | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_listen_speaker_id_failover.py | 122 | # Deterministic audio and the fake embedding model. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_audio_timeline_round3.py | 167 | # Provider timestamps beyond every accepted send (a hallucination): with | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 339 | # message_text, MAX_CHAT_INPUT_TOKENS, INPUT_TOO_LONG_MESSAGE. agentic.py imports several of these, | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 343 | # Real (import-light) fallback telemetry: agentic.py imports record_fallback from it. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 347 | # the realtime voice journey, and agentic.py imports it to record the memory_retrieval journey. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 352 | # Real (import-light) web_search gate. agentic.py now imports WEB_SEARCH_TOOL and | COMMENT |
| MEDIUM | backend/tests/unit/test_prompt_cache_integration.py | 261 | # utils.observability.fallback is import-light (metrics counter + logging) and agentic.py calls | COMMENT |
| MEDIUM | backend/tests/unit/test_prompt_cache_integration.py | 442 | # Module-scope import in agentic.py; stub is enough for CORE_TOOLS / convert_tools tests. | COMMENT |
| MEDIUM | backend/tests/unit/test_prompt_cache_integration.py | 499 | # statement in agentic.py), but the real LangChain tool overrides its | COMMENT |
| MEDIUM | …nd/tests/integration/test_speaker_id_real_embedding.py | 571 | # Any of the 3 persons can match since the embedding model maps both | COMMENT |
| MEDIUM | backend/utils/rate_limit_config.py | 144 | # Platform tools — backend RAG endpoints | COMMENT |
| MEDIUM | backend/utils/memory_ingestion/models.py | 61 | auto_create_medium_confidence: bool = True # relaxed from False post-hallucination-campaign | CODE |
| MEDIUM | backend/utils/memory_ingestion/pipeline.py | 485 | _MIN_SIGNAL_DENSITY = 2.0 # avg substantive words per text-bearing turn (relaxed from 3.5 post-hallucination-campaign) | CODE |
| MEDIUM | …ils/memory_ingestion/adapters/production_like_model.py | 883 | # Relaxed from 6-condition gate (post-hallucination-campaign): removed | COMMENT |
| MEDIUM | …ils/memory_ingestion/adapters/production_like_model.py | 1065 | # Relaxed post-hallucination-campaign: removed preference-indicating phrases | COMMENT |
| MEDIUM | …ils/memory_ingestion/adapters/production_like_model.py | 255 | source_type=route.effective_source_type, # V8-3 passthrough router scaffold | STRING |
| MEDIUM | backend/utils/llm/gateway_client.py | 34 | # Narrow agentic-chat route pin. Independent of FEATURE_MODE so gateway can stay | COMMENT |
| MEDIUM | backend/utils/llm/temporal.py | 57 | # Two years is generous on purpose — the bound exists to drop hallucinations, and people do plan | COMMENT |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | codemagic.yaml | 1116 | # Check if triggered by tag or push | COMMENT |
| LOW | codemagic.yaml | 1438 | # Check if private key is a file or content | COMMENT |
| LOW | codemagic.yaml | 1496 | # Check if private key is a file or content | COMMENT |
| LOW | omi/firmware/scripts/monitor_device.sh | 78 | # Check if the script/screen process died prematurely | COMMENT |
| LOW | omi/firmware/scripts/build-docker.sh | 12 | # Check if Docker is installed | COMMENT |
| LOW | omi/firmware/scripts/build-docker.sh | 66 | # Check if the build was successful | COMMENT |
| LOW | sdks/python/release.sh | 10 | # Check if we're in the right directory | COMMENT |
| LOW | sdks/python/release.sh | 16 | # Check if required tools are installed | COMMENT |
| LOW | sdks/python/release.sh | 31 | # Check if this version already exists on PyPI | COMMENT |
| LOW | sdks/python/release.sh | 50 | # Check if we're on main branch (optional warning) | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 701 | # Check if new customer (orders_count == 1 at time of order) | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 787 | # Check if COGS data is complete | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1174 | # Check if discount code implies free shipping | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1544 | # Check if this zone applies to the destination | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1552 | # Check if it's a country-wide zone or has province restrictions | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1900 | # Check if customer already exists | COMMENT |
| LOW | plugins/omi-linear-app/db.py | 89 | # Set expiry to 365 days (Linear tokens are long-lived) | COMMENT |
| LOW | plugins/omi-whoop-app/main.py | 110 | # Check if token is expired (with 5 minute buffer) | COMMENT |
| LOW | plugins/hume-ai/start_server.sh | 8 | # Check if .env file exists | COMMENT |
| LOW | plugins/hume-ai/start_server.sh | 16 | # Check if HUME_API_KEY is set | COMMENT |
| LOW | plugins/hume-ai/start_server.sh | 37 | # Check if server is running | COMMENT |
| LOW | plugins/hume-ai/main.py | 179 | # Check if should send notification | COMMENT |
| LOW | plugins/hume-ai/main.py | 411 | # Check if running in single-worker mode | COMMENT |
| LOW | plugins/omi-twitter-chat-tools-app/main.py | 102 | # Check if token is expired (with 5 minute buffer) | COMMENT |
| LOW | plugins/omi-dropbox-app/main.py | 128 | # Check if token is expired (with 5 min buffer) | COMMENT |
| LOW | plugins/omi-dropbox-app/main.py | 581 | # Check if user is connected | COMMENT |
| LOW | plugins/omi-shipbob-app/main.py | 165 | # Check if token needs refresh (ShipBob tokens last 1 hour) | COMMENT |
| LOW | plugins/iq_rating/main.py | 1231 | # Check if we have stored raw data | COMMENT |
| LOW | plugins/omi-twitter-app/simple_storage.py | 12 | # Check if we're on Railway (has /app/data volume) | COMMENT |
| LOW | plugins/omi-twitter-app/main_simple.py | 584 | # Check if token needs refresh | COMMENT |
| LOW | plugins/omi-twitter-app/main_simple.py | 588 | # Check if we have a valid refresh token | COMMENT |
| LOW | plugins/omi-github-app/claude_code_cli.py | 106 | # Check if there are changes to commit | COMMENT |
| LOW | plugins/omi-github-app/simple_storage.py | 14 | # Check if we're on Railway (has /app/data volume) | COMMENT |
| LOW | plugins/omi-github-app/start-local.sh | 10 | # Check if .env exists | COMMENT |
| LOW | plugins/omi-github-app/start-local.sh | 17 | # Check if API keys are configured | COMMENT |
| LOW | plugins/omi-github-app/start-local.sh | 34 | # Check if venv exists | COMMENT |
| LOW | plugins/omi-github-app/start-local.sh | 45 | # Check if ngrok is running | COMMENT |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 198 | # Check if Claude is done | COMMENT |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 200 | # Check if Claude said implementation is complete | COMMENT |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 249 | # Check if there are changes | COMMENT |
| LOW | plugins/omi-google-calendar-app/main.py | 128 | # Check if token is expired (with 5 minute buffer) | COMMENT |
| LOW | plugins/omi-slack-app/simple_storage.py | 12 | # Check if we're on Railway (has /app/data volume) | COMMENT |
| LOW | plugins/omi-slack-app/slack_client.py | 221 | # Check if there are more pages | COMMENT |
| LOW | plugins/omi-slack-app/slack_client.py | 285 | # Check if message was posted by bot or user | COMMENT |
| LOW | plugins/omi-slack-app/slack_client.py | 405 | # Check if query is asking for recent messages (today, recent, etc.) | COMMENT |
| LOW | plugins/omi-hive-app/db.py | 92 | # Set expiry to 365 days (API keys don't expire, but we want cleanup) | COMMENT |
| LOW | plugins/composio/src/notion.py | 207 | # Check if there are more blocks | COMMENT |
| LOW | plugins/omi-clickup-app/simple_storage.py | 12 | # Check if we're on Railway (has /app/data volume) | COMMENT |
| LOW | plugins/import/manual-import/app.py | 176 | # Check if adding this point would exceed the maximum length | STRING |
| LOW | plugins/import/manual-import/app.py | 255 | # Check if OpenAI API key is set | COMMENT |
| LOW | plugins/import/manual-import/app.py | 340 | # Check if all memories were successful | COMMENT |
| LOW | plugins/import/manual-import/app.py | 377 | # Check if OpenAI API is configured | COMMENT |
| LOW | omiGlass/firmware/scripts/flash_esp32.sh | 21 | # Check if PlatformIO is installed | COMMENT |
| LOW | omiGlass/firmware/scripts/flash_esp32.sh | 31 | # Check if the device is connected | COMMENT |
| LOW | omiGlass/firmware/scripts/build_uf2.sh | 99 | # Check if we're in the firmware directory | COMMENT |
| LOW | omiGlass/firmware/scripts/build_uf2.sh | 105 | # Check if Python 3 is available | COMMENT |
| LOW | omiGlass/firmware/scripts/build_uf2.py | 158 | # Check if we're in the right directory | COMMENT |
| LOW | desktop/macos/.github/workflows/test-install.yml | 174 | # Check if running | COMMENT |
| LOW | backend/test-preflight.sh | 155 | # Check if the discovered full unit suite resolves cleanly. | COMMENT |
| LOW | backend/routers/phone_calls.py | 121 | # Check if already verified | COMMENT |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/shorebird.yaml | 1 | # This file is used to configure the Shorebird updater used by your app. | COMMENT |
| MEDIUM | app/.maestro/flows/04_memories.yaml | 28 | # Create a new memory via the add button | COMMENT |
| MEDIUM⚡ | sdks/python-cli/examples/shell_examples.sh | 28 | # Create a memory with a category and tags: | COMMENT |
| MEDIUM⚡ | sdks/python-cli/examples/shell_examples.sh | 85 | # Create a numeric goal: | COMMENT |
| MEDIUM | sdks/python-cli/examples/action_items_to_opml.py | 22 | # Create the root element | COMMENT |
| MEDIUM | plugins/omi-linear-app/main.py | 622 | # Create the issue | COMMENT |
| MEDIUM | plugins/omi-github-app/main.py | 528 | # Create the issue | COMMENT |
| MEDIUM | plugins/omi-hive-app/main.py | 850 | # Create the task via REST API - endpoint is /actions/create | COMMENT |
| MEDIUM | plugins/composio/test_setup.py | 68 | # Create the directory | COMMENT |
| MEDIUM | plugins/composio/src/db.py | 22 | # Create the necessary tables | COMMENT |
| MEDIUM | plugins/composio/src/__init__.py | 2 | # This module contains the core functionality for the OMI-Composio integration plugin | COMMENT |
| MEDIUM | plugins/import/manual-import/app.py | 166 | # Create a consolidated memory with source attribution | STRING |
| MEDIUM | plugins/import/manual-import/app.py | 302 | # Create the memories data according to v2 endpoint structure | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-runtime-cache.sh | 3 | # This file is sourced by production code and its hermetic shell tests. | COMMENT |
| MEDIUM | backend/routers/auth.py | 1181 | # Create the JWT payload | COMMENT |
| MEDIUM | backend/routers/auth.py | 1191 | # Create the JWT headers | COMMENT |
| MEDIUM⚡ | backend/routers/apps.py | 1063 | # Create a new persona for the user | COMMENT |
| MEDIUM | backend/database/action_items.py | 938 | # Create a map to preserve order | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_new_usage_tracking_gaps.py | 276 | # Create a fresh callback with a capturing flush_fn | COMMENT |
| MEDIUM | backend/tests/unit/test_user_speaker_embedding.py | 157 | # Create a mock UploadFile with valid WAV audio | COMMENT |
| MEDIUM | backend/tests/integration/test_fair_use_api.py | 328 | # Create a minimal database package with _client stub | COMMENT |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 2657 | ## Create a servicemonitor for the operator | COMMENT |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 2802 | # Define the max allowed resources for the pod | COMMENT |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 2806 | # Define the min allowed resources for the pod | COMMENT |
| MEDIUM | …prometheus-stack/charts/kube-state-metrics/values.yaml | 446 | # Define the max allowed resources for the pod | COMMENT |
| MEDIUM | …prometheus-stack/charts/kube-state-metrics/values.yaml | 450 | # Define the min allowed resources for the pod | COMMENT |
| MEDIUM | …heus-stack/charts/prometheus-node-exporter/values.yaml | 506 | # Define the max allowed resources for the pod | COMMENT |
| MEDIUM | …heus-stack/charts/prometheus-node-exporter/values.yaml | 510 | # Define the min allowed resources for the pod | COMMENT |
| MEDIUM | …harts/kube-prometheus-stack/charts/grafana/values.yaml | 51 | ## Create a headless service for the deployment | COMMENT |
| MEDIUM | …harts/kube-prometheus-stack/charts/grafana/values.yaml | 1319 | # Create a dynamic manifests via values: | COMMENT |
| MEDIUM | …s-stack/templates/prometheus-operator/certmanager.yaml | 3 | # Create a selfsigned Issuer, in order to create a root CA certificate for | COMMENT |
| MEDIUM | …s-stack/templates/prometheus-operator/certmanager.yaml | 27 | # Create an Issuer that uses the above generated CA certificate to issue certs | COMMENT |
| MEDIUM | …ram-self-hosted/nova-3/charts/gpu-operator/values.yaml | 284 | # Create a ConfigMap (default: false) | COMMENT |
| MEDIUM | …ram-self-hosted/nova-3/charts/gpu-operator/values.yaml | 413 | # Create a ConfigMap (default: false) | COMMENT |
| MEDIUM | …3/charts/prometheus-adapter/templates/certmanager.yaml | 3 | # Create a selfsigned Issuer, in order to create a root CA certificate for | COMMENT |
| MEDIUM | …3/charts/prometheus-adapter/templates/certmanager.yaml | 42 | # Create an Issuer that uses the above generated CA certificate to issue certs | COMMENT |
| MEDIUM | backend/utils/llm/app_generator.py | 165 | # Create a prompt for icon generation | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/action_item_tools.py | 466 | # Create the action item | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 164 | # Create a unique model name | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 211 | # Create a Pydantic model from the schema (or empty model if no parameters) | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 215 | # Create an empty schema for tools with no parameters | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/calendar_tools.py | 907 | # Create the event | COMMENT |
| MEDIUM | backend/utils/conversations/memories.py | 78 | # Create a memory object from the explicit memory content | COMMENT |
| MEDIUM | …ry_vector_repair_outbox_cloud_deployment_contract.yaml | 4 | # This file is intentionally checked in as a static, reviewable contract only. It | COMMENT |
| MEDIUM⚡ | backend/scripts/route_policy_inventory.py | 539 | '# This file is a ratchet for issue #8959. CI allows these pre-existing\n' | CODE |
| MEDIUM | backend/scripts/users/chats_analysis.py | 91 | # Create the plot | COMMENT |
| MEDIUM | backend/scripts/vad/build_wav_from_bytes.py | 12 | # Create a WAV file | COMMENT |
| MEDIUM | …ckend/scripts/stt/k_compare_transcripts_performance.py | 286 | # Create a list for overall WER table | COMMENT |
| MEDIUM | …ckend/scripts/stt/k_compare_transcripts_performance.py | 309 | # Create a ranking table based on points | COMMENT |
| MEDIUM | mcp/examples/dspy_ex.py | 45 | # Create the agent | COMMENT |
| MEDIUM | .github/workflows/desktop_windows_release.yml | 380 | # Create the release if the plan job did not (idempotent on re-run). | COMMENT |
| MEDIUM | …fu/probes/development-project-read/.terraform.lock.hcl | 1 | # This file is maintained automatically by "tofu init". | COMMENT |
| MEDIUM | …ntofu/slices/gha-wif-notifications/.terraform.lock.hcl | 1 | # This file is maintained automatically by "tofu init". | COMMENT |
| MEDIUM | infrastructure/opentofu/foundation/.terraform.lock.hcl | 1 | # This file is maintained automatically by "tofu init". | COMMENT |
| MEDIUM | …entofu/pilots/development-wif-plan/.terraform.lock.hcl | 1 | # This file is maintained automatically by "tofu init". | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/lib/l10n/app_localizations.dart | 12882 | /// Success message when AI-generated app is created | COMMENT |
| HIGH | app/lib/backend/http/api/apps.dart | 651 | /// Fetches AI-generated sample prompts for the app generator | COMMENT |
| HIGH | app/lib/backend/http/api/goals.dart | 382 | /// Get AI-generated advice for current goal | COMMENT |
| HIGH | app/lib/pages/settings/ai_app_generator_provider.dart | 95 | /// Fetch AI-generated sample prompts | COMMENT |
| HIGH | plugins/omi-github-app/claude_code_cli.py | 129 | ['git', 'commit', '-m', f'feat: {feature_description}\n\nGenerated by Claude Code via Omi'], | CODE |
| HIGH | plugins/omi-github-app/claude_code_agentic.py | 265 | ['git', 'commit', '-m', f'feat: {feature_description}\n\nGenerated by Claude Code (agentic) via Omi'], | CODE |
| HIGH | desktop/macos/Desktop/Tests/ShellSummonTests.swift | 42 | /// would appear to do nothing, or worse, put Omi away just as you asked for it. | COMMENT |
| HIGH | desktop/macos/Desktop/Sources/TaskActionItem.swift | 319 | /// Sources written by AI capture pipelines: desktop screen extraction | COMMENT |
| HIGH | …ktop/Sources/MainWindow/Components/LiveNotesView.swift | 10 | /// Live notes view showing AI-generated and manual notes during recording | COMMENT |
| HIGH | …p/macos/Desktop/Sources/LiveNotes/LiveNoteModels.swift | 22 | /// Stores AI-generated or manual notes during recording sessions | COMMENT |
| HIGH | …top/macos/Desktop/Sources/Providers/ChatProvider.swift | 2693 | /// Fetches the latest AI-generated user profile from local database | STRING |
| HIGH | desktop/macos/Desktop/Sources/Stores/TasksStore.swift | 419 | /// Lower weight = higher priority. Manual tasks always appear above AI-generated. | COMMENT |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1403 | // Migration 11: Create live_notes table for AI-generated notes during recording | STRING |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1655 | // Migration 20: Create ai_user_profiles table for daily AI-generated user profile history | STRING |
| HIGH | …ssistants/Assistants/Goals/GoalGenerationService.swift | 41 | /// Complete (deactivate) AI-generated goals that haven't had any progress update in 3+ days. | COMMENT |
| HIGH | …activeAssistants/Assistants/Goals/GoalsAIService.swift | 335 | /// Get AI-generated actionable insight for achieving a goal | STRING |
| HIGH | …/ProactiveAssistants/Assistants/Goals/GoalModels.swift | 3 | /// AI-generated goal suggestion | COMMENT |
| HIGH | …roactiveAssistants/Services/AIUserProfileService.swift | 6 | /// Database record for AI-generated user profile history | COMMENT |
| HIGH | …roactiveAssistants/Services/AIUserProfileService.swift | 34 | /// Service that generates and maintains an AI-generated user profile. | COMMENT |
| HIGH | …ources/Services/APIClient/APIClient+ChatSessions.swift | 50 | /// Sync AI-generated user profile to backend | COMMENT |
| HIGH | …c/renderer/src/components/recording/LiveNotesPanel.tsx | 8 | // running list of AI-generated + user-typed notes and lets the user add/edit/ | COMMENT |
| HIGH | desktop/windows/src/renderer/src/pages/Onboarding.tsx | 120 | // personalize the AI-generated goal suggestion. | COMMENT |
| HIGH | desktop/windows/src/main/ipc/liveNotesStore.ts | 1 | // PR8 LiveNotes — local-only persistence for AI-generated + user-typed notes | COMMENT |
| HIGH | backend/utils/imports/limitless.py | 118 | # Extract H2 and H3 headers (these are Limitless AI-generated topic summaries) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | omi/firmware/test/src/ble_throughput_test.c | 114 | uint8_t dummy_data[TEST_PACKET_SIZE]; | CODE |
| LOW⚡ | omi/firmware/test/src/ble_throughput_test.c | 119 | dummy_data[i] = i; | CODE |
| LOW⚡ | omi/firmware/test/src/ble_throughput_test.c | 128 | dummy_data[0] = counter++; | CODE |
| LOW⚡ | omi/firmware/test/src/ble_throughput_test.c | 130 | int written = ring_buf_put(&test_ring_buf, dummy_data, TEST_PACKET_SIZE); | CODE |
| LOW | omi/firmware/test/src/ble_throughput.c | 75 | uint8_t dummy_data[TEST_PACKET_SIZE]; | CODE |
| LOW | omi/firmware/test/src/ble_throughput.c | 80 | dummy_data[i] = i; | CODE |
| LOW | omi/firmware/test/src/ble_throughput.c | 93 | dummy_data[0] = counter++; | CODE |
| LOW | omi/firmware/test/src/ble_throughput.c | 95 | int written = ring_buf_put(&test_ring_buf, dummy_data, TEST_PACKET_SIZE); | CODE |
| LOW | app/test/services/siri_integration_test.dart | 63 | String? get token => 'fake-token'; | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 66 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 97 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 129 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 159 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 196 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 219 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 252 | transcriber = DeepgramTranscriber("fake-key") | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 297 | task = asyncio.create_task(DeepgramTranscriber("fake-key").run(queue, received.append)) | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 334 | transcriber = DeepgramTranscriber("fake-key", drain_timeout=0) | CODE |
| LOW | sdks/python/tests/test_deepgram_lifecycle.py | 376 | transcriber = DeepgramTranscriber("fake-key", drain_timeout=0.01) | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 45 | apiKey: 'fake-key', | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 60 | apiKey: 'fake-key', | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 75 | apiKey: 'fake-key', | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 106 | apiKey: 'fake-key', | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 120 | apiKey: 'fake-key', | CODE |
| LOW | sdks/device/dart/test/stt_test.dart | 217 | apiKey: 'fake-key', | CODE |
| LOW | plugins/omi-shopify-app/main.py | 2059 | "description": "Customer's full name (e.g., 'John Doe'). Will search existing customers." | CODE |
| LOW | plugins/omi-dropbox-app/test_dropbox_client.py | 7 | client = DropboxClient("fake_token") | CODE |
| LOW | plugins/omi-dropbox-app/test_dropbox_client.py | 20 | client = DropboxClient("fake_token") | CODE |
| LOW | plugins/omi-dropbox-app/test_dropbox_client.py | 33 | client = DropboxClient("fake_token") | CODE |
| LOW | plugins/omi-dropbox-app/test_dropbox_client.py | 50 | client = DropboxClient("fake_token") | CODE |
| LOW | plugins/omi-dropbox-app/test_dropbox_client.py | 67 | client = DropboxClient("fake_token") | CODE |
| LOW | plugins/omi-github-app/test_main.py | 696 | with authed(user_data), patch.dict(main.os.environ, {"CURSOR_AGENT_API_KEY": "fake_key", "ANTHROPIC_API_KEY": "f | CODE |
| LOW⚡ | plugins/omi-slack-app/test_error_handling.py | 205 | res_send = asyncio.run(client_inst.send_message("fake-token", "C123", "hello")) | CODE |
| LOW⚡ | plugins/omi-slack-app/test_error_handling.py | 209 | res_history = client_inst.get_channel_history("fake-token", "C123") | CODE |
| LOW⚡ | plugins/omi-slack-app/test_error_handling.py | 213 | res_search = asyncio.run(client_inst.search_messages("fake-token", "query")) | CODE |
| LOW | …2s3/NimBLE-Arduino/src/nimble/ext/tinycrypt/src/hmac.c | 63 | const uint8_t dummy_key[key_size]; | CODE |
| LOW | …2s3/NimBLE-Arduino/src/nimble/ext/tinycrypt/src/hmac.c | 76 | dummy_key, | CODE |
| LOW | …ponents/settings/__tests__/SettingsVocabulary.test.tsx | 23 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …rc/components/settings/__tests__/SettingsKeys.test.tsx | 22 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …src/components/settings/__tests__/SettingsMcp.test.tsx | 22 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …omponents/settings/__tests__/SettingsWebhooks.test.tsx | 27 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …nents/settings/__tests__/SettingsTrainingData.test.tsx | 23 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …nents/settings/__tests__/SettingsDailySummary.test.tsx | 25 | user: { uid: 'user-1', email: 'user@example.com', displayName: 'User' }, | CODE |
| LOW | …b/app/src/components/layout/__tests__/Sidebar.test.tsx | 24 | user: { displayName: 'Omi User', email: 'user@example.com', photoURL: null }, | CODE |
| LOW | …admin/app/(protected)/dashboard/organizations/page.tsx | 254 | placeholder="admin@example.com" | CODE |
| LOW | web/admin/app/(protected)/dashboard/settings/page.tsx | 87 | <Input id="name" placeholder="John Doe" /> | CODE |
| LOW | web/admin/lib/services/invitation.ts | 46 | * email: 'user@example.com', | COMMENT |
| LOW | web/admin/lib/services/invitation.ts | 54 | * email: 'user@example.com', | COMMENT |
| LOW | …/Desktop/Tests/SuggestionAssistantTelemetryTests.swift | 149 | XCTAssertFalse(serialized.contains("user@example.com")) | CODE |
| LOW | desktop/macos/Desktop/Tests/QueryShellTests.swift | 46 | XCTAssertEqual(answer["placeholder"], "Ask Omi") | CODE |
| LOW | desktop/macos/Desktop/Tests/QueryShellTests.swift | 53 | XCTAssertEqual(results["placeholder"], RewindSearchMetrics.placeholder) | CODE |
| LOW | …top/macos/Desktop/Tests/MemoryAdmissionGateTests.swift | 52 | "User's Slack workspace is 'Acme Corp' - they work there", | CODE |
| LOW | …cos/Desktop/Tests/DesktopDiagnosticsManagerTests.swift | 133 | XCTAssertFalse(tail.contains("user@example.com")) | STRING |
| LOW | …op/Sources/MainWindow/QueryShell/QueryShellModel.swift | 177 | "placeholder": QueryComposerPlaceholder.text(mode: mode), | CODE |
| LOW | …istants/MemoryExtraction/MemoryAssistantSettings.swift | 81 | ✅ "User's Slack workspace is 'Acme Corp' - they work there" | CODE |
| LOW | …-claude/Tests/ContextCoreTests/ClaudeConfigTests.swift | 193 | "emailAddress": "user@example.com", | CODE |
| LOW | …ows/src/main/assistants/tasks/promotionService.test.ts | 107 | title: 'placeholder', | CODE |
| LOW | …p/windows/src/main/assistants/core/readOnlySql.test.ts | 610 | ins.run(1, 'Signal', 'John Doe', 'Signal.exe', 'SECRET signal message', '/1.jpg') | CODE |
| LOW | desktop/windows/src/main/assistants/memory/prompt.ts | 77 | ✅ "User's Slack workspace is 'Acme Corp' - they work there" | CODE |
| LOW | …op/windows/src/main/ipc/rewindActivityDenylist.test.ts | 68 | ins.run(1, 'Signal', 'John Doe', 'Signal.exe', '/1.jpg') | CODE |
| 90 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python-cli/omi_cli/commands/goal.py | 138 | CODE | |
| LOW | plugins/hume-ai/app.py | 381 | CODE | |
| LOW | plugins/omi-hive-app/test_main.py | 102 | CODE | |
| LOW | backend/routers/sync.py | 877 | CODE | |
| LOW | backend/routers/users.py | 628 | CODE | |
| LOW | backend/routers/tools.py | 300 | CODE | |
| LOW | backend/routers/google_calendar.py | 117 | CODE | |
| LOW | backend/routers/apps.py | 700 | CODE | |
| LOW | backend/routers/integration.py | 272 | CODE | |
| LOW | backend/routers/integration.py | 582 | CODE | |
| LOW | backend/routers/desktop_chat.py | 1694 | CODE | |
| LOW | backend/routers/desktop_chat.py | 1900 | CODE | |
| LOW | backend/routers/chat.py | 1509 | CODE | |
| LOW | backend/routers/chat.py | 1581 | CODE | |
| LOW | backend/routers/mcp.py | 401 | CODE | |
| LOW | backend/routers/mcp.py | 535 | CODE | |
| LOW | backend/routers/mcp.py | 746 | CODE | |
| LOW | backend/routers/transcribe.py | 77 | CODE | |
| LOW | backend/routers/transcribe.py | 131 | CODE | |
| LOW | backend/routers/transcribe.py | 185 | CODE | |
| LOW | backend/routers/transcribe.py | 236 | CODE | |
| LOW | backend/routers/memories.py | 660 | CODE | |
| LOW | backend/routers/developer.py | 1488 | CODE | |
| LOW | backend/routers/conversations.py | 872 | CODE | |
| LOW | backend/routers/conversations.py | 935 | CODE | |
| LOW | backend/routers/action_items.py | 539 | CODE | |
| LOW | backend/routers/mcp_sse.py | 221 | CODE | |
| LOW | backend/database/workstreams.py | 214 | CODE | |
| LOW | backend/database/memory_apply_store.py | 707 | CODE | |
| LOW | backend/database/memory_apply_store.py | 749 | CODE | |
| LOW | backend/database/feedback.py | 109 | CODE | |
| LOW | backend/database/feedback.py | 232 | CODE | |
| LOW | backend/database/apps.py | 60 | CODE | |
| LOW | backend/database/chat.py | 1160 | CODE | |
| LOW | backend/database/memories.py | 314 | CODE | |
| LOW | backend/database/memories.py | 373 | CODE | |
| LOW | backend/database/llm_usage.py | 143 | CODE | |
| LOW | backend/database/llm_usage.py | 566 | CODE | |
| LOW | backend/database/llm_usage.py | 610 | CODE | |
| LOW | backend/database/conversations.py | 706 | CODE | |
| LOW | backend/database/conversations.py | 1287 | CODE | |
| LOW | backend/database/conversations.py | 1352 | CODE | |
| LOW | backend/database/conversations.py | 1425 | CODE | |
| LOW | backend/database/conversations.py | 2796 | CODE | |
| LOW | backend/database/conversations.py | 2970 | CODE | |
| LOW | backend/database/action_items.py | 705 | CODE | |
| LOW | backend/llm_gateway/gateway/metrics.py | 207 | CODE | |
| LOW | backend/llm_gateway/gateway/providers.py | 413 | CODE | |
| LOW | backend/parakeet/batch_engine.py | 45 | CODE | |
| LOW | backend/tests/unit/test_ws_m_atom_keyword_index.py | 144 | CODE | |
| LOW | backend/tests/unit/test_conversation_relevance.py | 28 | CODE | |
| LOW | backend/tests/unit/test_conversations_count.py | 36 | CODE | |
| LOW | backend/tests/unit/test_realtime_usage.py | 138 | CODE | |
| LOW | …s/unit/test_listen_session_survives_redis_maxmemory.py | 111 | CODE | |
| LOW | backend/tests/unit/test_sync_lineage_dedupe_replay.py | 573 | CODE | |
| LOW | …nd/tests/unit/test_verify_pusher_promotion_evidence.py | 218 | CODE | |
| LOW | backend/tests/unit/test_vram_batch.py | 89 | CODE | |
| LOW | backend/tests/unit/test_memory_outbox_worker.py | 220 | CODE | |
| LOW | …end/tests/unit/test_live_session_transcript_outcome.py | 12 | CODE | |
| LOW | backend/tests/unit/test_live_stt_resilient_stream.py | 68 | CODE | |
| 77 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | backend/database/notifications.py | 310 | Set user's mentor notification frequency preference. Args: uid: User ID frequency: Notificatio | STRING |
| HIGH | backend/utils/speaker_sample.py | 143 | Download speech sample audio from GCS. Args: sample_path: GCS path to the sample (e.g., '{uid}/people_ | STRING |
| HIGH | backend/utils/other/audio_opus.py | 74 | Decode length-prefixed Opus packets back to PCM16. Args: opus_data: Length-prefixed Opus packets (from | STRING |
| HIGH | backend/utils/other/storage.py | 682 | Upload multiple audio chunks to GCS in a single streaming write. Concatenates all chunk data into one GCS obje | STRING |
| HIGH | backend/utils/other/storage.py | 1750 | Download blob content as bytes from GCS. Args: bucket_name: Name of the GCS bucket path: Path | STRING |
| HIGH | backend/utils/other/storage.py | 1789 | Download speech profile/sample audio from GCS. Args: path: GCS path to the sample (e.g., '{uid}/people | STRING |
| HIGH | backend/utils/other/endpoints.py | 117 | Verify a Firebase token or ADMIN_KEY and return the uid. Args: token: The token to verify (Firebase ID | STRING |
| HIGH | backend/utils/retrieval/tools/action_item_tools.py | 523 | Update an action item's status, description, or due date. Use this tool when: - User asks to mark a task a | STRING |
| HIGH | backend/utils/retrieval/tools/gmail_tools.py | 165 | Retrieve emails from the user's Gmail inbox. Use this tool when: - User asks "show me my emails" or "what | STRING |
| HIGH | backend/utils/retrieval/tools/conversation_tools.py | 186 | Retrieve user conversations with complete details including transcripts, summaries, and metadata. Use this too | STRING |
| HIGH | backend/utils/retrieval/tools/memory_tools.py | 356 | Search memories using semantic vector search to find relevant facts about the user. This tool uses AI embeddin | STRING |
| HIGH | backend/utils/retrieval/tools/file_tools.py | 36 | Search and ask questions about files attached to the current chat session. Use this when the user asks about do | STRING |
| HIGH | backend/utils/retrieval/tools/app_tools.py | 123 | Create a Pydantic model from a JSON schema parameters definition. Args: tool_name: Name of the tool (u | STRING |
| HIGH | …d/utils/retrieval/tools/notification_settings_tools.py | 49 | Manage the user's daily summary/reflection notification settings. The daily summary is a notification sent at | STRING |
| HIGH | backend/utils/retrieval/tools/calendar_tools.py | 490 | Retrieve calendar events from the user's Google Calendar. Use this tool when: - User asks "what's on my ca | STRING |
| HIGH | backend/utils/stt/speaker_embedding.py | 129 | Extract speaker embedding from audio bytes using hosted API. Args: audio_data: Raw audio bytes (wav fo | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | app/lib/models/stt_provider.dart | 404 | get(SttProvider.openai).buildRequestConfig(apiKey: 'YOUR_API_KEY', language: 'en', model: 'whisper-1'), | CODE |
| HIGH⚡ | app/lib/models/stt_provider.dart | 407 | ).buildRequestConfig(apiKey: 'YOUR_API_KEY', language: 'multi', model: 'nova-3'), | CODE |
| HIGH⚡ | app/lib/models/stt_provider.dart | 408 | 'Fal.AI': get(SttProvider.falai).buildRequestConfig(apiKey: 'YOUR_API_KEY', language: 'en'), | CODE |
| HIGH⚡ | app/lib/models/stt_provider.dart | 411 | ).buildRequestConfig(apiKey: 'YOUR_API_KEY', language: 'en', model: 'gemini-2.5-flash'), | CODE |
| HIGH | app/lib/pages/settings/transcription_settings_page.dart | 609 | return MapEntry(key, '<YOUR_API_KEY>'); | CODE |
| HIGH | app/lib/pages/settings/transcription_settings_page.dart | 609 | return MapEntry(key, '<YOUR_API_KEY>'); | CODE |
| HIGH | plugins/hume-ai/README.md | 209 | -e OMI_API_KEY=your_api_key \ | CODE |
| HIGH | plugins/omi-twitter-app/README.md | 100 | TWITTER_API_KEY=your_api_key | CODE |
| HIGH | omiGlass/sources/modules/openai.ts | 18 | 'Authorization': `Bearer ${keys.openai}`, // Replace YOUR_API_KEY with your actual OpenAI API key | CODE |
| HIGH | scripts/scan-public-artifact-secrets.py | 42 | ALLOWED_PLACEHOLDER_TOKENS = {"YOUR_API_KEY"} | CODE |
| HIGH | scripts/test-scan-public-artifact-secrets.sh | 95 | printf 'android app bundle content YOUR_API_KEY' > "$WORK/aab-content/base/manifest" | CODE |
| HIGH | scripts/dev-harness/dev_harness/providers.py | 235 | "your_api_key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/setup-personal.sh | 8 | # Usage: | COMMENT |
| LOW | app/integration_test/journeys/run_journeys.sh | 16 | # Usage: | COMMENT |
| LOW⚡ | app/.maestro/scripts/run_all.sh | 5 | # Usage: | COMMENT |
| LOW | app/scripts/measure_cpu_android.sh | 4 | # Usage: | COMMENT |
| LOW | app/scripts/analyze_ratchet.sh | 36 | # Usage: | COMMENT |
| LOW | app/scripts/compare_cpu_builds.sh | 4 | # Usage: | COMMENT |
| LOW | app/scripts/test.sh | 3 | # Usage: | COMMENT |
| LOW | sdks/python-cli/release.sh | 6 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/swift-format-wrapper.sh | 9 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/omi-fault-inject.sh | 17 | # Usage: | COMMENT |
| LOW | …sktop/macos/scripts/check-gauntlet-evidence-at-head.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/test-focus.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | desktop/macos/scripts/spatial-overlay-harness.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/cleanup-omi-tcc.sh | 8 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/ptt-screen-probe.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | desktop/macos/scripts/agent-logic-harness.sh | 4 | # Usage: | COMMENT |
| LOW⚡ | desktop/macos/scripts/desktop-core-harness.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/automation-token-path.sh | 6 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/agent-continuity-gauntlet.sh | 38 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/omi-hardening-smoke.sh | 9 | # Usage: | COMMENT |
| LOW | desktop/context-for-claude/scripts/uninstall.sh | 5 | # Usage: | COMMENT |
| LOW | desktop/context-for-claude/scripts/build.sh | 8 | # Usage: | COMMENT |
| LOW | desktop/context-for-claude/scripts/build-identity.sh | 5 | # Usage: | COMMENT |
| LOW⚡ | backend/testing/e2e/run.sh | 5 | # Usage: | COMMENT |
| LOW | backend/scripts/memory-continuity-gauntlet.sh | 17 | # Usage: | COMMENT |
| LOW | backend/scripts/sync_cloudrun_secrets_from_chart.sh | 13 | # Usage: | COMMENT |
| LOW | .github/scripts/run-pre-push.sh | 4 | # Usage: | COMMENT |
| LOW | .github/scripts/run-lint.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/tests/unit/test_owner_prompt_embedding_cache.py | 120 | CODE | |
| MEDIUM | …ckend/tests/unit/test_chat_generate_reply_stateless.py | 92 | CODE | |
| MEDIUM | backend/tests/unit/test_desktop_proxy.py | 1150 | CODE | |
| MEDIUM | backend/tests/unit/test_committed_capture_coverage.py | 348 | CODE | |
| MEDIUM | backend/tests/unit/test_dev_goals_response_compat.py | 53 | CODE | |
| MEDIUM | backend/tests/unit/test_firestore_index_oracle.py | 518 | CODE | |
| MEDIUM | backend/tests/unit/test_chat_quota_counting_router.py | 214 | CODE | |
| MEDIUM | backend/tests/unit/test_compact_speaker_transcript.py | 77 | CODE | |
| MEDIUM | …d/tests/unit/test_desktop_gemini_signature_contract.py | 252 | CODE | |
| MEDIUM | backend/tests/unit/test_owner_storage_purge_and_gate.py | 118 | CODE | |
| MEDIUM | backend/tests/unit/test_owner_storage_purge_and_gate.py | 160 | CODE | |
| MEDIUM | backend/tests/unit/test_migrate_memories_rekey.py | 142 | CODE | |
| MEDIUM | backend/tests/unit/test_stt_provider_health_metrics.py | 96 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 597 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 603 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 750 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 827 | CODE | |
| MEDIUM | backend/tests/unit/test_desktop_transcribe.py | 2193 | CODE | |
| MEDIUM | backend/tests/unit/test_memory_apply_store.py | 855 | CODE | |
| MEDIUM | …kend/tests/unit/test_memory_visibility_export_fixes.py | 131 | CODE | |
| MEDIUM | scripts/dev-harness/tests/test_session_evidence.py | 260 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/import/manual-import/app.py | 75 | - "It's worth noting that..." | CODE |
| LOW | …/Assistants/TaskExtraction/TaskAssistantSettings.swift | 174 | - "Can you…", "Could you…", "Please…", "Don't forget to…", "Make sure you…" | CODE |
| LOW⚡ | backend/tests/unit/test_conversation_relevance.py | 140 | @pytest.mark.parametrize('texts', [('hmm',), ("Hey Omi, don't forget to send the budget.",)]) | CODE |
| LOW | …/tests/unit/test_process_conversation_usage_context.py | 715 | text="Hey Omi, don't forget to send the budget.", | CODE |
| LOW | …/tests/unit/test_process_conversation_usage_context.py | 739 | "Test User: Hey Omi, don't forget to send the budget.", | CODE |
| LOW | …/tests/unit/test_process_conversation_usage_context.py | 740 | "[wake-segment 0] <omi-wake-word-invocation/> Hey Omi, don't forget to send the budget.", | CODE |
| LOW | backend/tests/unit/test_conversation_relevance_rules.py | 36 | (["Don't forget to feed the cat."], 1.9, 'keep'), | CODE |
| LOW⚡ | …d/tests/integration/test_prompt_caching_integration.py | 49 | - "Don't forget to X" / "Don't let me forget X" → EXTRACT "X" | CODE |
| LOW | …d/tests/integration/test_prompt_caching_integration.py | 62 | - Someone tells user "Don't forget to call your mom" → Extract "Call mom" | CODE |
| MEDIUM⚡ | …d/tests/integration/test_prompt_caching_integration.py | 198 | Speaker 0: Perfect. Let me know if you need anything. Also, don't forget to update the analytics events before you ship. | CODE |
| LOW⚡ | …d/tests/integration/test_prompt_caching_integration.py | 198 | Speaker 0: Perfect. Let me know if you need anything. Also, don't forget to update the analytics events before you ship. | CODE |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 3845 | ## If additional scrape configurations are already deployed in a single secret file you can use this section. | COMMENT |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 3874 | ## them separately from the helm deployment, you can use this section. | COMMENT |
| MEDIUM | …hosted/nova-3/charts/kube-prometheus-stack/values.yaml | 3896 | ## them separately from the helm deployment, you can use this section. | COMMENT |
| MEDIUM⚡ | …harts/kube-prometheus-stack/charts/grafana/values.yaml | 472 | ## 3. attach a policy to the role, you can use a built in policy called CloudWatchReadOnlyAccess | COMMENT |
| LOW⚡ | …harts/kube-prometheus-stack/charts/grafana/values.yaml | 482 | ## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn | COMMENT |
| LOW⚡ | …harts/kube-prometheus-stack/charts/grafana/values.yaml | 482 | ## make sure to replace arn:aws:iam::123456789000:role/iam-role-name-here with your role arn | COMMENT |
| LOW | backend/scripts/benchmark_nllb_performance.py | 61 | "Don't forget to pick up milk and bread from the grocery store on your way home.", | CODE |
| LOW | backend/scripts/stt/a_generate_samples_from_device.py | 170 | # # "Please make sure to lock the door when you leave." | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 32 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 53 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 75 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 96 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 122 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | sdks/python-cli/tests/test_conversation_list_paging.py | 147 | def handle_request(request: httpx.Request) -> httpx.Response: | CODE |
| LOW | web/app/src/app/api/proxy/[...path]/route.ts | 46 | async function handleRequest(request: Request) { | CODE |
| LOW | backend/tests/unit/test_async_http_infrastructure.py | 712 | 'def helper(chunk):\n' | CODE |
| LOW | backend/tests/unit/test_async_resource_correctness.py | 173 | async def helper(): | CODE |
| LOW⚡ | backend/tests/unit/test_scan_async_blockers.py | 454 | async def helper(): | CODE |
| LOW⚡ | backend/tests/unit/test_scan_async_blockers.py | 189 | async def helper(): | STRING |
| LOW⚡ | backend/tests/unit/test_firestore_caller_witnesses.py | 81 | def helper(**kwargs): | CODE |
| LOW⚡ | backend/tests/unit/test_voiceprint_owner_overlap.py | 132 | def run_task(tasks): | CODE |
| LOW⚡ | scripts/test_check_plugin_request_timeouts.py | 38 | sync = 'import requests\ndef helper():\n requests.post(url, data=d)\n' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/Desktop/Tests/VoiceTurnJournalTruthfulnessTests.swift | 235 | // write that never landed was still spoken as "I've added that". | COMMENT |
| HIGH | …macos/Desktop/Sources/Providers/ChatToolExecutor.swift | 3429 | /// write indistinguishable from a successful one, which is how "I've added that" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/lib/providers/onboarding_provider.dart | 434 | // TODO: implement onDeviceConnectionStateChanged | COMMENT |
| LOW | app/lib/providers/onboarding_provider.dart | 466 | // TODO: implement onStatusChanged | COMMENT |