AI that sees your screen, listens to your conversations and tells you what to do
This report presents the forensic synthetic code analysis of BasedHardware/omi, a Python project with 13,306 GitHub stars. SynthScan v2.0 examined 3,462,876 lines of code across 10782 source files, recording 29977 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 10.2 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 29977 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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/bee_audio_capture.py | 145 | def control_notification_handler(self, sender, data): | CODE |
| LOW | app/bee_audio_capture.py | 341 | def audio_notification_handler(self, sender, data): | 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/rayban_dat_build_wrapper_test.rb | 429 | def assert_default_state_restored(fixture, generated_environment: true) | CODE |
| LOW | sdks/react-native/src/index.js | 141 | function cleanupSubscriptionsForDevice(deviceId) { | CODE |
| LOW | sdks/react-native/src/stt/deepgram.ts | 8 | export function createDeepgramTranscriber(options: { | CODE |
| LOW | sdks/react-native/src/stt/parakeet.ts | 9 | export function createParakeetTranscriber(options: { | CODE |
| LOW⚡ | sdks/python/tests/test_stt_engines.py | 9 | def test_whisper_requires_dep_or_runner(): | CODE |
| LOW⚡ | sdks/python/tests/test_stt_engines.py | 19 | def test_deepgram_requires_key(): | CODE |
| LOW | sdks/python/tests/test_ble_api.py | 5 | def test_packet_header_constant(): | CODE |
| LOW | sdks/python/tests/test_ble_api.py | 9 | def test_ble_module_importable_without_adapter(): | CODE |
| LOW | sdks/python/tests/test_constants.py | 10 | def test_decoder_short_packet_if_opuslib_available(): | CODE |
| LOW | sdks/device/typescript/src/stt/index.ts | 21 | export function createDeepgramTranscriber(opts: { | CODE |
| LOW | sdks/device/typescript/src/stt/index.ts | 49 | export function createParakeetTranscriber(opts: { | CODE |
| LOW | sdks/python-cli/tests/test_ask.py | 10 | def test_ask_posts_question_and_prints_answer(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_ask.py | 28 | def test_ask_forwards_timezone_verbatim_and_defaults_to_utc(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_ask.py | 41 | def test_ask_json_mode_emits_raw_payload(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 13 | def test_validate_rejects_empty_key() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 18 | def test_validate_rejects_whitespace_only() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 23 | def test_validate_rejects_non_dev_prefix() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 29 | def test_validate_rejects_truncated_dev_key() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 34 | def test_validate_strips_whitespace() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_auth_api_key.py | 40 | def test_login_persists_to_disk(config_path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_auth_api_key.py | 51 | def test_store_and_clear_round_trip(config_path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_auth_api_key.py | 62 | def test_clear_credentials_returns_false_for_unconfigured_profile(config_path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_output.py | 11 | def test_json_mode_emits_valid_json_to_stdout(capsys) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_output.py | 21 | def test_json_mode_silences_info_and_success(capsys) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_output.py | 30 | def test_json_mode_emits_errors_as_json_to_stderr(capsys) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_output.py | 39 | def test_json_mode_serializes_datetime() -> None: | CODE |
| LOW | sdks/python-cli/tests/test_output.py | 54 | def test_pretty_mode_renders_table_for_list(capsys) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_output.py | 62 | def test_pretty_mode_renders_no_results_for_empty_list(capsys) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_output.py | 76 | def test_coalesce_rows_handles_dicts_and_models() -> None: | CODE |
| LOW | sdks/python-cli/tests/test_output.py | 85 | def test_no_color_env_disables_color(monkeypatch, capsys) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_openapi_contract.py | 50 | def test_cli_hardcoded_routes_exist_in_public_openapi(): | CODE |
| LOW | sdks/python-cli/tests/test_openapi_contract.py | 68 | def test_cli_memory_category_enum_matches_public_openapi(): | CODE |
| LOW | sdks/python-cli/tests/test_openapi_contract.py | 76 | def test_cli_goal_type_enum_matches_public_openapi(): | CODE |
| LOW | sdks/python-cli/tests/test_openapi_contract.py | 88 | def test_cli_local_only_enums_are_documented(): | CODE |
| LOW | sdks/python-cli/tests/test_conversation.py | 10 | def test_conversation_list_renders(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_conversation.py | 27 | def test_conversation_create_posts_text(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_conversation.py | 40 | def test_conversation_get_includes_transcript_param(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_conversation.py | 50 | def test_conversation_update_requires_field(authed_profile, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_conversation.py | 56 | def test_conversation_delete_with_yes(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_conversation.py | 62 | def test_conversation_from_segments_reads_file(authed_profile, respx_mock, cli_runner, tmp_path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_action_item.py | 30 | def test_action_item_complete_uses_patch(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_action_item.py | 40 | def test_action_item_filter_completed(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_action_item.py | 53 | def test_action_item_get_missing_returns_not_found_exit_code(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 17 | def _assert_owner_only_descriptor(handle: BinaryIO) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 34 | def test_default_config_path_honors_env(monkeypatch, tmp_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 40 | def test_load_missing_file_returns_empty_config(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 47 | def test_save_and_round_trip_preserves_unknown_keys(config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 71 | def test_save_creates_file_with_secure_perms(config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 82 | def test_save_does_not_leave_world_readable_window(monkeypatch, config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 94 | def dump_after_permission_check(payload, handle) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 119 | def test_save_fails_closed_when_windows_dacl_verification_fails(monkeypatch, config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 134 | def test_save_overwrites_stale_temp_file(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 154 | def test_masked_credential_for_api_key(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 162 | def test_masked_credential_short_token_still_redacts() -> None: | CODE |
| 16924 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 4 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 433 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 435 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1817 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1856 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 2898 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 2913 | # ============================================ | 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 | app/lib/providers/sync_provider.dart | 189 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/sync_provider.dart | 192 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 104 | // ───────────────────────── scanning ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 194 | // ───────────────────── upload / transcribe ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 274 | // ─────────────────────── auto-upload (offline fallback) ─────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 316 | // ───────────────────────── reconcile ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 395 | // ───────────────────────── delete ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 418 | // ───────────────────── playback / waveform ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 486 | // ───────────────────────── sidecar ───────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 131 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 133 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 253 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 255 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 286 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 288 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 330 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 332 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 410 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 412 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 678 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 680 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 756 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 758 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 824 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 826 | // ───────────────────────────────────────── | 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 |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 202 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/models.py | 204 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 82 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 84 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 95 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 97 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 117 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 119 | # ------------------------------------------------------------------ | COMMENT |
| 1601 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 | 1821 | # | COMMENT |
| LOW | codemagic.yaml | 1841 | # REDIS_DB_HOST, REDIS_DB_PORT, REDIS_DB_PASSWORD | COMMENT |
| LOW | codemagic.yaml | 2901 | # product identity and artifact naming; only Apple signing/notarization inputs | 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 | #error "Enable CONFIG_OMI_CODEC_OPUS in the project .conf file" | 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 |
| LOW | …mware/omi/src/lib/core/lib/opus-1.2.1/_kiss_fft_guts.h | 141 | }while(0) | COMMENT |
| 4775 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 |
| LOW | app/bee_audio_capture.py | 422 | except Exception as e: | CODE |
| LOW | app/bee_audio_capture.py | 535 | except Exception: | CODE |
| LOW | app/bee_audio_capture.py | 539 | except Exception: | CODE |
| LOW | app/bee_audio_capture.py | 560 | except Exception as e: | CODE |
| MEDIUM | app/ios/Runner/AppleHealthService.swift | 89 | print("Error requesting HealthKit authorization: \(error.localizedDescription)") | CODE |
| MEDIUM | app/ios/omiWatchApp/WatchAudioRecorderViewModel.swift | 277 | print("Error details: \(error.localizedDescription)") | CODE |
| MEDIUM | app/lib/providers/app_provider.dart | 949 | print('Error toggling app $appId: $e'); | CODE |
| MEDIUM | …p/lib/pages/conversations/private_cloud_sync_page.dart | 39 | print('Error toggling cloud storage: $e'); | CODE |
| MEDIUM | app/lib/pages/apps/providers/add_app_provider.dart | 1060 | print('Error loading provider API keys: $e'); | CODE |
| MEDIUM | app/lib/pages/onboarding/device_selection.dart | 50 | print('Error initializing video: $e'); | CODE |
| MEDIUM | …boarding/device_onboarding/device_onboarding_page.dart | 86 | print('Error initializing video: $e'); | CODE |
| LOW | sdks/python/omi/decoder.py | 33 | except Exception as e: | CODE |
| LOW | sdks/python/omi/stt/deepgram.py | 52 | except Exception as exc: | CODE |
| LOW⚡ | sdks/python/tests/test_stt_engines.py | 14 | except Exception: | CODE |
| MEDIUM | sdks/python/tests/test_stt_engines.py | 9 | 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 | 212 | except Exception: | CODE |
| LOW | sdks/python-cli/omi_cli/main.py | 241 | except Exception as exc: # noqa: BLE001 — last-chance handler | CODE |
| LOW | plugins/db.py | 21 | except Exception as e: | CODE |
| MEDIUM | plugins/db.py | 22 | print(f'Error calling {func.__name__}', e) | CODE |
| MEDIUM | plugins/db.py | 18 | def wrapper(*args, **kwargs): | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 150 | except Exception as exc: | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 187 | except Exception as exc: | CODE |
| LOW | plugins/omi-semantic-scholar-app/main.py | 229 | 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 | 1678 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 666 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 738 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 855 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 930 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1528 | except Exception as e: | CODE |
| LOW | plugins/omi-shopify-app/main.py | 1585 | 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 | 1127 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 531 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 614 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 709 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 816 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 920 | except Exception as e: | STRING |
| LOW | plugins/omi-linear-app/main.py | 1039 | except Exception as e: | STRING |
| LOW | plugins/omi-whoop-app/db.py | 37 | except Exception as e: | CODE |
| LOW⚡ | plugins/omi-whoop-app/main.py | 851 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 101 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 125 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 153 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 517 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 568 | except Exception as e: | CODE |
| LOW | plugins/omi-whoop-app/main.py | 617 | except Exception as e: | CODE |
| 2011 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/bee_audio_capture.py | 26 | CODE | |
| LOW | sdks/python/omi/ble.py | 3 | CODE | |
| LOW | sdks/python/omi/ble.py | 7 | 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 | |
| LOW | sdks/python-cli/tests/test_ask.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/conftest.py | 11 | CODE | |
| LOW | sdks/python-cli/tests/conftest.py | 13 | CODE | |
| LOW | sdks/python-cli/tests/test_auth_api_key.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_output.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_openapi_contract.py | 1 | CODE | |
| LOW | sdks/python-cli/tests/test_conversation.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_action_item.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_config.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_memory.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_local.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_auth_oauth.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_client_retry.py | 3 | CODE | |
| 1702 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | plugins/omi-github-app/main.py | 850 | if (!repo || repo === 'No repositories found') {{ | CODE |
| HIGH | plugins/omi-github-app/main.py | 897 | if (!repo || repo === 'No repositories found') {{ | CODE |
| HIGH | plugins/omi-github-app/main.py | 1027 | lines.push('[' + entry.provider + '] ' + status + ' ' + msg + url + agentUrl); | CODE |
| HIGH | plugins/omi-github-app/main.py | 1030 | if (!logs.length && data.message) {{ | CODE |
| HIGH | plugins/omi-slack-app/main.py | 1094 | if (data.message && data.message.includes('✅')) {{ | CODE |
| HIGH | plugins/omi-slack-app/main.py | 1097 | }} else if (data.message && data.message.includes('❌')) {{ | CODE |
| HIGH | plugins/omi-clickup-app/main.py | 1197 | if (data.message && data.message.includes('✅')) {{ | CODE |
| HIGH | plugins/omi-clickup-app/main.py | 1200 | }} 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 | 1284 | "is_user": false, "person_id": null}] | STRING |
| HIGH⚡ | backend/routers/developer.py | 2045 | raise ValueError('success_criteria cannot be null; use an empty list to clear it') | CODE |
| HIGH | backend/database/users.py | 996 | # pad with empty strings for the existing samples first (Dart expects non-null) | COMMENT |
| HIGH | backend/database/action_items.py | 248 | # won't overwrite an existing null, so drop it first and let status derive a concrete | COMMENT |
| 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 |
| HIGH | backend/tests/unit/test_app_client_schema_inventory.py | 306 | return body is Map && body['code'] == 'backfill_lookback_exceeded'; | CODE |
| HIGH | backend/tests/unit/test_soniox_streaming.py | 89 | """Live tokens carry duration_ms: null, so ends must come from the next start.""" | STRING |
| HIGH | backend/tests/unit/test_async_webhooks.py | 392 | """Callers that haven't migrated yet still get a well-formed payload (summary_json: null).""" | STRING |
| HIGH⚡ | …ckend/tests/unit/test_verify_backend_release_vector.py | 434 | assert 'credential_project="$(gcloud config get-value project 2>/dev/null)"' in readiness | CODE |
| HIGH | backend/tests/unit/test_task_recommendations.py | 1012 | `dict.get(key, default)` returns None when the key is present holding null, so the | STRING |
| HIGH | backend/tests/unit/test_llm_gateway_deploy_contract.py | 92 | '${{ steps.combined-gateway-serving.outputs.gateway_url || steps.gateway-serving.outputs.gateway_url }}': 'http: | CODE |
| HIGH | backend/tests/unit/test_llm_gateway_deploy_contract.py | 277 | 'OMI_LLM_GATEWAY_URL: ${{ steps.combined-gateway-serving.outputs.gateway_url || steps.gateway-serving.outputs.ga | CODE |
| HIGH | backend/tests/unit/test_llm_gateway_deploy_contract.py | 305 | 'steps.combined-gateway-serving.outputs.gateway_url || steps.gateway-serving.outputs.gateway_url || \'http://127 | CODE |
| HIGH | backend/tests/unit/test_desktop_chat.py | 1543 | yield b'data: {"id":"chatcmpl-1","choices":[{"delta":{"content":"hi"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | backend/tests/unit/test_app_client_dart_generator.py | 370 | assert 'if (value is! List) return null;' in generated | CODE |
| HIGH⚡ | backend/tests/unit/test_conversation_hybrid_search.py | 168 | assert params['filter_by'] == ('userId:=uid1 && discarded:=false && created_at:>=100 && created_at:<=200') | CODE |
| HIGH | …kend/tests/unit/test_conversation_revision_contract.py | 416 | folder (PATCH /v1/conversations/{id}/folder with folder_id null). That | STRING |
| HIGH⚡ | backend/tests/unit/test_app_generator_null_fields.py | 33 | _patch_llm(monkeypatch, '{"name": null, "description": null, "category": null, "capabilities": null}') | CODE |
| HIGH | backend/tests/unit/test_app_client_ts_generator.py | 28 | assert 'finished_at: string | null;' in generated | CODE |
| HIGH | backend/tests/unit/test_app_client_ts_generator.py | 96 | assert 'maybe?: string | null;' in generated | CODE |
| HIGH | …sts/unit/test_stale_processing_emulator_concurrency.py | 18 | Run: cd backend && FIRESTORE_EMULATOR_HOST=localhost:8080 \ | STRING |
| HIGH | backend/tests/unit/test_high_priority_usage_tracking.py | 372 | return MagicMock(content='{"found": false, "value": null, "reasoning": "no progress"}') | CODE |
| HIGH | …end/tests/unit/test_fair_use_classifier_null_fields.py | 5 | field (misuse_score / confidence / evidence: null) slipped through and raised (float(None), | STRING |
| HIGH⚡ | …end/tests/unit/test_fair_use_classifier_null_fields.py | 37 | '{"misuse_score": 0.9, "confidence": 0.8, "evidence": null, "usage_type": "commercial"}', | CODE |
| HIGH⚡ | …end/tests/unit/test_fair_use_classifier_null_fields.py | 47 | '{"misuse_score": null, "confidence": null, "evidence": ["a"], "usage_type": "none"}', | CODE |
| HIGH⚡ | …end/tests/unit/test_fair_use_classifier_null_fields.py | 49 | assert result['misuse_score'] == 0.0 # coerced from null, not crashed to default | CODE |
| HIGH⚡ | backend/tests/unit/test_desktop_migration.py | 1933 | """Router wraps None in {promoted: false, reason: '...', promoted_task: null}.""" | STRING |
| HIGH | backend/tests/unit/test_route_policy_preflight.py | 78 | ' -) cat >/dev/null ;;\n' | CODE |
| HIGH | …end/tests/unit/test_verify_pusher_config_references.py | 248 | null, the nested valueFrom map retains the Secret source and produces the | STRING |
| HIGH | backend/tests/integration/test_qos_live_cp9.py | 22 | Run: cd backend && python3 -m pytest tests/integration/test_qos_live_cp9.py -v -s | STRING |
| HIGH | backend/tests/integration/test_qos_real_llm.py | 11 | Run: cd backend && python3 -m pytest tests/integration/test_qos_real_llm.py -v -s | STRING |
| HIGH | backend/tests/integration/test_geocoding_cache_live.py | 5 | cd backend && set -a && source ~/.config/omi/dev/backend/.env && set +a | STRING |
| HIGH | backend/tests/integration/test_live_chat_service.py | 9 | - Backend running: set -a && source .env && set +a && python3 -m uvicorn main:app --host 0.0.0.0 --port 8000 --reloa | STRING |
| HIGH | backend/tests/integration/test_qos_all_features_l1.py | 8 | Run: cd backend && python3 -m pytest tests/integration/test_qos_all_features_l1.py -v -s | STRING |
| HIGH | backend/tests/integration/test_listen_chaos.py | 548 | '{"type": "unknown_event", "data": null}', | CODE |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 91 | CODE | |
| LOW | app/bee_audio_capture.py | 145 | CODE | |
| LOW | app/bee_audio_capture.py | 212 | CODE | |
| LOW | app/bee_audio_capture.py | 388 | CODE | |
| LOW | sdks/python/omi/stt/parakeet.py | 65 | CODE | |
| LOW | sdks/python/omi/stt/deepgram.py | 17 | CODE | |
| LOW | sdks/python-cli/omi_cli/client.py | 121 | CODE | |
| LOW | sdks/python-cli/omi_cli/local_client.py | 162 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/oauth.py | 279 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/memory.py | 66 | CODE | |
| LOW | sdks/python-cli/omi_cli/commands/action_item.py | 72 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 87 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 363 | CODE | |
| LOW | plugins/omi-shopify-app/main.py | 860 | CODE | |
| LOW | plugins/omi-linear-app/main.py | 434 | CODE | |
| LOW | plugins/omi-whoop-app/main.py | 73 | CODE | |
| LOW | plugins/omi-whoop-app/main.py | 676 | CODE | |
| LOW | plugins/hume-ai/app.py | 116 | CODE | |
| LOW | plugins/hume-ai/app.py | 170 | CODE | |
| LOW | plugins/hume-ai/app.py | 380 | CODE | |
| LOW | plugins/hume-ai/app.py | 406 | CODE | |
| LOW | plugins/hume-ai/app.py | 448 | CODE | |
| LOW | plugins/hume-ai/app.py | 511 | CODE | |
| LOW | plugins/hume-ai/app.py | 600 | CODE | |
| LOW | plugins/hume-ai/main.py | 84 | CODE | |
| LOW | plugins/hume-ai/main.py | 391 | CODE | |
| LOW | plugins/hume-ai/tests/test_notification.py | 11 | CODE | |
| LOW | plugins/omi-twitter-chat-tools-app/main.py | 86 | CODE | |
| LOW | plugins/omi-twitter-chat-tools-app/main.py | 143 | CODE | |
| LOW | plugins/omi-twitter-chat-tools-app/main.py | 559 | CODE | |
| LOW | plugins/omi-dropbox-app/dropbox_client.py | 70 | CODE | |
| LOW | plugins/omi-dropbox-app/main.py | 87 | CODE | |
| LOW | plugins/omi-dropbox-app/main.py | 805 | CODE | |
| LOW | plugins/omi-shipbob-app/main.py | 143 | CODE | |
| LOW | plugins/omi-shipbob-app/main.py | 277 | CODE | |
| LOW | plugins/omi-shipbob-app/main.py | 344 | CODE | |
| LOW | plugins/omi-shipbob-app/main.py | 588 | CODE | |
| LOW | plugins/omi-hermes-agent-app/main.py | 98 | CODE | |
| LOW | plugins/iq_rating/main.py | 230 | CODE | |
| LOW | plugins/iq_rating/main.py | 301 | CODE | |
| LOW | plugins/iq_rating/main.py | 346 | CODE | |
| LOW | plugins/iq_rating/main.py | 887 | CODE | |
| LOW | plugins/iq_rating/main.py | 995 | CODE | |
| LOW | plugins/iq_rating/main.py | 1135 | CODE | |
| LOW | plugins/omi-hacker-news-app/main.py | 221 | CODE | |
| LOW | plugins/omi-twitter-app/main_simple.py | 681 | CODE | |
| LOW | plugins/omi-github-app/claude_coder.py | 130 | CODE | |
| LOW | plugins/omi-github-app/claude_code_cli.py | 16 | CODE | |
| LOW | plugins/omi-github-app/issue_detector.py | 14 | CODE | |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 17 | CODE | |
| LOW | plugins/omi-github-app/claude_code_agentic.py | 300 | CODE | |
| LOW | plugins/omi-github-app/main.py | 253 | CODE | |
| LOW | plugins/omi-github-app/main.py | 1270 | CODE | |
| LOW | plugins/omi-github-app/main.py | 1379 | CODE | |
| LOW | plugins/omi-github-app/main.py | 1487 | CODE | |
| LOW | plugins/omi-google-calendar-app/main.py | 71 | CODE | |
| LOW | plugins/omi-google-calendar-app/main.py | 127 | CODE | |
| LOW | plugins/omi-google-calendar-app/main.py | 712 | CODE | |
| LOW | plugins/scripts/check_plugin_imports.py | 15 | CODE | |
| LOW | plugins/omi-slack-app/message_detector.py | 56 | CODE | |
| 791 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 | 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/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 | 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 | …acos/Desktop/Tests/ContextProactivityEngineTests.swift | 0 | insert into bucket_versions (bucketid, version, header, frozenrankedsegment, createdat) values ('bucket', 1, 'header', ? | STRING |
| HIGH | …s/Desktop/Tests/ContextBucketRecentDeliveryTests.swift | 0 | insert into bucket_versions (bucketid, version, header, frozenrankedsegment, createdat) values ('bucket', 1, 'header', ? | STRING |
| HIGH | …acos/Desktop/Tests/ContextDeliveryLifecycleTests.swift | 0 | insert into bucket_versions (bucketid, version, header, frozenrankedsegment, createdat) values ('bucket', 1, 'header', ? | STRING |
| HIGH | …macos/Desktop/Tests/CandidateSinkGraduationTests.swift | 0 | insert into bucket_versions (bucketid, version, header, frozenrankedsegment, createdat) values ('bucket', 1, 'header', ? | STRING |
| HIGH | …acos/Desktop/Tests/ContextProactivityEngineTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …s/Desktop/Tests/ContextBucketRecentDeliveryTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …acos/Desktop/Tests/ContextDeliveryLifecycleTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …top/macos/Desktop/Tests/ContextBucketPurgerTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …top/macos/Desktop/Tests/ContextBucketSchemaTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …macos/Desktop/Tests/CandidateSinkGraduationTests.swift | 0 | insert into context_buckets (id, subjectkind, subjectid, createdat, updatedat) values ('bucket', 'task', 'graduation-tes | STRING |
| HIGH | …acos/Desktop/Tests/ContextProactivityEngineTests.swift | 0 | insert into context_visits (id, contextgeneration, poolepoch, bucketid, appname, rawcontextkey, normalizedcontextkey, re | STRING |
| HIGH | …acos/Desktop/Tests/ContextDeliveryLifecycleTests.swift | 0 | insert into context_visits (id, contextgeneration, poolepoch, bucketid, appname, rawcontextkey, normalizedcontextkey, re | STRING |
| HIGH | …macos/Desktop/Tests/CandidateSinkGraduationTests.swift | 0 | insert into context_visits (id, contextgeneration, poolepoch, bucketid, appname, rawcontextkey, normalizedcontextkey, re | STRING |
| HIGH | backend/database/chat.py | 0 | finds all conversations that are not at the target protection level by fetching all documents and filtering them in memo | STRING |
| HIGH | backend/database/memories.py | 0 | finds all conversations that are not at the target protection level by fetching all documents and filtering them in memo | STRING |
| HIGH | backend/database/conversations.py | 0 | finds all conversations that are not at the target protection level by fetching all documents and filtering them in memo | STRING |
| 58 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 | 150 | 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-github-app/claude_coder.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/omi-github-app/claude_code_cli.py | 13 | 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 | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/composio/src/notion.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | plugins/notifications/hey_omi.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 134 | def set_compare(query_holder: dict, url_key: str, **overrides) -> None: | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 149 | def set_stat_query(panel, path: str, root: str, selector: str, text: str) -> None: | CODE |
| LOW | web/admin/grafana/build_dashboards.py | 361 | 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 | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/dependencies.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/sync.py | 146 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/pusher.py | 61 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/auth.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/desktop_proxy.py | 199 | def set_route(self, route: UpstreamRoute) -> None: | CODE |
| LOW | backend/routers/desktop_proactivity.py | 41 | logger = logging.getLogger(__name__) | 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/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 | 245 | __all__ = ['router'] | CODE |
| LOW | backend/routers/firmware.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/users.py | 136 | 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 | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/frame_requests.py | 621 | __all__ = ["router"] | CODE |
| LOW | backend/routers/tools.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/jit_rollout.py | 352 | __all__ = [ | CODE |
| LOW | backend/routers/canonical_task_access.py | 20 | __all__ = ['require_canonical_task_user'] | CODE |
| LOW | backend/routers/tts.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_product.py | 243 | __all__ = [ | CODE |
| LOW | backend/routers/apps.py | 149 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/imports.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/integration.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/screen_frames.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/conversation_finalization.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/chat.py | 100 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/mcp.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/transcribe.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/speech_profile.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/routers/memories.py | 249 | def _set_device_scope_capability_header(http_response: Response, *, supported: bool) -> None: | CODE |
| LOW⚡ | backend/routers/memories.py | 253 | def _set_canonical_lifecycle_exposure_header(http_response: Response, *, exposed: bool) -> None: | CODE |
| LOW⚡ | backend/routers/memories.py | 257 | def _set_default_delete_capability_header(http_response: Response, *, supported: bool) -> None: | CODE |
| LOW | backend/routers/memories.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/omni_relay.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/chat_first.py | 55 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/jit_ledger_snapshot.py | 253 | __all__ = [ | CODE |
| LOW⚡ | backend/routers/chat_sessions.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/calendar_meetings.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/folders.py | 23 | logger = logging.getLogger(__name__) | CODE |
| 477 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2354 | # Copy pi-mono-extension (default harness — registers the Omi provider | COMMENT |
| MEDIUM | app/setup.sh | 250 | # Named checks with remedies, matching the harness's own pattern | COMMENT |
| MEDIUM | app/setup.sh | 251 | # (scripts/dev-harness's `Cannot start; missing prerequisites:` block) instead | 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 |
| LOW | plugins/import/manual-import/app.py | 213 | # 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 | 102 | ./run.sh --fast-only --no-wait # Relaunch an eligible remote/harness bundle, then return | CODE |
| MEDIUM⚡ | desktop/macos/run.sh | 110 | # is a service-revision target, not an isolated local-data harness. | COMMENT |
| MEDIUM | desktop/macos/run.sh | 271 | # intended for the remote-dev and local-harness fast lanes; a run.sh-owned | COMMENT |
| MEDIUM | desktop/macos/run.sh | 331 | # An external harness may request an ownership proof for a detached `open` | COMMENT |
| MEDIUM | desktop/macos/run.sh | 746 | # `Aqua` — CI, an ssh shell, an agent harness, a LaunchDaemon) has no window server, so | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1141 | # The local harness already owns an isolated debug backend. Do not compete | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1637 | # A harness cleanup proof is valid only when this token has also been | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1716 | # (e.g. desktop-core-harness.sh). Default token discovery prefers Darwin | COMMENT |
| MEDIUM | desktop/macos/run.sh | 1717 | # user temp in harness clients, matching NSTemporaryDirectory(). | COMMENT |
| MEDIUM | desktop/macos/tests/test-fault-suite-launch-env.sh | 111 | # 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 | 164 | # the harness alongside the unguessable token. | 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 | …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 | 7 | // Issue #6594: Pi-mono harness with Omi API proxy for server-side cost control. | COMMENT |
| MEDIUM | desktop/macos/pi-mono-extension/index.ts | 9 | // pipe-to-shell, destructive git, etc.) so tool execution is seamless | COMMENT |
| MEDIUM | desktop/macos/pi-mono-extension/index.ts | 21 | // 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 |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 7 | # ./scripts/desktop-core-harness.sh --tier 0 | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 8 | # ./scripts/desktop-core-harness.sh --tier 1 --bundle omi-core-e2e | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 9 | # ./scripts/desktop-core-harness.sh --tier 2 --bundle omi-core-e2e --keep-stack | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/desktop-core-harness.sh | 10 | # ./scripts/desktop-core-harness.sh --readiness | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 321 | # Probe dev-harness stack health + provider_mode from config-digest.json. | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 338 | # Services with process records in the dev-harness manifest. The Firebase Auth | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 342 | # the harness supervise wrapper around `docker run`, so alive-PID + ownership | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 1085 | # listener if this harness is interrupted before its normal stop path. | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet.sh | 7 | # agent-logic-harness.sh + gauntlet --self-check. See AGENTS.md → | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet.sh | 24 | # nonces protect harness assertions. Step 0 clears kernel turns via the real bridge. | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet.sh | 26 | # Evidence bundle (timestamped under desktop/macos/.harness/agent-continuity-gauntlet/): | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet.sh | 53 | # ./scripts/agent-logic-harness.sh --with-gauntlet | COMMENT |
| MEDIUM | desktop/macos/scripts/swift-test-suites.sh | 212 | # MemoryAtlas harness needs ~245s alone, and a third worker on a 3-core | COMMENT |
| MEDIUM | desktop/macos/scripts/local-profile-env.sh | 2 | # Shared writer for the disposable local-harness profile embedded in a named | COMMENT |
| 101 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/FLASH_3.0.8/README.md | 16 | ### Step 1: Download Latest Firmware | COMMENT |
| LOW | omi/firmware/FLASH_3.0.8/README.md | 24 | ### Step 2: Replace Existing Firmware Files | COMMENT |
| LOW | omi/firmware/FLASH_3.0.8/README.md | 46 | ### 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 | app/scripts/profile_flutter_android.sh | 108 | # Step 1: Build APK | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 123 | # Step 2: Start screen recording | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 153 | # Step 3: Install APK | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 158 | # Step 4: Launch app | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 169 | # Step 5: Wait for UI state | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 189 | # Step 6: Wait additional delay | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 193 | # Step 7: Measure CPU | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4968 | /// Step 1: Checking for audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4974 | /// Step 2: Syncing audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4980 | /// Step 3: Server processing | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 17 | // Step 0: Transcription demo | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 22 | // Step 1: Single press - ask a question | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 27 | // Step 2: Power cycle | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 30 | // Step 3: Double press config | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 148 | // Step 1: Creating plan | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 155 | // Step 2: Developing logic | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 168 | // Step 3: Designing app | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 179 | // Step 4: Generating icon | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 193 | // 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 | 200 | ### Step 1: Create Railway Project | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 206 | ### Step 2: Add Redis Database | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 212 | ### Step 3: Configure Environment Variables | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 224 | ### Step 4: Configure Root Directory | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 231 | ### Step 5: Update Linear OAuth App | COMMENT |
| LOW⚡ | plugins/omi-linear-app/README.md | 239 | ### Step 6: Update Omi App Store | COMMENT |
| LOW | plugins/omi-github-app/claude_coder.py | 203 | # Step 1: Get the base branch reference | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 217 | # Step 2: Get the base tree | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 231 | # Step 3: Create blobs for each file | STRING |
| 110 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 | app/scripts/profile_flutter_android.sh | 108 | # Step 1: Build APK | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 123 | # Step 2: Start screen recording | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 153 | # Step 3: Install APK | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 158 | # Step 4: Launch app | COMMENT |
| LOW | app/scripts/profile_flutter_android.sh | 169 | # Step 5: Wait for UI state | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 189 | # Step 6: Wait additional delay | COMMENT |
| LOW⚡ | app/scripts/profile_flutter_android.sh | 193 | # Step 7: Measure CPU | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4968 | /// Step 1: Checking for audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4974 | /// Step 2: Syncing audio files | COMMENT |
| LOW⚡ | app/lib/l10n/app_localizations.dart | 4980 | /// Step 3: Server processing | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 17 | // Step 0: Transcription demo | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 22 | // Step 1: Single press - ask a question | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 27 | // Step 2: Power cycle | COMMENT |
| LOW⚡ | app/lib/providers/device_onboarding_provider.dart | 30 | // Step 3: Double press config | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 148 | // Step 1: Creating plan | COMMENT |
| LOW⚡ | app/lib/pages/settings/ai_app_generator_provider.dart | 155 | // Step 2: Developing logic | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 168 | // Step 3: Designing app | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 179 | // Step 4: Generating icon | COMMENT |
| LOW | app/lib/pages/settings/ai_app_generator_provider.dart | 193 | // 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 | 203 | # Step 1: Get the base branch reference | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 217 | # Step 2: Get the base tree | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 231 | # Step 3: Create blobs for each file | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 265 | # Step 4: Create a new tree | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 284 | # Step 5: Create a commit | STRING |
| LOW | plugins/omi-github-app/claude_coder.py | 304 | # 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 | 708 | // Step 1: Generate nonce for security | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 713 | // Step 2: Perform native Apple Sign In | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 720 | // Step 3: Extract identity token | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 914 | // Step 2: Build authorization URL | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 923 | // Step 3: Open browser for authentication | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 933 | // Step 4: Wait for callback with authorization code | COMMENT |
| LOW | desktop/macos/Desktop/Sources/AuthService.swift | 745 | // Step 4: Sign in with Firebase using Apple credential | COMMENT |
| LOW | desktop/macos/Desktop/Sources/AuthService.swift | 850 | // Step 1: Generate state for CSRF protection | COMMENT |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | codemagic.yaml | 1197 | # Check if triggered by tag or push | COMMENT |
| LOW | codemagic.yaml | 1519 | # Check if private key is a file or content | COMMENT |
| LOW | codemagic.yaml | 1577 | # 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 | app/scripts/add-l10n-key.sh | 38 | # Check if key already exists | 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 | 515 | # Check if new customer (orders_count == 1 at time of order) | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 601 | # Check if COGS data is complete | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 886 | # Check if discount code implies free shipping | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1144 | # Check if any search word matches any word in product title | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1280 | # Check if this zone applies to the destination | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1286 | # Check if it's a country-wide zone or has province restrictions | COMMENT |
| LOW | plugins/omi-shopify-app/main.py | 1618 | # 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 | 86 | # 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 | 99 | # Check if token is expired (with 5 minute buffer) | COMMENT |
| LOW | plugins/omi-dropbox-app/main.py | 100 | # Check if token is expired (with 5 min buffer) | COMMENT |
| LOW | plugins/omi-dropbox-app/main.py | 529 | # Check if user is connected | COMMENT |
| LOW | plugins/omi-shipbob-app/main.py | 103 | # Check if token needs refresh (ShipBob tokens last 1 hour) | COMMENT |
| LOW | plugins/iq_rating/main.py | 1185 | # 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 | 574 | # Check if token needs refresh | COMMENT |
| LOW | plugins/omi-twitter-app/main_simple.py | 578 | # Check if we have a valid refresh token | COMMENT |
| LOW | plugins/omi-github-app/claude_code_cli.py | 104 | # Check if there are changes to commit | COMMENT |
| LOW | plugins/omi-github-app/simple_storage.py | 12 | # 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 | 84 | # 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 | 136 | # Check if there are more pages | COMMENT |
| LOW | plugins/omi-slack-app/slack_client.py | 196 | # Check if message was posted by bot or user | COMMENT |
| LOW | plugins/omi-slack-app/slack_client.py | 328 | # 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 | 181 | # Check if there are more blocks | COMMENT |
| LOW | plugins/composio/src/notion.py | 261 | # Check if the user has connected Notion | COMMENT |
| LOW | plugins/omi-clickup-app/simple_storage.py | 12 | # Check if we're on Railway (has /app/data volume) | COMMENT |
| LOW | plugins/omi-clickup-app/clickup_client.py | 295 | # Check if time is included in the date string | COMMENT |
| LOW | plugins/import/manual-import/app.py | 174 | # Check if adding this point would exceed the maximum length | STRING |
| LOW | plugins/import/manual-import/app.py | 253 | # Check if OpenAI API key is set | COMMENT |
| LOW | plugins/import/manual-import/app.py | 339 | # Check if all memories were successful | COMMENT |
| LOW | plugins/import/manual-import/app.py | 376 | # Check if OpenAI API is configured | COMMENT |
| LOW | plugins/notifications/hey_omi.py | 269 | # Check if we should process the question | 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 |
| 85 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/lib/l10n/app_localizations.dart | 16827 | /// **'Power-user AI — thousands of chats + agentic automations'** | COMMENT |
| MEDIUM | app/lib/pages/chat/page.dart | 1431 | // Use post-frame callback to ensure scaffold state is ready | 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 | 871 | /// 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 | …esktop/Sources/Onboarding/OnboardingStepScaffold.swift | 369 | /// full-width steps (floating-bar shortcut/demo) that don't use the scaffold. | COMMENT |
| MEDIUM | …top/macos/agent-cloud/experiments/RESEARCH-FINDINGS.md | 31 | ### Run 1 — Broad frontier: durable state, orchestration, context, tool registry | COMMENT |
| MEDIUM | desktop/macos/scripts/swift-test-suites.sh | 378 | # 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/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 Claude with 18 tool types — | CODE |
| MEDIUM⚡ | backend/AGENTS.md | 73 | retrieval/ # RAG pipeline (25+ files): agentic RAG via Claude with 18 tool types — | CODE |
| MEDIUM | backend/routers/agent_tools.py | 135 | # path in utils/retrieval/agentic.py. | COMMENT |
| MEDIUM | backend/llm_gateway/config/cost_rate_cards.yaml | 32 | # The GPT-5.6 family (Luna/Sol/Terra) shares one context window and one | COMMENT |
| MEDIUM | backend/diarizer/embedding.py | 52 | # Instantiate pretrained speaker embedding model | 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 | 166 | # 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 | 276 | # Stub utils.retrieval.agentic | 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_llm_usage_db.py | 252 | # RAG should be first (700 total tokens vs 150) | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 308 | # 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 | 312 | # Real (import-light) fallback telemetry: agentic.py imports record_fallback from it. | COMMENT |
| MEDIUM⚡ | backend/tests/unit/test_prompt_cache_integration.py | 316 | # 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 | 321 | # Real (import-light) web_search gate. agentic.py now imports WEB_SEARCH_TOOL and | COMMENT |
| MEDIUM | backend/tests/unit/test_prompt_cache_integration.py | 230 | # utils.observability.fallback is import-light (metrics counter + logging) and agentic.py calls | COMMENT |
| MEDIUM | backend/tests/unit/test_prompt_cache_integration.py | 395 | # Module-scope import in agentic.py; stub is enough for CORE_TOOLS / convert_tools tests. | COMMENT |
| MEDIUM | …nd/tests/integration/test_speaker_id_real_embedding.py | 566 | # Any of the 3 persons can match since the embedding model maps both | COMMENT |
| MEDIUM | backend/utils/rate_limit_config.py | 86 | # 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 | 255 | source_type=route.effective_source_type, # V8-3 passthrough router scaffold | STRING |
| 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 | 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 |
| MEDIUM | backend/utils/llm/chat.py | 528 | def _get_agentic_qa_prompt( # type: ignore[reportUnusedFunction] # imported by retrieval/agentic.py | CODE |
| MEDIUM⚡ | backend/utils/llm/chat.py | 443 | # The agentic system prompt is wrapped in a single Anthropic cache_control breakpoint, | STRING |
| MEDIUM⚡ | backend/utils/llm/chat.py | 446 | # and injected into the user turn instead (see get_current_datetime_block / agentic.py). | STRING |
| MEDIUM⚡ | backend/utils/llm/chat.py | 451 | # agentic system prompt. Header values are client-controlled, so only these exact values | STRING |
| MEDIUM | backend/utils/llm/clients.py | 213 | # Only pin Anthropic Messages through the gateway when agentic chat is | COMMENT |
| MEDIUM | backend/utils/retrieval/agentic.py | 772 | # append-only inter-turn history epoch and each agentic tool-loop | COMMENT |
| MEDIUM | backend/utils/retrieval/agentic.py | 1287 | # a long history) would exceed the chat model's context window; the Anthropic call then raises | COMMENT |
| MEDIUM | backend/utils/retrieval/graph.py | 400 | # One absolute setup deadline covers router metadata and agentic prompt/tool | COMMENT |
| MEDIUM | backend/utils/retrieval/graph.py | 458 | # 3. Default: Anthropic agentic chat | COMMENT |
| MEDIUM⚡ | backend/utils/retrieval/safety.py | 224 | # context window. When that happens the Anthropic call raises an input-too-long error which the | COMMENT |
| MEDIUM | backend/testing/e2e/README.md | 122 | │ ├── llm.py # deterministic LLM fake scaffold | CODE |
| MEDIUM | backend/testing/e2e/README.md | 124 | │ └── embeddings.py # VAD/diarization/embedding fake scaffold | CODE |
| 5 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 | plugins/omi-linear-app/main.py | 481 | # Create the issue | COMMENT |
| MEDIUM | plugins/omi-github-app/main.py | 303 | # Create the issue | COMMENT |
| MEDIUM | plugins/omi-hive-app/main.py | 771 | # 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 | 164 | # Create a consolidated memory with source attribution | STRING |
| MEDIUM | plugins/import/manual-import/app.py | 300 | # Create the facts data according to existing structure (API still uses "facts") | 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 | 1172 | # Create the JWT payload | COMMENT |
| MEDIUM | backend/routers/auth.py | 1182 | # Create the JWT headers | COMMENT |
| MEDIUM⚡ | backend/routers/apps.py | 1030 | # Create a new persona for the user | COMMENT |
| MEDIUM | backend/database/action_items.py | 869 | # 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 | 152 | # Create a mock UploadFile with valid WAV audio | COMMENT |
| MEDIUM | …/tests/unit/test_process_conversation_usage_context.py | 659 | # Create a minimal conversation mock without external_data triggering CalendarMeetingContext | 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 | 469 | # 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 | 200 | # Create a Pydantic model from the schema (or empty model if no parameters) | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 204 | # Create an empty schema for tools with no parameters | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/calendar_tools.py | 908 | # Create the event | COMMENT |
| MEDIUM | backend/utils/conversations/memories.py | 77 | # Create a memory object from the explicit memory content | 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 | 44 | # Create the agent | 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 | .github/workflows/desktop_windows_release.yml | 378 | # 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 | 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 | 13218 | /// Success message when AI-generated app is created | COMMENT |
| HIGH | app/lib/backend/http/api/apps.dart | 615 | /// Fetches AI-generated sample prompts for the app generator | COMMENT |
| HIGH | app/lib/backend/http/api/goals.dart | 362 | /// Get AI-generated advice for current goal | COMMENT |
| HIGH | app/lib/pages/settings/ai_app_generator_provider.dart | 94 | /// Fetch AI-generated sample prompts | COMMENT |
| HIGH | plugins/omi-github-app/claude_code_cli.py | 127 | ['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 | 313 | /// 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 | 2717 | /// Fetches the latest AI-generated user profile from local database | STRING |
| HIGH | desktop/macos/Desktop/Sources/Stores/TasksStore.swift | 420 | /// Lower weight = higher priority. Manual tasks always appear above AI-generated. | COMMENT |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1556 | // Migration 11: Create live_notes table for AI-generated notes during recording | STRING |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1808 | // 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 | 176 | /// 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 | 119 | // 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 | 84 | # Extract H2 and H3 headers (these are Limitless AI-generated topic summaries) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | backend/database/notifications.py | 185 | Set user's mentor notification frequency preference. Args: uid: User ID frequency: Notificatio | STRING |
| HIGH | backend/utils/speaker_sample.py | 96 | Download speech sample audio from GCS. Args: sample_path: GCS path to the sample (e.g., '{uid}/people_ | STRING |
| HIGH | backend/utils/other/storage.py | 623 | Decode length-prefixed Opus packets back to PCM16. Args: opus_data: Length-prefixed Opus packets (from | STRING |
| HIGH | backend/utils/other/storage.py | 1591 | Download blob content as bytes from GCS. Args: bucket_name: Name of the GCS bucket path: Path | STRING |
| HIGH | backend/utils/other/storage.py | 1630 | 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 | 97 | 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 | 522 | 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 | 166 | 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 | 178 | Retrieve user conversations with complete details including transcripts, summaries, and metadata. Use this too | STRING |
| HIGH | backend/utils/retrieval/tools/memory_tools.py | 260 | 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 | 80 | 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 | 637 | return MapEntry(key, '<YOUR_API_KEY>'); | CODE |
| HIGH | app/lib/pages/settings/transcription_settings_page.dart | 637 | 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 | 236 | "your_api_key", | CODE |
| 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 | plugins/omi-shopify-app/main.py | 1776 | "description": "Customer's full name (e.g., 'John Doe'). Will search existing customers." | 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 | …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 | 148 | XCTAssertFalse(serialized.contains("user@example.com")) | CODE |
| LOW | …cos/Desktop/Tests/DesktopDiagnosticsManagerTests.swift | 133 | XCTAssertFalse(tail.contains("user@example.com")) | STRING |
| LOW | …istants/MemoryExtraction/MemoryAssistantSettings.swift | 98 | ✅ "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 | desktop/windows/src/main/assistants/memory/prompt.ts | 77 | ✅ "User's Slack workspace is 'Acme Corp' - they work there" | CODE |
| LOW | desktop/windows/src/main/assistants/insight/sql.test.ts | 572 | ins.run(1, 'Signal', 'John Doe', 'Signal.exe', 'SECRET signal message', '/1.jpg') | CODE |
| LOW | …op/windows/src/main/ipc/rewindActivityDenylist.test.ts | 68 | ins.run(1, 'Signal', 'John Doe', 'Signal.exe', '/1.jpg') | CODE |
| LOW | …op/windows/src/main/ipc/rewindActivityDenylist.test.ts | 69 | ins.run(2, 'Signal', 'John Doe', 'Signal.exe', '/2.jpg') | CODE |
| LOW | backend/tests/conftest.py | 25 | os.environ.setdefault('OPENAI_API_KEY', 'fake-key-for-hermetic-tests') | CODE |
| LOW | backend/tests/conftest.py | 26 | os.environ.setdefault('PERPLEXITY_API_KEY', 'fake-key-for-hermetic-tests') | CODE |
| LOW | backend/tests/unit/test_memories_validation.py | 245 | os.environ.setdefault('OPENAI_API_KEY', 'sk-test-fake-key-for-unit-tests') | CODE |
| LOW⚡ | backend/tests/unit/test_byok_security.py | 1620 | uid = get_current_user_uid(authorization='Bearer fake-token') | CODE |
| LOW⚡ | backend/tests/unit/test_byok_security.py | 1632 | uid = get_current_user_uid_no_byok_validation(authorization='Bearer fake-token') | CODE |
| LOW⚡ | backend/tests/unit/test_omi_qos_tiers.py | 160 | os.environ.setdefault('OPENAI_API_KEY', 'sk-test-fake-key-for-unit-tests') | CODE |
| LOW⚡ | backend/tests/unit/test_omi_qos_tiers.py | 161 | os.environ.setdefault('ANTHROPIC_API_KEY', 'sk-ant-test-fake-key') | CODE |
| LOW | backend/tests/unit/test_log_sanitizer.py | 201 | result = sanitize_pii("John Doe") | CODE |
| LOW | backend/tests/unit/test_vertex_ai_system_role.py | 73 | os.environ.setdefault('OPENAI_API_KEY', 'sk-test-fake-key-for-unit-tests') | CODE |
| LOW | backend/tests/unit/test_vertex_ai_system_role.py | 74 | os.environ.setdefault('ANTHROPIC_API_KEY', 'sk-ant-test-fake-key') | CODE |
| LOW | backend/tests/unit/test_v3_gcp_evidence_config.py | 21 | with pytest.raises(ValidationError, match="placeholder"): | CODE |
| LOW⚡ | backend/tests/unit/test_reset_transcription_usage.py | 196 | email="user@example.com", | CODE |
| LOW | backend/tests/unit/test_reset_transcription_usage.py | 124 | email="user@example.com", | CODE |
| LOW | backend/tests/unit/test_reset_transcription_usage.py | 138 | assert d["email"] == "user@example.com" | CODE |
| LOW | backend/tests/unit/test_reset_transcription_usage.py | 212 | assert payload["email"] != "user@example.com" | CODE |
| LOW⚡ | backend/tests/integration/test_qos_live_cp9.py | 141 | client = _create_byok_client('sonar-pro', 'perplexity', 'fake-key') | CODE |
| LOW | backend/utils/llm/chat.py | 1093 | examples=[['John Doe', 'Jane Doe']], | STRING |
| LOW | backend/utils/llm/chat.py | 1093 | examples=[['John Doe', 'Jane Doe']], | STRING |
| LOW | backend/testing/parity_pack_v0/runner.py | 19 | def hit(self, fake_name: str) -> None: | CODE |
| LOW | backend/testing/parity_pack_v0/runner.py | 20 | self._hits[fake_name] = self._hits.get(fake_name, 0) + 1 | CODE |
| LOW⚡ | scripts/test-public-secret-scanners.py | 234 | archive.writestr("config.json", '{"OPENAI_API_KEY":"placeholder"}') | CODE |
| LOW⚡ | scripts/dev-harness/tests/test_providers.py | 210 | assert any("placeholder" in item.lower() for item in report.missing) | CODE |
| LOW | scripts/dev-harness/dev_harness/providers.py | 240 | "placeholder", | CODE |
| LOW⚡ | scripts/dev-harness/dev_harness/cli.py | 488 | "placeholder": "Provider broker policy is present; live per-call accounting is not wired in this manual-QA s | CODE |
| LOW⚡ | scripts/dev-harness/dev_harness/cli.py | 492 | "placeholder": "Firestore adapter/client-boundary write-attempt counters are reserved for the live desktop/b | CODE |
| LOW⚡ | scripts/dev-harness/dev_harness/cli.py | 500 | "placeholder": "Protected-collection before/after digests are not computed unless a live emulator readback i | CODE |
| LOW | .github/checks-manifest.yaml | 316 | reason: "deployment secret-boundary fake-name fixtures must remain executable" | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 287 | fake_name = "check_" + "something.py" | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 289 | f"steps:\n - run: python3 .github/scripts/{fake_name}\n", | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 292 | self.assertEqual(deterministic_workflow_references(workflows), {f".github/scripts/{fake_name}"}) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/hume-ai/app.py | 377 | CODE | |
| LOW | backend/routers/sync.py | 860 | CODE | |
| LOW | backend/routers/users.py | 655 | CODE | |
| LOW | backend/routers/tools.py | 281 | CODE | |
| LOW | backend/routers/google_calendar.py | 81 | CODE | |
| LOW | backend/routers/apps.py | 671 | CODE | |
| LOW | backend/routers/integration.py | 291 | CODE | |
| LOW | backend/routers/integration.py | 599 | CODE | |
| LOW | backend/routers/chat.py | 1697 | CODE | |
| LOW | backend/routers/chat.py | 1764 | CODE | |
| LOW | backend/routers/mcp.py | 291 | CODE | |
| LOW | backend/routers/transcribe.py | 76 | CODE | |
| LOW | backend/routers/transcribe.py | 124 | CODE | |
| LOW | backend/routers/transcribe.py | 172 | CODE | |
| LOW | backend/routers/transcribe.py | 215 | CODE | |
| LOW | backend/routers/memories.py | 539 | CODE | |
| LOW | backend/routers/developer.py | 1334 | CODE | |
| LOW | backend/routers/conversations.py | 589 | CODE | |
| LOW | backend/routers/conversations.py | 652 | CODE | |
| LOW | backend/routers/action_items.py | 351 | CODE | |
| LOW | backend/routers/mcp_sse.py | 1609 | CODE | |
| LOW | backend/database/workstreams.py | 213 | CODE | |
| LOW | backend/database/memory_apply_store.py | 369 | CODE | |
| LOW | backend/database/memory_apply_store.py | 409 | CODE | |
| LOW | backend/database/apps.py | 61 | CODE | |
| LOW | backend/database/memories.py | 300 | CODE | |
| LOW | backend/database/memories.py | 359 | CODE | |
| LOW | backend/database/llm_usage.py | 143 | CODE | |
| LOW | backend/database/llm_usage.py | 485 | CODE | |
| LOW | backend/database/conversations.py | 591 | CODE | |
| LOW | backend/database/conversations.py | 637 | CODE | |
| LOW | backend/database/conversations.py | 680 | CODE | |
| LOW | backend/database/action_items.py | 625 | CODE | |
| LOW | backend/llm_gateway/gateway/metrics.py | 199 | CODE | |
| LOW | backend/llm_gateway/gateway/providers.py | 306 | CODE | |
| LOW | backend/parakeet/batch_engine.py | 37 | CODE | |
| LOW | backend/tests/unit/test_ws_m_atom_keyword_index.py | 143 | CODE | |
| LOW | backend/tests/unit/test_conversations_count.py | 27 | CODE | |
| LOW | backend/tests/unit/test_vram_batch.py | 89 | CODE | |
| LOW | backend/tests/unit/test_memory_outbox_worker.py | 220 | CODE | |
| LOW | backend/utils/apps.py | 465 | CODE | |
| LOW | backend/utils/apps.py | 470 | CODE | |
| LOW | backend/utils/analytics.py | 26 | CODE | |
| LOW | backend/utils/mcp_memories.py | 281 | CODE | |
| LOW | backend/utils/llm/working_observations.py | 233 | CODE | |
| LOW | backend/utils/llm/memories.py | 692 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 368 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 411 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 444 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 551 | CODE | |
| LOW | backend/utils/memory/daily_memory_sweep.py | 3054 | CODE | |
| LOW | backend/utils/memory/vector_search_service.py | 35 | CODE | |
| LOW | backend/utils/memory/knowledge_ledger.py | 309 | CODE | |
| LOW | backend/utils/memory/legacy_backfill.py | 1425 | CODE | |
| LOW | backend/utils/memory/short_term_promotion.py | 343 | CODE | |
| LOW | backend/utils/memory/canonical_memory_adapter.py | 454 | CODE | |
| LOW | backend/utils/memory/canonical_memory_adapter.py | 781 | CODE | |
| LOW | backend/utils/observability/transcription.py | 106 | CODE | |
| LOW | backend/utils/retrieval/agentic.py | 1267 | CODE | |
| LOW | backend/utils/retrieval/tools/action_item_tools.py | 78 | CODE | |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/setup-personal.sh | 8 | # 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 |
|---|---|---|---|---|
| CRITICAL | …ages/conversations/widgets/conversation_list_item.dart | 506 | 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/unit/test_location_context_consent.py | 54 | client.collection.return_value.document.return_value.set.assert_called_once_with( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/import/manual-import/app.py | 73 | - "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 | desktop/windows/src/main/assistants/tasks/prompt.ts | 63 | - "Can you…", "Could you…", "Please…", "Don't forget to…", "Make sure you…" | CODE |
| LOW⚡ | …/tests/unit/test_process_conversation_usage_context.py | 698 | text="Hey Omi, don't forget to send the budget.", | CODE |
| LOW | …/tests/unit/test_process_conversation_usage_context.py | 722 | "Test User: Hey Omi, don't forget to send the budget.", | CODE |
| LOW | …/tests/unit/test_process_conversation_usage_context.py | 724 | "<omi-wake-word-invocation/> Test User: Hey Omi, don't forget to send the budget.", | 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 |
|---|---|---|---|---|
| MEDIUM | …ckend/tests/unit/test_chat_generate_reply_stateless.py | 92 | CODE | |
| MEDIUM | backend/tests/unit/test_desktop_proxy.py | 752 | CODE | |
| MEDIUM | backend/tests/unit/test_chat_quota_counting_router.py | 214 | CODE | |
| MEDIUM | backend/tests/unit/test_owner_storage_purge_and_gate.py | 96 | CODE | |
| MEDIUM | backend/tests/unit/test_owner_storage_purge_and_gate.py | 138 | CODE | |
| MEDIUM | backend/tests/unit/test_migrate_memories_rekey.py | 142 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 554 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 560 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 707 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 784 | CODE | |
| MEDIUM | backend/tests/unit/test_desktop_transcribe.py | 1940 | CODE | |
| MEDIUM | backend/tests/unit/test_memory_apply_store.py | 797 | CODE | |
| MEDIUM | …kend/tests/unit/test_memory_visibility_export_fixes.py | 131 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/app/src/app/api/proxy/[...path]/route.ts | 25 | async function handleRequest(request: Request) { | CODE |
| LOW | backend/tests/unit/test_async_resource_correctness.py | 226 | 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/lib/providers/onboarding_provider.dart | 338 | // TODO: implement onDeviceConnectionStateChanged | COMMENT |
| LOW | app/lib/providers/onboarding_provider.dart | 370 | // TODO: implement onStatusChanged | COMMENT |