LLM inference server with continuous batching & SSD caching for Apple Silicon — managed from the macOS menu bar
This report presents the forensic synthetic code analysis of jundot/omlx, a Python project with 18,376 GitHub stars. SynthScan v2.0 examined 391,735 lines of code across 751 source files, recording 9928 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 29.8 places this repository in the Moderate 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 9928 distinct pattern matches across 21 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 | setup.py | 19 | def _custom_kernel_build_kwargs() -> dict: | CODE |
| LOW | packaging/build.py | 450 | def _read_pyproject_requirements() -> dict[str, list[str]]: | CODE |
| LOW | packaging/build.py | 468 | def _generate_venvstacks_toml() -> Path: | CODE |
| LOW | packaging/build.py | 1036 | def _compute_donor_fingerprint() -> str: | CODE |
| LOW | packaging/build.py | 1057 | def _write_export_fingerprint(): | CODE |
| LOW⚡ | tests/test_store_cache_gate.py | 21 | def test_note_submitted_increments(self): | CODE |
| LOW⚡ | tests/test_store_cache_gate.py | 27 | def test_note_done_decrements(self): | CODE |
| LOW⚡ | tests/test_store_cache_gate.py | 34 | def test_note_done_does_not_underflow(self): | CODE |
| LOW⚡ | tests/test_store_cache_gate.py | 40 | def test_note_submitted_never_blocks_past_cap(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 76 | def test_recovers_after_note_done(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 83 | def test_shrinking_cap_below_in_flight_blocks_admission(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 96 | def test_clamps_to_minimum_one(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 103 | def test_set_cap_updates_value(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 128 | def test_ok_clamps_to_max_num_seqs(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 148 | def test_no_op_when_gate_missing(self): | CODE |
| LOW | tests/test_store_cache_gate.py | 161 | def test_counter_consistent_under_contention(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 76 | def test_dflash_draft_via_architecture(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 81 | def test_dflash_draft_via_config_block(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 85 | def test_assistant_via_model_type(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 135 | def test_detect_embedding_model_by_type(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 144 | def test_detect_embedding_model_by_architecture(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 153 | def test_detect_modernbert_embedding(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 162 | def test_detect_reranker_model(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 171 | def test_detect_xlm_roberta_reranker(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 180 | def test_detect_jina_reranker_without_name_heuristic(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 314 | def test_missing_config_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 318 | def test_invalid_json_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 323 | def test_empty_config_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 328 | def test_detect_vlm_by_model_type(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 338 | def test_detect_diffusion_gemma_as_vlm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 651 | def test_detect_vlm_fastvlm_via_mm_vision_tower(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 661 | def test_detect_text_only_quant_with_empty_mm_vision_tower_as_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 671 | def test_detect_text_only_quant_no_vision_evidence_as_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 683 | def test_detect_lfm_text_moe_family_as_llm_not_audio_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 692 | def test_detect_lfm_future_moe_variant_as_llm_not_audio_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 701 | def test_detect_lfm_audio_architecture_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 710 | def test_detect_lfm_audio_model_type_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 719 | def test_detect_unknown_lfm_prefix_without_causal_lm_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 732 | def test_estimate_from_safetensors(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 742 | def test_estimate_from_single_safetensors(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 749 | def test_estimate_from_bin_files(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 758 | def test_skip_optimizer_files(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 969 | def test_nonexistent_directory_raises_error(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 974 | def test_file_instead_of_directory_raises_error(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 981 | def test_unreadable_directory_is_skipped(self, tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1081 | def test_adapter_dir_detected(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1086 | def test_normal_model_not_adapter(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1092 | def test_discover_skips_lora_adapter(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1187 | def test_top_level_takes_precedence_over_nested(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1194 | def test_text_config_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1199 | def test_language_config_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1204 | def test_tokenizer_max_length_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1209 | def test_tokenizer_sentinel_rejected(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1218 | def test_no_config_returns_none(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1221 | def test_invalid_types_rejected(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1230 | def test_malformed_config_is_silent(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1267 | def test_multiple_org_folders(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1276 | def test_empty_org_folder_skipped(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1285 | def test_org_folder_hidden_children_skipped(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1295 | def test_org_folder_invalid_children_skipped(self, tmp_path): | CODE |
| 6346 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/repack_ternary_t5.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 148 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 150 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 175 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 177 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 364 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 426 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/repack_ternary_t5.py | 428 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 32 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 34 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 67 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 69 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 128 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 130 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 166 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 168 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 222 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 224 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 234 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 236 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 502 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 504 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 605 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 607 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 699 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_openai_adapter.py | 701 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_openai_adapter.py | 684 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_openai_adapter.py | 686 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 1902 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 1904 | # ============================================================================= | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 58 | # ── Step 1: Load model ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 72 | # ── Step 2: Prepare inputs ────────────────────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 120 | # ── Step 3: Test _compute_vision_features ──────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 152 | # ── Step 4: Test cached_image_features support ─────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 185 | # ── Step 5: Test VisionFeatureSSDCache roundtrip ───────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 220 | # ── Step 6: Cache hit performance ──────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 116 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 118 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 424 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 426 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 653 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_ms_downloader.py | 655 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_ms_downloader.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_ms_downloader.py | 29 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 36 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 38 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 238 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 240 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 323 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 325 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 370 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_mcp_config.py | 372 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2153 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2155 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2179 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2181 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2314 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_prefix_cache.py | 2316 | # ------------------------------------------------------------------ | COMMENT |
| 1064 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/build.py | 824 | except Exception: # pragma: no cover — build runs may not have omlx on path yet | CODE |
| LOW | tools/repack_ternary_t5.py | 191 | except Exception as e: | CODE |
| LOW | tools/repack_ternary_t5.py | 206 | except Exception as e: | CODE |
| MEDIUM | tests/test_paged_ssd_cache.py | 2741 | def do_preload(): | CODE |
| MEDIUM | tests/test_paged_ssd_cache.py | 2747 | def do_loads(): | CODE |
| LOW | tests/test_paged_ssd_cache.py | 2744 | except Exception as e: | CODE |
| LOW | tests/test_paged_ssd_cache.py | 2752 | except Exception as e: | CODE |
| LOW | tests/e2e_vision_cache.py | 89 | except Exception: | CODE |
| LOW | tests/e2e_vision_cache.py | 95 | except Exception: | CODE |
| MEDIUM | tests/test_mlx_lm_mtp_patch.py | 74 | def _apply(self): | CODE |
| LOW | tests/test_mlx_lm_mtp_patch.py | 1840 | except Exception: | CODE |
| LOW | tests/test_audio_stt.py | 1398 | except Exception as e: | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 342 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 646 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 755 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 814 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW⚡ | tests/test_mtp_prompt_priming.py | 207 | except Exception: | CODE |
| LOW | tests/test_turboquant_batch_memory.py | 33 | except Exception: | CODE |
| MEDIUM | tests/test_turboquant_batch_memory.py | 28 | def _model_path(): | CODE |
| LOW | tests/test_turboquant_ssd.py | 27 | except Exception: | CODE |
| MEDIUM | tests/test_turboquant_ssd.py | 22 | def _model_path(): | CODE |
| LOW | tests/test_prefill_progress.py | 110 | except Exception as e: | CODE |
| MEDIUM | tests/test_prefill_progress.py | 103 | def updater(model_id, start): | CODE |
| MEDIUM | tests/test_torch_stub.py | 423 | def worker(): | CODE |
| LOW | tests/test_torch_stub.py | 430 | except Exception as e: | CODE |
| LOW⚡ | tests/test_grammar_live.py | 151 | except Exception: | CODE |
| LOW | tests/test_grammar_live.py | 375 | except Exception as e: | CODE |
| MEDIUM | tests/test_grammar_live.py | 147 | def _server_available(): | CODE |
| LOW | tests/test_embedding.py | 1307 | except Exception as e: | CODE |
| LOW | tests/test_audio_tts.py | 1424 | except Exception as e: | CODE |
| LOW | tests/test_cache_observability.py | 175 | except Exception as e: | CODE |
| LOW | tests/test_cache_observability.py | 182 | except Exception as e: | CODE |
| MEDIUM | tests/test_model_settings.py | 652 | def worker(model_id): | CODE |
| LOW | tests/test_model_settings.py | 657 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 467 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 493 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 521 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 549 | except Exception as e: | CODE |
| MEDIUM | tests/test_hot_cache.py | 533 | def worker(thread_id): | CODE |
| LOW | tests/test_hot_cache.py | 556 | except Exception as e: | CODE |
| MEDIUM | tests/test_boundary_snapshot_store.py | 772 | def all_cleaner(): | CODE |
| LOW⚡ | tests/test_boundary_snapshot_store.py | 759 | except Exception as e: | CODE |
| LOW⚡ | tests/test_boundary_snapshot_store.py | 769 | except Exception as e: | CODE |
| LOW⚡ | tests/test_boundary_snapshot_store.py | 777 | except Exception as e: | CODE |
| LOW | tests/test_boundary_snapshot_store.py | 711 | except Exception as e: | CODE |
| LOW | tests/test_qwen35_moe_weighted_sum.py | 46 | except Exception: | CODE |
| LOW | tests/test_harmony_parser.py | 29 | except Exception: | CODE |
| MEDIUM | tests/integration/test_vlm_mrope_integration.py | 89 | def _apply_chat_template_as_ids(tokenizer, messages) -> List[int]: | CODE |
| LOW | tests/integration/test_vlm_mrope_integration.py | 100 | except Exception: | CODE |
| LOW | tests/integration/test_vlm_mrope_integration.py | 172 | except Exception: | CODE |
| LOW | tests/integration/test_vlm_mrope_integration.py | 177 | except Exception: | CODE |
| LOW | tests/integration/test_vlm_mrope_integration.py | 742 | except Exception: | CODE |
| LOW | tests/integration/test_vlm_mrope_integration.py | 850 | except Exception as e: | CODE |
| LOW | tests/integration/test_full_integration.py | 106 | except Exception: | CODE |
| LOW | tests/integration/test_full_integration.py | 481 | except Exception: | CODE |
| LOW | tests/integration/test_full_integration.py | 486 | except Exception: | CODE |
| LOW | tests/integration/test_real_model_inference.py | 525 | except Exception as e: | CODE |
| LOW | tests/integration/test_boundary_cache_consistency.py | 91 | except Exception: | CODE |
| LOW | tests/integration/test_boundary_cache_consistency.py | 105 | except Exception: | CODE |
| LOW | omlx/model_settings.py | 429 | except Exception as e: | CODE |
| 760 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/repack_ternary_t5.py | 51 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 1 | CODE | |
| LOW | tests/test_openai_adapter.py | 20 | CODE | |
| LOW | tests/test_paged_ssd_cache.py | 42 | CODE | |
| LOW | tests/test_hybrid_cache.py | 9 | CODE | |
| LOW | tests/test_hybrid_cache.py | 10 | CODE | |
| LOW | tests/test_hybrid_cache.py | 11 | CODE | |
| LOW | tests/test_hybrid_cache.py | 11 | CODE | |
| LOW | tests/test_hybrid_cache.py | 11 | CODE | |
| LOW | tests/test_hybrid_cache.py | 11 | CODE | |
| LOW | tests/test_hybrid_cache.py | 12 | CODE | |
| LOW | tests/test_hybrid_cache.py | 12 | CODE | |
| LOW | tests/test_hybrid_cache.py | 24 | CODE | |
| LOW | tests/test_hybrid_cache.py | 29 | CODE | |
| LOW | tests/test_hybrid_cache.py | 34 | CODE | |
| LOW | tests/test_hybrid_cache.py | 1070 | CODE | |
| LOW | tests/test_m5_gather_qmm.py | 4 | CODE | |
| LOW | tests/test_utils_hardware.py | 8 | CODE | |
| LOW | tests/test_cache_ntuple_state.py | 18 | CODE | |
| LOW | tests/test_cache_ntuple_state.py | 286 | CODE | |
| LOW | tests/e2e_vision_cache.py | 21 | CODE | |
| LOW | tests/test_stream_usage.py | 6 | CODE | |
| LOW | tests/test_v1_models_visibility.py | 4 | CODE | |
| LOW | tests/test_ms_downloader.py | 6 | CODE | |
| LOW | tests/test_mcp_config.py | 9 | CODE | |
| LOW | tests/test_prefix_cache_cachelist_mixed.py | 28 | CODE | |
| LOW | tests/test_shared_models.py | 5 | CODE | |
| LOW | tests/test_prefix_cache_rotating_tip_strip.py | 34 | CODE | |
| LOW | tests/test_mbpp_extract_code.py | 9 | CODE | |
| LOW | tests/test_admin_restart.py | 10 | CODE | |
| LOW | tests/test_admin_reload.py | 8 | CODE | |
| LOW | tests/test_utils_formatting.py | 4 | CODE | |
| LOW | tests/test_singleton_cache_passthrough.py | 10 | CODE | |
| LOW | tests/test_gemma4_rendering.py | 7 | CODE | |
| LOW | tests/test_nested_nstate_serialization.py | 24 | CODE | |
| LOW | tests/test_admin_hot_cache_clear.py | 16 | CODE | |
| LOW | tests/test_dflash_lifecycle.py | 4 | CODE | |
| LOW | tests/test_model_registry.py | 10 | CODE | |
| LOW | tests/test_admin_api_key.py | 15 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 10 | CODE | |
| LOW | tests/test_glm_moe_dsa_patch.py | 4 | CODE | |
| LOW | tests/test_optimizations.py | 8 | CODE | |
| LOW | tests/test_prefix_cache_v4_block_storage.py | 28 | CODE | |
| LOW | tests/test_request.py | 6 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 39 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 193 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 210 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 228 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 255 | CODE | |
| LOW | tests/test_scheduler_logits_processors.py | 389 | CODE | |
| LOW | tests/test_anthropic_models.py | 9 | CODE | |
| LOW | tests/test_mlx_vlm_minimax_m3_compat.py | 4 | CODE | |
| LOW | tests/test_mlx_vlm_minimax_m3_compat.py | 19 | CODE | |
| LOW | tests/test_mlx_vlm_minimax_m3_compat.py | 20 | CODE | |
| LOW | tests/test_mcp_tools.py | 8 | CODE | |
| LOW | tests/test_bonsai_qmv.py | 15 | CODE | |
| LOW | tests/test_bonsai_qmv.py | 18 | CODE | |
| LOW | tests/test_bonsai_qmv.py | 18 | CODE | |
| LOW | tests/test_gemma4_verify_attention.py | 9 | CODE | |
| LOW | tests/test_proc_memory.py | 4 | CODE | |
| 498 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/repack_ternary_t5.py | 307 | CODE | |
| LOW | tools/repack_ternary_t5.py | 368 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 282 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 372 | CODE | |
| LOW | tests/test_engine_core.py | 213 | CODE | |
| LOW | tests/test_engine_core.py | 253 | CODE | |
| LOW | tests/test_engine_core.py | 957 | CODE | |
| LOW | tests/test_engine_core.py | 1168 | CODE | |
| LOW | tests/test_dflash_multimodal_fallback.py | 339 | CODE | |
| LOW | tests/test_dflash_multimodal_fallback.py | 369 | CODE | |
| LOW | tests/test_scheduler_chunked_prefill.py | 749 | CODE | |
| LOW | tests/test_vlm_engine.py | 1374 | CODE | |
| LOW | tests/test_glm_mtp_patch.py | 67 | CODE | |
| LOW | tests/test_oq.py | 2201 | CODE | |
| LOW | tests/test_thinking_budget.py | 458 | CODE | |
| LOW | tests/test_boundary_snapshot_store.py | 493 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 578 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 589 | CODE | |
| LOW | tests/integration/test_vlm_mrope_integration.py | 153 | CODE | |
| LOW | tests/integration/test_vlm_mrope_integration.py | 297 | CODE | |
| LOW | tests/integration/test_e2e_streaming.py | 205 | CODE | |
| LOW | tests/integration/test_e2e_streaming.py | 1120 | CODE | |
| LOW | tests/integration/test_full_integration.py | 308 | CODE | |
| LOW | tests/integration/test_full_integration.py | 453 | CODE | |
| LOW | tests/integration/test_real_model_inference.py | 63 | CODE | |
| LOW | omlx/model_settings.py | 513 | CODE | |
| LOW | omlx/model_settings.py | 605 | CODE | |
| LOW | omlx/model_settings.py | 814 | CODE | |
| LOW | omlx/model_settings.py | 894 | CODE | |
| LOW | omlx/server.py | 357 | CODE | |
| LOW | omlx/server.py | 871 | CODE | |
| LOW | omlx/server.py | 1233 | CODE | |
| LOW | omlx/server.py | 1961 | CODE | |
| LOW | omlx/server.py | 2083 | CODE | |
| LOW | omlx/server.py | 2530 | CODE | |
| LOW | omlx/server.py | 3155 | CODE | |
| LOW | omlx/server.py | 3785 | CODE | |
| LOW | omlx/server.py | 3961 | CODE | |
| LOW | omlx/server.py | 4283 | CODE | |
| LOW | omlx/server.py | 4342 | CODE | |
| LOW | omlx/server.py | 4768 | CODE | |
| LOW | omlx/server.py | 5156 | CODE | |
| LOW | omlx/server.py | 5667 | CODE | |
| LOW | omlx/server.py | 6086 | CODE | |
| LOW | omlx/server.py | 3549 | CODE | |
| LOW | omlx/server.py | 5450 | CODE | |
| LOW | omlx/server.py | 5937 | CODE | |
| LOW | omlx/server_metrics.py | 255 | CODE | |
| LOW | omlx/process_memory_enforcer.py | 1287 | CODE | |
| LOW | omlx/process_memory_enforcer.py | 1400 | CODE | |
| LOW | omlx/engine_core.py | 371 | CODE | |
| LOW | omlx/engine_core.py | 689 | CODE | |
| LOW | omlx/engine_core.py | 859 | CODE | |
| LOW | omlx/cli.py | 71 | CODE | |
| LOW | omlx/cli.py | 351 | CODE | |
| LOW | omlx/cli.py | 632 | CODE | |
| LOW | omlx/cli.py | 789 | CODE | |
| LOW | omlx/prefill_progress.py | 32 | CODE | |
| LOW | omlx/prefill_progress.py | 86 | CODE | |
| LOW | omlx/model_discovery.py | 763 | CODE | |
| 302 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/mocks.py | 110 | def set_responses(self, responses: List[List[MockResponse]]) -> None: | CODE |
| LOW | tests/mocks.py | 193 | def set_paged_ssd_cache_manager(self, manager: Any) -> None: | CODE |
| LOW⚡ | tests/mocks.py | 278 | def set_cold_restore_callback(self, callback: Callable) -> None: | CODE |
| LOW⚡ | tests/mocks.py | 286 | def set_paged_ssd_cache_manager(self, manager: Any) -> None: | CODE |
| LOW | omlx/model_settings.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_settings.py | 513 | def set_settings(self, model_id: str, settings: ModelSettings) -> None: | CODE |
| LOW⚡ | omlx/server.py | 198 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/logging_config.py | 83 | def set_request_id(request_id: Optional[str]) -> None: | CODE |
| LOW | omlx/prefill_transient_tracker.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/turboquant_kv.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/turboquant_kv.py | 47 | __all__ = [ | CODE |
| LOW | omlx/request.py | 244 | def set_finished(self, status: RequestStatus, reason: Optional[str] = None) -> None: | CODE |
| LOW | omlx/__init__.py | 50 | __all__ = [ | CODE |
| LOW | omlx/server_metrics.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/process_memory_enforcer.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/optimizations.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/optimizations.py | 36 | __all__ = [ | CODE |
| LOW | omlx/engine_core.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_discovery.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/settings.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/oq.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/scheduler.py | 10863 | def _set_model_info_for_monitor(self) -> None: | CODE |
| LOW | omlx/scheduler.py | 282 | def set_cap(self, cap: int) -> None: | CODE |
| LOW | omlx/scheduler.py | 351 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/_torch_stub.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/engine_pool.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_registry.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/memory_monitor.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/memory_monitor.py | 259 | def set_baseline_memory(self) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 283 | def set_request_stats(self, running: int, waiting: int) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 475 | def set_fixed_state_bytes(self, n: int) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 972 | def set_model_info_from_model(monitor: "MemoryMonitor", model: Any) -> None: | CODE |
| LOW | omlx/custom_kernels/nax.py | 12 | __all__ = ["is_nax_available"] | CODE |
| LOW | omlx/custom_kernels/minimax_m3/__init__.py | 5 | __all__ = ["fast"] | CODE |
| LOW | omlx/custom_kernels/minimax_m3/fast.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/custom_kernels/bonsai/__init__.py | 20 | __all__ = ["fast"] | CODE |
| LOW | omlx/custom_kernels/bonsai/fast.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/custom_kernels/glm_moe_dsa/__init__.py | 5 | __all__ = ["fast"] | CODE |
| LOW | omlx/custom_kernels/glm_moe_dsa/fast.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/custom_kernels/qwen35_prefill/__init__.py | 6 | __all__ = ["fast", "gated_delta_blocked_seq", "gated_delta_chunked_metal"] | CODE |
| LOW | omlx/custom_kernels/qwen35_prefill/fast.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/recovery.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/type_handlers.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/__init__.py | 83 | __all__ = [ | CODE |
| LOW | omlx/cache/type_registry.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/cache/boundary_snapshot_store.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/paged_ssd_cache.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/paged_ssd_cache.py | 1089 | def update_file_size(self, block_hash: bytes, actual_size: int) -> None: | CODE |
| LOW | omlx/cache/paged_cache.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/paged_cache.py | 579 | def set_paged_ssd_cache_manager(self, paged_ssd_cache_manager: Any) -> None: | CODE |
| LOW | omlx/cache/vision_feature_cache.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/prefix_cache.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cache/hybrid_cache.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/mlx_audio_compat.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/patches/specprefill.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/gemma4_verify_attention.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/bonsai_t5_load.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/mlx_audio_sampling.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/qwen35_q4_mlp.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/patches/qwen35_verify_qmm.py | 51 | logger = logging.getLogger(__name__) | CODE |
| 176 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_tool_calling.py | 1602 | "\"Qwen3.6-35B-A3B-ConfigI-MLX\" --timeout 180 && echo " | CODE |
| HIGH⚡ | tests/test_tool_calling.py | 1605 | "--timeout 300 && echo \"v2 dynamic completed\"', timeout=400)]" | CODE |
| HIGH | tests/test_tool_calling.py | 1433 | "\t\tif len(ce.Args) > 1 && isSubcommand(ce.Args[1]) {" | CODE |
| HIGH | tests/test_tool_calling.py | 1986 | result = _gemma4_args_to_json_robust("{data: null}") | CODE |
| HIGH | tests/test_tool_calling.py | 2474 | 'call:f(a=1, b=<|"|>two<|"|>, c=true, d=null, e=3.5)' | CODE |
| HIGH | tests/test_tool_calling.py | 364 | response_format={"type": "json_schema", "json_schema": null}; the | STRING |
| HIGH⚡ | tests/test_chat_ui_overhaul.py | 33 | "async streamResponse(streamContext = null, depth = 0)", | CODE |
| HIGH⚡ | tests/test_chat_ui_overhaul.py | 39 | assert "context._modelOverride || context.model" in stream | CODE |
| HIGH⚡ | tests/test_chat_ui_overhaul.py | 47 | "async streamResponse(streamContext = null, depth = 0)", | CODE |
| HIGH | tests/test_chat_ui_overhaul.py | 58 | assert "_modelOverride: opts.model || null" in regenerate | CODE |
| HIGH⚡ | tests/test_chat_ui_overhaul.py | 105 | assert "options.touchUpdatedAt === false && existingChat?.updatedAt" in save | CODE |
| HIGH | tests/test_chat_ui_overhaul.py | 143 | "async streamResponse(streamContext = null, depth = 0)", | CODE |
| HIGH | tests/test_admin_profiles_api.py | 875 | assert "p.display_name || p.name" in html | CODE |
| HIGH | tests/test_admin_profiles_api.py | 876 | assert "p.expose_as_model ? (p.api_name || p.name)" not in html | CODE |
| HIGH | tests/test_admin_profiles_api.py | 896 | assert "profile.api_name || profile.name" in settings_html | CODE |
| HIGH | tests/test_admin_profiles_api.py | 898 | "profile.api_name || profile.name" | CODE |
| HIGH⚡ | omlx/server.py | 1878 | '"finish_reason":null}]}\n\n' | CODE |
| HIGH⚡ | omlx/server.py | 1883 | '"choices":[{"index":0,"text":"","logprobs":null,"finish_reason":null}]}\n\n' | CODE |
| HIGH⚡ | omlx/server.py | 1892 | '"choices":[{"index":0,"text":"","logprobs":null,"finish_reason":null}]}\n\n' | CODE |
| HIGH | omlx/server.py | 1945 | '"finish_reason":null}]}\n\n' | CODE |
| HIGH | omlx/custom_kernels/qwen35_prefill/gdn.py | 123 | if (j < i && i < tt) | CODE |
| HIGH | omlx/custom_kernels/qwen35_prefill/gdn.py | 181 | if (j <= i && i < tt) | CODE |
| HIGH | omlx/patches/qwen35_verify_qmm.py | 339 | if (part == 0 && lane < {n_acc}) {{ | CODE |
| HIGH | omlx/patches/dflash_draft_config.py | 33 | Hoisting is fill-only per key: a root-level key that is set (non-null) | STRING |
| HIGH⚡ | omlx/patches/dflash_draft_config.py | 64 | that is set (non-null) is never overwritten; an explicit ``null`` | STRING |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla.py | 30 | if (CAUSAL_PREFIX_INDICES && q_pos < PREFIX_ROWS) { | CODE |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla.py | 40 | if (q_block >= Q_BLOCKS || k_block >= K_BLOCKS) { | CODE |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla.py | 67 | if (CAUSAL && k_pos > q_abs) { | CODE |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla.py | 73 | if (q_block >= Q_BLOCKS || k_block >= K_BLOCKS) { | CODE |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla.py | 243 | if (CAUSAL && k_pos > K - L + q_pos) { | CODE |
| HIGH | omlx/api/grammar.py | 14 | computation (parallel model forward || bitmask fill). | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omlx/server.py | 877 | Get engine for the specified model and type. This is the unified engine getter that handles LLM, embedding, an | STRING |
| HIGH | omlx/server.py | 1123 | Get LLM engine for the specified model (or default). This is a convenience wrapper around get_engine() for LLM | STRING |
| HIGH | omlx/server.py | 1161 | Get embedding engine for the specified model. This is a convenience wrapper around get_engine() for embedding | STRING |
| HIGH | omlx/server.py | 1179 | Get reranker engine for the specified model. This is a convenience wrapper around get_engine() for reranker mo | STRING |
| HIGH | omlx/scheduler.py | 2994 | Run prefill externally (outside BatchGenerator) for a single request. Processes tokens[0:N-1] through the model | STRING |
| HIGH | omlx/engine_pool.py | 789 | Get or load engine for the specified model. This method implements pre-load memory checking: 1 | STRING |
| HIGH | omlx/model_registry.py | 62 | Attempt to acquire ownership of a model. Args: model: The MLX model engine: Th | STRING |
| HIGH | omlx/cache/paged_cache.py | 264 | Pop n blocks from the front. Args: n: Number of blocks to allocate Returns: | STRING |
| HIGH | omlx/cache/paged_cache.py | 670 | Allocate multiple blocks at once (vLLM style). Args: num_blocks: Number of blocks to alloc | STRING |
| HIGH | omlx/admin/auth.py | 258 | FastAPI dependency to require admin authentication. This dependency can be used in route definitions to protect | STRING |
| HIGH | omlx/admin/ms_downloader.py | 696 | Start downloading a model from ModelScope. Args: model_id: ModelScope model ID (e.g., "qwen/Qwen2.5 | STRING |
| HIGH | omlx/admin/ms_downloader.py | 805 | Retry a failed or cancelled download, resuming from existing files. Args: task_id: The task ID of t | STRING |
| HIGH | omlx/admin/hf_downloader.py | 623 | Start downloading a model from HuggingFace. Args: repo_id: HuggingFace repository ID (e.g., "mlx-co | STRING |
| HIGH | omlx/admin/hf_downloader.py | 730 | Retry a failed or cancelled download, resuming from existing files. Finalized shards are preserved on disk so s | STRING |
| HIGH | omlx/admin/hf_uploader.py | 184 | Validate a HuggingFace token and return user info. Args: token: HuggingFace write-access token. | STRING |
| HIGH | omlx/admin/hf_uploader.py | 320 | Queue a model upload to HuggingFace Hub. Args: model_path: Local path to the oQ model directory. | STRING |
| HIGH | omlx/admin/oq_manager.py | 268 | Start a quantization job. Args: model_path: Path to source model directory. oq_level: o | STRING |
| HIGH | omlx/admin/routes.py | 1420 | Authenticate with API key and create session. Requires an API key to be configured on the server. If no API ke | STRING |
| HIGH | omlx/admin/routes.py | 1469 | Set up the initial API key when none is configured. This endpoint is only available when no API key is current | STRING |
| HIGH | omlx/admin/routes.py | 1593 | Create a new sub API key. Sub keys can only be used for API authentication, not admin login. Args: req | STRING |
| HIGH | omlx/admin/routes.py | 1649 | Delete a sub API key. Args: request: DeleteSubKeyRequest with the key to delete. Returns: JSON | STRING |
| HIGH | omlx/admin/routes.py | 2075 | Update settings for a specific model. Updates are persisted to the settings file and applied immediately t | STRING |
| HIGH | omlx/admin/routes.py | 2937 | Read model config files and return recommended defaults. Reads generation_config.json for sampling parameters | STRING |
| HIGH | omlx/admin/routes.py | 3298 | Update global server settings. Updates are persisted to the global settings file. Some settings (log_level | STRING |
| HIGH | omlx/admin/routes.py | 4013 | Get server logs. Returns the last N lines of the specified log file (or current log). Supports viewing his | STRING |
| HIGH | omlx/utils/image.py | 87 | Load an image from a base64 data URI. Supports: - Data URIs: "data:image/jpeg;base64,..." format Args | STRING |
| HIGH | omlx/mcp/config.py | 30 | Load MCP configuration from file. Search order: 1. Explicit path argument 2. OMLX_MCP_CONFIG environme | STRING |
| HIGH | omlx/mcp/config.py | 101 | Validate and parse configuration dictionary. Args: data: Raw configuration dictionary Returns: | STRING |
| HIGH | omlx/mcp/tools.py | 50 | Parse OpenAI tool call back to MCP format. Args: tool_call: OpenAI tool call from model response | STRING |
| HIGH | omlx/engine/sts.py | 337 | Process an audio file through the STS model. For speech enhancement models (DeepFilterNet, MossFormer2 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 41 | dependencies = [ | COMMENT |
| LOW | pyproject.toml | 61 | # mistral-common models) first shipped in 5.12.1 — on older 5.x the kwarg | COMMENT |
| LOW | pyproject.toml | 101 | "setproctitle>=1.3.3", | COMMENT |
| LOW | pyproject.toml | 141 | "modelscope>=1.10.0", | COMMENT |
| LOW | packaging/build.py | 701 | # produced fresh each build from pyproject.toml + venvstacks.toml. | COMMENT |
| LOW | packaging/venvstacks.toml | 1 | # oMLX venvstacks layer template | COMMENT |
| LOW | tests/test_paged_ssd_cache.py | 3041 | COMMENT | |
| LOW | tests/test_hf_downloader.py | 2801 | assert "dry_run" not in call_kwargs | COMMENT |
| LOW | omlx/model_settings.py | 241 | # Maximum chained MTP draft tokens per verify cycle (speculative depth). | COMMENT |
| LOW | omlx/server.py | 221 | COMMENT | |
| LOW | omlx/server.py | 6881 | COMMENT | |
| LOW | omlx/server.py | 6921 | if __name__ == "__main__": | COMMENT |
| LOW | omlx/prefill_transient_tracker.py | 21 | """EWMA estimator of MLX prefill chunk transient bytes per token. | COMMENT |
| LOW | omlx/turboquant_kv.py | 241 | self._batch_size = len(left_padding) | COMMENT |
| LOW | omlx/turboquant_kv.py | 321 | # compared each request's sequence length (offset) against the column | COMMENT |
| LOW | omlx/request.py | 281 | finish_reason: Optional[str] = None | COMMENT |
| LOW | omlx/process_memory_enforcer.py | 381 | self._wake_event: asyncio.Event | None = None | COMMENT |
| LOW | omlx/process_memory_enforcer.py | 1541 | # signaled, eviction can't help further without aborts. | COMMENT |
| LOW | omlx/engine_core.py | 161 | # event loop, ping-ponging the GIL with the asyncio loop + uvicorn on the | COMMENT |
| LOW | omlx/engine_core.py | 601 | COMMENT | |
| LOW | omlx/model_discovery.py | 81 | # exposes the text backbone. Route them directly to BatchedEngine instead of | COMMENT |
| LOW | omlx/model_discovery.py | 241 | } | COMMENT |
| LOW | omlx/oq.py | 3581 | # in the quantization pipeline. | COMMENT |
| LOW | omlx/oq.py | 5601 | named_shapes = _collect_named_weight_shapes_from_weights(all_weights) | COMMENT |
| LOW | omlx/oq.py | 7501 | COMMENT | |
| LOW | omlx/scheduler.py | 461 | COMMENT | |
| LOW | omlx/scheduler.py | 641 | if ( | COMMENT |
| LOW | omlx/scheduler.py | 701 | # self.logits_processors = [self.logits_processors[idx] for idx in keep] | COMMENT |
| LOW | omlx/scheduler.py | 1621 | # shrink has already dropped hot-cache refs and _sync_and_clear_cache | COMMENT |
| LOW | omlx/scheduler.py | 1641 | # makes the enforcer abort active requests. Propagated so the | COMMENT |
| LOW | omlx/scheduler.py | 1661 | self._memory_hot_cache_reserved_bytes: int = 0 | COMMENT |
| LOW | omlx/scheduler.py | 1761 | self._vlm_mtp_draft_block_size: int | None = None | COMMENT |
| LOW | omlx/scheduler.py | 1801 | self._boundary_cache_snapshots: dict[str, dict[int, Any]] = {} | COMMENT |
| LOW | omlx/scheduler.py | 1961 | self.total_completion_tokens = 0 | COMMENT |
| LOW | omlx/scheduler.py | 3361 | COMMENT | |
| LOW | omlx/scheduler.py | 3821 | # pre-chunk guard and the post-chunk memory check abort | COMMENT |
| LOW | omlx/scheduler.py | 6561 | layer_idx=layer_idx, | COMMENT |
| LOW | omlx/scheduler.py | 7241 | COMMENT | |
| LOW | omlx/scheduler.py | 8061 | for request in list(self.waiting): | COMMENT |
| LOW | omlx/scheduler.py | 8081 | # pops them from ``self.requests`` after the store future completes. | COMMENT |
| LOW | omlx/scheduler.py | 8681 | self._ensure_batch_generator(request.sampling_params) | COMMENT |
| LOW | omlx/scheduler.py | 8821 | # SpecPrefill: replace tokens with selected subset and pre-fill | COMMENT |
| LOW | omlx/scheduler.py | 9201 | # BatchGenerator only handles decode from here. | COMMENT |
| LOW | omlx/scheduler.py | 9561 | tracker.remove(rid) | COMMENT |
| LOW | omlx/scheduler.py | 9721 | with self._phase_timer("store_cache_main_dispatch"): | COMMENT |
| LOW | omlx/scheduler.py | 9861 | del self.running[request_id] | COMMENT |
| LOW | omlx/scheduler.py | 9901 | COMMENT | |
| LOW | omlx/scheduler.py | 10461 | ) | COMMENT |
| LOW | omlx/scheduler.py | 10881 | if isinstance(obj, dict): | COMMENT |
| LOW | omlx/scheduler.py | 11221 | ) | COMMENT |
| LOW | omlx/_torch_stub.py | 41 | # path), but the symbol is re-exported from ``xgrammar.__init__``. | COMMENT |
| LOW | omlx/_torch_stub.py | 341 | COMMENT | |
| LOW | omlx/engine_pool.py | 881 | # both models resident through the load (swapping for minutes) | COMMENT |
| LOW | omlx/engine_pool.py | 961 | if evicted_any: | COMMENT |
| LOW | omlx/engine_pool.py | 1441 | # Reset it on teardown so has_active_requests() and the status API stay consistent. | COMMENT |
| LOW | omlx/engine_pool.py | 1461 | # the generators are still alive with a local 'engine' variable | COMMENT |
| LOW | omlx/engine_pool.py | 1681 | # Wire the correct model_id / model_path into the shared scheduler | COMMENT |
| LOW | omlx/memory_monitor.py | 41 | # generation/inference path. Full prefill and short vector kernels support | COMMENT |
| LOW | omlx/custom_kernels/minimax_m3/csrc/minimax_msa.cpp | 1 | #include "minimax_msa.h" | COMMENT |
| LOW | omlx/custom_kernels/bonsai/csrc/bonsai_kernels.h | 1 | // Copyright © 2026 oMLX contributors | COMMENT |
| 119 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_audio_stt.py | 0 | register audio routes if not already present (e.g., mlx-audio not installed). | STRING |
| HIGH | tests/test_audio_tts.py | 0 | register audio routes if not already present (e.g., mlx-audio not installed). | STRING |
| HIGH | tests/test_audio_sts.py | 0 | register audio routes if not already present (e.g., mlx-audio not installed). | STRING |
| HIGH | tests/test_audio_stt.py | 0 | testclient using the full omlx server app with mocked sts pool. | STRING |
| HIGH | tests/test_audio_tts.py | 0 | testclient using the full omlx server app with mocked sts pool. | STRING |
| HIGH | tests/test_audio_sts.py | 0 | testclient using the full omlx server app with mocked sts pool. | STRING |
| HIGH | tests/test_audio_stt.py | 0 | enginepool.get_engine() is called with the model id. | STRING |
| HIGH | tests/test_audio_sts.py | 0 | enginepool.get_engine() is called with the model id. | STRING |
| HIGH | tests/test_audio_tts.py | 0 | enginepool.get_engine() is called with the model id. | STRING |
| HIGH | omlx/custom_kernels/minimax_m3/fast.py | 0 | keep the diagnostic message without retaining import caller frames. | STRING |
| HIGH | omlx/custom_kernels/glm_moe_dsa/fast.py | 0 | keep the diagnostic message without retaining import caller frames. | STRING |
| HIGH | omlx/custom_kernels/qwen35_prefill/fast.py | 0 | keep the diagnostic message without retaining import caller frames. | STRING |
| HIGH | omlx/patches/glm_moe_dsa/kernels.py | 0 | keep the diagnostic message without retaining import caller frames. | STRING |
| HIGH | omlx/custom_kernels/minimax_m3/fast.py | 0 | disable the native symbols when the extension rejects mlx arrays. an extension built with a nanobind whose abi tag diffe | STRING |
| HIGH | omlx/custom_kernels/glm_moe_dsa/fast.py | 0 | disable the native symbols when the extension rejects mlx arrays. an extension built with a nanobind whose abi tag diffe | STRING |
| HIGH | omlx/custom_kernels/qwen35_prefill/fast.py | 0 | disable the native symbols when the extension rejects mlx arrays. an extension built with a nanobind whose abi tag diffe | STRING |
| HIGH | omlx/admin/ms_downloader.py | 0 | remove a completed, failed, or cancelled task from the list. args: task_id: the task id to remove. returns: true if the | STRING |
| HIGH | omlx/admin/hf_downloader.py | 0 | remove a completed, failed, or cancelled task from the list. args: task_id: the task id to remove. returns: true if the | STRING |
| HIGH | omlx/admin/hf_uploader.py | 0 | remove a completed, failed, or cancelled task from the list. args: task_id: the task id to remove. returns: true if the | STRING |
| HIGH | omlx/admin/ms_downloader.py | 0 | return all tasks as serializable dicts, ordered by creation time. | STRING |
| HIGH | omlx/admin/hf_downloader.py | 0 | return all tasks as serializable dicts, ordered by creation time. | STRING |
| HIGH | omlx/admin/hf_uploader.py | 0 | return all tasks as serializable dicts, ordered by creation time. | STRING |
| HIGH | omlx/eval/mbpp.py | 0 | override run: generation is batched, code execution is sequential. | STRING |
| HIGH | omlx/eval/livecodebench.py | 0 | override run: generation is batched, code execution is sequential. | STRING |
| HIGH | omlx/eval/humaneval.py | 0 | override run: generation is batched, code execution is sequential. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_model_discovery.py | 1436 | # Create a normal LLM model | COMMENT |
| MEDIUM⚡ | tests/test_model_discovery.py | 1444 | # Create a whisper ASR model | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 957 | # Create a file at top level | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 1328 | # Create a small safetensors file | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 1457 | # Create a TTS model | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 2824 | # Create a BlockTable | COMMENT |
| MEDIUM | tests/test_deepseek_v4_patch.py | 885 | # Create a fake model dir with a non-deepseek config. | COMMENT |
| MEDIUM | tests/test_engine_core.py | 747 | # Create a task that calls generate - it will block on event.wait() | COMMENT |
| MEDIUM | tests/test_mcp_client.py | 691 | # Create a proper mock tool object with correct attributes | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 179 | # Create a fake model directory to simulate download | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 959 | # Create a mock global settings | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 2072 | # Create a fake README file with YAML front matter | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 2552 | # Create a file so current_size > 0 (needed to trigger stall detection) | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 2723 | # Create a file (size won't change, but mtime will) | COMMENT |
| MEDIUM | tests/test_scheduler.py | 2979 | # Create a mock CacheList object | COMMENT |
| MEDIUM⚡ | tests/test_embedding.py | 194 | # Create a unit vector [0.6, 0.8, 0.0] (norm = 1.0) | COMMENT |
| MEDIUM | tests/test_embedding.py | 213 | # Create a vector [1, 1, 1] / sqrt(3) = [0.577, 0.577, 0.577] | COMMENT |
| MEDIUM⚡ | tests/test_batched_engine.py | 574 | # Create a mock model where config is a dict | COMMENT |
| MEDIUM | tests/test_audio_tts.py | 1185 | # Create a base64 string just over the limit | COMMENT |
| MEDIUM | tests/test_mcp_manager.py | 294 | # Create a user tool with same name as MCP tool | COMMENT |
| MEDIUM | tests/test_hot_cache.py | 537 | # Create a fake hot cache entry with raw bytes | COMMENT |
| MEDIUM | tests/test_hf_uploader.py | 200 | # Create a fake safetensors file | COMMENT |
| MEDIUM | tests/test_index_cache.py | 107 | # Create a mock model with 4 layers | COMMENT |
| MEDIUM⚡ | tests/test_admin_auth.py | 308 | # Create a token with the new serializer | COMMENT |
| MEDIUM | omlx/server.py | 5565 | # Create a temporary MessagesRequest to reuse existing conversion logic | COMMENT |
| MEDIUM | omlx/_torch_stub.py | 34 | # This module is the *single source of truth* — packaging/build.py imports | COMMENT |
| MEDIUM | omlx/admin/routes.py | 4151 | # This file is at omlx/admin/routes.py → package dir is omlx/ | COMMENT |
| MEDIUM | benchmarks/bonsai_decode_bench.py | 390 | # Create a QuantizedLinear with our construct patch active | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_engine_pool.py | 1418 | # Set limit to allow each model individually but not both together | COMMENT |
| LOW⚡ | tests/test_settings.py | 1615 | # Set env to port 8888 | COMMENT |
| LOW | tests/integration/test_vlm_mrope_integration.py | 731 | # Check if model supports cached_image_features | COMMENT |
| LOW | omlx/cli.py | 393 | # Check if oMLX server is running | COMMENT |
| LOW | omlx/cli.py | 469 | # Check if tool is installed | COMMENT |
| LOW | omlx/scheduler.py | 6207 | # Check if it's a list of cache layers | COMMENT |
| LOW | omlx/scheduler.py | 6215 | # Check if layer has expected structure | COMMENT |
| LOW | omlx/scheduler.py | 8781 | # Check if prompt ends with <think> token for reasoning models. | COMMENT |
| LOW | omlx/scheduler.py | 9303 | # Check if this request uses a protocol-specific output parser | COMMENT |
| LOW | omlx/engine_pool.py | 1698 | # Check if DFlash is enabled -- takes priority over engine type | COMMENT |
| LOW | omlx/engine_pool.py | 1946 | # Check if memory enforcer requested abort during loading | COMMENT |
| LOW | omlx/engine_pool.py | 2240 | # Check if model has active requests | COMMENT |
| LOW | omlx/memory_monitor.py | 31 | # Check if MLX Metal is available | COMMENT |
| LOW | omlx/cache/paged_ssd_cache.py | 2033 | # Check if block was evicted while write was pending. | COMMENT |
| LOW | omlx/cache/paged_ssd_cache.py | 2181 | # Check if already exists in index (thread-safe) | COMMENT |
| LOW | omlx/cache/vision_feature_cache.py | 246 | # Check if already on SSD | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 309 | # Check if this layer is RotatingKVCache | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 472 | # Check if cache_data contains extracted tensor states | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 580 | # Check if this block already exists (deduplication) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 1257 | # Check if all sub-caches are sliceable 4D KVCache tensors. | COMMENT |
| LOW | omlx/patches/specprefill.py | 871 | # Check if model has RoPE (Nemotron-H doesn't) | COMMENT |
| LOW | omlx/patches/deepseek_v4/cache_extras.py | 943 | # Check if all caches are empty | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 28 | # Check if modelscope SDK is available | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 875 | # Check if cancelled while waiting in queue | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 925 | # Check if cancelled while downloading - clean up downloaded files | COMMENT |
| LOW | omlx/admin/hf_downloader.py | 809 | # Check if cancelled while waiting in queue | COMMENT |
| LOW | omlx/admin/hf_downloader.py | 908 | # Check if cancelled while downloading | COMMENT |
| LOW | omlx/admin/routes.py | 2098 | # Check if model exists | COMMENT |
| LOW | omlx/mcp/executor.py | 176 | # Check if tool exists | COMMENT |
| LOW | omlx/adapter/harmony.py | 293 | # Check if this is a special token (should not be streamed) | COMMENT |
| LOW | omlx/api/thinking.py | 272 | # Check if this could be a tag start | COMMENT |
| LOW | omlx/api/thinking.py | 299 | # Check if it could be a partial tag (not enough chars yet) | COMMENT |
| LOW | omlx/api/anthropic_utils.py | 596 | # Check if pre-truncation content was JSON-like | COMMENT |
| LOW | omlx/engine/vlm.py | 3602 | # Check if user provided meaningful text | COMMENT |
| LOW | benchmarks/bonsai_decode_bench.py | 335 | # Check if this variant is available (not just falling back) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | omlx/admin/static/js/marked.umd.js | 1473 | while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) { | CODE |
| CRITICAL⚡ | omlx/admin/static/js/marked.umd.js | 1481 | while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) { | CODE |
| CRITICAL⚡ | omlx/admin/static/js/marked.umd.js | 1485 | while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | omlx/model_settings.py | 231 | # agentic workloads where acceptance drops on the default sliding window. | COMMENT |
| MEDIUM | omlx/server.py | 767 | # on the failure mode. Without it, "context window too small" | COMMENT |
| MEDIUM | omlx/server.py | 2982 | # Validate context window for each prompt | COMMENT |
| MEDIUM | omlx/server.py | 3357 | # Validate context window before sending to model | COMMENT |
| MEDIUM | omlx/server.py | 5395 | # Validate context window before sending to model | COMMENT |
| MEDIUM | omlx/server.py | 5809 | # Validate context window | COMMENT |
| MEDIUM | omlx/model_discovery.py | 165 | # Known embedding model types from mlx-embeddings | COMMENT |
| MEDIUM | omlx/admin/routes.py | 1908 | # Native context window from the model's config.json — used by | COMMENT |
| MEDIUM | omlx/adapter/harmony.py | 507 | # Extract chain-of-thought text from analysis channel | COMMENT |
| MEDIUM | omlx/integrations/claude.py | 93 | # set the *detected* context window for custom model IDs that | COMMENT |
| MEDIUM | omlx/integrations/claude.py | 102 | # built-in context window for those regardless of this variable. | COMMENT |
| MEDIUM | omlx/api/openai_models.py | 443 | # effective context window from the listing without a separate call | COMMENT |
| MEDIUM | omlx/api/tool_calling.py | 643 | # agentic load (large system prompt + many tool schemas + a big tool result) | COMMENT |
| MEDIUM | omlx/eval/mmlu.py | 76 | # Load dev examples for few-shot | COMMENT |
| MEDIUM | omlx/eval/mmlu.py | 109 | # Add few-shot examples | COMMENT |
| MEDIUM | omlx/engine/batched.py | 330 | # below their context window. The route is memory-aware: it defers to | COMMENT |
| MEDIUM | apps/omlx-mac/Sources/AppView/AppView.swift | 499 | // MARK: - Detail scaffold | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_tool_calling.py | 1958 | # Gemma 4 robust fallback parser tests | COMMENT |
| LOW | omlx/output_collector.py | 70 | # Replace: just use the new output | COMMENT |
| MEDIUM | omlx/scheduler.py | 7460 | # by omlx) would yield a list. Guard so the path stays robust | COMMENT |
| LOW | omlx/scheduler.py | 2352 | # If window_size itself is already >= max, just use window_size. | COMMENT |
| LOW | omlx/utils/model_loading.py | 969 | # The quant method may be already supported by mlx-lm; simply return None. | COMMENT |
| MEDIUM⚡ | omlx/api/tool_calling.py | 597 | # Gemma 4 robust fallback parser | COMMENT |
| MEDIUM | omlx/api/tool_calling.py | 1324 | # Gemma 4 only: try robust fallback that handles bare | COMMENT |
| LOW | omlx/api/tool_calling.py | 2241 | # Handle None or text format - just return original | COMMENT |
| MEDIUM⚡ | benchmarks/bonsai_decode_bench.py | 147 | # Timing harness | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_system_sampler.py | 19 | CODE | |
| LOW | tests/test_mlx_vlm_pixtral_torch_free.py | 41 | CODE | |
| LOW | tests/test_cache_observability.py | 14 | CODE | |
| LOW | tests/test_oq_fused_qkv_virtual.py | 155 | CODE | |
| LOW | omlx/model_settings.py | 992 | CODE | |
| LOW | omlx/server.py | 1233 | CODE | |
| LOW | omlx/process_memory_enforcer.py | 318 | CODE | |
| LOW | omlx/engine_core.py | 531 | CODE | |
| LOW | omlx/oq.py | 5114 | CODE | |
| LOW | omlx/cache/paged_ssd_cache.py | 1294 | CODE | |
| LOW | omlx/patches/specprefill.py | 448 | CODE | |
| LOW | omlx/patches/mlx_lm_mtp/qwen35_model.py | 388 | CODE | |
| LOW | omlx/admin/hf_downloader.py | 389 | CODE | |
| LOW | omlx/admin/oq_manager.py | 250 | CODE | |
| LOW | omlx/admin/routes.py | 5339 | CODE | |
| LOW | omlx/utils/sampling.py | 132 | CODE | |
| LOW | omlx/api/audio_routes.py | 440 | CODE | |
| LOW | omlx/engine/tts.py | 163 | CODE | |
| LOW | omlx/engine/tts.py | 306 | CODE | |
| LOW | omlx/engine/vlm.py | 3038 | CODE | |
| LOW | omlx/engine/vlm.py | 3142 | CODE | |
| LOW | omlx/engine/vlm.py | 3268 | CODE | |
| LOW | omlx/engine/vlm.py | 3485 | CODE | |
| LOW | omlx/engine/dflash.py | 289 | CODE | |
| LOW | omlx/engine/dflash.py | 1325 | CODE | |
| LOW | omlx/engine/dflash.py | 1524 | CODE | |
| LOW | omlx/engine/dflash.py | 1679 | CODE | |
| LOW | omlx/engine/dflash.py | 1754 | CODE | |
| LOW | omlx/engine/batched.py | 685 | CODE | |
| LOW | omlx/engine/batched.py | 760 | CODE | |
| LOW | omlx/engine/batched.py | 865 | CODE | |
| LOW | omlx/engine/batched.py | 1021 | CODE | |
| LOW | omlx/engine/base.py | 129 | CODE | |
| LOW | omlx/engine/base.py | 161 | CODE | |
| LOW | omlx/engine/base.py | 193 | CODE | |
| LOW | omlx/engine/base.py | 225 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packaging/build.py | 646 | # Step 0: Render the resolved venvstacks.toml from pyproject.toml deps | COMMENT |
| LOW⚡ | packaging/build.py | 653 | # Step 1: Build wheels from git-pinned packages | COMMENT |
| LOW⚡ | packaging/build.py | 656 | # Step 2: Swap git URLs in the resolved toml for local wheel paths | COMMENT |
| LOW⚡ | packaging/build.py | 666 | # Step 3: Lock environments (always re-lock to match current wheels) | COMMENT |
| LOW⚡ | packaging/build.py | 681 | # Step 4: Build environments | COMMENT |
| LOW⚡ | packaging/build.py | 689 | # Step 5: Export to local directory for app bundle | COMMENT |
| LOW⚡ | tests/integration/test_vlm_mrope_integration.py | 543 | # Step 1: image request | COMMENT |
| LOW | tests/integration/test_vlm_mrope_integration.py | 561 | # Step 2: text-only request (must not be contaminated by prior rope_deltas) | COMMENT |
| LOW⚡ | omlx/cache/prefix_cache.py | 899 | # Step 2: Fallback - find max seq_len among all 4D tensors | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 852 | # Step 1: Search for a sliceable KVCache layer (full attention) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 945 | # Step 3: CacheList fallback — check sub-states for seq_len | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packaging/build.py | 646 | # Step 0: Render the resolved venvstacks.toml from pyproject.toml deps | COMMENT |
| LOW⚡ | packaging/build.py | 653 | # Step 1: Build wheels from git-pinned packages | COMMENT |
| LOW⚡ | packaging/build.py | 656 | # Step 2: Swap git URLs in the resolved toml for local wheel paths | COMMENT |
| LOW⚡ | packaging/build.py | 666 | # Step 3: Lock environments (always re-lock to match current wheels) | COMMENT |
| LOW⚡ | packaging/build.py | 681 | # Step 4: Build environments | COMMENT |
| LOW⚡ | packaging/build.py | 689 | # Step 5: Export to local directory for app bundle | COMMENT |
| LOW⚡ | tests/integration/test_vlm_mrope_integration.py | 543 | # Step 1: image request | COMMENT |
| LOW | tests/integration/test_vlm_mrope_integration.py | 561 | # Step 2: text-only request (must not be contaminated by prior rope_deltas) | COMMENT |
| LOW⚡ | omlx/cache/prefix_cache.py | 899 | # Step 2: Fallback - find max seq_len among all 4D tensors | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 852 | # Step 1: Search for a sliceable KVCache layer (full attention) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 945 | # Step 3: CacheList fallback — check sub-states for seq_len | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_audio_stt.py | 1080 | CODE | |
| MEDIUM | tests/test_audio_tts.py | 662 | CODE | |
| MEDIUM | tests/test_server_prefill_memory_handler.py | 179 | CODE | |
| MEDIUM | tests/test_sse_keepalive.py | 88 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | omlx/admin/static/js/purify.min.js | 2 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | omlx/admin/static/js/highlight.min.js | 317 | }),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/omlx-mac/Scripts/build.sh | 31 | # Usage: | COMMENT |