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 Dart project with 12,999 GitHub stars. SynthScan v2.0 examined 2,473,550 lines of code across 6850 source files, recording 18424 pattern matches distributed across 25 syntactic categories. The overall adjusted score of 9.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 18424 distinct pattern matches across 25 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 | sdks/react-native/src/index.js | 141 | function cleanupSubscriptionsForDevice(deviceId) { | 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 | 89 | 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 | 13 | def test_default_config_path_honors_env(monkeypatch, tmp_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 19 | def test_load_missing_file_returns_empty_config(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 26 | def test_save_and_round_trip_preserves_unknown_keys(config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 50 | def test_save_creates_file_with_secure_perms(config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 63 | 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 test_save_overwrites_stale_temp_file(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 114 | def test_masked_credential_for_api_key(config_path: Path) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 122 | def test_masked_credential_short_token_still_redacts() -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_config.py | 127 | def test_masked_credential_empty_when_no_auth() -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 139 | def test_config_set_local_token_masks_success_output(config_path: Path, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 151 | def test_resolve_profile_name_precedence(config_path: Path, monkeypatch) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 164 | def test_delete_profile_resets_active_when_deleting_active(config_path: Path) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_config.py | 173 | def test_is_authenticated_states() -> None: | CODE |
| LOW | sdks/python-cli/tests/test_memory.py | 20 | def test_memory_list_pretty_renders_table(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_memory.py | 39 | def test_memory_create_posts_body(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_memory.py | 51 | def test_memory_create_with_category_and_tags(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 66 | def test_memory_delete_skips_prompt_with_yes(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 72 | def test_memory_update_requires_at_least_one_field(authed_profile, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 79 | def test_memory_update_patches_body(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 100 | def test_memory_unauthenticated_is_clear(config_path, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 106 | def test_memory_get_missing_returns_not_found_exit_code(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW⚡ | sdks/python-cli/tests/test_memory.py | 115 | def test_memory_get_found_in_later_page(authed_profile, respx_mock, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_local.py | 36 | def test_local_configure_persists_profile_config(config_path: Path, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_local.py | 52 | def test_local_status_without_config_is_json(config_path: Path, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_local.py | 62 | def test_local_status_calls_status_tool(config_path: Path, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_local.py | 76 | def test_local_tools_lists_local_affordances(config_path: Path, cli_runner) -> None: | CODE |
| LOW | sdks/python-cli/tests/test_local.py | 88 | def test_local_call_accepts_args_json(config_path: Path, cli_runner) -> None: | CODE |
| 9686 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 4 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 441 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 443 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1906 | # ============================================ | COMMENT |
| MEDIUM | codemagic.yaml | 1946 | # ============================================ | 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 | 142 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/sync_provider.dart | 145 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 90 | // ───────────────────────── scanning ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 180 | // ───────────────────── upload / transcribe ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 234 | // ───────────────────────── reconcile ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 313 | // ───────────────────────── delete ───────────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 336 | // ───────────────────── playback / waveform ───────────────────── | COMMENT |
| MEDIUM | app/lib/providers/local_recordings_provider.dart | 404 | // ───────────────────────── sidecar ───────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 116 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 118 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 254 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 256 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 287 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 289 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 329 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 331 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 409 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 411 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 674 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 676 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 752 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 754 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 821 | // ───────────────────────────────────────── | COMMENT |
| MEDIUM | app/lib/pages/conversations/auto_sync_page.dart | 823 | // ───────────────────────────────────────── | 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 |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/client.py | 226 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sdks/python-cli/omi_cli/main.py | 155 | # --------------------------------------------------------------------------- | COMMENT |
| 1389 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 | 1901 | - i@m13v.com | COMMENT |
| LOW | codemagic.yaml | 1921 | # FIREBASE_API_KEY=<prod firebase web api key> | 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 |
| LOW | …/firmware/omi/src/lib/core/lib/opus-1.2.1/float_cast.h | 81 | COMMENT | |
| 2350 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/play_sound_on_friend.py | 51 | except Exception as e: | CODE |
| LOW | omi/firmware/scripts/devkit/decode_audio.py | 29 | except Exception as e: | CODE |
| MEDIUM | omi/firmware/scripts/devkit/decode_audio.py | 30 | print(f"Error decoding frame: {e}") | CODE |
| LOW | omi/firmware/scripts/devkit/local_client.py | 79 | except Exception as e: | CODE |
| MEDIUM | omi/firmware/scripts/devkit/local_client.py | 80 | print(f"Error decoding frame: {e}") | CODE |
| MEDIUM | omi/firmware/scripts/devkit/flash_batches/index.py | 67 | print("Error: XIAO-SENSE drive not detected. Skipping this file.") | CODE |
| MEDIUM | omi/firmware/scripts/devkit/flash_batches/index.py | 110 | print(f"Error: UF2 file not found at {uf2_file}") | CODE |
| LOW | …mware/scripts/devkit/sdcard_test_files/decode_audio.py | 28 | except Exception as e: | CODE |
| MEDIUM | …mware/scripts/devkit/sdcard_test_files/decode_audio.py | 29 | print(f"Error decoding frame: {e}") | CODE |
| MEDIUM | app/ios/Runner/AppleHealthService.swift | 89 | print("Error requesting HealthKit authorization: \(error.localizedDescription)") | CODE |
| MEDIUM | app/ios/omiWatchApp/WatchAudioRecorderViewModel.swift | 273 | print("Error details: \(error.localizedDescription)") | CODE |
| MEDIUM | app/lib/providers/app_provider.dart | 818 | 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 | 31 | except Exception as e: | CODE |
| LOW | sdks/python/omi/transcribe.py | 37 | except Exception as e: | CODE |
| MEDIUM | sdks/python/omi/transcribe.py | 38 | print(f"Error sending audio: {e}") | CODE |
| MEDIUM⚡ | sdks/python/omi/transcribe.py | 61 | print(f"Error decoding response: {e}") | CODE |
| LOW⚡ | sdks/python/omi/transcribe.py | 62 | except Exception as e: | CODE |
| MEDIUM⚡ | sdks/python/omi/transcribe.py | 63 | print(f"Error processing transcript: {e}") | CODE |
| LOW⚡ | sdks/python/omi/transcribe.py | 66 | except Exception as e: | CODE |
| MEDIUM⚡ | sdks/python/omi/transcribe.py | 67 | print(f"Error in receive_transcripts: {e}") | CODE |
| LOW⚡ | sdks/python/omi/transcribe.py | 71 | except Exception as e: | CODE |
| MEDIUM⚡ | sdks/python/omi/transcribe.py | 72 | print(f"Error in transcribe: {e}") | CODE |
| LOW⚡ | sdks/python/omi/transcribe.py | 74 | except Exception as e: | CODE |
| LOW | sdks/python/examples/main.py | 28 | except Exception as e: | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 181 | print("Error checking file size: \(error.localizedDescription)") | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 247 | print("Error transcribing audio: \(error.localizedDescription)") | CODE |
| MEDIUM | sdks/swift/Sources/omi-lib/FriendManager.swift | 280 | print("Error transcribing audio: \(error.localizedDescription)") | CODE |
| LOW | sdks/python-cli/omi_cli/config.py | 213 | except Exception: | CODE |
| LOW | sdks/python-cli/omi_cli/main.py | 216 | 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 |
| 1544 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 | sdks/python/omi/__init__.py | 10 | CODE | |
| LOW | sdks/python/omi/__init__.py | 10 | CODE | |
| LOW | sdks/python/omi/__init__.py | 11 | CODE | |
| LOW | sdks/python/omi/__init__.py | 12 | 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 | |
| LOW | sdks/python-cli/tests/test_main.py | 3 | CODE | |
| LOW | sdks/python-cli/tests/test_goal.py | 3 | CODE | |
| LOW | sdks/python-cli/omi_cli/config.py | 15 | CODE | |
| LOW | sdks/python-cli/omi_cli/models.py | 10 | CODE | |
| LOW | sdks/python-cli/omi_cli/client.py | 18 | CODE | |
| LOW | sdks/python-cli/omi_cli/local_client.py | 3 | CODE | |
| LOW | sdks/python-cli/omi_cli/errors.py | 19 | CODE | |
| LOW | sdks/python-cli/omi_cli/main.py | 16 | CODE | |
| LOW | sdks/python-cli/omi_cli/output.py | 13 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/store.py | 8 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/__init__.py | 14 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/__init__.py | 14 | CODE | |
| LOW | sdks/python-cli/omi_cli/auth/__init__.py | 15 | CODE | |
| 1119 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 | 222 | f"cd desktop/macos && python3 scripts/omi-harness run {rel} " | CODE |
| HIGH | backend/routers/chat.py | 973 | "is_user": false, "person_id": null}] | STRING |
| HIGH⚡ | backend/routers/developer.py | 1997 | raise ValueError('success_criteria cannot be null; use an empty list to clear it') | CODE |
| HIGH | backend/database/users.py | 712 | # pad with empty strings for the existing samples first (Dart expects non-null) | 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_async_webhooks.py | 318 | """Callers that haven't migrated yet still get a well-formed payload (summary_json: null).""" | STRING |
| HIGH | backend/tests/unit/test_app_client_dart_generator.py | 359 | assert 'if (value is! List) return null;' in generated | CODE |
| HIGH⚡ | backend/tests/unit/test_conversation_hybrid_search.py | 166 | 'userId:=uid1 && discarded:=false && created_at:>=100 && created_at:<=200 ' | CODE |
| HIGH⚡ | backend/tests/unit/test_conversation_hybrid_search.py | 177 | assert params['filter_by'] == 'userId:=uid1 && transcript_segments.is_user:=true' | CODE |
| HIGH | backend/tests/unit/test_app_client_ts_generator.py | 25 | assert 'finished_at: string | null;' in generated | CODE |
| HIGH | backend/tests/unit/test_app_client_ts_generator.py | 93 | assert 'maybe?: string | null;' in generated | CODE |
| HIGH | backend/tests/unit/test_high_priority_usage_tracking.py | 372 | return MagicMock(content='{"found": false, "value": null, "reasoning": "no progress"}') | CODE |
| HIGH⚡ | backend/tests/unit/test_desktop_migration.py | 1879 | """Router wraps promoted action_item in {promoted: true, reason: null, promoted_task: {...}}.""" | STRING |
| HIGH⚡ | backend/tests/unit/test_desktop_migration.py | 1892 | """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 | 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 |
| HIGH | backend/tests/eval/test_proactive_tools_eval.py | 12 | cd backend && python -m tests.eval.test_proactive_tools_eval | STRING |
| HIGH | backend/utils/conversations/search.py | 156 | # One malformed/legacy indexed doc (missing, null, or out-of-range timestamp) must not | COMMENT |
| HIGH | backend/models/goal.py | 150 | raise ValueError(f'{field_name} cannot be null; use clear_metric to remove the metric') | CODE |
| HIGH | backend/scripts/run_dart_wire_hardening_check.py | 35 | return null; | CODE |
| HIGH⚡ | backend/scripts/run_dart_wire_hardening_check.py | 87 | askForNps: null, | CODE |
| HIGH⚡ | backend/scripts/run_dart_wire_hardening_check.py | 93 | ).askForNps == null, | CODE |
| HIGH⚡ | backend/scripts/run_dart_wire_hardening_check.py | 97 | final explicitNull = responseMessageJson()..['ask_for_nps'] = null; | CODE |
| HIGH⚡ | backend/scripts/run_dart_wire_hardening_check.py | 98 | expectValue(GeneratedResponseMessage.fromJson(explicitNull).askForNps == null, 'explicit JSON null should remain null' | CODE |
| HIGH⚡ | backend/scripts/run_dart_wire_hardening_check.py | 102 | 'id': null, | CODE |
| HIGH | backend/scripts/run_dart_wire_hardening_check.py | 150 | expectValue(opaqueChartModel.chartData == null, 'invalid chart_type should stay opaque'); | CODE |
| HIGH | backend/scripts/vad_live_test.py | 10 | cd backend && python3 scripts/vad_live_test.py | STRING |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 843 | change = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 845 | : create = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 850 | if (value == null) return null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 859 | return null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 876 | : taskCreate = value, taskUpdate = null, taskComplete = null, taskCancel = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 877 | taskSupersede = null, workstreamCreate = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 879 | : taskCreate = null, taskUpdate = value, taskComplete = null, taskCancel = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 880 | taskSupersede = null, workstreamCreate = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 882 | : taskCreate = null, taskUpdate = null, taskComplete = value, taskCancel = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 883 | taskSupersede = null, workstreamCreate = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 885 | : taskCreate = null, taskUpdate = null, taskComplete = null, taskCancel = value, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 886 | taskSupersede = null, workstreamCreate = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 888 | : taskCreate = null, taskUpdate = null, taskComplete = null, taskCancel = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 889 | taskSupersede = value, workstreamCreate = null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 891 | : taskCreate = null, taskUpdate = null, taskComplete = null, taskCancel = null, | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 892 | taskSupersede = null, workstreamCreate = value; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 1006 | return const _WireField(false, null); | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 1009 | String? _readString(dynamic value) => value is String ? value : null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 1014 | return null; | CODE |
| HIGH⚡ | backend/scripts/generate_dart_models.py | 1020 | return null; | CODE |
| 57 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 | 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 |
| HIGH | backend/tests/unit/test_phone_twiml_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_bulk_notification_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_task_sync_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | …kend/tests/unit/test_speaker_sample_migration_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_chat_file_stream_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_app_integrations_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | …end/tests/unit/test_credit_limit_notification_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_silent_notification_async.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_fair_use_classifier_offload.py | 0 | name for an ast.name (.id) or ast.attribute (.attr); none otherwise. | STRING |
| HIGH | backend/tests/unit/test_phone_twiml_async.py | 0 | yield (executor_name, target_name) for each awaited run_blocking(executor, target, ...) call. only awaited calls count: | STRING |
| HIGH | backend/tests/unit/test_bulk_notification_async.py | 0 | yield (executor_name, target_name) for each awaited run_blocking(executor, target, ...) call. only awaited calls count: | STRING |
| HIGH | backend/tests/unit/test_task_sync_async.py | 0 | yield (executor_name, target_name) for each awaited run_blocking(executor, target, ...) call. only awaited calls count: | STRING |
| HIGH | backend/tests/unit/test_agent_tool_geolocation_async.py | 0 | yield (executor_name, target_name) for each awaited run_blocking(executor, target, ...) call. only awaited calls count: | STRING |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omi/firmware/scripts/devkit/flash_batches/index.py | 91 | CODE | |
| LOW | sdks/python/omi/transcribe.py | 7 | CODE | |
| LOW | sdks/python/omi/transcribe.py | 41 | 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/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 | |
| LOW | plugins/omi-slack-app/slack_client.py | 37 | CODE | |
| LOW | plugins/omi-slack-app/slack_client.py | 289 | CODE | |
| LOW | plugins/omi-slack-app/main.py | 36 | CODE | |
| LOW | plugins/omi-slack-app/main.py | 724 | CODE | |
| 541 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sdks/python/omi/__init__.py | 14 | __all__ = [ | CODE |
| LOW | sdks/python-cli/omi_cli/config.py | 148 | 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 | 20 | __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 | backend/main.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/dependencies.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/sync.py | 133 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/pusher.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/auth.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/auto_model.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/x_connector.py | 29 | 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 | 117 | 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 | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/tools.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/tts.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/staged_tasks.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_product.py | 242 | __all__ = [ | CODE |
| LOW | backend/routers/apps.py | 143 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/imports.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/integration.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/conversation_finalization.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/chat.py | 84 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/mcp.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/transcribe.py | 188 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/transcribe.py | 1777 | def _update_cached_segments(segments_dicts: List[Dict[str, Any]]) -> None: | CODE |
| LOW | backend/routers/speech_profile.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/routers/memories.py | 304 | def _set_device_scope_capability_header(http_response: Response, *, supported: bool) -> None: | CODE |
| LOW⚡ | backend/routers/memories.py | 308 | def _set_canonical_lifecycle_exposure_header(http_response: Response, *, exposed: bool) -> None: | CODE |
| LOW | backend/routers/memories.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/omni_relay.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/routers/chat_sessions.py | 31 | 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 |
| LOW | backend/routers/candidates.py | 316 | __all__ = ['router'] | CODE |
| LOW | backend/routers/api_key_management.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/developer.py | 84 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/integrations.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/task_integrations.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/payment.py | 63 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/conversations.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/task_recommendations.py | 283 | __all__ = ['router'] | CODE |
| LOW | backend/routers/agent_tools.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/memory_admin.py | 156 | __all__ = [ | CODE |
| LOW | backend/routers/action_items.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/routers/mcp_sse.py | 80 | logger = logging.getLogger(__name__) | CODE |
| LOW | backend/database/auth.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | backend/database/task_intelligence_control.py | 23 | def set_task_workflow_control(uid: str, control: TaskWorkflowControl) -> None: | CODE |
| 323 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 | 231 | // 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 |
| 114 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 2376 | # Copy pi-mono-extension (default harness — registers the Omi provider | 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 | 208 | // Don't call onDisconnected during token refresh - it's a seamless reconnection | COMMENT |
| MEDIUM | desktop/macos/run.sh | 78 | # is a service-revision target, not an isolated local-data harness. | COMMENT |
| MEDIUM | desktop/macos/run.sh | 423 | # worktrees' backends. Skip when the dev harness owns the backend process. | COMMENT |
| MEDIUM | desktop/macos/run.sh | 674 | # harness lane conservative until its configuration has a secret-free stamp. | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 6 | // Issue #6594: Pi-mono harness with Omi API proxy for server-side cost control. | COMMENT |
| MEDIUM | …top/macos/Desktop/Sources/Providers/ChatProvider.swift | 108 | metadataJSON: #"{"harness":"owner_isolation_probe"}"#, | CODE |
| MEDIUM | …top/macos/Desktop/Sources/Providers/ChatProvider.swift | 119 | 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 Claude 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 | 235 | # Probe dev-harness stack health + provider_mode from config-digest.json. | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 252 | # Services with process records in the dev-harness manifest. The Firebase Auth | COMMENT |
| MEDIUM | desktop/macos/scripts/desktop-core-harness.sh | 256 | # the harness supervise wrapper around `docker run`, so alive-PID + ownership | 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/omi-hardening-smoke.sh | 28 | # bundle refused · 3 no FAILs but at least one BLOCKED (harness could not run). | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/omi-hardening-smoke.sh | 273 | # Kill only the exact PID this harness spawned — never pkill by name. | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet-lib.py | 195 | # Surface as a step failure, never a harness crash. | COMMENT |
| MEDIUM | desktop/macos/scripts/agent-continuity-gauntlet-lib.py | 3128 | # at least once so R3 is not a pure harness-gate self-test. | COMMENT |
| MEDIUM | …ndows/src/renderer/src/components/overlay/Waveform.tsx | 50 | // Overall level = average across the low bins (robust to a single noisy bin). | COMMENT |
| LOW | backend/database/conversations.py | 254 | # We can log this, but for now, we'll just pass. | COMMENT |
| MEDIUM | backend/tests/unit/test_dev_api_conversations_poison.py | 219 | # harness (database.goals is already stubbed); call the handler directly. | COMMENT |
| MEDIUM | backend/tests/unit/test_chat_quota_counting_router.py | 164 | # module would import NumPy after this harness restores sys.modules between | COMMENT |
| MEDIUM | backend/tests/unit/test_claim_deletion_wipe_txn.py | 370 | # Record it but still return all docs so the test is robust. | COMMENT |
| MEDIUM | backend/tests/unit/test_sys_modules_hermeticity.py | 54 | # In-process harness: run pytest via ``pytest.main`` in the SAME interpreter that | COMMENT |
| MEDIUM | …harts/deepgram-self-hosted/nova-2/prod_omi_values.yaml | 7 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| MEDIUM | …harts/deepgram-self-hosted/nova-2/prod_omi_values.yaml | 22 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| MEDIUM | …charts/deepgram-self-hosted/nova-2/dev_omi_values.yaml | 7 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| MEDIUM | …charts/deepgram-self-hosted/nova-2/dev_omi_values.yaml | 22 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| MEDIUM | …f-hosted/nova-2/samples/01-basic-setup-aws.values.yaml | 7 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| MEDIUM | …f-hosted/nova-2/samples/01-basic-setup-aws.values.yaml | 22 | # Consult the [official Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/secret/) for best | COMMENT |
| 27 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 | 231 | // 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 | 196 | // Step 1: Gate | COMMENT |
| LOW | web/admin/app/api/omi/notifications/regenerate/route.ts | 229 | // Step 2: Generate (uses the user's prompt template) | COMMENT |
| LOW | web/admin/app/api/omi/notifications/regenerate/route.ts | 272 | // Step 3: Critic | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 318 | // Step 1: Gate | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 321 | // Step 2: Generate (always run so we can show what it would produce) | COMMENT |
| LOW⚡ | web/admin/app/api/omi/notifications/regenerate/route.ts | 324 | // Step 3: Critic (only if there's advice to critique) | COMMENT |
| LOW | desktop/macos/Backend-Rust/src/paywall.rs | 171 | // Step 1: Read effective subscription plan (checks current_period_end for paid plans) | COMMENT |
| LOW | desktop/macos/Backend-Rust/src/paywall.rs | 189 | // Step 2: Check BYOK active (with heartbeat TTL) | COMMENT |
| LOW | desktop/macos/Backend-Rust/src/paywall.rs | 206 | // Step 3: Check account age from Firebase Auth | COMMENT |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 1127 | // Step 1: Generate nonce for security | STRING |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 1132 | // Step 2: Perform native Apple Sign In | STRING |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 1139 | // Step 3: Extract identity token | STRING |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 1346 | // Step 2: Build authorization URL | STRING |
| LOW⚡ | desktop/macos/Desktop/Sources/AuthService.swift | 1355 | // Step 3: Open browser for authentication | STRING |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | codemagic.yaml | 1211 | # Check if triggered by tag or push | COMMENT |
| LOW | codemagic.yaml | 1533 | # Check if private key is a file or content | COMMENT |
| LOW | codemagic.yaml | 1591 | # 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 |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | codemagic.yaml | 1695 | # Create the release with the DMG first | COMMENT |
| 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 | 1034 | # Create the JWT payload | COMMENT |
| MEDIUM | backend/routers/auth.py | 1044 | # Create the JWT headers | COMMENT |
| MEDIUM⚡ | backend/routers/apps.py | 980 | # Create a new persona for the user | COMMENT |
| MEDIUM | backend/database/action_items.py | 578 | # 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 | 394 | # 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 | 163 | # Create a prompt for icon generation | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/action_item_tools.py | 466 | # Create the action item | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 145 | # Create a unique model name | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 181 | # Create a Pydantic model from the schema (or empty model if no parameters) | COMMENT |
| MEDIUM | backend/utils/retrieval/tools/app_tools.py | 185 | # 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 | 54 | # Create a memory object from the explicit memory content | COMMENT |
| MEDIUM⚡ | backend/scripts/route_policy_inventory.py | 526 | '# 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 | 297 | # Create a list for overall WER table | COMMENT |
| MEDIUM | …ckend/scripts/stt/k_compare_transcripts_performance.py | 320 | # 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 |
| 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 | 566 | /// 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/Sources/APIClient.swift | 5759 | /// Sync AI-generated user profile to backend | COMMENT |
| HIGH | …ktop/Sources/MainWindow/Components/LiveNotesView.swift | 4 | /// Live notes view showing AI-generated and manual notes during recording | COMMENT |
| HIGH | …Desktop/Sources/MainWindow/Components/ChatBubble.swift | 213 | // above the text; AI-generated artifacts are the result of the | 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 | 2442 | /// Fetches the latest AI-generated user profile from local database | STRING |
| HIGH | desktop/macos/Desktop/Sources/Stores/TasksStore.swift | 214 | /// Lower weight = higher priority. Manual tasks always appear above AI-generated. | COMMENT |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1410 | // Migration 11: Create live_notes table for AI-generated notes during recording | STRING |
| HIGH | …macos/Desktop/Sources/Rewind/Core/RewindDatabase.swift | 1657 | // 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 | 30 | /// Service that generates and maintains an AI-generated user profile. | COMMENT |
| HIGH | desktop/windows/src/renderer/src/pages/Onboarding.tsx | 97 | // personalize the AI-generated goal suggestion. | COMMENT |
| HIGH | backend/database/staged_tasks.py | 365 | # Separate AI-generated tasks from manual ones | COMMENT |
| HIGH | backend/utils/imports/limitless.py | 82 | # Extract H2 and H3 headers (these are Limitless AI-generated topic summaries) | COMMENT |
| 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 | 1308 | // 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/run.sh | 504 | # Copy .env if not present — try sibling dirs, then scaffold from .env.example | COMMENT |
| MEDIUM | desktop/macos/test.sh | 37 | # (durable fix is singleton dependency injection; see the same issue). | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 88 | /// backend's agentic chat uses). Executed entirely upstream by Anthropic — | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 92 | /// Max web searches per request (matches the Python backend's agentic chat). | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 262 | // retrieval policy means normal agentic turns retain their incremental | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 360 | // attacking the multi-second agentic case. (system + latest-user = 2 | COMMENT |
| MEDIUM | …ktop/macos/Backend-Rust/src/routes/chat_completions.rs | 2298 | // Keep ordinary agentic calls on their normal incremental streaming | COMMENT |
| MEDIUM | desktop/macos/scripts/swift-test-suites.sh | 57 | # Static guardrails are part of the authoritative Swift component suite, not a | COMMENT |
| MEDIUM⚡ | desktop/macos/scripts/omi-hardening-smoke.sh | 542 | # run — orchestration | COMMENT |
| MEDIUM | desktop/windows/src/renderer/src/lib/localAgent.ts | 29 | // cleaner context. Flip to true to restore the macOS-faithful agentic pre-step. | COMMENT |
| MEDIUM⚡ | backend/AGENTS.md | 60 | llm/ # LLM orchestration (14 files): chat processing, conversation post-processing, | CODE |
| MEDIUM⚡ | backend/AGENTS.md | 69 | retrieval/ # RAG pipeline (25+ files): agentic RAG via Claude with 18 tool types — | CODE |
| MEDIUM⚡ | backend/AGENTS.md | 69 | retrieval/ # RAG pipeline (25+ files): agentic RAG via Claude with 18 tool types — | CODE |
| 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 | 159 | # 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 | 263 | # Stub utils.retrieval.agentic | COMMENT |
| MEDIUM | backend/tests/unit/test_llm_usage_db.py | 204 | # RAG should be first (700 total tokens vs 150) | 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 | 56 | # 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 | 484 | _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 | 254 | source_type=route.effective_source_type, # V8-3 passthrough router scaffold | STRING |
| MEDIUM | …ils/memory_ingestion/adapters/production_like_model.py | 881 | # Relaxed from 6-condition gate (post-hallucination-campaign): removed | COMMENT |
| MEDIUM | …ils/memory_ingestion/adapters/production_like_model.py | 1063 | # Relaxed post-hallucination-campaign: removed preference-indicating phrases | COMMENT |
| MEDIUM | backend/utils/llm/chat.py | 467 | def _get_agentic_qa_prompt( # type: ignore[reportUnusedFunction] # imported by retrieval/agentic.py | CODE |
| MEDIUM | backend/utils/llm/chat.py | 422 | # The agentic system prompt is wrapped in a single Anthropic cache_control breakpoint, | STRING |
| MEDIUM | backend/utils/llm/chat.py | 425 | # and injected into the user turn instead (see get_current_datetime_block / agentic.py). | STRING |
| MEDIUM | backend/utils/retrieval/graph.py | 242 | # 3. Default: Anthropic agentic chat | COMMENT |
| MEDIUM | backend/testing/e2e/README.md | 118 | │ ├── llm.py # deterministic LLM fake scaffold | CODE |
| MEDIUM | backend/testing/e2e/README.md | 120 | │ └── embeddings.py # VAD/diarization/embedding fake scaffold | CODE |
| MEDIUM | …doc/developer/backend/canonical_memory_architecture.md | 99 | ### 3. Scheduled maintenance orchestration | COMMENT |
| MEDIUM | .github/scripts/check_arch_guardrails.py | 152 | "## Architecture guardrails", | STRING |
| 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 | 85 | 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 | 482 | Decode length-prefixed Opus packets back to PCM16. Args: opus_data: Length-prefixed Opus packets (from | STRING |
| HIGH | backend/utils/other/storage.py | 1414 | Download blob content as bytes from GCS. Args: bucket_name: Name of the GCS bucket path: Path | STRING |
| HIGH | backend/utils/other/storage.py | 1453 | 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 | 32 | 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 | 519 | 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 | 161 | 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 | 90 | Retrieve user conversations with complete details including transcripts, summaries, and metadata. Use this too | STRING |
| HIGH | backend/utils/retrieval/tools/memory_tools.py | 287 | 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 | 104 | 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 | 79 | 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 | 631 | return MapEntry(key, '<YOUR_API_KEY>'); | CODE |
| HIGH | app/lib/pages/settings/transcription_settings_page.dart | 631 | 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 | …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 | …istants/MemoryExtraction/MemoryAssistantSettings.swift | 94 | ✅ "User's Slack workspace is 'Acme Corp' - they work there" | CODE |
| LOW | backend/tests/conftest.py | 24 | os.environ.setdefault('OPENAI_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 | 1050 | uid = get_current_user_uid(authorization='Bearer fake-token') | CODE |
| LOW⚡ | backend/tests/unit/test_byok_security.py | 1061 | uid = get_current_user_uid_no_byok_validation(authorization='Bearer fake-token') | CODE |
| LOW⚡ | backend/tests/unit/test_omi_qos_tiers.py | 147 | os.environ.setdefault('OPENAI_API_KEY', 'sk-test-fake-key-for-unit-tests') | CODE |
| LOW⚡ | backend/tests/unit/test_omi_qos_tiers.py | 148 | 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 | 68 | os.environ.setdefault('OPENAI_API_KEY', 'sk-test-fake-key-for-unit-tests') | CODE |
| LOW | backend/tests/unit/test_vertex_ai_system_role.py | 69 | 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/integration/test_qos_live_cp9.py | 141 | client = _create_byok_client('sonar-pro', 'perplexity', 'fake-key') | CODE |
| LOW | backend/utils/llm/chat.py | 1007 | examples=[['John Doe', 'Jane Doe']], | STRING |
| LOW | backend/utils/llm/chat.py | 1007 | examples=[['John Doe', 'Jane Doe']], | STRING |
| LOW | backend/scripts/v3_dev_cloud_proof.py | 427 | 'placeholder': True, | 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 | 207 | 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 | 365 | "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 | 369 | "placeholder": "Firestore adapter/client-boundary write-attempt counters are reserved for the live desktop/b | CODE |
| LOW⚡ | scripts/dev-harness/dev_harness/cli.py | 377 | "placeholder": "Protected-collection before/after digests are not computed unless a live emulator readback i | CODE |
| LOW | .github/checks-manifest.yaml | 69 | reason: "deployment secret-boundary fake-name fixtures must remain executable" | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 82 | fake_name = "check_" + "something.py" | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 84 | f"steps:\n - run: python3 .github/scripts/{fake_name}\n", | CODE |
| LOW⚡ | .github/scripts/test_run_checks.py | 87 | 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 | 835 | CODE | |
| LOW | backend/routers/users.py | 554 | CODE | |
| LOW | backend/routers/tools.py | 206 | CODE | |
| LOW | backend/routers/google_calendar.py | 81 | CODE | |
| LOW | backend/routers/apps.py | 641 | CODE | |
| LOW | backend/routers/integration.py | 304 | CODE | |
| LOW | backend/routers/integration.py | 603 | CODE | |
| LOW | backend/routers/chat.py | 1308 | CODE | |
| LOW | backend/routers/chat.py | 1366 | CODE | |
| LOW | backend/routers/mcp.py | 308 | CODE | |
| LOW | backend/routers/transcribe.py | 330 | CODE | |
| LOW | backend/routers/transcribe.py | 2730 | CODE | |
| LOW | backend/routers/transcribe.py | 2782 | CODE | |
| LOW | backend/routers/transcribe.py | 2827 | CODE | |
| LOW | backend/routers/memories.py | 611 | CODE | |
| LOW | backend/routers/developer.py | 1323 | CODE | |
| LOW | backend/routers/conversations.py | 288 | CODE | |
| LOW | backend/routers/conversations.py | 323 | CODE | |
| LOW | backend/routers/action_items.py | 334 | CODE | |
| LOW | backend/routers/mcp_sse.py | 1593 | CODE | |
| LOW | backend/database/workstreams.py | 224 | CODE | |
| LOW | backend/database/apps.py | 56 | CODE | |
| LOW | backend/database/memories.py | 184 | CODE | |
| LOW | backend/database/conversations.py | 362 | CODE | |
| LOW | backend/database/conversations.py | 408 | CODE | |
| LOW | backend/database/conversations.py | 441 | CODE | |
| LOW | backend/database/action_items.py | 394 | CODE | |
| LOW | backend/parakeet/batch_engine.py | 37 | CODE | |
| LOW | backend/tests/unit/test_conversations_count.py | 27 | CODE | |
| LOW | backend/tests/unit/test_vram_batch.py | 89 | CODE | |
| LOW | backend/utils/apps.py | 423 | CODE | |
| LOW | backend/utils/apps.py | 428 | CODE | |
| LOW | backend/utils/mcp_memories.py | 311 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 359 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 400 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 431 | CODE | |
| LOW | backend/utils/llm/proactive_notification.py | 534 | CODE | |
| LOW | backend/utils/memory/vector_search_service.py | 34 | CODE | |
| LOW | backend/utils/memory/legacy_backfill.py | 1436 | CODE | |
| LOW | backend/utils/memory/legacy_backfill.py | 1621 | CODE | |
| LOW | backend/utils/retrieval/agentic.py | 281 | CODE | |
| LOW | backend/utils/retrieval/tools/action_item_tools.py | 89 | CODE | |
| LOW | backend/utils/retrieval/tools/conversation_tools.py | 78 | CODE | |
| LOW | backend/utils/retrieval/tools/calendar_tools.py | 1237 | CODE | |
| LOW | backend/utils/retrieval/tool_services/conversations.py | 37 | CODE | |
| LOW | backend/utils/retrieval/tool_services/action_items.py | 22 | CODE | |
| LOW | …kend/utils/task_intelligence/workstream_association.py | 111 | CODE | |
| LOW | backend/utils/sync/pipeline.py | 915 | CODE | |
| LOW | backend/utils/sync/pipeline.py | 1467 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 387 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 1063 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 84 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 696 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 749 | CODE | |
| LOW | backend/utils/stt/pre_recorded.py | 1001 | CODE | |
| LOW | backend/models/memories.py | 624 | CODE | |
| LOW | backend/scripts/transcription_capability_probe.py | 155 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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/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/agent-logic-harness.sh | 4 | # Usage: | COMMENT |
| LOW⚡ | desktop/macos/scripts/desktop-core-harness.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/agent-continuity-gauntlet.sh | 38 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/qualify-desktop-beta.sh | 4 | # Usage: | COMMENT |
| LOW | desktop/macos/scripts/omi-hardening-smoke.sh | 9 | # Usage: | COMMENT |
| LOW⚡ | backend/testing/e2e/run.sh | 5 | # Usage: | COMMENT |
| LOW | backend/scripts/memory-continuity-gauntlet.sh | 17 | # Usage: | COMMENT |
| LOW | backend/scripts/sync_cloudrun_secrets_from_chart.sh | 13 | # Usage: | COMMENT |
| LOW | .github/scripts/run-pre-push.sh | 4 | # Usage: | COMMENT |
| LOW | .github/scripts/run-lint.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/import/manual-import/app.py | 73 | - "It's worth noting that..." | CODE |
| LOW | …/Assistants/TaskExtraction/TaskAssistantSettings.swift | 169 | - "Can you…", "Could you…", "Please…", "Don't forget to…", "Make sure you…" | 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_llm_gateway_openai_compatible.py | 259 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 265 | CODE | |
| MEDIUM | …ckend/tests/unit/test_llm_gateway_openai_compatible.py | 389 | CODE | |
| MEDIUM | backend/tests/unit/test_desktop_transcribe.py | 1813 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/lib/providers/onboarding_provider.dart | 303 | // TODO: implement onDeviceConnectionStateChanged | COMMENT |
| LOW | app/lib/providers/onboarding_provider.dart | 334 | // TODO: implement onStatusChanged | COMMENT |
| LOW | backend/routers/users.py | 533 | # TODO: consider adding person photo. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/app/src/app/api/proxy/[...path]/route.ts | 37 | async function handleRequest( | CODE |
| LOW | backend/tests/unit/test_async_resource_correctness.py | 221 | async def helper(): | CODE |
| LOW⚡ | backend/tests/unit/test_scan_async_blockers.py | 482 | async def helper(): | CODE |
| LOW⚡ | backend/tests/unit/test_scan_async_blockers.py | 172 | async def helper(): | STRING |