Rapid-MLX is an open-source (Apache 2.0) OpenAI- and Anthropic-compatible LLM inference server for Apple Silicon, built on MLX, focused on reliable tool calling for coding agents. Up to 4× faster than Apple's MLX (mlx-lm) on the same weights.
This report summarizes scanner evidence for raullenchai/Rapid-MLX, a Python project with 3,959 GitHub stars. SynthScan examined 1,453,040 lines of code across 3084 source files, recording 34911 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 29.8 (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? 27003 finding(s).
Are imports declared and package/API names verified? 1932 finding(s).
Are wrappers, guards, and repeated structures necessary? 27332 finding(s).
Which changes need focused human review? 34911 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 34911 distinct pattern matches across 24 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 | bench/bench_ltx_video.py | 550 | def _wait_for_process_group_exit(process_group_id: int, timeout: float = 10) -> bool: | CODE |
| LOW | rapid_mlx/_tempfile_safe.py | 106 | def _ensure_atexit_registered() -> None: | CODE |
| LOW | rapid_mlx/_mlx_compat.py | 105 | def patched_new_thread_local_stream(device): | CODE |
| LOW | rapid_mlx/memory_cache.py | 195 | def _vendored_cache_class_names(cache: list[Any]) -> set[str]: | CODE |
| LOW | rapid_mlx/memory_cache.py | 210 | def _save_prompt_cache_compat(path: str, cache: list[Any], metadata: dict[str, str]): | CODE |
| LOW | rapid_mlx/memory_cache.py | 247 | def _checkpoints_sidecar_path(entry_path: str) -> str: | CODE |
| LOW | rapid_mlx/memory_cache.py | 252 | def _save_checkpoints_sidecar(path: str, cache: list[Any]) -> bool: | CODE |
| LOW | rapid_mlx/memory_cache.py | 293 | def _attach_checkpoints_sidecar(path: str, cache: list[Any], num_tokens: int) -> int: | CODE |
| LOW | rapid_mlx/memory_cache.py | 350 | def _load_prompt_cache_compat(path: str) -> list[Any]: | CODE |
| LOW | rapid_mlx/memory_cache.py | 640 | def _probe_write_bytes_per_sec(directory: str) -> float: | CODE |
| LOW | rapid_mlx/memory_cache.py | 676 | def _resolve_persist_min_free_disk_bytes() -> int: | CODE |
| LOW | rapid_mlx/memory_cache.py | 700 | def _persist_entry_disk_bytes(persist_cache: list[Any], num_tokens: int) -> int: | CODE |
| LOW | rapid_mlx/memory_cache.py | 937 | def _safetensors_cache_classes(path: str) -> list[str]: | CODE |
| LOW | rapid_mlx/memory_cache.py | 987 | def _cache_classes_compatible( | CODE |
| LOW | rapid_mlx/memory_cache.py | 1053 | def _resolve_env_cache_max_bytes() -> int: | CODE |
| LOW | rapid_mlx/memory_cache.py | 1845 | def _class_name_lies_about_trim(class_name: str) -> bool: | CODE |
| LOW | rapid_mlx/memory_cache.py | 2059 | def _turboquant_compress_cache( | CODE |
| LOW | rapid_mlx/memory_cache.py | 2112 | def _turboquant_decompress_cache(cache: list[Any]) -> list[Any]: | CODE |
| LOW | rapid_mlx/memory_cache.py | 2879 | def _enforce_hybrid_bound_locked(self) -> list[tuple[int, ...]]: | CODE |
| LOW | rapid_mlx/_download_gate.py | 225 | def reap_orphan_incomplete_blobs( | CODE |
| LOW | rapid_mlx/_download_gate.py | 492 | def _escape_variant_glob_literal(name: str) -> str: | CODE |
| LOW | rapid_mlx/_download_gate.py | 612 | def estimate_download_size_bytes(repo_id: str) -> int | None: | CODE |
| LOW | rapid_mlx/_download_gate.py | 640 | def _is_model_weight_filename(name: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 665 | def _numbered_shards_are_complete(snap_dir: str) -> bool | None: | CODE |
| LOW | rapid_mlx/_download_gate.py | 823 | def _safe_safetensors_manifest_parts(value: object) -> tuple[str, ...] | None: | CODE |
| LOW | rapid_mlx/_download_gate.py | 967 | def _is_nonempty_snapshot_manifest_file(path: str, snap_dir: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 996 | def _root_model_files_all_non_empty(snap_dir: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1187 | def _snapshot_is_complete_whisper_model(repo_id: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1229 | def _snapshot_is_complete_audio_model(repo_id: str, family: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1293 | def _snapshot_is_complete_split_model(repo_id: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1402 | def split_model_local_snapshot(repo_id: str) -> str | None: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1432 | def _snapshot_is_complete_wan_model(repo_id: str) -> bool: | CODE |
| LOW | rapid_mlx/_download_gate.py | 2055 | def _snapshot_is_complete_mflux_model(repo_id: str) -> bool: | CODE |
| LOW⚡ | rapid_mlx/model_aliases.py | 1091 | def _managed_hub_model_is_runnable(name: str) -> bool: | CODE |
| LOW⚡ | rapid_mlx/model_aliases.py | 1103 | def _resolve_external_model_path(name: str) -> str | None: | CODE |
| LOW | rapid_mlx/model_aliases.py | 517 | def _optional_positive_number(key: str) -> float | None: | CODE |
| LOW | rapid_mlx/model_aliases.py | 840 | def _assert_subfolder_is_unambiguous(profiles: dict[str, AliasProfile]) -> None: | CODE |
| LOW | rapid_mlx/model_aliases.py | 930 | def _is_explicit_path_spelling(name: str) -> bool: | CODE |
| LOW | rapid_mlx/model_aliases.py | 936 | def _looks_like_local_model_dir(path: str) -> bool: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1024 | def raise_if_draft_only_model(model_ref: object) -> None: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1157 | def _external_model_tree_is_contained(directory: str, roots: list[str]) -> bool: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1190 | def _external_model_root_values(raw: str) -> list[str]: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1210 | def _external_model_identifier_parts(name: str) -> list[str] | None: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1249 | def user_alias_reserved_names() -> frozenset[str]: | CODE |
| LOW⚡ | rapid_mlx/server.py | 701 | async def _finish_primary_demand_load() -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 719 | async def _prepare_primary_idle_unload() -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 726 | def _mirror_primary_lifecycle_state(engine: object, state: str) -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 767 | def _emit_primary_model_served_once(engine: object) -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 776 | def _emit_audio_model_served_once(engine: object, model_name: str) -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 783 | def _emit_embedding_model_served_once(engine: object, model_name: str) -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 790 | async def _finish_primary_demand_load_and_emit(engine: object) -> None: | CODE |
| LOW⚡ | rapid_mlx/server.py | 795 | def _build_primary_model_lifecycle(engine: object) -> PrimaryModelLifecycle: | CODE |
| LOW | rapid_mlx/server.py | 278 | def _bind_audio_worker_for_engine(engine: object | None) -> bool: | CODE |
| LOW | rapid_mlx/server.py | 417 | def _automatic_prefix_cache_persistence_enabled() -> bool: | CODE |
| LOW | rapid_mlx/server.py | 429 | async def _shutdown_save_prefix_cache() -> None: | CODE |
| LOW | rapid_mlx/server.py | 466 | async def _deferred_load_prefix_cache() -> None: | CODE |
| LOW | rapid_mlx/server.py | 501 | async def _drain_deferred_prefix_cache_load() -> None: | CODE |
| LOW | rapid_mlx/server.py | 626 | def _detect_hybrid_for_warmup(engine) -> bool: | CODE |
| LOW | rapid_mlx/server.py | 737 | def _enqueue_model_served_once( | CODE |
| LOW | rapid_mlx/server.py | 1770 | def _detect_native_tool_support() -> bool: | CODE |
| 21216 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 16 | # ── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 45 | # ── Interpreter + venv helpers (also sourced by tests/install) ──────────────── | COMMENT |
| MEDIUM | install.sh | 287 | # ── Banner ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 296 | # ── 1. Check platform ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 318 | # ── 2. Detect RAM → recommend model ────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 332 | # ── 3. Find or install Python 3.10+ ───────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 413 | # ── 4. Migrate from old install location ───────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 421 | # ── 5. Create or update venv + install ─────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 463 | # ── 6. Create symlinks ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 479 | # ── 7. Ensure ~/.local/bin is in PATH ──────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 500 | # ── 8. Verify + done ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 1751 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 1753 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 1806 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 1808 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 3081 | # ----------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 3083 | # ----------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 100 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 102 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 260 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 262 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 440 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 442 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 509 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/front_door.py | 511 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/_download_gate.py | 374 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/_download_gate.py | 390 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/server.py | 3547 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | rapid_mlx/server.py | 3550 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/server.py | 1749 | # ── Wire the unified exception handlers onto the production app ───── | COMMENT |
| MEDIUM | rapid_mlx/server.py | 3397 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/server.py | 3399 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/server.py | 3642 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/server.py | 3644 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/first_run.py | 69 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/first_run.py | 71 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/first_run.py | 125 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/first_run.py | 127 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/first_run.py | 163 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/first_run.py | 165 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/first_run.py | 211 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/first_run.py | 213 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/response_cache.py | 246 | # ── Determinism gate ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rapid_mlx/response_cache.py | 275 | # ── Cache key ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rapid_mlx/response_cache.py | 397 | # ── Module singleton ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 73 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 75 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 223 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 225 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 620 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 622 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 1166 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 1168 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 1737 | # ============================================================================= | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 1739 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | rapid_mlx/turboquant.py | 754 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | rapid_mlx/turboquant.py | 756 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | rapid_mlx/turboquant.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| 3570 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pytest.ini | 21 | addopts = | COMMENT |
| LOW | pyproject.toml | 41 | # default_stream / new_stream / new_thread_local_stream) are materialised | COMMENT |
| LOW | pyproject.toml | 61 | # (and therefore every serve / gemma-4 / DiffusionGemma launch) raises | COMMENT |
| LOW | pyproject.toml | 81 | # dedicated bump PR + Phase-0 re-audit rather than pinning here. | COMMENT |
| LOW | pyproject.toml | 101 | "certifi>=2024.2.2", | COMMENT |
| LOW | pyproject.toml | 121 | # The Homebrew formula handles activation automatically. | COMMENT |
| LOW | pyproject.toml | 141 | # mask kernel via ``llguidance.mlx``). PROMOTED FROM THE [guided] EXTRA | COMMENT |
| LOW | pyproject.toml | 161 | # imported lazily; tests/test_base_runtime_lazy_imports.py guards the CLI | COMMENT |
| LOW | pyproject.toml | 201 | # constraints and can also advance CLI users beyond the Desktop's validated | COMMENT |
| LOW | pyproject.toml | 221 | # assistant-drafter loader in | COMMENT |
| LOW | pyproject.toml | 301 | "tiktoken>=0.5.0", | COMMENT |
| LOW | pyproject.toml | 321 | # been crashing across multiple fix waves because pytest-asyncio | COMMENT |
| LOW | pyproject.toml | 341 | "prometheus_client>=0.16.0", | COMMENT |
| LOW | pyproject.toml | 361 | # Powers pr_validate's ADVISORY diff_coverage step (measure-only, never | COMMENT |
| LOW | pyproject.toml | 381 | # — MLX is legitimate there (it IS the engine). | COMMENT |
| LOW | pyproject.toml | 461 | # diff-cover major-pinned (parser couples to its footer) — see [test] note. | COMMENT |
| LOW | pyproject.toml | 481 | # in guided.py's degrade warning and referenced across docs — keeps | COMMENT |
| LOW | pyproject.toml | 501 | "scipy>=1.10.0", | COMMENT |
| LOW | pyproject.toml | 521 | # property-only ``data_path`` accessor — so the legacy API | COMMENT |
| LOW | pyproject.toml | 541 | # those families in the full [audio] extra avoids making the public engine | COMMENT |
| LOW | pyproject.toml | 561 | "imageio[ffmpeg]>=2.34.0; platform_system == 'Darwin' and python_version >= '3.11'", | COMMENT |
| LOW | pyproject.toml | 621 | # Telemetry v2 release stamp -- written ONLY by the release workflow | COMMENT |
| LOW | pyproject.toml | 761 | # and rationale in rapid_mlx/models/gemma4_vendored/__init__.py. | COMMENT |
| LOW | pyproject.toml | 781 | # lint exceptions local so the Rapid-owned engine integration stays strict. | COMMENT |
| LOW | rapid_mlx/_tempfile_safe.py | 301 | # under the same lock). Without this, the prior shape | COMMENT |
| LOW | rapid_mlx/_tempfile_safe.py | 321 | # Codex round-3 BLOCKING: unlink BEFORE discarding from | COMMENT |
| LOW | rapid_mlx/_mlx_compat.py | 61 | COMMENT | |
| LOW | rapid_mlx/memory_cache.py | 81 | headroom = cap - max(0, int(resident_bytes or 0)) | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 121 | DeepseekV4PoolingCache, | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 141 | # in every ``entry_K_tokens.bin`` — guarantees the entry file came | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 161 | # previous deploy (legacy-mode tokens.bin), then re-save under v3. | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1381 | # an mlx_lm.load_prompt_cache exception) bumps this counter so the | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1441 | "memory_utilization": round(self.memory_utilization, 4), | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1461 | COMMENT | |
| LOW | rapid_mlx/memory_cache.py | 1481 | # Protection is set by the CALLER and is NOT the same for the two disk-load | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1761 | # differs → every key is a unique superset), so prefix-subset eviction | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1781 | # ``is_trimmable()``, so we match ``class_name`` against a DENYLIST of the | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1801 | # Lenient substring match for vendor/variant names (e.g. "MambaCache2", | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 1821 | # advances ``start_position``). Trimming a front-dropped instance back to | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2181 | COMMENT | |
| LOW | rapid_mlx/memory_cache.py | 2201 | self._shared_refs: dict[int, list[Any]] = {} | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2321 | return cache_out, [] | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2361 | # lookup above, so any terminal we find here is strictly | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2621 | # If ANY layer is a non-trimmable recurrent-state cache (ArraysCache / | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3181 | # with a concurrent reader) would silently leave stale entry | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3261 | # single in-flight ``save_prompt_cache`` call can run past the | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3301 | ) | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3441 | # BEFORE the rename. Open errors are non-fatal — | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3501 | f"or set {PREFIX_CACHE_MIN_FREE_DISK_BYTES_ENV} (bytes, 0 " | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3521 | # in our staging dir that disagrees with what we just claimed in | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3621 | # wrong both when we aborted early AND when some entry files | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3701 | # Catch FileNotFoundError as a final guard against the recheck | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3721 | # cleanly, not raise a traceback up to the lifespan handler. | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3741 | # cache_dir mid-rename, observed on macOS Spotlight rebuilds) | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 3821 | ) | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4041 | if version > _TOKENS_FORMAT_VERSION_IN_INDEX: | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4101 | # BLOCKING-1 (#1100 codex round 2): STAGE-then-SWAP for the | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4121 | # In replace mode dedup + memory-fit are evaluated against the | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4141 | # forfeit the atomic all-or-nothing contract — not worth it for an | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4321 | if staged_memory + memory > self._max_memory: | COMMENT |
| 4008 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | bench/bench_ltx_video.py | 117 | except (psutil.Error, OSError): | CODE |
| HIGH | bench/bench_ltx_video.py | 492 | except (json.JSONDecodeError, KeyError, TypeError): | CODE |
| HIGH | bench/bench_ltx_video.py | 595 | except ProcessLookupError: | CODE |
| HIGH | bench/bench_ltx_video.py | 859 | except OSError: | CODE |
| HIGH | bench/bench_ltx_video.py | 866 | except (OSError, ValueError): | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 97 | except FileNotFoundError: | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 99 | except OSError: | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 248 | except OSError: | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 273 | except BaseException: # noqa: BLE001 — best-effort | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 279 | except OSError: | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 283 | except OSError: | CODE |
| HIGH | rapid_mlx/_tempfile_safe.py | 344 | except OSError: | CODE |
| HIGH | rapid_mlx/memory_cache.py | 451 | except OSError: | CODE |
| HIGH | rapid_mlx/memory_cache.py | 660 | except OSError: | CODE |
| HIGH | rapid_mlx/memory_cache.py | 740 | except OSError: | CODE |
| HIGH | rapid_mlx/memory_cache.py | 287 | except OSError: | CODE |
| HIGH | rapid_mlx/memory_cache.py | 1232 | except (TypeError, ValueError): | CODE |
| HIGH | rapid_mlx/memory_cache.py | 4515 | except Exception: # pragma: no cover — defensive | CODE |
| HIGH | rapid_mlx/_download_gate.py | 370 | except OSError: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 474 | except OSError: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 818 | except OSError: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 1170 | except Exception: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 368 | except FileNotFoundError: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 449 | except FileNotFoundError: | CODE |
| HIGH | rapid_mlx/_download_gate.py | 458 | except OSError: | CODE |
| HIGH | rapid_mlx/model_aliases.py | 1202 | except (TypeError, ValueError): | CODE |
| HIGH | rapid_mlx/server.py | 662 | except Exception: | CODE |
| HIGH | rapid_mlx/server.py | 2559 | except Exception: # stale prior identity; current request still owns load | CODE |
| HIGH | rapid_mlx/server.py | 2940 | except Exception: # pragma: no cover — defensive | CODE |
| HIGH | rapid_mlx/server.py | 3667 | except BaseException: | CODE |
| HIGH | rapid_mlx/mllm_cache_compat.py | 61 | except ImportError: | CODE |
| HIGH | rapid_mlx/user_aliases.py | 153 | except FileNotFoundError: | CODE |
| HIGH | rapid_mlx/user_aliases.py | 179 | except OSError: | CODE |
| HIGH | rapid_mlx/benchmark.py | 101 | except Exception: | CODE |
| HIGH | rapid_mlx/qwen35_fused_gdn_decode.py | 417 | except Exception: | CODE |
| HIGH | rapid_mlx/optimizations.py | 92 | except Exception: | CODE |
| HIGH | rapid_mlx/hybrid_state_checkpoints.py | 226 | except Exception: | CODE |
| HIGH | rapid_mlx/hybrid_state_checkpoints.py | 238 | except Exception: | CODE |
| HIGH | rapid_mlx/_parent_watchdog.py | 125 | except Exception: # pragma: no cover — defensive against broken stderr | CODE |
| HIGH | rapid_mlx/_parent_watchdog.py | 129 | except Exception: # pragma: no cover — defensive | CODE |
| HIGH | rapid_mlx/_parent_watchdog.py | 145 | except OSError: # pragma: no cover | CODE |
| HIGH | rapid_mlx/output_router_harmony.py | 573 | except TypeError: | CODE |
| HIGH | rapid_mlx/_version_check.py | 189 | except OSError: | CODE |
| HIGH | rapid_mlx/_version_check.py | 356 | except Exception: # noqa: BLE001 — never break the CLI | CODE |
| HIGH | rapid_mlx/engine_core.py | 1951 | except Exception: | CODE |
| HIGH | rapid_mlx/engine_core.py | 537 | except asyncio.CancelledError: | CODE |
| HIGH | rapid_mlx/engine_core.py | 972 | except asyncio.TimeoutError: | CODE |
| HIGH | rapid_mlx/engine_core.py | 877 | except Exception: | CODE |
| HIGH | rapid_mlx/engine_core.py | 1076 | except Exception: | CODE |
| HIGH | rapid_mlx/engine_core.py | 997 | except Exception: | CODE |
| HIGH | rapid_mlx/engine_core.py | 1122 | except Exception: | CODE |
| HIGH | rapid_mlx/_uvicorn.py | 141 | except KeyboardInterrupt: | CODE |
| HIGH | rapid_mlx/_uvicorn.py | 109 | except Exception: | CODE |
| HIGH | rapid_mlx/cli.py | 132 | except Exception: | CODE |
| HIGH | rapid_mlx/cli.py | 152 | except Exception: | CODE |
| HIGH | rapid_mlx/cli.py | 868 | except BaseException: # noqa: BLE001 — see comment above | CODE |
| HIGH | rapid_mlx/cli.py | 1045 | except Exception: # pragma: no cover — defensive | CODE |
| HIGH | rapid_mlx/cli.py | 1055 | except Exception: # pragma: no cover — defensive | CODE |
| HIGH | rapid_mlx/cli.py | 1552 | except Exception: | CODE |
| HIGH | rapid_mlx/cli.py | 1652 | except Exception: | CODE |
| 473 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/repro_mtp_forced_k_parity.py | 13 | CODE | |
| LOW | bench/bench_continuous_mtp_server.py | 13 | CODE | |
| LOW | bench/bench_qwen4_prompt_lookup.py | 4 | CODE | |
| LOW | bench/bench_spec_decode_mtp.py | 39 | CODE | |
| LOW | bench/repro_ppt_qwen35_9b_colab.py | 8 | CODE | |
| LOW | bench/bench_ltx_video.py | 11 | CODE | |
| LOW | bench/bench_radix_vs_hash.py | 44 | CODE | |
| LOW | rapid_mlx/_tempfile_safe.py | 65 | CODE | |
| LOW | rapid_mlx/_mlx_compat.py | 43 | CODE | |
| LOW | rapid_mlx/leaderboard_links.py | 16 | CODE | |
| LOW | rapid_mlx/_pysample.py | 12 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 25 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 3165 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 4018 | CODE | |
| LOW | rapid_mlx/front_door.py | 23 | CODE | |
| LOW | rapid_mlx/_seeded_sampler.py | 52 | CODE | |
| LOW | rapid_mlx/chat_render.py | 4 | CODE | |
| LOW | rapid_mlx/_download_gate.py | 43 | CODE | |
| LOW | rapid_mlx/_banner.py | 15 | CODE | |
| LOW | rapid_mlx/server.py | 59 | CODE | |
| LOW | rapid_mlx/server.py | 89 | CODE | |
| LOW | rapid_mlx/server.py | 89 | CODE | |
| LOW | rapid_mlx/server.py | 93 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 94 | CODE | |
| LOW | rapid_mlx/server.py | 120 | CODE | |
| LOW | rapid_mlx/server.py | 120 | CODE | |
| LOW | rapid_mlx/server.py | 120 | CODE | |
| LOW | rapid_mlx/server.py | 120 | CODE | |
| LOW | rapid_mlx/server.py | 120 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| LOW | rapid_mlx/server.py | 127 | CODE | |
| 1690 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/bench_spec_decode_mtp.py | 679 | except Exception as exc: # pragma: no cover — bench | CODE |
| LOW | bench/bench_ltx_video.py | 1347 | except Exception as exc: | CODE |
| LOW | bench/bench_ltx_video.py | 1355 | except Exception as exc: | CODE |
| LOW | bench/bench_ltx_video.py | 1433 | except Exception: | CODE |
| LOW | rapid_mlx/mllm_cache.py | 156 | except Exception as e: | CODE |
| LOW | rapid_mlx/memory_cache.py | 283 | except Exception as exc: | CODE |
| LOW | rapid_mlx/memory_cache.py | 343 | except Exception as exc: | CODE |
| LOW | rapid_mlx/memory_cache.py | 1042 | except Exception as e: | CODE |
| LOW | rapid_mlx/memory_cache.py | 1941 | except Exception: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 2352 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 2740 | except Exception as exc: # pragma: no cover | CODE |
| LOW | rapid_mlx/memory_cache.py | 2782 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 2864 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 2957 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 2990 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 3037 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 3485 | except Exception as e: | CODE |
| LOW | rapid_mlx/memory_cache.py | 4406 | except Exception as e: | CODE |
| LOW | rapid_mlx/memory_cache.py | 4476 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 4515 | except Exception: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 4540 | except Exception as exc: # pragma: no cover — defensive | CODE |
| LOW | rapid_mlx/memory_cache.py | 4570 | except Exception as rexc: # pragma: no cover | CODE |
| LOW | rapid_mlx/front_door.py | 125 | except Exception: | CODE |
| LOW | rapid_mlx/front_door.py | 158 | except Exception: | CODE |
| LOW | rapid_mlx/front_door.py | 180 | except Exception: | CODE |
| LOW | rapid_mlx/front_door.py | 212 | except Exception: | CODE |
| LOW | rapid_mlx/front_door.py | 373 | except Exception: | CODE |
| LOW | rapid_mlx/front_door.py | 730 | except Exception as exc: | CODE |
| LOW | rapid_mlx/front_door.py | 766 | except Exception as exc: # the foreground server must outlive a bad launch | CODE |
| MEDIUM | rapid_mlx/_download_gate.py | 323 | def _call() -> None: | CODE |
| MEDIUM | rapid_mlx/_download_gate.py | 538 | def _call() -> None: | CODE |
| LOW | rapid_mlx/_download_gate.py | 326 | except Exception as exc: # pragma: no cover - defensive | CODE |
| LOW | rapid_mlx/_download_gate.py | 403 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 541 | except Exception as exc: # pragma: no cover - defensive | CODE |
| LOW | rapid_mlx/_download_gate.py | 594 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 636 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1170 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1225 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1289 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1398 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1427 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1582 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 1921 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 2069 | except Exception: | CODE |
| LOW | rapid_mlx/_download_gate.py | 2127 | except Exception: | CODE |
| LOW⚡ | rapid_mlx/model_aliases.py | 1099 | except Exception: | CODE |
| LOW | rapid_mlx/model_aliases.py | 888 | except Exception: | CODE |
| LOW | rapid_mlx/model_aliases.py | 965 | except Exception: # noqa: BLE001 — the probe must never break resolution | CODE |
| LOW | rapid_mlx/model_aliases.py | 993 | except Exception: # noqa: BLE001 — the gate must never break resolution | CODE |
| LOW | rapid_mlx/model_aliases.py | 1255 | except Exception: | CODE |
| LOW | rapid_mlx/model_aliases.py | 1337 | except Exception: | CODE |
| MEDIUM | rapid_mlx/server.py | 3651 | def wrapped(*args, **kwargs): | CODE |
| LOW⚡ | rapid_mlx/server.py | 694 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | rapid_mlx/server.py | 696 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | rapid_mlx/server.py | 710 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | rapid_mlx/server.py | 761 | except Exception: | CODE |
| LOW⚡ | rapid_mlx/server.py | 3529 | except Exception as e: # pragma: no cover - defensive | CODE |
| LOW⚡ | rapid_mlx/server.py | 3537 | except Exception as e: | CODE |
| LOW | rapid_mlx/server.py | 497 | except Exception as _e: # noqa: BLE001 | CODE |
| LOW | rapid_mlx/server.py | 520 | except Exception as _e: # noqa: BLE001 | CODE |
| 1419 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 271 | # When sourced by the test harness we only want the definitions above, not the | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 4627 | # historical — but running the enforcer keeps the invariant robust. | COMMENT |
| MEDIUM | rapid_mlx/server.py | 4139 | # in-process ``main()`` call (test harness, embedded usage) without | COMMENT |
| LOW | rapid_mlx/output_collector.py | 70 | # Replace: just use the new output | COMMENT |
| MEDIUM | rapid_mlx/benchmark.py | 441 | """Explain quantum computing in comprehensive detail. You should cover all of the following topics thoroughly: | STRING |
| MEDIUM | rapid_mlx/benchmark.py | 448 | """Write a comprehensive and detailed guide to building a production-ready REST API with Python Flask. Include a | STRING |
| MEDIUM | rapid_mlx/client_header.py | 32 | #: The agent runtime / agent test harness. | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 6344 | # in-process ``serve_command`` call (test harness, embedded usage) | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 7730 | # produces a partial harness payload (only the filtered keys), which | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 7733 | # ``--tier harness --base-url`` (no --submit) — but a future caller | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 7765 | # Phase 1: run the tier dispatcher to capture smoke/harness data. | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 8294 | # requested smoke/harness work for the schema-v2 sub-objects and | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 10679 | # snapshot_download will retry from HF with its own (more robust) | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 13295 | # exceeds the old hardcoded 15 (e.g. "deepseek-harness", 16 chars) | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 1588 | # (this only happens under bench harness callers, where uids are | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 2039 | # behaviour of honouring the disable — under bench-harness | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 2104 | # If ``uid_to_request_id`` is not plumbed (bench harness) | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 2293 | # bookkeeping map is None (bench-harness path) — the | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 2312 | # plumbed (bench harness); the reuse gate treats | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 4776 | # bench harness, embedded test stubs) that construct | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 7818 | # this helper is robust against fakes / older cache variants | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 11598 | # Guarded by an import-try so a fresh test harness that doesn't | COMMENT |
| MEDIUM | rapid_mlx/model_profile.py | 368 | # This is harness metadata only and does not alter serving or parser routing. | COMMENT |
| MEDIUM | rapid_mlx/_mxfp4_moe_guardrail.py | 178 | # that is robust against that env contamination AND gives the | COMMENT |
| MEDIUM | rapid_mlx/kv_quant_gate.py | 226 | # Shape mismatch is a harness bug, not a model signal — skip the step. | COMMENT |
| MEDIUM | rapid_mlx/mllm_batch_generator.py | 3249 | # hash (robust to the per-request temp-file paths ``all_images`` holds). | COMMENT |
| MEDIUM | rapid_mlx/tool_parsers/ui_tars_tool_parser.py | 143 | # The space-and-paren forms make these robust against shuffled | COMMENT |
| MEDIUM | rapid_mlx/tool_parsers/ui_tars_tool_parser.py | 834 | # the Anthropic computer-tool harness) receive the documented | COMMENT |
| MEDIUM | rapid_mlx/middleware/probe_fastpath.py | 228 | # state (lifespan crash, embedded harness mid-tear- | COMMENT |
| LOW | rapid_mlx/middleware/body_size.py | 103 | # endpoints have no body and the middleware would just add overhead. | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_langchain.py | 11 | # ``results`` is read by the ``rapid-mlx bench --tier harness`` path | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_langchain.py | 14 | # It MUST be defined at module level so the harness can pick it up — PR | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_langchain.py | 16 | # ``pytest`` collection from triggering ``exit()``, which left the harness | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_langchain.py | 209 | # 2. Harness load: ``rapid-mlx bench --tier harness`` calls | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_langchain.py | 213 | # PR #660 fix without re-introducing the empty-results harness bug. | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_aider.sh | 2 | # Aider CLI integration harness against a running `rapid-mlx serve`. | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_aider.sh | 46 | # aborts the harness instead of running aider from the wrong directory. | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_aider.sh | 109 | # could leak a running ``aider``/LiteLLM process past harness exit. We | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_aider.sh | 187 | # of aborting the harness before we can print the diagnostic tail. | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_hermes.py | 163 | # for this specific harness setup. Caller should SKIP. | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_hermes.py | 40 | # The file ships as a runtime doctor harness; pytest is optional there. | COMMENT |
| MEDIUM | rapid_mlx/bench/pflash_replication.py | 92 | # opt-in replication harness would be more code than the | COMMENT |
| MEDIUM | rapid_mlx/bench/pflash_replication.py | 93 | # harness itself; the maintainer running the bench can compare | COMMENT |
| MEDIUM⚡ | rapid_mlx/bench/tier_runner.py | 36 | # ``--tier harness`` and the release_check_m3.sh G7b gate. Keep this | COMMENT |
| MEDIUM⚡ | rapid_mlx/bench/tier_runner.py | 39 | # — if a harness is added/removed here, both must be updated too. | COMMENT |
| MEDIUM⚡ | rapid_mlx/bench/tier_runner.py | 41 | # ``deepseek-harness`` is appended rather than slotted in beside the other | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 144 | # Per-profile wall-clock cap for the harness sweep. One bad harness | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 158 | # Server health-probe timeout used between harness profiles. The probe | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1083 | # Render a human-readable summary line per harness. | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1193 | # the active-server release into the harness session and let it | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1203 | # NOTE: do NOT swallow exceptions here. The harness session | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1220 | # outer ``with`` so a tier added after harness sees the right | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1354 | # Hand the harness sweep a session that can health-check | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1378 | # DON'T close the session here even though harness is | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 1390 | # adding a tier AFTER harness in the future won't see | COMMENT |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 190 | name: str # "smoke" | "speed" | "harness" | CODE |
| MEDIUM | rapid_mlx/bench/tier_runner.py | 9 | rapid-mlx bench <model> --tier all # smoke → speed → harness | STRING |
| MEDIUM | rapid_mlx/agents/setup.py | 417 | # 0.2 contract (issues #4040, harness-lab 2026-10-02): the same | COMMENT |
| MEDIUM⚡ | rapid_mlx/agents/testing.py | 1062 | # advertised context window is below what the harness's tool-rich | COMMENT |
| MEDIUM⚡ | rapid_mlx/agents/testing.py | 1067 | # and report FAIL — which is dishonest, it's a harness-config | COMMENT |
| 207 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | rapid_mlx/_download_gate.py | 2034 | # A non-string value (list, number, null) is enough to make | COMMENT |
| HIGH | rapid_mlx/log_file.py | 63 | return "discarded (/dev/null)" | CODE |
| HIGH⚡ | rapid_mlx/kv_quant_gate.py | 166 | mean_kl: Mean forward KL ``D(P_baseline || P_candidate)`` in nats over | STRING |
| HIGH | rapid_mlx/kv_quant_gate.py | 323 | null). Used to require the candidate to preserve the baseline's structure. | STRING |
| HIGH | rapid_mlx/qwen35_moe_router.py | 61 | if (best == group_best && best_i == group_best_i) { | CODE |
| HIGH | rapid_mlx/tool_parsers/muse_tool_parser.py | 325 | * ``null`` -> None only when the schema explicitly permits null; | STRING |
| HIGH | rapid_mlx/tool_parsers/gemma4_tool_parser.py | 441 | # Try to parse as JSON literal (int, float, bool, null). Catch | COMMENT |
| HIGH | rapid_mlx/middleware/body_size.py | 579 | "code": "request_too_large", "param": null}} | STRING |
| HIGH | rapid_mlx/kernels/qsa_indexed_splitk.py | 193 | valid_key = key_index >= 0 && key_index < key_length; | CODE |
| HIGH | rapid_mlx/kernels/qsa_block_sparse.py | 64 | if (physical_start < 0 || physical_start > key_length - BLOCK_SIZE) { | CODE |
| HIGH | rapid_mlx/kernels/qsa_block_sparse.py | 113 | if (key_index < 0 || key_index >= key_length) { | CODE |
| HIGH | rapid_mlx/kernels/qwen4_fused_gdn_decode.py | 187 | return (lo == -inf || hi == inf) | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/matmul.py | 118 | if (m < M && n < N) | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 267 | if (n < N && c == 0) OUT[size_t(r) * N + n] = bfloat(v); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 353 | if (row < R && n < N) OUT[size_t(row) * N + n] = bfloat(acc[rt][t][e]); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 370 | if (row < R && n < N) OUT[size_t(row) * N + n] = bfloat(v[0]); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 540 | if (row < R && n < N) OUT[size_t(row) * N + n] = bfloat(acc[rt][t][e]); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 557 | if (row < R && n < N) OUT[size_t(row) * N + n] = bfloat(v[0]); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 660 | if (n < N && c == 0) OUT[size_t(r) * N + n] = bfloat(v); | CODE |
| HIGH | rapid_mlx/kernels/lane_matmul/simd.py | 743 | if (lane == 0 && n0 + u < N) OUT[size_t(r0 + r) * N + n0 + u] = bfloat(total); | CODE |
| HIGH | rapid_mlx/headless_service/logs.py | 77 | "note: the service discards server output (--log-file /dev/null); " | CODE |
| HIGH | rapid_mlx/headless_service/install.py | 181 | "/dev/null, /dev/stderr or /dev/stdout." | CODE |
| HIGH | rapid_mlx/runtime/optional_runtime.py | 113 | f" brew uninstall rapid-mlx && uv tool install {shlex.quote(pinned)}" | CODE |
| HIGH | rapid_mlx/runtime/base_runtime.py | 60 | f" brew uninstall rapid-mlx && uv tool install 'rapid-mlx=={version}'" | CODE |
| HIGH | rapid_mlx/utils/chat_template.py | 1429 | is undefined, while arbitrary outer conditions make the advertised | STRING |
| HIGH | rapid_mlx/mcp/types.py | 41 | ``{"mcpServers": null}``) raises rather than silently falling back. | STRING |
| HIGH | rapid_mlx/models/gemma4_text.py | 640 | # * ``None`` reaching here means the key was ABSENT (not explicit null, | COMMENT |
| HIGH | rapid_mlx/models/gemma4_text.py | 660 | # ``TypeError`` on a ``None`` that reached it via an explicit config null). | COMMENT |
| HIGH | rapid_mlx/models/gemma4_vendored/__init__.py | 8 | lean; but a fresh `pip install rapid-mlx==0.10.0 && rapid-mlx serve | STRING |
| HIGH | …pid_mlx/models/deepseek_v41_native/affine_route_qmv.py | 30 | if (route >= ROUTES || output_base >= OUT) { | CODE |
| HIGH | …pid_mlx/models/deepseek_v41_native/affine_route_qmv.py | 93 | if (lane == 0 && output_base + result < OUT) { | CODE |
| HIGH | rapid_mlx/spec_decode/mtp/quantized_argmax.py | 179 | if (simd_gid == 0 && simd_lid == 0) { | CODE |
| HIGH | rapid_mlx/community_bench/hardware.py | 159 | submission still ships without it (schema allows null). | STRING |
| HIGH | rapid_mlx/api/models.py | 523 | # null, garbage like ``"banana"``) with HTTP 200 — the field was | COMMENT |
| HIGH | rapid_mlx/api/models.py | 977 | # the null, but many existing clients (and the response shape | COMMENT |
| HIGH | rapid_mlx/api/models.py | 1877 | # bool, null) are rejected with a clear envelope BEFORE Pydantic's | COMMENT |
| HIGH | rapid_mlx/api/tool_grammar.py | 1095 | * EVERYTHING ELSE (number / integer / boolean / object / array / null) -> | STRING |
| HIGH | rapid_mlx/api/responses_adapter.py | 517 | shape). Only a non-null string counts; ``{"effort": null}`` / | STRING |
| HIGH | rapid_mlx/service/helpers.py | 2153 | # NON-NULL ``effort`` only: ``reasoning={"effort": null}`` and | COMMENT |
| HIGH | rapid_mlx/routes/models.py | 716 | three-way (text / image / null) shape instead of the documented | STRING |
| HIGH | rapid_mlx/routes/health.py | 463 | # Always emit an object (never null) so dashboards with strict | COMMENT |
| HIGH | rapid_mlx/routes/chat.py | 1728 | # ABSENT (or null) ``parameters`` == the tool takes NO arguments. | COMMENT |
| HIGH | rapid_mlx/routes/anthropic.py | 1472 | # (explicit null) are accepted by the count_tokens contract — | COMMENT |
| HIGH | evals/coherence_gate.py | 108 | f"assistant content must be a string or null, got {type(content).__name__}" | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 553 | return r.width > 2 && r.height > 2 && s.visibility !== 'hidden' && | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 554 | s.display !== 'none' && r.bottom > 0 && r.right > 0 && | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 555 | r.top < innerHeight && r.left < innerWidth; | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 566 | const label = String(e.innerText || e.value || e.getAttribute('aria-label') || | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 567 | e.placeholder || e.title || e.alt || '').trim().replace(/\s+/g, ' ').slice(0, 200); | CODE |
| HIGH⚡ | tools/gui_verifier_cua_poc/run_poc.py | 577 | sponsored: card ? /(^|\s)Sponsored(\s|$)/i.test(cardText) : null, | CODE |
| HIGH | tools/gui_verifier_cua_poc/run_poc.py | 679 | text: String(a.innerText || a.value || a.getAttribute?.('aria-label') || a.placeholder || '').trim().replace | CODE |
| HIGH⚡ | tests/test_gemma4_grammar_558.py | 1009 | "code", ["a < b && c > d", "vector<int> v", "obj = {x:1}", "print('ok')"] | CODE |
| HIGH | tests/test_gemma4_grammar_558.py | 796 | "a < b && c > d", | CODE |
| HIGH | tests/test_reasoning_content_null_rescue.py | 1023 | strict-null, but the sentinel-absence assertion is what | STRING |
| HIGH | tests/test_envelope_field_extraction.py | 11 | "param":null,"code":null}} | STRING |
| HIGH⚡ | tests/test_dev_verify.py | 249 | ("synthetic:fail", "lint", "echo before-failure && exit 3"), | CODE |
| HIGH⚡ | tests/test_dev_verify.py | 509 | command="echo build-boom && exit 1", | CODE |
| HIGH | tests/test_dev_verify.py | 462 | monkeypatch.setattr(dev_verify, "LINT_COMMAND", "echo boom-from-test && exit 9") | CODE |
| HIGH | tests/test_no_pydantic_error_leak.py | 15 | "v/missing","type":"invalid_request_error","code":null, | STRING |
| HIGH | tests/test_no_pydantic_error_leak.py | 16 | "param":null}} | STRING |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bench/repro_mtp_forced_k_parity.py | 200 | CODE | |
| LOW | bench/bench_spec_decode_mtp.py | 612 | CODE | |
| LOW | bench/bench_ltx_video.py | 455 | CODE | |
| LOW | bench/bench_ltx_video.py | 614 | CODE | |
| LOW | bench/bench_ltx_video.py | 1380 | CODE | |
| LOW | rapid_mlx/_tempfile_safe.py | 201 | CODE | |
| LOW | rapid_mlx/mllm_cache.py | 102 | CODE | |
| LOW | rapid_mlx/_pysample.py | 36 | CODE | |
| LOW | rapid_mlx/_pysample.py | 50 | CODE | |
| LOW | rapid_mlx/_pysample.py | 76 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 293 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 350 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 803 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 1178 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 1545 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 2271 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 2295 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 2585 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 3085 | CODE | |
| LOW | rapid_mlx/memory_cache.py | 3868 | CODE | |
| LOW | rapid_mlx/_download_gate.py | 708 | CODE | |
| LOW | rapid_mlx/_download_gate.py | 1293 | CODE | |
| LOW | rapid_mlx/_download_gate.py | 1432 | CODE | |
| LOW | rapid_mlx/_download_gate.py | 1735 | CODE | |
| LOW | rapid_mlx/model_aliases.py | 136 | CODE | |
| LOW | rapid_mlx/model_aliases.py | 1103 | CODE | |
| LOW | rapid_mlx/model_aliases.py | 1157 | CODE | |
| LOW | rapid_mlx/server.py | 2264 | CODE | |
| LOW | rapid_mlx/server.py | 3026 | CODE | |
| LOW | rapid_mlx/benchmark.py | 769 | CODE | |
| LOW | rapid_mlx/benchmark.py | 1837 | CODE | |
| LOW | rapid_mlx/qwen35_fused_gdn_decode.py | 221 | CODE | |
| LOW | rapid_mlx/coherence.py | 82 | CODE | |
| LOW | rapid_mlx/request.py | 44 | CODE | |
| LOW | rapid_mlx/multimodal_processor.py | 290 | CODE | |
| LOW | rapid_mlx/compiled_decode.py | 463 | CODE | |
| LOW | rapid_mlx/compiled_decode.py | 286 | CODE | |
| LOW | rapid_mlx/_version_check.py | 194 | CODE | |
| LOW | rapid_mlx/engine_core.py | 755 | CODE | |
| LOW | rapid_mlx/engine_core.py | 1143 | CODE | |
| LOW | rapid_mlx/engine_core.py | 1497 | CODE | |
| LOW | rapid_mlx/model_metadata.py | 353 | CODE | |
| LOW | rapid_mlx/_uvicorn.py | 47 | CODE | |
| LOW | rapid_mlx/cli_parser.py | 33 | CODE | |
| LOW | rapid_mlx/gradio_app.py | 114 | CODE | |
| LOW | rapid_mlx/gradio_app.py | 258 | CODE | |
| LOW | rapid_mlx/gradio_app.py | 129 | CODE | |
| LOW | rapid_mlx/cli.py | 330 | CODE | |
| LOW | rapid_mlx/cli.py | 540 | CODE | |
| LOW | rapid_mlx/cli.py | 1659 | CODE | |
| LOW | rapid_mlx/cli.py | 1946 | CODE | |
| LOW | rapid_mlx/cli.py | 2543 | CODE | |
| LOW | rapid_mlx/cli.py | 3050 | CODE | |
| LOW | rapid_mlx/cli.py | 5111 | CODE | |
| LOW | rapid_mlx/cli.py | 5390 | CODE | |
| LOW | rapid_mlx/cli.py | 7835 | CODE | |
| LOW | rapid_mlx/cli.py | 8664 | CODE | |
| LOW | rapid_mlx/cli.py | 8904 | CODE | |
| LOW | rapid_mlx/cli.py | 9149 | CODE | |
| LOW | rapid_mlx/cli.py | 9430 | CODE | |
| 853 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 495 | # F5-TTS (pure-MLX, no torch): EN+ZH multilingual + zero-shot voice cloning. | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 2483 | # This handles the agentic pattern: same system+context prefix | COMMENT |
| MEDIUM | rapid_mlx/memory_cache.py | 3740 | # PermissionError from a fs-event-driven antivirus touching | COMMENT |
| MEDIUM | rapid_mlx/server.py | 4299 | # Pre-load embedding model if specified. The H-08 guard already | COMMENT |
| MEDIUM | rapid_mlx/coherence.py | 55 | # may leave chain-of-thought in the visible message, so the gate strips it | COMMENT |
| MEDIUM | rapid_mlx/multimodal_processor.py | 127 | # then either emit an empty completion (case in #457) or hallucinate plausible | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 1266 | # ``Model:`` line prints before ``Pre-loading embedding model:``). | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 4573 | # no-op for them and every agentic turn re-prefills the whole accumulated | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 6464 | # Configure --no-thinking: suppress chain-of-thought in chat template | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 6887 | # Pre-load embedding model if specified. | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 12389 | # value, raise the default from 2048 to 4096 so the reasoning trace + | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 12425 | # otherwise emit raw chain-of-thought to stdout AND, on the default | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 13386 | # Detect model + context window from running server. | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 13394 | # Claude Code does not expose the context window in its static profile | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 13407 | # User specified model — look up *that* model's context window | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 5418 | # suffix get a prefix cache hit (critical for agentic multi-turn). | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 5974 | # batch together, fixing issue where Claude Code's big agentic request | COMMENT |
| MEDIUM | rapid_mlx/scheduler.py | 10331 | # Extract cache for future reuse (critical for agentic multi-turn) | COMMENT |
| MEDIUM | rapid_mlx/model_profile.py | 367 | # agentic sampling; literal false records a measured model-side inability. | COMMENT |
| MEDIUM | rapid_mlx/_mxfp4_moe_guardrail.py | 290 | # Both guardrails gate on MoE. Bail early — keeps the path | COMMENT |
| MEDIUM | rapid_mlx/mllm_batch_generator.py | 3189 | # hallucinate ("a vibrant red jellyfish" for a 404'd URL). | COMMENT |
| MEDIUM | rapid_mlx/mllm_batch_generator.py | 3241 | # drop hallucinates; the typed error lets the scheduler | COMMENT |
| MEDIUM | rapid_mlx/mllm_batch_generator.py | 3297 | # to attend to and silently hallucinates a generic reply, so | COMMENT |
| MEDIUM | rapid_mlx/tool_parsers/hermes_tool_parser.py | 526 | for match in lenient_matches[:1]: # Only first to avoid hallucinations | CODE |
| MEDIUM | rapid_mlx/tool_parsers/ui_tars_tool_parser.py | 402 | # we strip this preamble out of ``content`` so the same chain-of-thought | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_hermes.py | 160 | # context window is below what Hermes's full tool-rich prompt | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_hermes.py | 167 | # literal ``"context window"`` substring would miss when | COMMENT |
| MEDIUM⚡ | rapid_mlx/_integration_tests/test_hermes.py | 575 | # Deep agentic tests (requires hermes binary, tests real workflows) | COMMENT |
| MEDIUM | rapid_mlx/launch/claude_code.py | 168 | # unknown-model warning from falling back to a guessed context window. | COMMENT |
| MEDIUM⚡ | rapid_mlx/agents/testing.py | 1062 | # advertised context window is below what the harness's tool-rich | COMMENT |
| MEDIUM⚡ | rapid_mlx/agents/testing.py | 1073 | # wraps stderr at ~100 cols, so a literal ``"context window"`` | COMMENT |
| MEDIUM | rapid_mlx/agents/testing.py | 1967 | # SKIP exists so deep agentic tests can signal "the environment | COMMENT |
| MEDIUM | …els/mlx_vlm_vendored/speculative/drafters/mtp_split.py | 277 | # --- shared orchestration (do not override) --- | COMMENT |
| MEDIUM | rapid_mlx/reasoning/think_parser.py | 611 | # chain-of-thought. Without the content correction, the | COMMENT |
| MEDIUM | rapid_mlx/reasoning/qwen3_parser.py | 21 | # mode. The model is supposed to emit its chain-of-thought followed by | COMMENT |
| MEDIUM | rapid_mlx/reasoning/qwen3_parser.py | 32 | # overwhelmingly signal chain-of-thought, identified by (a) being | COMMENT |
| MEDIUM | rapid_mlx/reasoning/qwen3_parser.py | 48 | # ``thinking process``, ``thought process``, ``chain-of-thought``, | COMMENT |
| MEDIUM | rapid_mlx/reasoning/qwen3_parser.py | 66 | # "Here is the chain-of-thought:" / "Here's the scratchpad:". | COMMENT |
| MEDIUM | rapid_mlx/reasoning/cohere_command_parser.py | 220 | # Non-streaming orchestration performs extraction and then asks the | COMMENT |
| MEDIUM | rapid_mlx/audio/tts.py | 627 | # path): EN+ZH multilingual, zero-shot voice cloning, no torch. It fills | COMMENT |
| MEDIUM | rapid_mlx/audio/tts.py | 754 | # ``exaggeration`` and zero-shot cloning through | COMMENT |
| MEDIUM | rapid_mlx/audio/tts.py | 789 | # Qwen3-TTS Base = zero-shot voice cloning: forward the | COMMENT |
| MEDIUM⚡ | rapid_mlx/audio/stt.py | 38 | # hallucination. The documented anti-hallucination guards inside | COMMENT |
| MEDIUM | rapid_mlx/audio/stt.py | 50 | # post-hoc hallucination detection. We use the bundled | COMMENT |
| MEDIUM | rapid_mlx/audio/stt.py | 105 | # lifetime of the server — reintroducing the silence hallucination | COMMENT |
| MEDIUM | rapid_mlx/audio/stt.py | 866 | # into slow random hallucinations ("hope hope ...", "song song | COMMENT |
| MEDIUM | rapid_mlx/api/models.py | 1199 | # wasted the context window. | COMMENT |
| MEDIUM | rapid_mlx/api/models.py | 2666 | # Max prompt-token context window the loaded engine advertises | COMMENT |
| MEDIUM | rapid_mlx/api/models.py | 2700 | # the configured embedding model with ``"embedding"`` so clients | COMMENT |
| MEDIUM | rapid_mlx/api/models.py | 2979 | # Rapid-MLX extension for F5-TTS zero-shot cloning. Audio is base64 | COMMENT |
| MEDIUM | rapid_mlx/api/tool_grammar.py | 1677 | # grammar would let the model hallucinate arbitrary keys into a | COMMENT |
| MEDIUM | rapid_mlx/api/utils.py | 158 | #: (``_REASONING_CHANNEL_TAG_RE`` below): inside a reasoning trace a | COMMENT |
| MEDIUM | rapid_mlx/api/utils.py | 175 | #: * the rescue-tail copy of the reasoning trace that surfaces in | COMMENT |
| MEDIUM | rapid_mlx/api/anthropic_adapter.py | 550 | # Entire reasoning trace already surfaces in the rescue | COMMENT |
| MEDIUM | rapid_mlx/api/anthropic_adapter.py | 615 | # deliberately promotes a stuck reasoning trace into | COMMENT |
| MEDIUM | rapid_mlx/speculative/dflash/server.py | 1264 | # let a reasoning trace consume the entire completion budget even | COMMENT |
| MEDIUM | rapid_mlx/service/helpers.py | 698 | # ``first_parse_was_case4`` here. When an agentic client attaches | COMMENT |
| MEDIUM | rapid_mlx/service/helpers.py | 1150 | # set but is NOT chain-of-thought. Require the route- | COMMENT |
| MEDIUM | rapid_mlx/service/helpers.py | 1170 | # ``<channel|>``), the reasoning trace is NOT the final answer — | COMMENT |
| MEDIUM | rapid_mlx/service/helpers.py | 1424 | # copy of the reasoning trace (see docstring above), so bare wire | COMMENT |
| 136 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/_tempfile_safe.py | 365 | __all__ = ["managed_tempfile_path"] | CODE |
| LOW | rapid_mlx/mllm_cache.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_mlx_compat.py | 47 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/memory_cache.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/server.py | 183 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/server.py | 3254 | def _set_resident_primary(entry: ModelEntry | None) -> None: | CODE |
| LOW | rapid_mlx/vision_embedding_cache.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/output_router.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/gdn_prefill.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/embedding.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/qwen35_fused_gdn_decode.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/qwen35_fused_gdn_decode.py | 461 | __all__ = [ | CODE |
| LOW | rapid_mlx/coherence.py | 38 | __all__ = [ | CODE |
| LOW | rapid_mlx/singleton_cache_fastpath.py | 77 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/request.py | 321 | def set_finished(self, status: RequestStatus, reason: str | None = None) -> None: | CODE |
| LOW | rapid_mlx/turboquant.py | 52 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/multimodal_processor.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/__init__.py | 84 | __all__ = [ | CODE |
| LOW⚡ | rapid_mlx/kv_cache_dtype.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/optimizations.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/hybrid_state_checkpoints.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_parent_watchdog.py | 61 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/compiled_decode.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/output_router_harmony.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/engine_core.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/fp8_repack.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_uvicorn.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/pflash.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/mllm_scheduler.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/mllm_scheduler.py | 812 | def set_generation_paused(self, paused: bool, *, add_allowance: int = 0) -> None: | CODE |
| LOW | rapid_mlx/paged_cache.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/model_auto_config.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_signal_observability.py | 70 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/prefix_cache.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/scheduler.py | 171 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/scheduler.py | 8491 | def set_generation_paused(self, paused: bool, *, add_allowance: int = 0) -> None: | CODE |
| LOW | rapid_mlx/tool_call_scan.py | 39 | __all__ = [ | CODE |
| LOW | rapid_mlx/gdn_in_proj_fusion.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_mxfp4_moe_guardrail.py | 76 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/qwen35_moe_router.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/model_registry.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/prompt_token_reuse.py | 144 | __all__ = [ | CODE |
| LOW | rapid_mlx/mllm_batch_generator.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/moe_fusion.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/_process_identity.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/lfm_tool_parser.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/deepseek_v3_tool_parser.py | 74 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/qwen3coder_tool_parser.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/__init__.py | 83 | __all__ = [ | CODE |
| LOW | rapid_mlx/tool_parsers/k2_horizon_tool_parser.py | 49 | def set_reasoning_sanitized(self, value: bool) -> None: | CODE |
| LOW | rapid_mlx/tool_parsers/seed_oss_tool_parser.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/deepseekv31_tool_parser.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/nemotron_tool_parser.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/tool_parsers/ui_tars_tool_parser.py | 63 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/middleware/auth.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/middleware/probe_fastpath.py | 67 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/middleware/body_size.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/middleware/body_depth.py | 56 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/middleware/request_logging.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | rapid_mlx/kernels/qsa_indexed_splitk.py | 20 | logger = logging.getLogger(__name__) | CODE |
| 242 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | rapid_mlx/_mxfp4_moe_guardrail.py | 0 | test-only hook: zero the counters between cases. production code must not call this — prometheus counters are contractua | STRING |
| HIGH | rapid_mlx/runtime/ubc_evict.py | 0 | test-only hook: zero the counters between cases. production code must not call this — prometheus counters are contractua | STRING |
| HIGH | rapid_mlx/api/response_format_metrics.py | 0 | test-only hook: zero the counters between cases. production code must not call this — prometheus counters are contractua | STRING |
| HIGH | rapid_mlx/_integration_tests/test_hermes.py | 0 | streaming mode: tool calls arrive as structured deltas. | STRING |
| HIGH | rapid_mlx/agents/testing.py | 0 | streaming mode: tool calls arrive as structured deltas. | STRING |
| HIGH | tests/integrations/test_hermes.py | 0 | streaming mode: tool calls arrive as structured deltas. | STRING |
| HIGH | tests/test_forced_alignment_route_hardening.py | 0 | mount the audio router on a bare fastapi app, bypassing auth. | STRING |
| HIGH | tests/test_audio_routes_bundle.py | 0 | mount the audio router on a bare fastapi app, bypassing auth. | STRING |
| HIGH | tests/test_stt_response_format.py | 0 | mount the audio router on a bare fastapi app, bypassing auth. | STRING |
| HIGH | tests/test_audio_music_route.py | 0 | mount the audio router on a bare fastapi app, bypassing auth. | STRING |
| HIGH | tests/test_chatterbox_expressiveness.py | 0 | minimal fake so the tts-lane probe passes without the real extra. | STRING |
| HIGH | tests/test_speech_inline_clone_route.py | 0 | minimal fake so the tts-lane probe passes without the real extra. | STRING |
| HIGH | tests/test_qwen3_tts_audio.py | 0 | minimal fake so the tts-lane probe passes without the real extra. | STRING |
| HIGH | tests/test_qwen3_tts_voicedesign.py | 0 | minimal fake so the tts-lane probe passes without the real extra. | STRING |
| HIGH | tests/test_stop_and_timeout_request_schema.py | 0 | patch the global config singleton and restore on teardown. | STRING |
| HIGH | tests/test_sampling_param_finite_range.py | 0 | patch the global config singleton and restore on teardown. | STRING |
| HIGH | tests/test_sampling_validation.py | 0 | patch the global config singleton and restore on teardown. | STRING |
| HIGH | …id-mac/Tests/RapidTests/WireBodyDeterminismTests.swift | 0 | data: {"choices":[{"delta":{"content":"ok"},"finish_reason":"stop"}]}\n data: [done]\n | STRING |
| HIGH | …s/RapidTests/DeferredTelemetryConsentWiringTests.swift | 0 | data: {"choices":[{"delta":{"content":"ok"},"finish_reason":"stop"}]}\n data: [done]\n | STRING |
| HIGH | …-mac/Tests/RapidTests/ChatStreamRequestBodyTests.swift | 0 | data: {"choices":[{"delta":{"content":"ok"},"finish_reason":"stop"}]}\n data: [done]\n | STRING |
| HIGH | …pid-mac/Tests/RapidTests/CustomInstructionsTests.swift | 0 | data: {"choices":[{"delta":{"content":"ok"},"finish_reason":"stop"}]}\n data: [done]\n | STRING |
| HIGH | …mac/Tests/RapidTests/CurrentDateTimeContextTests.swift | 0 | data: {"choices":[{"delta":{"content":"ok"},"finish_reason":"stop"}]}\n data: [done]\n | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | rapid_mlx/gdn_prefill.py | 202 | # This function is the single validation authority for the kernel's | STRING |
| MEDIUM | rapid_mlx/gradio_app.py | 306 | # Create a public share link | COMMENT |
| MEDIUM | rapid_mlx/cli.py | 8597 | # Create the single mlx-step worker BEFORE loading weights and reuse it | COMMENT |
| MEDIUM | rapid_mlx/mllm_batch_generator.py | 3980 | # Create a fresh KVCache for this request's language model prefill | COMMENT |
| MEDIUM | rapid_mlx/_integration_tests/test_hermes.py | 670 | # Create a test file first | COMMENT |
| MEDIUM | rapid_mlx/models/mlx_vlm_vendored/cache.py | 219 | # Create an instance of cls without calling __init__ | COMMENT |
| MEDIUM | rapid_mlx/models/mlx_vlm_vendored/generate/ar.py | 376 | # Create the KV cache for generation | COMMENT |
| MEDIUM | rapid_mlx/api/guided.py | 207 | # Create the model dynamically | COMMENT |
| MEDIUM | rapid_mlx/speculative/dflash/server.py | 1812 | # Create the generator on the same worker that will drive it, | COMMENT |
| MEDIUM | tests/test_tool_logits.py | 126 | # Create a token ID that corresponds to the last char of '<invoke' | COMMENT |
| MEDIUM | tests/test_tool_parsers.py | 25 | # This file is the Linux parser-matrix entry point. Import the focused | COMMENT |
| MEDIUM | tests/test_server.py | 373 | # Create a real temp file | COMMENT |
| MEDIUM | tests/test_fix_reasoning_mtp_doctor.py | 97 | # Create a small QuantizedSwitchLinear | COMMENT |
| MEDIUM | tests/test_memory_stability.py | 47 | # Create a mock BatchGenerator with close() | COMMENT |
| MEDIUM | tests/test_memory_stability.py | 178 | # Create a mock request with extracted cache (dict-state format) | COMMENT |
| MEDIUM | tests/test_memory_stability.py | 225 | # Create a mock response with prompt_cache | COMMENT |
| MEDIUM | tests/test_turboquant.py | 549 | # Create a mix: KVCache + non-KVCache | COMMENT |
| MEDIUM | tests/test_mtp_gemma4_assistant_inject.py | 1295 | # Create the well-known name AND an "extra" shard. | COMMENT |
| MEDIUM | tests/test_mllm_continuous_batching.py | 980 | # Create a request with stop sequences | COMMENT |
| MEDIUM | tests/test_mllm_cache.py | 77 | # Create a temp file with some content | COMMENT |
| MEDIUM | tests/test_mlx_vlm_vendored_speculative.py | 37 | # This file is part of the explicit Apple-Silicon lane, but the ordinary Linux | COMMENT |
| MEDIUM | tests/integrations/top10_sequences.yaml | 7 | # This file is the single source of truth for the EXACT ordered sequence of | COMMENT |
| MEDIUM | tests/integrations/test_hermes.py | 670 | # Create a test file first | COMMENT |
| MEDIUM | examples/test_openai_compatibility.py | 63 | # Create a simple 100x100 red square image | COMMENT |
| MEDIUM | examples/test_openai_compatibility.py | 490 | # Create a simple video with 3 colored frames (red, green, blue) | COMMENT |
| MEDIUM | examples/test_video.py | 68 | # Create a simple video with colored frames | COMMENT |
| MEDIUM | examples/demo_openai_image.py | 80 | # Create a simple red square image for testing | COMMENT |
| MEDIUM | examples/demo_openai_image.py | 86 | # Create a simple 100x100 red image | COMMENT |
| MEDIUM | examples/benchmark_audio.py | 42 | # Create a simple sine wave tone | COMMENT |
| MEDIUM | examples/demo_curl_image.sh | 77 | # Create a simple red PNG using Python (smallest valid PNG) | COMMENT |
| MEDIUM | scripts/create_release.sh | 3 | # Create a GitHub Release whose tag we atomically claim at $RELEASE_SHA. | COMMENT |
| MEDIUM | scripts/pr_validate/steps/targeted_tests.py | 253 | # Create a worktree pointing at base_ref (sha-pinned when given). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | rapid_mlx/embedding.py | 346 | Generate embeddings for one or more texts. Args: texts: A single string or list of strings | STRING |
| HIGH | rapid_mlx/embedding.py | 416 | Embed pre-tokenized inputs (OpenAI spec input formats 3 and 4). Skips the tokenizer entirely — the caller has a | STRING |
| HIGH | rapid_mlx/paged_cache.py | 299 | Pop n non-pinned blocks from the front. Pinned blocks are skipped to prevent eviction of important | STRING |
| HIGH | rapid_mlx/paged_cache.py | 676 | Allocate multiple blocks at once (vLLM style). Args: num_blocks: Number of blocks to alloc | STRING |
| HIGH | rapid_mlx/model_registry.py | 58 | Attempt to acquire ownership of a model. Args: model: The MLX model engine: Th | STRING |
| HIGH | rapid_mlx/tool_parsers/abstract_tool_parser.py | 515 | Retrieve a registered ToolParser class by name. Args: name: Parser name (e.g., 'mistral', | STRING |
| HIGH | rapid_mlx/runtime/model_registry.py | 136 | Get the engine for a model name. Falls back to default. Args: model_name: Model name from request. | STRING |
| HIGH | rapid_mlx/mcp/config.py | 46 | Load MCP configuration from file. Search order: 1. Explicit path argument 2. RAPID_MLX_MCP_CONFIG envi | STRING |
| HIGH | rapid_mlx/mcp/config.py | 132 | Validate and parse configuration dictionary. Args: data: Raw configuration dictionary tolerant | STRING |
| HIGH | rapid_mlx/mcp/tools.py | 50 | Parse OpenAI tool call back to MCP format. Args: tool_call: OpenAI tool call from model response | STRING |
| HIGH | rapid_mlx/models/mllm.py | 689 | Decode base64 image to bytes. Args: base64_string: Base64 encoded image (optionally with data URL pref | STRING |
| HIGH | rapid_mlx/models/mllm.py | 1045 | Download image from URL and return local path. Args: url: Image URL timeout: Download timeout | STRING |
| HIGH | rapid_mlx/models/mllm.py | 1137 | Download video from URL and return local path. Args: url: Video URL (http/https) timeout: Down | STRING |
| HIGH | rapid_mlx/models/mllm.py | 1240 | Decode base64 video to temp file and return path. Supports format: data:video/mp4;base64,AAAA... Args: | STRING |
| HIGH | rapid_mlx/reasoning/__init__.py | 51 | Get a reasoning parser class by name. Args: name: Name of the parser (e.g., "qwen3", "deepseek_r1"). | STRING |
| HIGH | rapid_mlx/spec_decode/mtp/qwen3_5_inject.py | 474 | Inject MTP support into a loaded Qwen3.5 / Qwen3.6 model. Args: model: A model loaded via ``mlx_lm.load()`` | STRING |
| HIGH | rapid_mlx/audio/music.py | 162 | Generate ``seconds`` of audio for ``prompt`` → ``out_path`` (wav). Args: prompt: Natural-language d | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/memory_cache.py | 2387 | # Check if cached_key is a prefix of tokens_key | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2409 | # Check if tokens_key is a prefix of cached_key | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 2694 | # Check if single entry exceeds limit | COMMENT |
| LOW | rapid_mlx/memory_cache.py | 4319 | # Check if it fits against the running (live+staged in | COMMENT |
| LOW | rapid_mlx/gradio_app.py | 163 | # Check if this message had media cached | COMMENT |
| LOW | rapid_mlx/mllm_scheduler.py | 1323 | # Check if finished | COMMENT |
| LOW | rapid_mlx/prefix_cache.py | 155 | # Check if we have a shorter prefix with cache | COMMENT |
| LOW | rapid_mlx/prefix_cache.py | 224 | # Check if cache supports trimming | COMMENT |
| LOW | rapid_mlx/prefix_cache.py | 834 | # Check if this block already exists (deduplication). A hash | COMMENT |
| LOW | rapid_mlx/scheduler.py | 6212 | # Check if it's a list of cache layers | COMMENT |
| LOW | rapid_mlx/scheduler.py | 6220 | # Check if layer has expected structure | COMMENT |
| LOW | rapid_mlx/scheduler.py | 10221 | # Check if finished | COMMENT |
| LOW | rapid_mlx/mllm_batch_generator.py | 1356 | # Check if this is actually a VLM with separate language model | COMMENT |
| LOW | rapid_mlx/tool_parsers/qwen3coder_tool_parser.py | 1584 | # Check if we need to advance to next tool. The tool boundary is | COMMENT |
| LOW | rapid_mlx/tool_parsers/granite_tool_parser.py | 62 | # Check if it starts with JSON array | COMMENT |
| LOW | rapid_mlx/tool_parsers/seed_oss_tool_parser.py | 521 | # Check if we need to advance to next tool | COMMENT |
| LOW | rapid_mlx/tool_parsers/seed_oss_tool_parser.py | 536 | # Check if thinking ended (or never started) | COMMENT |
| LOW | rapid_mlx/tool_parsers/gemma4_tool_parser.py | 892 | # Check if we're inside a tool call. Either the pristine wire | COMMENT |
| LOW | rapid_mlx/tool_parsers/gemma4_tool_parser.py | 943 | # Check if we have a complete text tool call | COMMENT |
| LOW | rapid_mlx/utils/tokenizer.py | 1759 | # Check if model needs fallback (e.g., Nemotron) | COMMENT |
| LOW | rapid_mlx/mcp/security.py | 207 | # Check if command is in whitelist | COMMENT |
| LOW | rapid_mlx/mcp/security.py | 209 | # Check if it's an absolute path to an allowed command | COMMENT |
| LOW | rapid_mlx/mcp/executor.py | 459 | # Check if tool exists | COMMENT |
| LOW⚡ | rapid_mlx/models/mllm.py | 1312 | # Check if it's a local file (confined to regular media files; see | COMMENT |
| LOW⚡ | rapid_mlx/models/mllm.py | 1318 | # Check if it's a URL | COMMENT |
| LOW⚡ | rapid_mlx/models/mllm.py | 1322 | # Check if it's base64 | COMMENT |
| LOW | rapid_mlx/models/mllm.py | 1401 | # Check if it's base64 FIRST (before Path.exists() which fails on long strings) | COMMENT |
| LOW | rapid_mlx/models/mllm.py | 1405 | # Check if it's a URL | COMMENT |
| LOW | rapid_mlx/models/deepseek_v4_cache.py | 801 | # Check if all caches are empty | COMMENT |
| LOW | rapid_mlx/models/mlx_vlm_vendored/cache.py | 3617 | # Check if all caches are empty | COMMENT |
| LOW | rapid_mlx/models/mlx_vlm_vendored/inputs.py | 154 | # Check if ffmpeg is needed for certain formats | COMMENT |
| LOW⚡ | rapid_mlx/models/mlx_vlm_vendored/models/base.py | 451 | # Check if the shape has 4 dimensions | COMMENT |
| LOW⚡ | rapid_mlx/models/mlx_vlm_vendored/models/base.py | 454 | # Check if out_channels is the largest, and kH and KW are the same | COMMENT |
| LOW⚡ | rapid_mlx/models/mlx_vlm_vendored/models/base.py | 459 | # Check if the shape has 3 dimensions | COMMENT |
| LOW⚡ | rapid_mlx/models/mlx_vlm_vendored/models/base.py | 462 | # Check if out_channels is the largest | COMMENT |
| LOW | rapid_mlx/reasoning/deepseek_r1_parser.py | 120 | # Check if any tags are in the current text | COMMENT |
| LOW | rapid_mlx/reasoning/minimax_parser.py | 173 | # Check if output starts with reasoning patterns | COMMENT |
| LOW⚡ | rapid_mlx/reasoning/gemma4_parser.py | 321 | # Check if we just entered thought channel | COMMENT |
| LOW⚡ | rapid_mlx/reasoning/gemma4_parser.py | 326 | # Check if we just entered content channel | COMMENT |
| LOW⚡ | rapid_mlx/reasoning/gemma4_parser.py | 331 | # Check if thought ended (first <channel|> after thought start) | COMMENT |
| LOW | rapid_mlx/api/tool_logits.py | 353 | # Check if we should start tracking a pattern | COMMENT |
| LOW | rapid_mlx/routes/chat.py | 7099 | # Check if we should include usage in the final chunk | COMMENT |
| LOW | evals/run_eval.py | 978 | # Check if model called the recovery tool | COMMENT |
| LOW | tests/test_paged_cache_benefits.py | 341 | # Check if root is shared | COMMENT |
| LOW | tests/test_paged_cache.py | 208 | # Increment ref | COMMENT |
| LOW | examples/video_benchmark.py | 577 | # Print results | STRING |
| LOW | examples/mcp_tool_use.py | 97 | # Check if model wants to use tools | COMMENT |
| LOW | examples/mic_realtime.py | 111 | # Check if audio has content (not silence) | COMMENT |
| LOW | examples/test_openai_compatibility.py | 805 | # Check if server is reachable | STRING |
| LOW | examples/mllm_benchmark.py | 451 | # Print results | STRING |
| LOW | examples/mic_live.py | 130 | # Check if silence long enough to trigger transcription | COMMENT |
| LOW | examples/demo_openai_video.py | 110 | # Check if there's a sample video in the examples directory | COMMENT |
| LOW | scripts/add_mtp_weights.py | 296 | # Check if MTP weights already exist | COMMENT |
| LOW | scripts/benchmark_engines.py | 500 | # Check if tool call was returned in structured format | COMMENT |
| LOW | scripts/benchmark_engines.py | 502 | # Check if content contains text-format tool calls (degraded) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/tool_parsers/gemma4_tool_parser.py | 428 | # Step 2: bare KV parse | COMMENT |
| LOW | rapid_mlx/utils/chat_template.py | 2768 | # Step 1: retry without enable_thinking (many templates don't support it). | COMMENT |
| LOW | rapid_mlx/utils/chat_template.py | 2812 | # Step 2: template also rejects tools — fall back to prompt injection. | COMMENT |
| LOW | rapid_mlx/service/postprocessor.py | 2673 | # Step 1: Separate content from reasoning | COMMENT |
| LOW | rapid_mlx/share/cli.py | 343 | # Step 1: a deliberately-wrong key must NOT return 200. If the | COMMENT |
| LOW | rapid_mlx/share/cli.py | 354 | # Step 2: the real key must return 200. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 351 | # Step 1: prose preface — passes through. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 358 | # Step 2: opening brace + name/params arrive in one go. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 375 | # Step 1: closed prose JSON — flushed as content on close. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 384 | # Step 2: trailing prose — must pass through. | COMMENT |
| LOW | tests/test_ui_tars_fixes.py | 740 | # Step 1: walk imports to learn what local names refer to | COMMENT |
| LOW | tests/test_ui_tars_fixes.py | 758 | # Step 2: walk the tree looking for Call nodes whose callable | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 628 | # Step 1: hits=10 → exposed 10 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 632 | # Step 2: hits=15 → exposed 15 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 637 | # Step 3: simulate cache.clear() — raw drops to 0; exposed must stay ≥ 15 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 646 | # Step 4: hits=3 — fresh activity after clear; exposed should be 15+3=18 | COMMENT |
| LOW⚡ | tests/test_reasoning_budget_generation.py | 197 | # Step 2: one generated think token → 1/1 spent → force on THIS call. | COMMENT |
| LOW⚡ | tests/test_grammar_processor_558.py | 2397 | # Step 1: baseline the prompt (1 token), then feed the first generated | COMMENT |
| LOW⚡ | tests/test_grammar_processor_558.py | 2407 | # Step 2: feed the second generated token — the matcher rejects it, so | COMMENT |
| LOW | tests/test_grammar_processor_558.py | 2420 | # Step 3: any subsequent call also stays dropped (logits unchanged). | COMMENT |
| LOW | docs/guides/server.md | 541 | # Step 1: Send request with tools | COMMENT |
| LOW | docs/guides/server.md | 557 | # Step 2: Check if model wants to use tools | COMMENT |
| LOW | docs/guides/server.md | 563 | # Step 3: Send tool result back | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 598 | // Step 1: the extraction takes its token and completes its work. | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 601 | // Step 2: the user deletes the document while that publish is pending. | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 604 | // Step 3: the extraction resumes and tries to publish. It must fail. | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 587 | // Step 1: cached + safe (only over the known-params subset). | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 592 | // Step 2: smallest known-params alias that fits. | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 600 | // Step 3: smallest known-params alias overall (.tooBig but | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 605 | // Step 4: catalog has zero parseable aliases. Last resort — | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 721 | // Step 1: bucketed default is on disk AND runnable. No | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 727 | // Step 2: any cached + fits alternative — prefer it over a | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 740 | // Step 3: nothing cached fits, but the canonical pick still | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 746 | // Step 4: bucketed is .tooBig OR missing — hand off to the | COMMENT |
| LOW⚡ | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 507 | // Step 1: denylist match (broken takes priority). | COMMENT |
| LOW⚡ | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 512 | // Step 2: deliberate-unknown overrides shadow the family match | COMMENT |
| LOW | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 526 | // Step 3: family + size guard. An alias is .known when its | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/tool_parsers/gemma4_tool_parser.py | 428 | # Step 2: bare KV parse | COMMENT |
| LOW | rapid_mlx/utils/chat_template.py | 2768 | # Step 1: retry without enable_thinking (many templates don't support it). | COMMENT |
| LOW | rapid_mlx/utils/chat_template.py | 2812 | # Step 2: template also rejects tools — fall back to prompt injection. | COMMENT |
| LOW | rapid_mlx/service/postprocessor.py | 2673 | # Step 1: Separate content from reasoning | COMMENT |
| LOW | rapid_mlx/share/cli.py | 343 | # Step 1: a deliberately-wrong key must NOT return 200. If the | COMMENT |
| LOW | rapid_mlx/share/cli.py | 354 | # Step 2: the real key must return 200. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 351 | # Step 1: prose preface — passes through. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 358 | # Step 2: opening brace + name/params arrive in one go. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 375 | # Step 1: closed prose JSON — flushed as content on close. | COMMENT |
| LOW⚡ | tests/test_llama_tool_parser_bare_json.py | 384 | # Step 2: trailing prose — must pass through. | COMMENT |
| LOW | tests/test_ui_tars_fixes.py | 740 | # Step 1: walk imports to learn what local names refer to | COMMENT |
| LOW | tests/test_ui_tars_fixes.py | 758 | # Step 2: walk the tree looking for Call nodes whose callable | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 628 | # Step 1: hits=10 → exposed 10 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 632 | # Step 2: hits=15 → exposed 15 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 637 | # Step 3: simulate cache.clear() — raw drops to 0; exposed must stay ≥ 15 | COMMENT |
| LOW⚡ | tests/test_metrics_route.py | 646 | # Step 4: hits=3 — fresh activity after clear; exposed should be 15+3=18 | COMMENT |
| LOW⚡ | tests/test_reasoning_budget_generation.py | 195 | # Step 1: [1] is baselined as prompt; 0/1 spent → "free", logits untouched. | COMMENT |
| LOW⚡ | tests/test_reasoning_budget_generation.py | 197 | # Step 2: one generated think token → 1/1 spent → force on THIS call. | COMMENT |
| LOW⚡ | tests/test_grammar_processor_558.py | 2397 | # Step 1: baseline the prompt (1 token), then feed the first generated | COMMENT |
| LOW⚡ | tests/test_grammar_processor_558.py | 2407 | # Step 2: feed the second generated token — the matcher rejects it, so | COMMENT |
| LOW | tests/test_grammar_processor_558.py | 2420 | # Step 3: any subsequent call also stays dropped (logits unchanged). | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 598 | // Step 1: the extraction takes its token and completes its work. | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 601 | // Step 2: the user deletes the document while that publish is pending. | COMMENT |
| LOW⚡ | …mac/Tests/RapidTests/DocumentCacheLifecycleTests.swift | 604 | // Step 3: the extraction resumes and tries to publish. It must fail. | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 587 | // Step 1: cached + safe (only over the known-params subset). | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 592 | // Step 2: smallest known-params alias that fits. | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 600 | // Step 3: smallest known-params alias overall (.tooBig but | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 605 | // Step 4: catalog has zero parseable aliases. Last resort — | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 721 | // Step 1: bucketed default is on disk AND runnable. No | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 727 | // Step 2: any cached + fits alternative — prefer it over a | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 740 | // Step 3: nothing cached fits, but the canonical pick still | COMMENT |
| LOW⚡ | …apid-mac/Sources/Rapid/Server/RAMBucketedDefault.swift | 746 | // Step 4: bucketed is .tooBig OR missing — hand off to the | COMMENT |
| LOW⚡ | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 507 | // Step 1: denylist match (broken takes priority). | COMMENT |
| LOW⚡ | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 512 | // Step 2: deliberate-unknown overrides shadow the family match | COMMENT |
| LOW | …rapid-mac/Sources/Rapid/Server/ToolUseCapability.swift | 526 | // Step 3: family + size guard. An alias is .known when its | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/server.py | 2264 | CODE | |
| LOW | rapid_mlx/engine_core.py | 1143 | CODE | |
| LOW | rapid_mlx/cli.py | 11217 | CODE | |
| LOW | rapid_mlx/mllm_scheduler.py | 635 | CODE | |
| LOW | rapid_mlx/mllm_scheduler.py | 2166 | CODE | |
| LOW | rapid_mlx/gdn_in_proj_fusion.py | 230 | CODE | |
| LOW | rapid_mlx/mllm_batch_generator.py | 1192 | CODE | |
| LOW | rapid_mlx/tool_parsers/muse_tool_parser.py | 381 | CODE | |
| LOW | rapid_mlx/tool_parsers/harmony_tool_parser.py | 439 | CODE | |
| LOW | rapid_mlx/kernels/lane_matmul/simd.py | 434 | CODE | |
| LOW | rapid_mlx/video/engine.py | 126 | CODE | |
| LOW | rapid_mlx/patches/glm5_next_processor.py | 190 | CODE | |
| LOW | rapid_mlx/runtime/diffusion_lane.py | 984 | CODE | |
| LOW | rapid_mlx/runtime/resident_models.py | 135 | CODE | |
| LOW | rapid_mlx/runtime/resident_models.py | 1416 | CODE | |
| LOW | rapid_mlx/models/mllm.py | 2187 | CODE | |
| LOW | rapid_mlx/models/nemotron_labs_diffusion.py | 209 | CODE | |
| LOW | rapid_mlx/models/gemma4_vendored/language.py | 615 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/inputs.py | 638 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/sample_utils.py | 10 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/apc.py | 255 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/generate/ar.py | 211 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/generate/ar.py | 930 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/generate/ar.py | 1812 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/generate/ar.py | 2515 | CODE | |
| LOW | rapid_mlx/models/mlx_vlm_vendored/speculative/utils.py | 173 | CODE | |
| LOW | rapid_mlx/models/deepseek_v41_native/server.py | 26 | CODE | |
| LOW | rapid_mlx/spec_decode/dspark/server.py | 267 | CODE | |
| LOW | rapid_mlx/spec_decode/mtp/cache_patch.py | 424 | CODE | |
| LOW | rapid_mlx/spec_decode/mtp/generator.py | 379 | CODE | |
| LOW | rapid_mlx/image/sdxl_runtime/pipelines/sdxl.py | 136 | CODE | |
| LOW | rapid_mlx/image/sd35_runtime/_vendor/t5.py | 334 | CODE | |
| LOW | rapid_mlx/image/sd35_runtime/_vendor/pipeline.py | 62 | CODE | |
| LOW | rapid_mlx/image/sd35_runtime/_vendor/pipeline.py | 294 | CODE | |
| LOW | rapid_mlx/image/sd35_runtime/_vendor/pipeline.py | 591 | CODE | |
| LOW | rapid_mlx/image/bonsai_runtime/_vendor/transformer.py | 34 | CODE | |
| LOW | rapid_mlx/audio/tts.py | 658 | CODE | |
| LOW | rapid_mlx/cua/service.py | 305 | CODE | |
| LOW | rapid_mlx/cua/loop.py | 1415 | CODE | |
| LOW | rapid_mlx/cua/loop.py | 91 | CODE | |
| LOW | rapid_mlx/community_bench/run_builder.py | 613 | CODE | |
| LOW | rapid_mlx/community_bench/atomic_upload.py | 215 | CODE | |
| LOW | rapid_mlx/speculative/tensorfold_qwen27_server.py | 477 | CODE | |
| LOW | rapid_mlx/speculative/native_mtp/server.py | 52 | CODE | |
| LOW | rapid_mlx/speculative/dflash/server.py | 658 | CODE | |
| LOW | rapid_mlx/speculative/dflash/server.py | 1512 | CODE | |
| LOW | rapid_mlx/speculative/dflash/server.py | 2429 | CODE | |
| LOW | rapid_mlx/computer_use/backend.py | 1013 | CODE | |
| LOW | rapid_mlx/computer_use/backend.py | 3067 | CODE | |
| LOW | rapid_mlx/computer_use/ax_driver.py | 1052 | CODE | |
| LOW | rapid_mlx/engine/batched.py | 1050 | CODE | |
| LOW | rapid_mlx/engine/batched.py | 3058 | CODE | |
| LOW | rapid_mlx/routes/responses.py | 3007 | CODE | |
| LOW | rapid_mlx/routes/images.py | 582 | CODE | |
| LOW | rapid_mlx/routes/anthropic.py | 1699 | CODE | |
| LOW | rapid_mlx/routes/audio.py | 2379 | CODE | |
| LOW | rapid_mlx/routes/video.py | 1241 | CODE | |
| LOW | tests/test_community_bench_aggregate.py | 62 | CODE | |
| LOW | tests/test_mergify_batch_queue.py | 159 | CODE | |
| LOW | tests/test_mergify_batch_queue.py | 380 | CODE | |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/mllm_batch_generator.py | 2219 | # (transient-message boundaries, dummy-user LCP fallbacks), so the | COMMENT |
| LOW | rapid_mlx/computer_use/backend.py | 883 | "placeholder": target.get("placeholder"), | CODE |
| LOW | rapid_mlx/computer_use/ax_driver.py | 788 | "placeholder": ( | CODE |
| LOW | evals/run_eval.py | 1144 | fake_key = f"{prefix}fake_result" | CODE |
| LOW | evals/run_eval.py | 1146 | fake_key, | CODE |
| LOW | tests/test_community_benchmark_workspace.py | 2611 | file.write(b"placeholder") | STRING |
| LOW⚡ | tests/test_gemma4_tool_parser.py | 262 | "endpointId": "jane@example.org", | CODE |
| LOW | tests/test_gemma4_tool_parser.py | 76 | "endpointId": "jane@example.org", | CODE |
| LOW | tests/test_gemma4_tool_parser.py | 145 | "endpointId": "jane@example.org", | CODE |
| LOW | tests/test_gemma4_tool_parser.py | 163 | "endpointId": "jane@example.org", | CODE |
| LOW | tests/test_computer_use_walk.py | 114 | assert out[1]["placeholder"] == "Full name" | CODE |
| LOW | tests/test_computer_use_walk.py | 651 | "placeholder": "Search Mart", | CODE |
| LOW | tests/test_computer_use_walk.py | 679 | assert element["states"] == ["focused"] and element["placeholder"] == "Search Mart" | CODE |
| LOW | tests/test_tokenizer_gemma4_hybrid.py | 271 | "Lorem ipsum dolor sit amet", | CODE |
| LOW | tests/test_tokenizer_gemma4_hybrid.py | 271 | "Lorem ipsum dolor sit amet", | CODE |
| LOW⚡ | tests/test_release_artifact_matrix.py | 29 | wheel.write_bytes(b"placeholder") | CODE |
| LOW⚡ | tests/test_ci_github_transport.py | 56 | return transport.PersistentGitHubClient(REPO, "fake-token"), connection, created | CODE |
| LOW⚡ | tests/test_ci_github_transport.py | 67 | assert conn.requests[0][2]["Authorization"] == "Bearer fake-token" | CODE |
| LOW | tests/test_ci_github_transport.py | 183 | assert "fake-token" not in str(error.value) | CODE |
| LOW | tests/test_ci_github_transport.py | 246 | c = transport.PersistentGitHubClient(REPO, "fake-token") | CODE |
| LOW⚡ | tests/test_tool_param_enforcement_f141a.py | 135 | ("email", "notanemail", "user@example.com"), | CODE |
| LOW⚡ | tests/test_launch_cli.py | 740 | "placeholder": {"apiKey": "sk-noop"}, | CODE |
| LOW⚡ | tests/test_launch_cli.py | 749 | "placeholder": {"apiKey": "sk-noop"}, | CODE |
| LOW | tests/test_prefix_boundary_path_parity.py | 479 | """Third-party template drift keeps the conservative dummy-user LCP.""" | STRING |
| LOW | tests/test_qwen3coder_tool_parser_streaming.py | 30 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do " | CODE |
| LOW | tests/test_qwen3coder_tool_parser_streaming.py | 30 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do " | CODE |
| LOW | tests/test_download_gate.py | 3520 | (snap / "vae.safetensors" / "placeholder").write_bytes(b"x" * 16) | CODE |
| LOW | tests/test_download_gate.py | 3532 | (snap / "vae.safetensors" / "placeholder").unlink() | CODE |
| LOW | tests/test_upstream_regression.py | 390 | '[TOOL_CALLS] [{"arguments":{"name": "John Doe"}, "name": "get_age"}]', | CODE |
| LOW | tests/test_upstream_regression.py | 392 | {"name": "John Doe"}, | CODE |
| LOW | apps/rapid-mac/CHANGELOG.md | 4161 | "placeholder"; pill HStacks collapsed so VoiceOver doesn't | CODE |
| LOW | …-mac/Sources/Rapid/UI/Markdown/SyntaxHighlighter.swift | 1235 | "width", "height", "alt", "title", "rel", "target", "placeholder", | CODE |
| LOW | …wiftMath/Sources/SwiftMath/MathRender/MTMathList.swift | 358 | string += "{\(self.numerator?.description ?? "placeholder")}{\(self.denominator?.description ?? "placeholder")}" | CODE |
| LOW | …wiftMath/Sources/SwiftMath/MathRender/MTMathList.swift | 407 | string += "{\(self.radicand?.description ?? "placeholder")}" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rapid_mlx/_integration_tests/test_aider.sh | 18 | # Usage: | COMMENT |
| LOW | tests/integrations/test_aider.sh | 18 | # Usage: | COMMENT |
| LOW⚡ | tests/integrations/test_openhands.sh | 34 | # Usage: | COMMENT |
| LOW | examples/demo_curl_text.sh | 6 | # Usage: | COMMENT |
| LOW | examples/demo_curl_video.sh | 6 | # Usage: | COMMENT |
| LOW | examples/demo_curl_image.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/run_dogfood_mvp.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | scripts/coherence_sweep.sh | 26 | # Usage: | COMMENT |
| LOW⚡ | apps/rapid-mac/scripts/dogfood-isolate.sh | 27 | # Usage: | COMMENT |
| LOW | apps/rapid-mac/scripts/build-bootstrapper-dmg.sh | 84 | # Usage: | COMMENT |
| LOW | apps/rapid-mac/scripts/validate-dmg.sh | 24 | # Usage: | COMMENT |
| LOW | apps/rapid-mac/scripts/stage-licenses.sh | 15 | # Usage: | COMMENT |
| LOW⚡ | apps/rapid-mac/scripts/share-compute-shots.sh | 63 | # Usage: | COMMENT |
| LOW | apps/rapid-mac/scripts/build-sidecar.sh | 24 | # Usage: | COMMENT |
| LOW | apps/rapid-mac/scripts/walkthrough.sh | 14 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …0260617-apple-m3-ultra-qwen3-8b-4bit-e912922f4600.json | 139 | "response_excerpt": "\n\nHello! 2 + 2 equals 4. Let me know if you need help with anything else! 😊" | CODE |
| MEDIUM⚡ | tests/test_pr_validate_codex.py | 865 | monkeypatch, tmp_path, "I'm unable to review this content." | CODE |
| MEDIUM | tests/integrations/conftest.py | 455 | # "I cannot provide the current weather in Tokyo as I cannot access | COMMENT |
| MEDIUM | …ests/RapidTests/GroundingConfabulationRetryTests.swift | 159 | "I cannot provide current data, my knowledge is only up to 2024.", | CODE |
| MEDIUM | …ests/RapidTests/GroundingConfabulationRetryTests.swift | 239 | "According to my knowledge cutoff, I cannot provide current data.", | CODE |
| MEDIUM⚡ | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3745 | "i can't provide real-time", "i cannot provide real-time", | STRING |
| MEDIUM⚡ | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3746 | "i can't provide current", "i cannot provide current", | STRING |
| MEDIUM⚡ | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3753 | "i'm unable to access real-time", "i am unable to access real-time", | STRING |
| MEDIUM⚡ | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3754 | "i'm unable to access current", "i am unable to access current", | STRING |
| MEDIUM⚡ | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3755 | "i'm unable to provide real-time", "i am unable to provide real-time", | STRING |
| MEDIUM | apps/rapid-mac/Sources/Rapid/Chat/ChatViewModel.swift | 3784 | /// ("According to my knowledge cutoff, I cannot provide current data") and | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_r15_routes_stability_batch.py | 505 | CODE | |
| MEDIUM | tests/test_r15_routes_stability_batch.py | 537 | CODE | |
| MEDIUM | tests/test_chat_route_vlm_image.py | 155 | CODE | |
| MEDIUM | tests/test_api_models.py | 1240 | CODE | |
| MEDIUM | tests/test_primary_model_lifecycle.py | 988 | CODE | |
| MEDIUM | tests/test_primary_model_lifecycle.py | 1048 | CODE | |
| MEDIUM | tests/test_cli_models_json.py | 258 | CODE | |
| MEDIUM | tests/headless_mlx/test_engine_lifecycle.py | 1079 | CODE | |
| MEDIUM | tests/headless_mlx/test_engine_lifecycle.py | 1543 | CODE | |
| MEDIUM | tests/headless_mlx/test_engine_lifecycle.py | 1559 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/test_prompt_cache_snapshot.py | 560 | scheduler.memory_aware_cache.store.call_args.kwargs.get("evict_prefixes") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_computer_use.py | 2202 | def perform_action(*args): | CODE |