LLM inference server with continuous batching & SSD caching for Apple Silicon — managed from the macOS menu bar
This report summarizes scanner evidence for jundot/omlx, a Python project with 22,696 GitHub stars. SynthScan examined 730,587 lines of code across 1291 source files, recording 17021 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 27.6 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 12658 finding(s).
Are imports declared and package/API names verified? 1065 finding(s).
Are wrappers, guards, and repeated structures necessary? 14957 finding(s).
Which changes need focused human review? 17021 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 17021 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | 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 | 1050 | def _compute_donor_fingerprint() -> str: | CODE |
| LOW | packaging/build.py | 1071 | def _write_export_fingerprint(): | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 51 | def test_delta_growth_is_linear_and_terminal_partial_preserves_state(): | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 68 | def test_missing_or_reordered_blocks_are_rejected(indices): | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 74 | def test_legacy_anchor_and_invalid_metadata(): | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 90 | def test_real_ssd_reopen_full_and_partial_prefix( | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 226 | def test_in_memory_boundary_compacts_and_rejects_corrupt_record(): | CODE |
| LOW | tests/test_deepseek_v41_ssd.py | 244 | def test_cache_size_single_row_and_unaligned_batch(): | 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 | 79 | def test_dflash_draft_via_architecture(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 84 | def test_dflash_draft_via_config_block(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 88 | def test_assistant_via_model_type(self): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 151 | def test_detect_mimo_without_complete_sidecar_as_llm(self, tmp_path, model_type): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 158 | def test_detect_embedding_model_by_type(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 167 | def test_detect_embedding_model_by_architecture(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 176 | def test_detect_modernbert_embedding(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 185 | def test_detect_reranker_model(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 194 | def test_detect_xlm_roberta_reranker(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 203 | def test_detect_jina_reranker_without_name_heuristic(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 337 | def test_missing_config_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 341 | def test_invalid_json_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 346 | def test_empty_config_defaults_to_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 351 | def test_detect_vlm_by_model_type(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 361 | def test_detect_diffusion_gemma_as_vlm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 767 | def test_detect_vlm_fastvlm_via_mm_vision_tower(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 777 | def test_detect_text_only_quant_with_empty_mm_vision_tower_as_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 787 | def test_detect_text_only_quant_no_vision_evidence_as_llm(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 799 | def test_detect_lfm_text_moe_family_as_llm_not_audio_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 808 | def test_detect_lfm_future_moe_variant_as_llm_not_audio_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 817 | def test_detect_lfm_audio_architecture_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 826 | def test_detect_lfm_audio_model_type_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 835 | def test_detect_unknown_lfm_prefix_without_causal_lm_as_sts(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 848 | def test_estimate_from_safetensors(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 858 | def test_estimate_from_single_safetensors(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 865 | def test_estimate_from_bin_files(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 874 | def test_skip_optimizer_files(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1386 | def test_nonexistent_directory_raises_error(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1391 | def test_file_instead_of_directory_raises_error(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1398 | def test_unreadable_directory_is_skipped(self, tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1498 | def test_adapter_dir_detected(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1503 | def test_normal_model_not_adapter(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1509 | def test_discover_skips_lora_adapter(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1604 | def test_top_level_takes_precedence_over_nested(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1611 | def test_text_config_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1616 | def test_language_config_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1621 | def test_tokenizer_max_length_fallback(self, tmp_path): | CODE |
| LOW⚡ | tests/test_model_discovery.py | 1626 | def test_tokenizer_sentinel_rejected(self, tmp_path): | CODE |
| 11537 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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_vlm_cached_vision_inputs.py | 91 | # ── cache-layer grid plumbing ───────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_vlm_cached_vision_inputs.py | 114 | # ── fast path: token rebuild with all images cached ─────────────────── | COMMENT |
| MEDIUM | tests/test_vlm_cached_vision_inputs.py | 156 | # ── fast path: partial miss ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_vlm_cached_vision_inputs.py | 196 | # ── guards: every failure must fall back to the full path ───────────── | COMMENT |
| MEDIUM⚡ | tests/test_audio_realtime.py | 184 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_audio_realtime.py | 186 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_audio_realtime.py | 343 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_audio_realtime.py | 345 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 2093 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 2095 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 407 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 409 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 504 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 506 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 830 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 832 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 995 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_m5_gather_qmm_nax.py | 997 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 67 | # ── Step 1: Load model ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 81 | # ── Step 2: Prepare inputs ────────────────────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 129 | # ── Step 3: Test _compute_vision_features ──────────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 161 | # ── Step 4: Test cached_image_features support ─────────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 194 | # ── Step 5: Test VisionFeatureSSDCache roundtrip ───────────── | COMMENT |
| MEDIUM | tests/e2e_vision_cache.py | 230 | # ── Step 6: Cache hit performance ──────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 132 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 134 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 204 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 206 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 263 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 265 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 375 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 377 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 517 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_qwen35_oq_a8.py | 519 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_qwen35_oq_a8.py | 46 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_qwen35_oq_a8.py | 48 | # -------------------------------------------------------------------------- | COMMENT |
| 1360 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/test_tool_calling.py | 2322 | "\"Qwen3.6-35B-A3B-ConfigI-MLX\" --timeout 180 && echo " | CODE |
| HIGH⚡ | tests/test_tool_calling.py | 2325 | "--timeout 300 && echo \"v2 dynamic completed\"', timeout=400)]" | CODE |
| HIGH | tests/test_tool_calling.py | 2023 | "\t\tif len(ce.Args) > 1 && isSubcommand(ce.Args[1]) {" | CODE |
| HIGH | tests/test_tool_calling.py | 2706 | result = _gemma4_args_to_json_robust("{data: null}") | CODE |
| HIGH | tests/test_tool_calling.py | 3194 | 'call:f(a=1, b=<|"|>two<|"|>, c=true, d=null, e=3.5)' | CODE |
| HIGH | tests/test_tool_calling.py | 5643 | "[true, null]", | CODE |
| HIGH | tests/test_tool_calling.py | 5688 | '{"enabled":true,"missing":null}', | CODE |
| HIGH | tests/test_tool_calling.py | 5691 | (["array", "null"], "[true,null]", [True, None]), | CODE |
| HIGH | tests/test_tool_calling.py | 377 | response_format={"type": "json_schema", "json_schema": null}; the | STRING |
| HIGH⚡ | tests/test_mlx_vlm_glm5_next_compat.py | 1617 | pipe.push(h) | CODE |
| HIGH⚡ | tests/test_mlx_vlm_glm5_next_compat.py | 1632 | pipe.push(a) | CODE |
| HIGH⚡ | tests/test_cluster_rdma_evidence.py | 128 | '{"schema_version": 1, "links": [null]}', | CODE |
| HIGH | tests/test_cluster_enrollment_ssh.py | 55 | "omlxworker@cuda-worker-1 && id", | CODE |
| HIGH | tests/test_qwen4_hc_fused.py | 1131 | _NDN_INV + " if (t == 0 && g == 0) tots[(size_t)row * HC + s] = tot;\n", | CODE |
| HIGH⚡ | tests/test_responses.py | 821 | # Other optional fields keep serializing as null, as before. | COMMENT |
| HIGH⚡ | tests/test_admin_profiles_api.py | 1366 | "omlx-recipe:1:" + _b64url(zlib.compress(b'{"a": null}'))[:-4] + "AAAA", | CODE |
| HIGH⚡ | tests/test_model_loading.py | 71 | '{"auto_map": {"AutoTokenizer": ["tokenization_x.X", null]}}' | CODE |
| HIGH | tests/test_distributed_engine.py | 1124 | 'data: {"choices": [{"delta": {"content": "ok"}, "finish_reason": null}]}', | CODE |
| HIGH⚡ | omlx/server.py | 2587 | '"finish_reason":null}]}\n\n' | CODE |
| HIGH⚡ | omlx/server.py | 2592 | '"choices":[{"index":0,"text":"","logprobs":null,"finish_reason":null}]}\n\n' | CODE |
| HIGH⚡ | omlx/server.py | 2601 | '"choices":[{"index":0,"text":"","logprobs":null,"finish_reason":null}]}\n\n' | CODE |
| HIGH | omlx/server.py | 2685 | '"finish_reason":null}]}\n\n' | CODE |
| HIGH | omlx/oq.py | 5824 | if (denom > 0.0f && fabs(new_s) > tiny) { | CODE |
| HIGH | omlx/custom_kernels/nax_tiles.py | 810 | if constexpr (TN == 1 && TM % 2 == 0) { | CODE |
| HIGH | omlx/custom_kernels/qwen35_prefill/gdn.py | 124 | if (j < i && i < tt) | CODE |
| HIGH | omlx/custom_kernels/qwen35_prefill/gdn.py | 182 | if (j <= i && i < tt) | CODE |
| HIGH⚡ | omlx/cluster/launch.py | 503 | f"kill -TERM {pid} 2>/dev/null; sleep {max(0.0, grace):.1f}; " | CODE |
| HIGH⚡ | omlx/cluster/launch.py | 504 | f"kill -KILL {pid} 2>/dev/null; sleep 0.5; " | CODE |
| HIGH⚡ | omlx/cluster/launch.py | 505 | f"if kill -0 {pid} 2>/dev/null; then echo alive; else echo gone; fi" | CODE |
| HIGH | omlx/patches/glm53_kda_prework.py | 65 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/glm53_kda_prework.py | 71 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/qwen35_verify_sdpa_split.py | 251 | bool ok = r < L && key >= base && key < t_end && key <= T - L + r; | CODE |
| HIGH | omlx/patches/qwen35_verify_sdpa_split.py | 476 | bool ok = r < L && key >= t0 && key < t_end && key <= T - L + r; | CODE |
| HIGH | omlx/patches/qwen35_verify_sdpa_split.py | 493 | float a = (nmax == -INFINITY || nmax == pmax) ? 1.0f : exp(pmax - nmax); | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 396 | if (ln == 0 && active) y_row[(size_t)(t0 + {t}) * v_row] = static_cast<InT>(yv); | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 410 | if ((ln & 1) == 0 && active) | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 545 | if (s < nh && r < ttn) {{ \\ | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 558 | if (tid < nh * TB && tid % TB < ttn) \\ | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 566 | if (s < nh && r < (TTN)) {{ \\ | CODE |
| HIGH | omlx/patches/glm53_kda_recurrence.py | 577 | if (tid < nh * TB && tid % TB < (TTN)) b_s[tid / TB][tid % TB] = static_cast<float>(pb); \\ | CODE |
| HIGH | omlx/patches/qwen35_moe_routed_decode.py | 325 | if (simd_gid == 0 && int(simd_lid) < RPS) { | CODE |
| HIGH | omlx/patches/qwen35_moe_routed_decode.py | 423 | if (b == 0 && simd_gid == 1) { | CODE |
| HIGH | omlx/patches/qwen35_verify_qmm.py | 381 | if (part == 0 && lane < {n_acc}) {{ | CODE |
| HIGH | omlx/patches/qwen35_verify_qmm.py | 1360 | if ((lid & 15) == 0 && base < D) | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 99 | bool is_k = logical_head >= k_head_base && logical_head < v_head_base; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 130 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 177 | if (S < NKEEP && row == 0) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 250 | bool is_k = logical_head >= k_head_base && logical_head < v_head_base; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 283 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 400 | const uint head = (is_q || is_k) ? hk : hv; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 404 | const bool write_conv = !(is_q || is_k) || (hv % uint(HV / HK)) == 0; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 429 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 451 | } else if (sg == 3 && lane == 0) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 594 | const uint head = (is_q || is_k) ? hk : hv; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 598 | const bool write_conv = !(is_q || is_k) || (hv % uint(HV / HK)) == 0; | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 633 | if (is_q || is_k) { | CODE |
| HIGH | omlx/patches/qwen35_gdn_prework.py | 656 | if (sg == simdgroups - 1 && lane < uint(S)) { | CODE |
| HIGH | omlx/patches/row_exact_qmv.py | 71 | if (PARTIAL && out_row >= N_OUT) { | CODE |
| HIGH | omlx/patches/row_exact_qmv.py | 102 | if (PARTIAL && r >= valid) { | CODE |
| HIGH | omlx/patches/row_exact_qmv.py | 129 | if (PARTIAL && r >= valid) { | CODE |
| 220 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packaging/build.py | 621 | except (subprocess.CalledProcessError, FileNotFoundError): | CODE |
| HIGH | tests/test_mlx_lm_mtp_patch.py | 2380 | except Exception: | CODE |
| HIGH | tests/test_qwen4_ple_load_resources_cpu.py | 154 | except ValueError: | CODE |
| HIGH | tests/test_qwen4_ple_load_resources_cpu.py | 172 | except ValueError: | CODE |
| HIGH | tests/test_qwen4_ple_load_resources_cpu.py | 149 | except ValueError: | CODE |
| HIGH | tests/test_mtp_prompt_priming.py | 454 | except Exception: | CODE |
| HIGH | tests/test_cluster_tensor_parallel.py | 295 | except PlanningError: | CODE |
| HIGH | tests/test_grammar_live.py | 375 | except Exception as e: | CODE |
| HIGH | tests/test_audio_tts.py | 1045 | except RuntimeError: | CODE |
| HIGH | tests/test_audio_tts.py | 939 | except RuntimeError: | CODE |
| HIGH | tests/test_audio_tts.py | 1133 | except RuntimeError: | CODE |
| HIGH | tests/test_audio_tts.py | 1431 | except RuntimeError: | CODE |
| HIGH | tests/test_qwen35_moe_weighted_sum.py | 44 | except Exception: | CODE |
| HIGH | tests/integration/test_e2e_streaming.py | 226 | except json.JSONDecodeError: | CODE |
| HIGH | tests/integration/test_e2e_streaming.py | 1210 | except json.JSONDecodeError: | CODE |
| HIGH | omlx/reasoning_effort.py | 123 | except Exception: | CODE |
| HIGH | omlx/server.py | 774 | except ImportError: | CODE |
| HIGH | omlx/server.py | 716 | except asyncio.CancelledError: | CODE |
| HIGH | omlx/server.py | 4399 | except (TypeError, ValueError): | CODE |
| HIGH | omlx/server.py | 2944 | except (asyncio.CancelledError, StopAsyncIteration): | CODE |
| HIGH | omlx/server.py | 2973 | except asyncio.CancelledError: | CODE |
| HIGH | omlx/server.py | 3066 | except (asyncio.CancelledError, StopAsyncIteration): | CODE |
| HIGH | omlx/server.py | 7139 | except (TypeError, ValueError): | CODE |
| HIGH | omlx/server.py | 1488 | except Exception: | CODE |
| HIGH | omlx/server.py | 3032 | except Exception: | CODE |
| HIGH | omlx/server.py | 6387 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/server.py | 6919 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/server.py | 8782 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/server.py | 2906 | except (asyncio.CancelledError, StopAsyncIteration): | CODE |
| HIGH | omlx/server.py | 3029 | except (asyncio.CancelledError, StopAsyncIteration): | CODE |
| HIGH | omlx/server.py | 4906 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/server.py | 7416 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/server.py | 8177 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | omlx/config.py | 35 | except ValueError: | CODE |
| HIGH | omlx/process_memory_enforcer.py | 1073 | except Exception: | CODE |
| HIGH | omlx/engine_core.py | 1391 | except Exception: | CODE |
| HIGH | omlx/cli.py | 571 | except Exception: | CODE |
| HIGH | omlx/cli.py | 479 | except KeyboardInterrupt: | CODE |
| HIGH | omlx/model_discovery.py | 1675 | except Exception: | CODE |
| HIGH | omlx/model_discovery.py | 894 | except Exception: | CODE |
| HIGH | omlx/model_discovery.py | 1030 | except Exception: | CODE |
| HIGH | omlx/settings.py | 90 | except (AttributeError, ValueError, OSError): | CODE |
| HIGH | omlx/settings.py | 152 | except FileNotFoundError: | CODE |
| HIGH | omlx/oq.py | 5287 | except Exception: | CODE |
| HIGH | omlx/oq.py | 5298 | except Exception: | CODE |
| HIGH | omlx/oq.py | 5310 | except Exception: | CODE |
| HIGH | omlx/oq.py | 7814 | except (ImportError, AttributeError): | CODE |
| HIGH | omlx/oq.py | 7346 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 812 | except ImportError: | CODE |
| HIGH | omlx/scheduler.py | 1161 | except ImportError: | CODE |
| HIGH | omlx/scheduler.py | 7581 | except (AttributeError, KeyError, TypeError, ValueError): | CODE |
| HIGH | omlx/scheduler.py | 7647 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 7655 | except (AttributeError, KeyError, TypeError): | CODE |
| HIGH | omlx/scheduler.py | 8301 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 3557 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 3611 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 7609 | except (KeyError, TypeError, ValueError): | CODE |
| HIGH | omlx/scheduler.py | 7716 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 7723 | except Exception: | CODE |
| HIGH | omlx/scheduler.py | 7747 | except Exception: | CODE |
| 201 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/build.py | 823 | except Exception: # pragma: no cover — build runs may not have omlx on path yet | CODE |
| MEDIUM | tests/test_paged_ssd_cache.py | 3162 | def do_preload(): | CODE |
| MEDIUM | tests/test_paged_ssd_cache.py | 3168 | def do_loads(): | CODE |
| LOW | tests/test_paged_ssd_cache.py | 3165 | except Exception as e: | CODE |
| LOW | tests/test_paged_ssd_cache.py | 3173 | except Exception as e: | CODE |
| LOW | tests/test_m5_gather_qmm_nax.py | 35 | except Exception: # noqa: BLE001 | CODE |
| LOW | tests/test_cluster_control_plane.py | 47 | except Exception as exc: # pragma: no cover - relayed to main thread | CODE |
| LOW | tests/test_cluster_control_plane.py | 106 | except Exception as exc: # pragma: no cover - relayed below | CODE |
| LOW | tests/test_cluster_control_plane.py | 155 | except Exception as exc: # pragma: no cover - relayed below | CODE |
| LOW | tests/test_cluster_control_plane.py | 298 | except Exception as exc: | CODE |
| MEDIUM | tests/test_cluster_control_plane.py | 34 | def coordinator(): | CODE |
| MEDIUM | tests/test_cluster_control_plane.py | 80 | def participant(rank): | CODE |
| MEDIUM | tests/test_cluster_control_plane.py | 143 | def coordinator(): | CODE |
| MEDIUM | tests/test_cluster_control_plane.py | 286 | def coordinator(): | CODE |
| LOW | tests/e2e_vision_cache.py | 98 | except Exception: | CODE |
| LOW | tests/e2e_vision_cache.py | 104 | except Exception: | CODE |
| LOW | tests/test_qwen35_oq_a8.py | 33 | except Exception: | CODE |
| MEDIUM | tests/test_mlx_lm_mtp_patch.py | 214 | def _apply(self): | CODE |
| MEDIUM | tests/test_mlx_lm_mtp_patch.py | 5466 | def _nax_available() -> bool: | CODE |
| LOW | tests/test_mlx_lm_mtp_patch.py | 2380 | except Exception: | CODE |
| LOW | tests/test_mlx_lm_mtp_patch.py | 5471 | except Exception: | CODE |
| LOW | tests/test_audio_stt.py | 1581 | except Exception as e: | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 343 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 647 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 790 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| LOW | tests/test_glm_moe_dsa_patch.py | 854 | except Exception as exc: # pragma: no cover - depends on local native build | CODE |
| MEDIUM | tests/test_cluster_pairing_session.py | 502 | def forget(): | CODE |
| LOW | tests/test_cluster_pairing_session.py | 505 | except Exception as exc: | CODE |
| LOW⚡ | tests/test_mtp_prompt_priming.py | 454 | 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_m5_gather_qmm_a8.py | 28 | except Exception: | CODE |
| MEDIUM | tests/test_m5_gather_qmm_a8.py | 23 | def _a8_ready() -> bool: | CODE |
| LOW | tests/test_prefill_progress.py | 146 | except Exception as e: | CODE |
| MEDIUM | tests/test_prefill_progress.py | 139 | def updater(model_id, start): | CODE |
| LOW | tests/test_admin_unload.py | 31 | except Exception as e: | 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 |
| MEDIUM | tests/test_cluster_pairing.py | 499 | def approve(): | CODE |
| LOW | tests/test_cluster_pairing.py | 502 | except Exception as exc: # pragma: no cover - asserted below | CODE |
| MEDIUM | tests/test_mlx_vlm_qwen4_exp_compat.py | 2046 | def close(): | CODE |
| LOW | tests/test_mlx_vlm_qwen4_exp_compat.py | 2049 | except Exception as exc: | CODE |
| LOW | tests/test_embedding.py | 1284 | except Exception as e: | CODE |
| MEDIUM | tests/test_glm5_next_mtp.py | 1399 | def _native_indexer_available() -> bool: | CODE |
| LOW⚡ | tests/test_glm5_next_mtp.py | 1407 | except Exception: # noqa: BLE001 | CODE |
| LOW | tests/test_audio_tts.py | 1514 | except Exception as e: | CODE |
| LOW | tests/test_cache_observability.py | 219 | except Exception as e: | CODE |
| LOW | tests/test_cache_observability.py | 227 | except Exception as e: | CODE |
| MEDIUM | tests/test_model_settings.py | 694 | def worker(model_id): | CODE |
| LOW | tests/test_model_settings.py | 699 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 470 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 496 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 524 | except Exception as e: | CODE |
| LOW | tests/test_audio_sts.py | 552 | except Exception as e: | CODE |
| MEDIUM | tests/test_hot_cache.py | 544 | def worker(thread_id): | CODE |
| 1160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_cluster_settings_toggle.py | 4 | CODE | |
| LOW | tests/test_nccl_fabric_worker.py | 4 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 1 | CODE | |
| LOW | tests/test_openai_adapter.py | 20 | CODE | |
| LOW | tests/test_minimax_m3_pipeline.py | 10 | CODE | |
| LOW | tests/test_paged_ssd_cache.py | 43 | 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 | 35 | CODE | |
| LOW | tests/test_hybrid_cache.py | 935 | CODE | |
| LOW | tests/test_cluster_ssh_policy.py | 4 | CODE | |
| LOW | tests/test_cluster_rdma_mailbox.py | 4 | CODE | |
| LOW | tests/test_web_search.py | 11 | CODE | |
| LOW | tests/test_m5_gather_qmm.py | 4 | CODE | |
| LOW | tests/test_cluster_rdma_pipeline.py | 4 | CODE | |
| LOW | tests/test_cluster_rdma_probe.py | 4 | CODE | |
| LOW | tests/test_utils_hardware.py | 8 | CODE | |
| LOW | tests/test_m5_gather_qmm_nax.py | 11 | CODE | |
| LOW | tests/test_cache_ntuple_state.py | 18 | CODE | |
| LOW | tests/test_cache_ntuple_state.py | 282 | CODE | |
| LOW | tests/test_jaccl_side_channel.py | 4 | CODE | |
| LOW | tests/test_dflash_batched.py | 3 | 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_qwen35_oq_a8.py | 17 | CODE | |
| LOW | tests/test_ms_downloader.py | 6 | CODE | |
| LOW | tests/test_cluster_link_bandwidth.py | 4 | CODE | |
| LOW | tests/test_mcp_config.py | 9 | CODE | |
| LOW | tests/test_prefix_cache_cachelist_mixed.py | 28 | CODE | |
| LOW | tests/test_cluster_runtime_version_source.py | 11 | CODE | |
| LOW | tests/test_shared_models.py | 5 | CODE | |
| LOW | tests/test_cluster_rdma_stage_transport.py | 4 | CODE | |
| LOW | tests/test_cluster_rdma_routes.py | 4 | 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_cluster_prefill_guard.py | 4 | CODE | |
| LOW | tests/test_gemma4_rendering.py | 7 | CODE | |
| LOW | tests/test_qwen4_qsa_incremental_cache.py | 5 | CODE | |
| LOW | tests/test_clone_mlx_model_fp16.py | 2 | CODE | |
| LOW | tests/test_dflash_glm5.py | 4 | CODE | |
| LOW | tests/test_nested_nstate_serialization.py | 24 | CODE | |
| LOW | tests/test_admin_hot_cache_clear.py | 17 | CODE | |
| LOW | tests/test_dflash_lifecycle.py | 4 | CODE | |
| LOW | tests/test_qwen4_qsa_native_indexer.py | 5 | 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 | 4 | CODE | |
| LOW | tests/test_cluster_split_control.py | 11 | CODE | |
| 717 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_deepseek_v41_ssd.py | 90 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 244 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 523 | CODE | |
| LOW | tests/test_qwen35_q4_mlp.py | 610 | CODE | |
| LOW | tests/test_mimo_v2_patch.py | 1155 | CODE | |
| LOW | tests/test_paged_ssd_cache.py | 766 | CODE | |
| LOW | tests/test_paged_ssd_cache.py | 1766 | CODE | |
| LOW | tests/test_paged_ssd_cache.py | 1822 | CODE | |
| LOW | tests/test_k2_tool_grammar.py | 50 | CODE | |
| LOW | tests/test_dflash_batched.py | 356 | CODE | |
| LOW | tests/test_moe_offload_compat.py | 14 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 3147 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 4249 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 4932 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 5056 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 5164 | CODE | |
| LOW | tests/test_mlx_lm_mtp_patch.py | 5307 | CODE | |
| LOW | tests/test_qwen4_ple_load_resources_cpu.py | 136 | CODE | |
| LOW | tests/test_mlx_vlm_glm5_next_compat.py | 1107 | CODE | |
| LOW | tests/test_mlx_vlm_glm5_next_compat.py | 2121 | CODE | |
| LOW | tests/test_mlx_vlm_glm5_next_compat.py | 1118 | CODE | |
| LOW | tests/test_engine_core.py | 221 | CODE | |
| LOW | tests/test_engine_core.py | 261 | CODE | |
| LOW | tests/test_engine_core.py | 846 | CODE | |
| LOW | tests/test_engine_core.py | 1003 | CODE | |
| LOW | tests/test_engine_core.py | 1214 | CODE | |
| LOW | tests/test_prefill_fairness_budget.py | 346 | CODE | |
| LOW | tests/test_qwen35_fp16_decode.py | 203 | CODE | |
| LOW | tests/test_dflash_engine.py | 2213 | CODE | |
| LOW | tests/test_m5_gather_qmm_a8.py | 37 | CODE | |
| LOW | tests/test_dflash_multimodal_fallback.py | 339 | CODE | |
| LOW | tests/test_dflash_multimodal_fallback.py | 369 | CODE | |
| LOW | tests/test_deepseek_v4_wsdpa.py | 18 | CODE | |
| LOW | tests/test_scheduler_boundary_completion.py | 48 | CODE | |
| LOW | tests/test_scheduler_chunked_prefill.py | 936 | CODE | |
| LOW | tests/test_vlm_engine.py | 1907 | CODE | |
| LOW | tests/test_mlx_vlm_qwen4_exp_compat.py | 1332 | CODE | |
| LOW | tests/test_glm_mtp_patch.py | 80 | CODE | |
| LOW | tests/test_oq.py | 2535 | CODE | |
| LOW | tests/test_glm5_next_mtp.py | 680 | CODE | |
| LOW | tests/test_glm5_next_mtp.py | 899 | CODE | |
| LOW | tests/test_glm5_next_mtp.py | 1245 | CODE | |
| LOW | tests/rdma_pipeline_worker.py | 45 | CODE | |
| LOW | tests/test_thinking_budget.py | 504 | CODE | |
| LOW | tests/test_ane_tuning.py | 1075 | CODE | |
| LOW | tests/test_glm_moe_dsa_offload.py | 57 | CODE | |
| LOW | tests/test_vlm_batch_kv_capacity.py | 80 | CODE | |
| LOW | tests/test_k2_acceleration.py | 225 | CODE | |
| LOW | tests/test_cli.py | 1678 | CODE | |
| LOW | tests/test_boundary_snapshot_store.py | 122 | CODE | |
| LOW | tests/test_boundary_snapshot_store.py | 766 | CODE | |
| LOW | tests/test_moe_expert_offload.py | 1102 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 799 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 862 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 1011 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 810 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 877 | CODE | |
| LOW | tests/test_reranker_causal_lm.py | 1035 | CODE | |
| LOW | tests/test_qwen35_moe_verify_window.py | 250 | CODE | |
| LOW | tests/integration/test_vlm_mrope_integration.py | 153 | CODE | |
| 542 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/reasoning_effort.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_settings.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_settings.py | 890 | def set_settings(self, model_id: str, settings: ModelSettings) -> None: | CODE |
| LOW⚡ | omlx/server.py | 224 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/logging_config.py | 83 | def set_request_id(request_id: Optional[str]) -> None: | CODE |
| LOW | omlx/usage_history.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/usage_history.py | 227 | def set_enabled(self, enabled: bool) -> None: | STRING |
| LOW | omlx/prefill_transient_tracker.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/turboquant_kv.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/turboquant_kv.py | 65 | __all__ = [ | CODE |
| LOW | omlx/request.py | 276 | def set_finished(self, status: RequestStatus, reason: Optional[str] = None) -> None: | CODE |
| LOW | omlx/__init__.py | 50 | __all__ = [ | CODE |
| LOW | omlx/server_metrics.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/process_memory_enforcer.py | 56 | 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 | 57 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/websearch.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/model_discovery.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/settings.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/settings.py | 418 | def set_gdn_snapshot_storage(self, mode: str) -> None: | CODE |
| LOW | omlx/oq.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/scheduler.py | 14618 | def _set_model_info_for_monitor(self) -> None: | CODE |
| LOW | omlx/scheduler.py | 347 | def set_cap(self, cap: int) -> None: | CODE |
| LOW | omlx/scheduler.py | 426 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/_torch_stub.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/engine_pool.py | 71 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/engine_pool.py | 237 | def _set_concurrency_limits(config: object, value: int) -> None: | CODE |
| LOW | omlx/engine_pool.py | 242 | def _set_decode_cap(scheduler: object, value: int) -> None: | CODE |
| LOW | omlx/model_registry.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/memory_monitor.py | 480 | def set_ane_prefill_transient_bytes(self, value: int) -> None: | CODE |
| LOW⚡ | omlx/memory_monitor.py | 2109 | def set_model_info_from_model(monitor: "MemoryMonitor", model: Any) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/memory_monitor.py | 350 | def set_baseline_memory(self) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 374 | def set_request_stats(self, running: int, waiting: int) -> None: | CODE |
| LOW | omlx/memory_monitor.py | 600 | def set_fixed_state_bytes(self, n: int) -> 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 | 10 | __all__ = [ | CODE |
| LOW | omlx/custom_kernels/qwen35_prefill/fast.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/custom_kernels/decode_fast/__init__.py | 6 | __all__ = ["NATIVE_AVAILABLE", "sdpa_decode"] | CODE |
| LOW | omlx/custom_kernels/decode_fast/fast.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/custom_kernels/decode_fast/fast.py | 96 | __all__ = ["NATIVE_AVAILABLE", "is_native_available", "import_error", "sdpa_decode"] | CODE |
| LOW | omlx/cluster/worker_shim.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cluster/liveness.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | omlx/cluster/discovery.py | 2055 | def update_service(self, zc: Any, type_: str, name: str) -> None: | CODE |
| LOW⚡ | omlx/cluster/discovery.py | 2062 | def update_service_callback(self, *args: Any, **kwargs: Any) -> None: | CODE |
| LOW | omlx/cluster/discovery.py | 531 | logger = logging.getLogger(__name__) # noqa: E402 | CODE |
| LOW | omlx/cluster/prefill_guard.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | omlx/cluster/tensor_strategies.py | 647 | __all__ = [ | CODE |
| LOW | omlx/cluster/progressive_loading.py | 277 | __all__ = [ | CODE |
| 299 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 41 | # Vanilla MLX v0.32.3; optional custom kernels live under | COMMENT |
| LOW | pyproject.toml | 81 | "tiktoken", | COMMENT |
| LOW | pyproject.toml | 101 | # Server | COMMENT |
| LOW | pyproject.toml | 121 | # fired upstream), the single-host-sync decode cycle (one D2H transfer | 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_hf_downloader.py | 4041 | # ============================================================================= | COMMENT |
| LOW | tests/test_cluster_launch.py | 1441 | # --- The node role has to survive the argv the launcher actually runs ------- | COMMENT |
| LOW | omlx/model_settings.py | 481 | COMMENT | |
| LOW | omlx/server.py | 241 | RERANKER = "reranker" | COMMENT |
| LOW | omlx/server.py | 6701 | yield create_thinking_delta_event( | COMMENT |
| LOW | omlx/prefill_transient_tracker.py | 41 | # Metal/pool spike this large is not a repeatable chunk transient, and | COMMENT |
| LOW | omlx/request.py | 141 | COMMENT | |
| LOW | omlx/process_memory_enforcer.py | 461 | self._activity_hint_until = 0.0 | COMMENT |
| LOW | omlx/process_memory_enforcer.py | 1401 | if scheduler is None: | COMMENT |
| LOW | omlx/process_memory_enforcer.py | 1461 | scheduler._prefill_abort_margin = self._get_prefill_abort_margin() | COMMENT |
| LOW | omlx/engine_core.py | 261 | COMMENT | |
| LOW | omlx/engine_core.py | 741 | stream_interval=self.config.stream_interval | COMMENT |
| LOW | omlx/model_discovery.py | 101 | _MIMO_VISION_SIDECAR = Path("omnimodal/vision_encoder.safetensors") | COMMENT |
| LOW | omlx/model_discovery.py | 281 | COMMENT | |
| LOW | omlx/settings.py | 561 | ) | COMMENT |
| LOW | omlx/oq.py | 4181 | # in the quantization pipeline. | COMMENT |
| LOW | omlx/exceptions.py | 601 | COMMENT | |
| LOW | omlx/scheduler.py | 561 | prompt_len: int | COMMENT |
| LOW | omlx/scheduler.py | 1561 | # decode holds ~3x the unthrottled rate while the mixed-batch completion | COMMENT |
| LOW | omlx/scheduler.py | 1681 | max_num_batched_tokens: int = 8192 | COMMENT |
| LOW | omlx/scheduler.py | 2081 | self._pending_reclaim_request: bool = False | COMMENT |
| LOW | omlx/scheduler.py | 2101 | # Memory limits for inline prefill checking. | COMMENT |
| LOW | omlx/scheduler.py | 2121 | # Component ceilings — propagated alongside the hard limit so the | COMMENT |
| LOW | omlx/scheduler.py | 2201 | # armed by _set_model_info_for_monitor when ArraysCache layers exist | COMMENT |
| LOW | omlx/scheduler.py | 2241 | # VLM MTP: gemma4_assistant drafter attached by VLMBatchedEngine. | COMMENT |
| LOW | omlx/scheduler.py | 2261 | # response streaming isn't blocked by it. | COMMENT |
| LOW | omlx/scheduler.py | 2301 | self.paged_ssd_cache_manager: PagedSSDCacheManager | None = None | COMMENT |
| LOW | omlx/scheduler.py | 2461 | # Step counter for periodic cleanup | COMMENT |
| LOW | omlx/scheduler.py | 3961 | # stream buffer mid-eval, so that fence can never be satisfied | COMMENT |
| LOW | omlx/scheduler.py | 4121 | # the per-engine stream context itself. Native lazy primitives | COMMENT |
| LOW | omlx/scheduler.py | 4361 | COMMENT | |
| LOW | omlx/scheduler.py | 8201 | extracted, _ = self._extract_snapshot_cache_states(snapshot_cache) | COMMENT |
| LOW | omlx/scheduler.py | 10361 | COMMENT | |
| LOW | omlx/scheduler.py | 11381 | # for its id is still waiting). Without this pass, fail_all_requests | COMMENT |
| LOW | omlx/scheduler.py | 11401 | # Clear stale uid mappings for every failed id. Running requests hold | COMMENT |
| LOW | omlx/scheduler.py | 11961 | rejected_outputs.append(stalled) | COMMENT |
| LOW | omlx/scheduler.py | 12061 | self._ensure_batch_generator(request.sampling_params) | COMMENT |
| LOW | omlx/scheduler.py | 12201 | ) | COMMENT |
| LOW | omlx/scheduler.py | 12381 | # Fall through to normal prefill | COMMENT |
| LOW | omlx/scheduler.py | 12621 | # Build per-request state machine for stop tokens | COMMENT |
| LOW | omlx/scheduler.py | 13281 | if pre_eval_arrays: | COMMENT |
| LOW | omlx/scheduler.py | 13461 | # Remove from running | COMMENT |
| LOW | omlx/scheduler.py | 13501 | if hasattr(self.model, "clear_pending_embeddings"): | COMMENT |
| LOW | omlx/scheduler.py | 13521 | # cache_to_store argument, but request._extracted_cache pointing | COMMENT |
| LOW | omlx/scheduler.py | 14121 | logger.debug( | COMMENT |
| LOW | omlx/scheduler.py | 14141 | # completed; the allocator only releases pool entries | COMMENT |
| LOW | omlx/scheduler.py | 14641 | # language-model dimensions under a sub-config. Prefer | COMMENT |
| LOW | omlx/scheduler.py | 15041 | 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 | 2241 | # process memory enforcer (min of static and dynamic). Try | COMMENT |
| LOW | omlx/engine_pool.py | 2781 | # footprint reading is process-wide, so concurrent | COMMENT |
| LOW | omlx/engine_pool.py | 2801 | if not ane_release_attempted: | COMMENT |
| LOW | omlx/engine_pool.py | 3281 | # bytes are included in both admission and Metal unload settlement. | COMMENT |
| 185 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_admin_api_key.py | 0 | create a mock globalsettings with the given api key. | STRING |
| HIGH | tests/test_admin_auth.py | 0 | create a mock globalsettings with the given api key. | STRING |
| HIGH | apps/omlx-web/tests/test_admin_auth_ui.py | 0 | create a mock globalsettings with the given api key. | STRING |
| HIGH | tests/test_admin_api_key.py | 0 | replace the module-level _get_global_settings with a lambda returning mock. | STRING |
| HIGH | tests/test_admin_auth.py | 0 | replace the module-level _get_global_settings with a lambda returning mock. | STRING |
| HIGH | apps/omlx-web/tests/test_admin_auth_ui.py | 0 | replace the module-level _get_global_settings with a lambda returning mock. | STRING |
| 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/patches/qwen35_verify_sdpa_split.py | 0 | #include <metalperformanceprimitives/metalperformanceprimitives.h> using namespace mpp::tensor_ops; | STRING |
| HIGH | omlx/patches/qwen35_packed_linear.py | 0 | #include <metalperformanceprimitives/metalperformanceprimitives.h> using namespace mpp::tensor_ops; | STRING |
| HIGH | omlx/patches/glm_moe_dsa/sparse_mla_nax.py | 0 | #include <metalperformanceprimitives/metalperformanceprimitives.h> using namespace mpp::tensor_ops; | STRING |
| HIGH | omlx/patches/glm_moe_dsa/indexer_nax.py | 0 | #include <metalperformanceprimitives/metalperformanceprimitives.h> using namespace mpp::tensor_ops; | 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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | omlx/server.py | 1395 | Get engine for the specified model and type. This is the unified engine getter that handles LLM, embedding, re | STRING |
| HIGH | omlx/server.py | 1675 | Get LLM engine for the specified model (or default). This is a convenience wrapper around get_engine() for LLM | STRING |
| HIGH | omlx/server.py | 1713 | Get embedding engine for the specified model. This is a convenience wrapper around get_engine() for embedding | STRING |
| HIGH | omlx/server.py | 1731 | Get reranker engine for the specified model. This is a convenience wrapper around get_engine() for reranker mo | STRING |
| HIGH | omlx/scheduler.py | 3860 | Run prefill externally (outside BatchGenerator) for a single request. Processes tokens[0:N-1] through the model | STRING |
| HIGH | omlx/engine_pool.py | 2120 | 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 | 270 | Pop n blocks from the front. Args: n: Number of blocks to allocate Returns: | STRING |
| HIGH | omlx/cache/paged_cache.py | 680 | Allocate multiple blocks at once (vLLM style). Args: num_blocks: Number of blocks to alloc | STRING |
| HIGH | omlx/admin/auth.py | 283 | FastAPI dependency to require admin authentication. This dependency can be used in route definitions to protect | STRING |
| HIGH | omlx/admin/ms_downloader.py | 702 | Start downloading a model from ModelScope. Args: model_id: ModelScope model ID (e.g., "qwen/Qwen2.5 | STRING |
| HIGH | omlx/admin/ms_downloader.py | 815 | 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 | 1193 | Start downloading a model from HuggingFace. Args: repo_id: HuggingFace repository ID (e.g., "mlx-co | STRING |
| HIGH | omlx/admin/hf_downloader.py | 1310 | 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 | 307 | Start a quantization job. Args: model_path: Path to source model directory. oq_level: o | STRING |
| HIGH | omlx/admin/routes.py | 1836 | 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 | 1889 | 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 | 2030 | 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 | 2086 | Delete a sub API key. Args: request: DeleteSubKeyRequest with the key to delete. Returns: JSON | STRING |
| HIGH | omlx/admin/routes.py | 2650 | Update settings for a specific model. Updates are persisted to the settings file and applied immediately t | STRING |
| HIGH | omlx/admin/routes.py | 4275 | Read model config files and return recommended defaults. Reads generation_config.json for sampling parameters | STRING |
| HIGH | omlx/admin/routes.py | 4695 | Update global server settings. Updates are persisted to the global settings file. Some settings, including | STRING |
| HIGH | omlx/admin/routes.py | 5879 | 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 | 217 | Load an image from a base64 data URI. Supports: - Data URIs: "data:image/jpeg;base64,..." format Deco | 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 | 342 | Process an audio file through the STS model. For speech enhancement models (DeepFilterNet, MossFormer2 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_model_discovery.py | 1853 | # Create a normal LLM model | COMMENT |
| MEDIUM⚡ | tests/test_model_discovery.py | 1861 | # Create a whisper ASR model | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 1374 | # Create a file at top level | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 1745 | # Create a small safetensors file | COMMENT |
| MEDIUM | tests/test_model_discovery.py | 1874 | # Create a TTS model | COMMENT |
| MEDIUM | tests/test_paged_ssd_cache.py | 3245 | # Create a BlockTable | COMMENT |
| MEDIUM | tests/test_deepseek_v4_patch.py | 1684 | # Create a fake model dir with a non-deepseek config. | COMMENT |
| MEDIUM | tests/test_engine_core.py | 752 | # Create a task that calls generate - it will block on event.wait() | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 260 | # Create a fake model directory to simulate download | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 1147 | # Create a mock global settings | COMMENT |
| MEDIUM | tests/test_hf_downloader.py | 2617 | # Create a fake README file with YAML front matter | COMMENT |
| MEDIUM | tests/test_scheduler.py | 4696 | # Create a mock CacheList object | COMMENT |
| MEDIUM⚡ | tests/test_embedding.py | 222 | # Create a unit vector [0.6, 0.8, 0.0] (norm = 1.0) | COMMENT |
| MEDIUM | tests/test_embedding.py | 241 | # Create a vector [1, 1, 1] / sqrt(3) = [0.577, 0.577, 0.577] | COMMENT |
| MEDIUM⚡ | tests/test_batched_engine.py | 660 | # Create a mock model where config is a dict | COMMENT |
| MEDIUM | tests/test_audio_tts.py | 1275 | # 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 | 548 | # Create a fake hot cache entry with raw bytes | COMMENT |
| MEDIUM | tests/test_hf_uploader.py | 212 | # 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 | 221 | # Create a token with the new serializer | COMMENT |
| MEDIUM | omlx/server.py | 7468 | # 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 | 6018 | # This file is at omlx/admin/routes.py → package dir is omlx/ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_engine_pool.py | 2296 | # Set limit to allow each model individually but not both together | COMMENT |
| LOW⚡ | tests/test_settings.py | 2233 | # 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 | 530 | # Check if oMLX server is running | COMMENT |
| LOW | omlx/cli.py | 614 | # Check if tool is installed | COMMENT |
| LOW | omlx/scheduler.py | 9094 | # Check if it's a list of cache layers | COMMENT |
| LOW | omlx/scheduler.py | 9125 | # Check if layer has expected structure | COMMENT |
| LOW | omlx/scheduler.py | 12164 | # Check if prompt ends with <think> token for reasoning models. | COMMENT |
| LOW | omlx/scheduler.py | 12780 | # Check if this request uses a protocol-specific output parser | COMMENT |
| LOW | omlx/engine_pool.py | 3562 | # Check if DFlash is enabled -- takes priority over engine type | COMMENT |
| LOW | omlx/engine_pool.py | 3885 | # Check if memory enforcer requested abort during loading | COMMENT |
| LOW | omlx/engine_pool.py | 4313 | # Check if model has active requests | COMMENT |
| LOW | omlx/memory_monitor.py | 32 | # Check if MLX Metal is available | COMMENT |
| LOW | omlx/cluster/ssh_keys.py | 351 | # Check if key already exists | COMMENT |
| LOW | omlx/cluster/transport.py | 284 | # Check if there's a TB connection between host i and host j | COMMENT |
| LOW | omlx/cache/paged_ssd_cache.py | 3191 | # Check if block was evicted while write was pending. | COMMENT |
| LOW | omlx/cache/vision_feature_cache.py | 302 | # Check if already on SSD. Entries without grid metadata are not | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 749 | # Check if this layer is RotatingKVCache | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 936 | # Check if cache_data contains extracted tensor states | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 1212 | # Check if this block already exists (deduplication) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 2615 | # Check if all sub-caches are sliceable 4D KVCache tensors. | COMMENT |
| LOW | omlx/patches/specprefill.py | 1042 | # Check if model has RoPE (Nemotron-H doesn't) | COMMENT |
| LOW | omlx/patches/deepseek_v4/chat_template_v4.py | 427 | # Check if previous message has a task - if so, this is a task output (no thinking) | COMMENT |
| LOW | omlx/patches/deepseek_v4/cache_extras.py | 1151 | # Check if all caches are empty | COMMENT |
| LOW | omlx/patches/deepseek_v41/encoding.py | 680 | # Check if previous message has a task - if so, this is a task output (no thinking) | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 30 | # Check if modelscope SDK is available | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 890 | # Check if cancelled while waiting in queue | COMMENT |
| LOW | omlx/admin/ms_downloader.py | 940 | # Check if cancelled while downloading - clean up downloaded files | COMMENT |
| LOW | omlx/admin/hf_downloader.py | 1404 | # Check if cancelled while waiting in queue | COMMENT |
| LOW | omlx/admin/hf_downloader.py | 1560 | # Check if cancelled while downloading | COMMENT |
| LOW | omlx/admin/routes.py | 2673 | # 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 | 280 | # Check if this could be a tag start | COMMENT |
| LOW | omlx/api/thinking.py | 307 | # Check if it could be a partial tag (not enough chars yet) | COMMENT |
| LOW | omlx/api/anthropic_utils.py | 610 | # Check if pre-truncation content was JSON-like | COMMENT |
| LOW | omlx/engine/vlm.py | 5380 | # Check if user provided meaningful text | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | omlx/model_settings.py | 497 | # Longest audio item, in seconds, an embedding model reads before cutting | COMMENT |
| MEDIUM | omlx/server.py | 1161 | # on the failure mode. Without it, "context window too small" | COMMENT |
| MEDIUM | omlx/server.py | 3840 | # as null-filled arrays inside a 200, and a RAG pipeline stores the | COMMENT |
| MEDIUM | omlx/server.py | 4131 | # Validate context window for each prompt | COMMENT |
| MEDIUM | omlx/server.py | 4635 | # Validate context window before sending to model | COMMENT |
| MEDIUM | omlx/server.py | 7274 | # Validate context window before sending to model | COMMENT |
| MEDIUM | omlx/server.py | 7949 | # Validate context window | COMMENT |
| MEDIUM | omlx/model_profiles.py | 119 | # Memory residency of an embedding model's audio tower; explicit per model. | COMMENT |
| MEDIUM | omlx/model_discovery.py | 191 | # Known embedding model types from mlx-embeddings | COMMENT |
| MEDIUM | omlx/admin/routes.py | 2424 | # 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 | 151 | # set the *detected* context window for custom model IDs that | COMMENT |
| MEDIUM | omlx/integrations/claude.py | 160 | # built-in context window for those regardless of this variable. | COMMENT |
| MEDIUM | omlx/api/openai_models.py | 606 | # effective context window from the listing without a separate call | COMMENT |
| MEDIUM | omlx/api/tool_calling.py | 1291 | # 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 | 110 | # Add few-shot examples | COMMENT |
| MEDIUM | omlx/engine/stt.py | 766 | # AlignAtt decoder, which bypasses the whole anti-hallucination | COMMENT |
| MEDIUM | apps/omlx-mac/Sources/AppView/AppView.swift | 507 | // MARK: - Detail scaffold | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | apps/omlx-web/omlx_web/static/js/marked.umd.js | 1473 | while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) { | CODE |
| CRITICAL⚡ | apps/omlx-web/omlx_web/static/js/marked.umd.js | 1481 | while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) { | CODE |
| CRITICAL⚡ | apps/omlx-web/omlx_web/static/js/marked.umd.js | 1485 | while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_system_sampler.py | 19 | CODE | |
| LOW | tests/test_mlx_vlm_glm5_next_compat.py | 3363 | CODE | |
| LOW | tests/test_mlx_vlm_pixtral_torch_free.py | 39 | CODE | |
| LOW | tests/test_specprefill_target.py | 123 | CODE | |
| LOW | tests/test_cluster_pairing.py | 100 | CODE | |
| LOW | tests/test_cluster_v2_discovery.py | 109 | CODE | |
| LOW | tests/test_cache_observability.py | 13 | CODE | |
| LOW | tests/test_oq_fused_qkv_virtual.py | 155 | CODE | |
| LOW | omlx/model_settings.py | 1379 | CODE | |
| LOW | omlx/server.py | 1799 | CODE | |
| LOW | omlx/server.py | 8270 | CODE | |
| LOW | omlx/process_memory_enforcer.py | 391 | CODE | |
| LOW | omlx/engine_core.py | 654 | CODE | |
| LOW | omlx/oq.py | 6089 | CODE | |
| LOW | omlx/oq.py | 9150 | CODE | |
| LOW | omlx/oq.py | 9688 | CODE | |
| LOW | omlx/memory_monitor.py | 484 | CODE | |
| LOW | omlx/cluster/progressive_loading.py | 73 | CODE | |
| LOW | omlx/cluster/telemetry.py | 1096 | CODE | |
| LOW | omlx/cluster/telemetry.py | 121 | CODE | |
| LOW | omlx/cluster/pairing.py | 852 | CODE | |
| LOW | omlx/cache/observability.py | 107 | CODE | |
| LOW | omlx/cache/paged_ssd_cache.py | 257 | CODE | |
| LOW | omlx/cache/paged_ssd_cache.py | 1673 | CODE | |
| LOW | omlx/cache/prefix_cache.py | 889 | CODE | |
| LOW | omlx/patches/qwen35_ane_prefill.py | 3052 | CODE | |
| LOW | omlx/patches/specprefill.py | 595 | CODE | |
| LOW | omlx/patches/deepseek_v41/packed_attention.py | 418 | CODE | |
| LOW | omlx/patches/deepseek_v41/packed_attention.py | 452 | CODE | |
| LOW | omlx/patches/deepseek_v41/oq.py | 276 | CODE | |
| LOW | omlx/patches/mlx_lm_mtp/qwen35_model.py | 402 | CODE | |
| LOW | omlx/admin/hf_downloader.py | 947 | CODE | |
| LOW | omlx/admin/ane_tuning.py | 371 | CODE | |
| LOW | omlx/admin/ane_tuning.py | 766 | CODE | |
| LOW | omlx/admin/oq_manager.py | 289 | CODE | |
| LOW | omlx/admin/routes.py | 7574 | CODE | |
| LOW | omlx/utils/sampling.py | 171 | CODE | |
| LOW | omlx/api/audio_routes.py | 475 | CODE | |
| LOW | omlx/engine/tts.py | 186 | CODE | |
| LOW | omlx/engine/tts.py | 330 | CODE | |
| LOW | omlx/engine/vlm.py | 4748 | CODE | |
| LOW | omlx/engine/vlm.py | 4856 | CODE | |
| LOW | omlx/engine/vlm.py | 5008 | CODE | |
| LOW | omlx/engine/vlm.py | 5255 | CODE | |
| LOW | omlx/engine/distributed.py | 175 | CODE | |
| LOW | omlx/engine/distributed.py | 1132 | CODE | |
| LOW | omlx/engine/distributed.py | 1247 | CODE | |
| LOW | omlx/engine/distributed.py | 1510 | CODE | |
| LOW | omlx/engine/distributed.py | 1597 | CODE | |
| LOW | omlx/engine/dflash.py | 363 | CODE | |
| LOW | omlx/engine/dflash.py | 1776 | CODE | |
| LOW | omlx/engine/dflash.py | 2015 | CODE | |
| LOW | omlx/engine/dflash.py | 2202 | CODE | |
| LOW | omlx/engine/dflash.py | 2278 | CODE | |
| LOW | omlx/engine/batched.py | 1087 | CODE | |
| LOW | omlx/engine/batched.py | 1167 | CODE | |
| LOW | omlx/engine/batched.py | 1299 | CODE | |
| LOW | omlx/engine/batched.py | 1463 | CODE | |
| LOW | omlx/engine/base.py | 339 | CODE | |
| LOW | omlx/engine/base.py | 371 | CODE | |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_tool_calling.py | 2678 | # Gemma 4 robust fallback parser tests | COMMENT |
| MEDIUM⚡ | tests/test_integrations.py | 2176 | # the harness session default, so launch must not force a picker. | COMMENT |
| MEDIUM | tests/test_integrations.py | 2372 | # The harness refuses duplicate mapping keys, so each key lands once. | COMMENT |
| LOW | omlx/output_collector.py | 70 | # Replace: just use the new output | COMMENT |
| MEDIUM | omlx/scheduler.py | 10695 | # by omlx) would yield a list. Guard so the path stays robust | COMMENT |
| LOW | omlx/scheduler.py | 2944 | # If window_size itself is already >= max, just use window_size. | COMMENT |
| MEDIUM | omlx/cluster/strategy_benchmarks.py | 189 | """Return robust medians for each TP degree at the nearest context bucket.""" | STRING |
| LOW | omlx/utils/model_loading.py | 1550 | # The quant method may be already supported by mlx-lm; simply return None. | COMMENT |
| MEDIUM | omlx/integrations/dsh.py | 52 | # from these — a shell started *inside* a harness session exports them, which | COMMENT |
| MEDIUM⚡ | omlx/integrations/dsh.py | 365 | # The harness parser (js-yaml) rejects duplicate keys; PyYAML keeps the last. | COMMENT |
| MEDIUM⚡ | omlx/integrations/dsh.py | 620 | # The harness refuses to load a credential store with group/other bits. | COMMENT |
| MEDIUM⚡ | omlx/api/tool_calling.py | 1245 | # Gemma 4 robust fallback parser | COMMENT |
| MEDIUM | omlx/api/tool_calling.py | 2071 | # Gemma 4 only: try robust fallback that handles bare | COMMENT |
| LOW | omlx/api/tool_calling.py | 3832 | # Handle None or text format - just return original | 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/test_pooling_cache_append_inplace.py | 338 | # Step 1: row 0 completes 10 windows (40 tokens), row 1 completes 1 | COMMENT |
| LOW | tests/test_pooling_cache_append_inplace.py | 353 | # Step 2: row 0 completes nothing (3 tokens), row 1 completes 2 windows. | 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 | 1993 | # Step 2: Fallback - find max seq_len among all 4D tensors | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 1946 | # Step 1: Search for a sliceable KVCache layer (full attention) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 2039 | # 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/test_pooling_cache_append_inplace.py | 338 | # Step 1: row 0 completes 10 windows (40 tokens), row 1 completes 1 | COMMENT |
| LOW | tests/test_pooling_cache_append_inplace.py | 353 | # Step 2: row 0 completes nothing (3 tokens), row 1 completes 2 windows. | 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 | 1993 | # Step 2: Fallback - find max seq_len among all 4D tensors | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 1946 | # Step 1: Search for a sliceable KVCache layer (full attention) | COMMENT |
| LOW | omlx/cache/prefix_cache.py | 2039 | # Step 3: CacheList fallback — check sub-states for seq_len | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_audio_stt.py | 1188 | CODE | |
| MEDIUM | tests/test_mtp_prompt_priming.py | 1366 | CODE | |
| MEDIUM | tests/test_cluster_prompt_snapshot_integration.py | 45 | CODE | |
| MEDIUM | tests/test_audio_tts.py | 722 | CODE | |
| MEDIUM | tests/test_server_prefill_memory_handler.py | 179 | CODE | |
| MEDIUM | tests/test_sse_keepalive.py | 102 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_qwen35_mlx_vision_layout.py | 21 | {"placeholder": np.zeros((1,), dtype=np.float32)}, | CODE |
| LOW | omlx/cache/prefix_cache.py | 4781 | placeholder = state.get("placeholder") | CODE |
| LOW | omlx/cache/prefix_cache.py | 4784 | state["placeholder"] = placeholder | CODE |
| LOW | apps/omlx-web/omlx_web/static/js/purify.min.js | 2 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | apps/omlx-web/omlx_web/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 |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/omlx-web/omlx_web/static/js/gridstack-all.js | 2 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am | CODE |