Lemonade helps users discover and run local AI apps by serving optimized LLMs right from their own GPUs and NPUs. Join our discord: https://discord.gg/5xXzkMu8Zk
This report presents the forensic synthetic code analysis of lemonade-sdk/lemonade, a C++ project with 5,518 GitHub stars. SynthScan v2.0 examined 266,181 lines of code across 772 source files, recording 1124 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 7.0 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1124 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | CMakeLists.txt | 723 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 725 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 730 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 732 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1088 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1090 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1093 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1095 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1102 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 1104 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 136 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 138 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 175 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 177 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 197 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 199 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 317 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 319 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 466 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 468 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 537 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 539 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 762 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 764 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 781 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 783 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 945 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 947 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1028 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1030 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1124 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1126 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1279 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1281 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1332 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1334 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1469 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1471 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1622 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1624 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1875 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1877 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 2126 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 2128 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 2216 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 2218 | # ============================================================ | COMMENT |
| MEDIUM | test/test_ollama.py | 108 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 110 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 304 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 306 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 491 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 493 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 619 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 621 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 650 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 652 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 674 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 676 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 770 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 772 | # ======================================================================== | COMMENT |
| 197 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 41 | # before the test section) so that every test states, at its call site, whether | COMMENT |
| LOW | CMakeLists.txt | 141 | # stem - identifier-safe name and folder. Each backend lives in its own | COMMENT |
| LOW | CMakeLists.txt | 1281 | # ============================================================ | COMMENT |
| LOW | CMakeLists.txt | 1401 | # subprocess, so a developer who has Rust installed but hasn't sourced | COMMENT |
| LOW | CMakeLists.txt | 2121 | # RPM specific variables defined within | COMMENT |
| LOW | mkdocs.yml | 1 | # Configuration for the Lemonade Server documentation site. | COMMENT |
| LOW | test/server_endpoints.py | 7141 | break | COMMENT |
| LOW | test/cpp/test_backend_mode_contract.cpp | 1 | // Proves each backend descriptor's declared `supported_modes` matches the | COMMENT |
| LOW | test/cpp/test_rocm_root_resolution.cpp | 1 | // Unit tests for lemon::backends::BackendUtils::resolve_rocm_root() and its | COMMENT |
| LOW | test/cpp/test_install_atomicity.cpp | 1 | // Standalone test for lemon::backends::commit_staged_install. | COMMENT |
| LOW | test/cpp/test_directory_watcher.cpp | 1 | // Standalone test for lemon::DirectoryWatcher. | COMMENT |
| LOW | test/cpp/test_http_client_timeout.cpp | 1 | // Unit tests for the timeout convention shared by lemon::utils::HttpClient's | COMMENT |
| LOW | test/cpp/test_routing_policy_llm_router.cpp | 1 | // Unit + end-to-end tests for the `llm` router classifier and the | COMMENT |
| LOW | test/cpp/test_routing_policy_contract.cpp | 1 | // Foundation contract test for the generic routing engine. | COMMENT |
| LOW | test/cpp/test_routing_policy_contract.cpp | 21 | COMMENT | |
| LOW | test/cpp/test_config_discovery.cpp | 1 | #include <cstdio> | COMMENT |
| LOW | test/cpp/fake_classifier_services.h | 1 | #pragma once | COMMENT |
| LOW | test/cpp/test_routing_policy_store.cpp | 1 | // Unit tests for the directory-backed RoutingPolicyStore (#2383). | COMMENT |
| LOW | test/cpp/test_routing_helper_reconcile.cpp | 1 | // Concurrency/residency test for routing-helper reconciliation. | COMMENT |
| LOW | test/cpp/test_routing_helper_reconcile.cpp | 21 | COMMENT | |
| LOW | test/cpp/test_pip_download_parser.cpp | 1 | // Unit tests for lemon::backends::BackendUtils::parse_pip_download_line(). | COMMENT |
| LOW | test/cpp/test_latest_version_fallback.cpp | 1 | // Standalone unit tests for lemon::resolve_latest_pin() — the pure policy that | COMMENT |
| LOW | test/cpp/test_backend_utils_dll_version.cpp | 1 | // Unit tests for BackendUtils::read_dll_version(). | COMMENT |
| LOW | test/cpp/test_routing_policy_engine.cpp | 1 | // Unit tests for the RoutingPolicyEngine assembly (#2382). | COMMENT |
| LOW | test/cpp/test_config_migration.cpp | 1 | // Standalone unit tests for lemon::config_get_version(), | COMMENT |
| LOW | test/cpp/test_routing_policy_deterministic.cpp | 1 | // Unit tests for the Lemonade Router deterministic leaf conditions (#2380). | COMMENT |
| LOW | test/cpp/test_anthropic_relay_headers.cpp | 1 | // Unit tests for the /v1/messages relay header allowlists. | COMMENT |
| LOW | test/cpp/test_backend_utils_gpu_env.cpp | 1 | // Unit tests for lemon::backends::BackendUtils::validate_device_backend_match() | COMMENT |
| LOW | test/cpp/test_log_rotation.cpp | 1 | #include "lemon/logging_config.h" | COMMENT |
| LOW | test/cpp/test_gguf_capabilities.cpp | 1 | // Standalone test for lemon GGUF capability detection (src/cpp/include/lemon/gguf_capabilities.h). | COMMENT |
| LOW | test/cpp/test_network_utils.cpp | 1 | // Windows header discipline — must precede all other includes. | COMMENT |
| LOW | test/cpp/test_hrx_contract.cpp | 1 | // Proves HRX keeps its narrow install, custom-argument, and process-launch | COMMENT |
| LOW | test/cpp/test_routing_policy_parser.cpp | 1 | // Unit tests for the Lemonade Router policy parser (#2383). | COMMENT |
| LOW | test/cpp/test_cloud_discovery_policy.cpp | 1 | // Unit tests for the CloudServer statics that address an outbound provider | COMMENT |
| LOW | test/cpp/test_llamacpp_system_backend.cpp | 1 | // Direct coverage for the Linux llamacpp "system" backend resolver. | COMMENT |
| LOW | test/cpp/test_github_api.cpp | 1 | #include <lemon/utils/github_api.h> | COMMENT |
| LOW | test/cpp/test_mcp_client_config.cpp | 1 | #include "lemon/mcp_client.h" | COMMENT |
| LOW | test/cpp/test_streaming_proxy_cancel.cpp | 1 | // Regression test for cancelling a proxied SSE request before the first body byte. | COMMENT |
| LOW | test/cpp/test_routing_policy_evaluator.cpp | 1 | // Unit tests for the Lemonade Router match evaluator (#2378). | COMMENT |
| LOW | test/cpp/test_telemetry_helpers.cpp | 1 | #include <algorithm> | COMMENT |
| LOW | test/cpp/test_routing_conformance_corpus.cpp | 1 | // Back-compat conformance corpus runner (#2425). | COMMENT |
| LOW | test/cpp/test_recipe_hiding.cpp | 1 | // Tests for the rule that reports a backend as unavailable (so clients hide it | COMMENT |
| LOW | test/cpp/test_model_alias.cpp | 1 | #include "lemon/alias_manager.h" | COMMENT |
| LOW | test/cpp/test_system_info_helpers.cpp | 1 | // C++ coverage for the pure SystemInfo CUDA mapping and device-family matching | COMMENT |
| LOW | test/cpp/test_config_dir_migration.cpp | 1 | #include <cassert> | COMMENT |
| LOW | test/cpp/test_routing_policy_semantic.cpp | 1 | // Unit tests for the Lemonade Router semantic_similarity classifier (#2381). | COMMENT |
| LOW | test/cpp/test_process_manager.cpp | 1 | #include <lemon/utils/process_manager.h> | COMMENT |
| LOW | test/cpp/test_model_sync_and_auto_update.cpp | 1 | // Contract and unit tests for Model Sync and Auto-Update features. | COMMENT |
| LOW | test/cpp/test_config_merging.cpp | 1 | #include <cassert> | COMMENT |
| LOW | test/cpp/test_cloud_provider_registry_config.cpp | 1 | // Unit tests for the CloudProviderRegistry per-provider config fields that | COMMENT |
| LOW | test/cpp/test_http_client_security.cpp | 1 | // Unit tests for the HttpSecurityPolicy trust boundaries applied by | COMMENT |
| LOW | docs/assets/flowchart.js | 1 | // ============================================================================ | COMMENT |
| LOW | docs/assets/flowchart.js | 61 | // durations are fixed (in ms); within a route the dot moves at constant | COMMENT |
| LOW | docs/assets/flowchart.js | 461 | var opacityTimes = routerTimes([0, fadeIn, routerFrac(t.end), routerFrac(t.end + routerFlow.dotFade), 1]); | COMMENT |
| LOW | docs/assets/flowchart.js | 821 | // ------------------------------------------------------------------------ | COMMENT |
| LOW | docs/assets/flowchart.js | 1301 | COMMENT | |
| LOW | docs/assets/flowchart.js | 1501 | function routerDemo(kind) { | COMMENT |
| LOW | docs/assets/persona-demo/framework.js | 1 | // ============================================================================ | COMMENT |
| LOW | docs/assets/persona-demo/common.js | 1 | // ============================================================================ | COMMENT |
| LOW | docs/assets/persona-demo/developers/interfaces.js | 1 | // Developers · section 2 · "Standard interfaces" | COMMENT |
| 208 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/moonshine-server/main.py | 61 | def convert_tokenizer_json_to_bin( | CODE |
| LOW | tools/moonshine-server/main.py | 276 | async def _handle_streaming_session(reader, sender: _EventSender, transcriber_factory): | CODE |
| LOW | test/server_log_rotation.py | 70 | def test_log_rotation_and_retention_cap(self): | CODE |
| LOW | test/server_log_rotation.py | 193 | def test_runtime_log_rotation(self): | CODE |
| LOW | test/server_log_rotation.py | 281 | def test_reject_directory_path(self): | CODE |
| LOW | test/server_log_rotation.py | 335 | def test_invalid_cli_does_not_corrupt_config_json(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 135 | def _wait_for_model_absent_from_health( | CODE |
| LOW | test/server_watchdog_lifecycle.py | 184 | def _non_streaming_chat_completion(self, model_name, max_tokens=8): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 264 | def _assert_fresh_backend_pid(self, model_name, old_pid): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 275 | def test_idle_crashed_backend_is_reaped_and_removed_from_health(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 296 | def test_next_streaming_request_reaps_and_reloads_crashed_backend(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 320 | def test_active_non_streaming_request_reloads_and_replays_after_backend_crash(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 377 | def test_next_non_streaming_request_reaps_reloads_and_returns_completion(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 405 | def test_concurrent_non_streaming_request_during_reload_also_completes(self): | CODE |
| LOW | test/server_jobs.py | 250 | def installed_llamacpp_backend(self): | CODE |
| LOW | test/server_jobs.py | 298 | def test_system_info_job_completes(self): | CODE |
| LOW | test/server_jobs.py | 317 | def test_invalid_graph_rejected(self): | CODE |
| LOW | test/server_jobs.py | 365 | def test_on_fail_goto_recovery(self): | CODE |
| LOW | test/server_jobs.py | 405 | def test_delete_terminal_and_active(self): | CODE |
| LOW | test/server_jobs.py | 423 | def test_persistence_across_restart(self): | CODE |
| LOW | test/server_jobs.py | 443 | def test_persistence_multiple_writes(self): | CODE |
| LOW | test/server_jobs.py | 471 | def test_delete_active_is_durable_across_crash(self): | CODE |
| LOW | test/server_jobs.py | 506 | def test_pause_and_interrupt_queued_jobs_take_effect_immediately(self): | CODE |
| LOW | test/server_jobs.py | 547 | def test_job_cap_rejected_when_nothing_evictable(self): | CODE |
| LOW | test/server_jobs.py | 575 | def test_progress_counts_handled_failures(self): | CODE |
| LOW | test/server_jobs.py | 660 | def test_queue_behind_exclusive_job(self): | CODE |
| LOW | test/server_jobs.py | 728 | def test_tokenize_gated_behind_exclusive_job(self): | CODE |
| LOW | test/server_jobs.py | 783 | def test_exclusive_job_drains_inflight_chat(self): | CODE |
| LOW | test/server_jobs.py | 866 | def test_interrupt_mid_job_cleans_up(self): | CODE |
| LOW | test/server_jobs.py | 921 | def test_delete_active_exclusive_cleans_up(self): | CODE |
| LOW | test/server_jobs.py | 958 | def test_preexisting_model_survives_job_interrupt(self): | CODE |
| LOW | test/server_jobs.py | 1022 | def test_delete_active_pinned_model_cleans_up(self): | CODE |
| LOW | test/server_jobs.py | 1042 | def test_interrupt_pinned_model_cleans_up(self): | CODE |
| LOW | test/server_jobs.py | 1062 | def test_preexisting_pinned_model_survives_job_interrupt(self): | CODE |
| LOW | test/server_jobs.py | 1106 | def loaded_model_pinned_state(self, model): | CODE |
| LOW | test/server_jobs.py | 1109 | def test_pin_state_of_preexisting_model_restored_after_job(self): | CODE |
| LOW | test/server_jobs.py | 1180 | def test_job_ownership_survives_pause_resume_interrupt(self): | CODE |
| LOW | test/server_jobs.py | 1227 | def test_delete_while_paused_cleans_up(self): | CODE |
| LOW | test/server_jobs.py | 1275 | def test_interrupted_job_restores_model_on_resume(self): | CODE |
| LOW | test/server_jobs.py | 1331 | def test_external_model_survives_job_cleanup(self): | CODE |
| LOW | test/server_jobs.py | 1419 | def test_external_same_name_model_survives_delete_of_interrupted_job(self): | CODE |
| LOW | test/server_jobs.py | 1481 | def test_resume_adopts_external_same_name_model(self): | CODE |
| LOW | test/server_jobs.py | 1544 | def test_alias_loaded_model_unloads_after_interrupt_resume_interrupt(self): | CODE |
| LOW | test/server_jobs.py | 1618 | def test_model_dependent_resume_after_hard_restart(self): | CODE |
| LOW | test/server_pinning.py | 118 | def test_pinning_lru_eviction_protection(self): | CODE |
| LOW | test/server_pinning.py | 166 | def test_eviction_engine_skips_pinned_models(self): | CODE |
| LOW | test/server_pinning.py | 208 | def test_pinned_model_bypasses_idle_timeout_downsize(self): | CODE |
| LOW | test/server_pinning.py | 235 | def test_watchdog_reload_preserves_pin_state(self): | CODE |
| LOW | test/test_multi_checkpoint_completeness.py | 75 | def test_incomplete_component_reaches_cli_and_collection_pull(self): | CODE |
| LOW⚡ | test/test_benchmark_large_request_memory.py | 70 | def test_request_without_credentials_has_no_authorization_header(self) -> None: | CODE |
| LOW⚡ | test/test_benchmark_large_request_memory.py | 76 | def test_regular_api_key_is_forwarded(self) -> None: | CODE |
| LOW⚡ | test/test_benchmark_large_request_memory.py | 84 | def test_admin_api_key_takes_precedence(self) -> None: | CODE |
| LOW | test/test_ollama.py | 97 | def ensure_tool_calling_model_pulled(self): | CODE |
| LOW | test/test_ollama.py | 949 | def _anthropic_overflow_payload(self, stream): | CODE |
| LOW | test/server_streaming_errors.py | 79 | def _wait_for_no_running_models(self, timeout=15): | CODE |
| LOW | test/server_streaming_errors.py | 111 | def _ensure_test_model_loaded(self, attempts=3): | CODE |
| LOW | test/server_endpoints.py | 207 | def _assert_loaded_model_launch_command(self, model_info): | CODE |
| LOW | test/server_endpoints.py | 817 | def _unload_for_configured_context(self): | CODE |
| LOW | test/server_endpoints.py | 1384 | def _set_global_llamacpp_args(self, args): | CODE |
| LOW | test/server_endpoints.py | 2050 | def _start_mock_cloud_provider( | CODE |
| 124 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/benchmark_large_request_memory.py | 311 | except Exception as error: | CODE |
| MEDIUM | tools/moonshine-server/main.py | 208 | def _drain(self): | CODE |
| LOW⚡ | tools/moonshine-server/main.py | 197 | except Exception: | CODE |
| LOW⚡ | tools/moonshine-server/main.py | 205 | except Exception: | CODE |
| LOW⚡ | tools/moonshine-server/main.py | 211 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 173 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 319 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 342 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 365 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 369 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 394 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 481 | except Exception as e: | CODE |
| LOW | tools/moonshine-server/main.py | 487 | except Exception: | CODE |
| LOW | tools/moonshine-server/main.py | 518 | except Exception as e: | CODE |
| LOW | test/server_websocket_auth.py | 90 | except Exception: | CODE |
| LOW | test/server_websocket_auth.py | 105 | except Exception: | CODE |
| LOW | test/server_websocket_auth.py | 368 | except Exception: | CODE |
| LOW | test/server_websocket_auth.py | 443 | except Exception: | CODE |
| LOW | test/validate_sdcpp.py | 41 | except Exception as exc: # noqa: BLE001 - argparse shows the clean message | CODE |
| LOW | test/validate_sdcpp.py | 283 | except Exception as exc: # noqa: BLE001 - keep JSON on all failures | CODE |
| LOW | test/validate_sdcpp.py | 354 | except Exception as exc: # noqa: BLE001 - keep JSON on all failures | CODE |
| LOW | test/server_log_rotation.py | 65 | except Exception: | CODE |
| LOW | test/server_log_rotation.py | 151 | except Exception: | CODE |
| LOW | test/server_log_rotation.py | 156 | except Exception: | CODE |
| LOW | test/server_log_rotation.py | 238 | except Exception: | CODE |
| LOW | test/server_log_rotation.py | 259 | except Exception: | CODE |
| LOW | test/server_log_rotation.py | 266 | except Exception: | CODE |
| LOW | test/server_watchdog_lifecycle.py | 79 | except Exception: | CODE |
| MEDIUM | test/server_watchdog_lifecycle.py | 71 | def tearDownClass(cls): | CODE |
| LOW | test/server_jobs.py | 111 | except Exception: | CODE |
| LOW | test/validate_vllm.py | 52 | except Exception as exc: | CODE |
| LOW⚡ | test/server_websocket_telemetry.py | 88 | except Exception: | CODE |
| LOW⚡ | test/server_websocket_telemetry.py | 92 | except Exception: | CODE |
| LOW⚡ | test/server_websocket_telemetry.py | 96 | except Exception: | CODE |
| LOW⚡ | test/server_websocket_telemetry.py | 104 | except Exception: | CODE |
| LOW | test/server_websocket_telemetry.py | 160 | except Exception: | CODE |
| LOW | test/server_websocket_telemetry.py | 168 | except Exception: | CODE |
| LOW | test/server_websocket_telemetry.py | 556 | except Exception as e: | CODE |
| MEDIUM | test/server_websocket_telemetry.py | 557 | print("Error parsing mock OTLP data:", e) | CODE |
| LOW | test/validate_llamacpp.py | 53 | except Exception as exc: | CODE |
| LOW | test/test_ollama.py | 446 | except Exception as exc: # noqa: BLE001 - best-effort cleanup | CODE |
| LOW | test/test_ollama.py | 946 | except Exception as exc: # noqa: BLE001 - best-effort cleanup | CODE |
| LOW | test/server_cli_apikey.py | 159 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5243 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5251 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5259 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5687 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5695 | except Exception: | CODE |
| LOW⚡ | test/server_endpoints.py | 5703 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 376 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 477 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 574 | except Exception as e: | CODE |
| LOW | test/server_endpoints.py | 3125 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3335 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3554 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3643 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3758 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3823 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3960 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 4099 | except Exception: | CODE |
| 107 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/server_endpoints.py | 1715 | print("[OK] Options merge on POST, clear on null, and are erased by DELETE") | CODE |
| HIGH | .github/scripts/triage_dashboard.py | 247 | let dateFrom = null; // "YYYY-MM-DD" or null | CODE |
| HIGH | .github/scripts/triage_dashboard.py | 248 | let dateTo = null; // "YYYY-MM-DD" or null | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 262 | if (dateFrom && day < dateFrom) return false; | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 263 | if (dateTo && day > dateTo) return false; | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 268 | return activeFilters.size > 0 || dateFrom || dateTo; | CODE |
| HIGH | .github/scripts/triage_dashboard.py | 282 | const isCollapsed = collapsible && collapsedFamilies.has(fname); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 326 | if (f === ASSIGNEE_UNASSIGNED || f.startsWith("assignee::")) assigneeFilters.push(f); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 326 | if (f === ASSIGNEE_UNASSIGNED || f.startsWith("assignee::")) assigneeFilters.push(f); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 327 | else labelFilters.push(f); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 377 | matches.sort((a, b) => b.comments - a.comments || b.number - a.number); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 379 | if (dateFrom) dateBits.push("from " + dateFrom); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 380 | if (dateTo) dateBits.push("to " + dateTo); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 450 | dateFromEl.addEventListener("change", () => { dateFrom = dateFromEl.value || null; render(); }); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 450 | dateFromEl.addEventListener("change", () => { dateFrom = dateFromEl.value || null; render(); }); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 451 | dateToEl.addEventListener("change", () => { dateTo = dateToEl.value || null; render(); }); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 451 | dateToEl.addEventListener("change", () => { dateTo = dateToEl.value || null; render(); }); | CODE |
| HIGH⚡ | .github/scripts/triage_dashboard.py | 453 | dateFrom = null; dateTo = null; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_log_rotation.py | 81 | # Step 1: Pre-exist 1.2MB file and launch instance 1 -> rotates to .1 | COMMENT |
| LOW⚡ | test/server_log_rotation.py | 113 | # Step 2: Pre-exist 1.2MB file and launch instance 2 -> shifts .1 to .2, creates new .1 | COMMENT |
| LOW⚡ | test/server_log_rotation.py | 122 | # Step 3: Pre-exist 1.2MB file and launch instance 3 -> shifts .1->.2, prunes .3 | COMMENT |
| LOW | test/cpp/test_config_migration.cpp | 329 | // Step 1: merge with fresh defaults | COMMENT |
| LOW | test/cpp/test_config_merging.cpp | 433 | // Step 1: User previously configured custom port 9000 and custom backend vulkan | COMMENT |
| LOW | test/cpp/test_config_merging.cpp | 444 | // Step 2: User resets port back to default 13305 via handle_config_set workflow | COMMENT |
| LOW⚡ | test/cpp/test_config_merging.cpp | 455 | // Step 3: User resets backend back to "auto" | COMMENT |
| LOW⚡ | test/cpp/test_config_merging.cpp | 464 | // Step 4: load() still returns full defaults seamlessly | COMMENT |
| LOW | docs/guide/telemetry.md | 43 | #### Step 1: Start Arize Phoenix | COMMENT |
| LOW | docs/guide/telemetry.md | 67 | #### Step 2: Verify Arize Phoenix is Ready | COMMENT |
| LOW | docs/guide/telemetry.md | 79 | #### Step 3: Configure Lemonade Telemetry | COMMENT |
| LOW | docs/guide/telemetry.md | 115 | #### Step 4: Send a Test Request | COMMENT |
| LOW | docs/guide/telemetry.md | 130 | #### Step 5: Flush Traces Immediately (Optional) | COMMENT |
| LOW | docs/guide/telemetry.md | 138 | #### Step 6: View Traces in the UI | COMMENT |
| LOW | docs/guide/install/ubuntu.md | 7 | ## Step 1: Install lemonade-server | COMMENT |
| LOW | docs/guide/install/ubuntu.md | 22 | ## Step 2: Choose your frontend | COMMENT |
| LOW | docs/guide/install/arch.md | 3 | ## Step 1: Install lemonade-server | COMMENT |
| LOW | docs/guide/install/arch.md | 11 | ## Step 2: Choose your frontend | COMMENT |
| LOW | docs/api/openai.md | 803 | # Step 1: Generate an image and save the base64 response | COMMENT |
| LOW | docs/api/openai.md | 814 | # Step 2: Build the upscale JSON payload and pipe it to curl via stdin | COMMENT |
| LOW | docs/api/openai.md | 828 | # Step 1: Generate an image | COMMENT |
| LOW | docs/api/openai.md | 841 | # Step 2: Extract the base64 image | COMMENT |
| LOW | docs/api/openai.md | 844 | # Step 3: Upscale the image with Real-ESRGAN | COMMENT |
| LOW⚡ | docs/api/openai.md | 861 | # Step 1: Generate an image | COMMENT |
| LOW⚡ | docs/api/openai.md | 871 | # Step 2: Upscale the image with Real-ESRGAN (512x512 -> 2048x2048) | COMMENT |
| LOW⚡ | docs/api/openai.md | 877 | # Step 3: Save the upscaled image to a file | COMMENT |
| LOW | docs/dev/release.md | 19 | ## Step 1: Update the Version | COMMENT |
| LOW | docs/dev/release.md | 34 | ## Step 2: Create the Release Branch | COMMENT |
| LOW | docs/dev/release.md | 83 | ## Step 3: Push a Tag | COMMENT |
| LOW | docs/dev/release.md | 103 | ## Step 4: Windows Signing | COMMENT |
| LOW | docs/dev/release.md | 119 | ## Step 5: Release Action Finishes | COMMENT |
| LOW | docs/dev/release.md | 135 | ## Step 6: Reconcile the Tag into `main` | COMMENT |
| LOW | docs/dev/release.md | 153 | ## Step 7: Update the Release Notes | COMMENT |
| LOW | docs/dev/release.md | 174 | ## Step 8: Discord Announcement | COMMENT |
| LOW | docs/dev/release.md | 183 | ## Step 9: Social Media | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 776 | // Step 1: Check if model is already loaded via health endpoint | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 802 | // Step 2: Signal UI that model loading is in progress | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 805 | // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure) | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 855 | // Step 4: Check if model is downloaded | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 872 | // Step 5: Pull model if not downloaded (shows in Download Manager) | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 877 | // Step 6: Load model into memory (merge loadBody if provided) | COMMENT |
| LOW | src/cpp/server/system_info.cpp | 852 | // NOTE: This function collects hardware info only (no inference engines). | COMMENT |
| LOW | src/cpp/server/model_manager.cpp | 2803 | // Step 1: Load ALL models from JSON (server models) | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 3040 | // Step 2: Filter by backend availability. This is the full-registry pass, so | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 3045 | // Step 3: Check download status for all models. Dynamic-discovery backends | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/benchmark_large_request_memory.py | 256 | CODE | |
| LOW | tools/benchmark_large_request_memory.py | 399 | CODE | |
| LOW | tools/check_comment_slop.py | 193 | CODE | |
| LOW | tools/check_comment_slop.py | 238 | CODE | |
| LOW | tools/model_sizes.py | 183 | CODE | |
| LOW | tools/model_sizes.py | 304 | CODE | |
| LOW | tools/moonshine-server/main.py | 61 | CODE | |
| LOW | tools/moonshine-server/main.py | 276 | CODE | |
| LOW | tools/moonshine-server/main.py | 398 | CODE | |
| LOW | tools/moonshine-server/main.py | 423 | CODE | |
| LOW | test/server_websocket_auth.py | 339 | CODE | |
| LOW | test/server_websocket_auth.py | 413 | CODE | |
| LOW | test/validate_sdcpp.py | 245 | CODE | |
| LOW | test/server_websocket_telemetry.py | 82 | CODE | |
| LOW | test/server_websocket_telemetry.py | 108 | CODE | |
| LOW | test/server_websocket_telemetry.py | 544 | CODE | |
| LOW | test/server_gfx_topology.py | 144 | CODE | |
| LOW | test/test_ollama.py | 989 | CODE | |
| LOW | test/server_llm.py | 396 | CODE | |
| LOW | test/server_llm.py | 1041 | CODE | |
| LOW | test/server_llm.py | 1174 | CODE | |
| LOW | test/server_endpoints.py | 424 | CODE | |
| LOW | test/server_endpoints.py | 1015 | CODE | |
| LOW | test/server_endpoints.py | 2457 | CODE | |
| LOW | test/server_endpoints.py | 6994 | CODE | |
| LOW | test/server_endpoints.py | 7120 | CODE | |
| LOW | test/server_endpoints.py | 7309 | CODE | |
| LOW | test/server_endpoints.py | 7567 | CODE | |
| LOW | test/server_endpoints.py | 8325 | CODE | |
| LOW | test/server_endpoints.py | 469 | CODE | |
| LOW | test/server_moonshine.py | 293 | CODE | |
| LOW | test/test_model_name_normalization.py | 59 | CODE | |
| LOW | test/test_model_name_normalization.py | 123 | CODE | |
| LOW | test/test_flm_status.py | 74 | CODE | |
| LOW | test/test_flm_status.py | 255 | CODE | |
| LOW | test/test_flm_status.py | 296 | CODE | |
| LOW | test/test_flm_status.py | 937 | CODE | |
| LOW | test/server_cli2.py | 86 | CODE | |
| LOW | test/server_cli2.py | 661 | CODE | |
| LOW | test/server_cli2.py | 2291 | CODE | |
| LOW | test/test_gpu_hang_retry.py | 326 | CODE | |
| LOW | test/test_gpu_hang_retry.py | 425 | CODE | |
| LOW | test/server_telemetry.py | 57 | CODE | |
| LOW | test/server_telemetry.py | 86 | CODE | |
| LOW | test/server_telemetry.py | 125 | CODE | |
| LOW | test/server_telemetry.py | 383 | CODE | |
| LOW | test/server_whisper.py | 262 | CODE | |
| LOW | test/server_whisper.py | 616 | CODE | |
| LOW | test/utils/server_base.py | 283 | CODE | |
| LOW | test/utils/server_base.py | 369 | CODE | |
| LOW | docs/tools/gen_backend_boilerplate.py | 171 | CODE | |
| LOW | examples/realtime_transcription.py | 86 | CODE | |
| LOW | examples/realtime_transcription.py | 129 | CODE | |
| LOW | examples/realtime_transcription.py | 169 | CODE | |
| LOW | .github/scripts/validate_backend_bench.py | 426 | CODE | |
| LOW | .github/scripts/validate_backend_bench.py | 521 | CODE | |
| LOW | .github/scripts/render_sdcpp_pr_body.py | 140 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/benchmark_large_request_memory.py | 4 | CODE | |
| LOW | tools/moonshine-server/main.py | 25 | CODE | |
| LOW | tools/moonshine-server/main.py | 27 | CODE | |
| LOW | tools/moonshine-server/main.py | 41 | CODE | |
| LOW | test/server_webapp.py | 17 | CODE | |
| LOW | test/server_webapp.py | 18 | CODE | |
| LOW | test/server_webapp.py | 19 | CODE | |
| LOW | test/validate_sdcpp.py | 11 | CODE | |
| LOW | test/server_pinning.py | 6 | CODE | |
| LOW | test/test_benchmark_large_request_memory.py | 4 | CODE | |
| LOW | test/server_gfx_topology.py | 29 | CODE | |
| LOW | test/test_ollama.py | 16 | CODE | |
| LOW | test/test_ollama.py | 30 | CODE | |
| LOW | test/server_tts.py | 11 | CODE | |
| LOW | test/server_tts.py | 18 | CODE | |
| LOW | test/server_llm.py | 30 | CODE | |
| LOW | test/server_llm.py | 30 | CODE | |
| LOW | test/server_llm.py | 30 | CODE | |
| LOW | test/server_llm.py | 37 | CODE | |
| LOW | test/server_llm.py | 37 | CODE | |
| LOW | test/server_llm.py | 43 | CODE | |
| LOW | test/server_llm.py | 43 | CODE | |
| LOW | test/server_llm.py | 43 | CODE | |
| LOW | test/server_endpoints.py | 38 | CODE | |
| LOW | test/server_endpoints.py | 45 | CODE | |
| LOW | test/server_moonshine.py | 16 | CODE | |
| LOW | test/server_moonshine.py | 18 | CODE | |
| LOW | test/server_thenoise.py | 30 | CODE | |
| LOW | test/server_omni.py | 32 | CODE | |
| LOW | test/server_omni.py | 32 | CODE | |
| LOW | test/server_omni.py | 43 | CODE | |
| LOW | test/server_sd.py | 24 | CODE | |
| LOW | test/test_glibc_allocator_policy.py | 4 | CODE | |
| LOW | test/server_downloads.py | 18 | CODE | |
| LOW | test/test_comment_slop.py | 4 | CODE | |
| LOW | test/utils/server_base.py | 36 | CODE | |
| LOW | test/utils/server_base.py | 36 | CODE | |
| LOW | examples/api_image_edits.py | 21 | CODE | |
| LOW | examples/api_text_to_speech.py | 14 | CODE | |
| LOW | examples/api_text_to_speech.py | 16 | CODE | |
| LOW | examples/realtime_transcription.py | 49 | CODE | |
| LOW | examples/api_image_variations.py | 22 | CODE | |
| LOW | .github/scripts/validate_backend_bench.py | 18 | CODE | |
| LOW | .github/scripts/render_sdcpp_pr_body.py | 10 | CODE | |
| LOW | .github/scripts/update_sdcpp_versions.py | 10 | CODE | |
| LOW | src/cpp/installer/generate_tauri_fragment.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/server_router.py | 166 | # Small embedding model that backs the semantic_similarity classifier. | COMMENT |
| MEDIUM | docs/guide/configuration/custom-models.md | 543 | ### Example 3: Adding an embedding model | COMMENT |
| MEDIUM | docs/integrations/langchain.md | 72 | ## Example 2 — RAG Pipeline (Chat with Your Documents) | COMMENT |
| MEDIUM | docs/integrations/langchain.md | 107 | # Requires the embedding model to be pulled first: | COMMENT |
| MEDIUM⚡ | docs/integrations/langchain.md | 129 | # ── Build RAG chain ────────────────────────────────────── | COMMENT |
| MEDIUM | docs/integrations/anythingLLM.md | 80 | You can always use the built in no-code [Agent Flow builder](https://docs.anythingllm.com/agent-flows/overview), [create | CODE |
| MEDIUM | docs/integrations/anythingLLM.md | 100 | <img src="https://github.com/lemonade-sdk/assets/blob/main/anythingllm/tool-calling.png?raw=true" alt="Complex multi-s | CODE |
| MEDIUM | docs/news/muse-glimmer.html | 476 | <p class="mg-lede">Meta Superintelligence Labs released <a href="https://huggingface.co/meta-models/Muse-Glimm | CODE |
| MEDIUM | docs/dev/app.md | 44 | │ ├── App.tsx # Root component, layout orchestration | CODE |
| MEDIUM | docs/assets/news-data.js | 212 | url: "https://styrk.ai/styrk-ai-and-amd-guardrails-for-your-on-device-ai-revolution/", | CODE |
| MEDIUM | .github/workflows/routing_schema_tests.yml | 27 | # policy/decision schemas. Keeps the back-compat guardrails enforced. | COMMENT |
| MEDIUM | src/app/src/renderer/ChatWindow.tsx | 117 | // to a component. The agentic tool loop is a collection.omni feature; running | COMMENT |
| MEDIUM | src/app/src/renderer/utils/chatTypes.ts | 29 | // Wire protocol types for tool-calling agentic loop | COMMENT |
| MEDIUM | src/app/src/renderer/components/panels/LLMChatPanel.tsx | 1174 | // Assistant-generated TTS audio (from the collection agentic loop) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_log_rotation.py | 81 | # Step 1: Pre-exist 1.2MB file and launch instance 1 -> rotates to .1 | COMMENT |
| LOW⚡ | test/server_log_rotation.py | 113 | # Step 2: Pre-exist 1.2MB file and launch instance 2 -> shifts .1 to .2, creates new .1 | COMMENT |
| LOW⚡ | test/server_log_rotation.py | 122 | # Step 3: Pre-exist 1.2MB file and launch instance 3 -> shifts .1->.2, prunes .3 | COMMENT |
| LOW | test/cpp/test_config_migration.cpp | 329 | // Step 1: merge with fresh defaults | COMMENT |
| LOW | test/cpp/test_config_merging.cpp | 433 | // Step 1: User previously configured custom port 9000 and custom backend vulkan | COMMENT |
| LOW | test/cpp/test_config_merging.cpp | 444 | // Step 2: User resets port back to default 13305 via handle_config_set workflow | COMMENT |
| LOW⚡ | test/cpp/test_config_merging.cpp | 455 | // Step 3: User resets backend back to "auto" | COMMENT |
| LOW⚡ | test/cpp/test_config_merging.cpp | 464 | // Step 4: load() still returns full defaults seamlessly | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 776 | // Step 1: Check if model is already loaded via health endpoint | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 802 | // Step 2: Signal UI that model loading is in progress | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 805 | // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure) | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 855 | // Step 4: Check if model is downloaded | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 872 | // Step 5: Pull model if not downloaded (shows in Download Manager) | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 877 | // Step 6: Load model into memory (merge loadBody if provided) | COMMENT |
| LOW | src/cpp/server/model_manager.cpp | 2803 | // Step 1: Load ALL models from JSON (server models) | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 3040 | // Step 2: Filter by backend availability. This is the full-registry pass, so | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 3045 | // Step 3: Check download status for all models. Dynamic-discovery backends | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | setup.sh | 30 | # Check if command exists | COMMENT |
| LOW⚡ | setup.sh | 35 | # Check if system is managed by rpm-ostree | COMMENT |
| LOW⚡ | setup.sh | 40 | # Check if running as root | COMMENT |
| LOW | setup.sh | 615 | # Check if running in CI environment | COMMENT |
| LOW | setup.sh | 634 | # Check if pre-commit needs pip | COMMENT |
| LOW⚡ | test/server_cli2.py | 664 | # Set host to 0.0.0.0 (listen on all interfaces). | COMMENT |
| LOW | docs/update_readme_marketplace.py | 84 | # Check if markers exist | COMMENT |
| LOW | examples/migrate-to-systemd.sh | 11 | # Check if running as root | COMMENT |
| LOW | examples/migrate-to-systemd.sh | 43 | # Check if lemonade user exists | COMMENT |
| LOW | examples/migrate-to-systemd.sh | 140 | # Check if destination already exists | COMMENT |
| LOW | .github/workflows/validate_llamacpp.yml | 1090 | # Check if a PR already exists for this update | COMMENT |
| LOW | .github/actions/cleanup-processes-linux/action.yml | 24 | # Check if the process matches lemond, lemonade, or llama-server | COMMENT |
| LOW | .github/actions/install-lemonade-server-msi/action.yml | 118 | # Check if installation directory exists | COMMENT |
| LOW | .github/actions/cleanup-ci-paths-linux/action.yml | 36 | # Check if path is under expected root | COMMENT |
| LOW | .github/actions/cleanup-ci-paths-linux/action.yml | 53 | # Check if full_path starts with full_root | COMMENT |
| LOW | .github/actions/build-macos-dmg/action.yml | 87 | # Check if binaries are signed (non-fatal) | COMMENT |
| LOW | .github/actions/setup-python/action.yml | 43 | # Check if already installed | COMMENT |
| LOW | .github/actions/generate-release-notes/action.yml | 33 | # Check if tag exists via GitHub API (works without local git tags) | COMMENT |
| LOW | .github/actions/generate-release-notes/action.yml | 36 | # Check if this tag already has a release on GitHub | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | docs/guide/cli.md | 99 | export LEMONADE_API_KEY=your-api-key-here | CODE |
| HIGH⚡ | docs/guide/cli.md | 107 | set LEMONADE_API_KEY=your-api-key-here | CODE |
| HIGH⚡ | docs/guide/cli.md | 115 | $env:LEMONADE_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/guide/telemetry.md | 159 | telemetry.otlp.headers='{"x-honeycomb-team": "YOUR_API_KEY"}' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/server_moonshine.py | 335 | # Create an invalid WAV file (just some text content) using NamedTemporaryFile | COMMENT |
| MEDIUM | examples/api_image_edits.py | 32 | # Create a 512x512 white image with a simple shape | COMMENT |
| MEDIUM | examples/api_image_variations.py | 33 | # Create a 512x512 image with a simple pattern | COMMENT |
| MEDIUM | .github/actions/setup-venv/action.yml | 113 | # Create the venv using the explicit Python path | COMMENT |
| MEDIUM | .github/actions/setup-venv/action.yml | 165 | # Create the venv using the explicit Python path | COMMENT |
| MEDIUM | .github/actions/setup-macos-keychain/action.yml | 34 | # Create a temporary keychain | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/server_watchdog_lifecycle.py | 59 | # Make the file usable under pytest too. The existing test harness calls | COMMENT |
| MEDIUM | docs/index.html | 755 | // Duplicate for seamless loop | COMMENT |
| MEDIUM | .github/actions/install-lemonade-deb/action.yml | 136 | # an in-use port. The resolved port is exported so the test harness | COMMENT |
| LOW | src/app/src/renderer/utils/toolDefinitions.json | 139 | "description": "Transcribe audio to text (speech-to-text). Use this when the user provides an audio file or when | CODE |
| MEDIUM | src/cpp/server/model_manager.cpp | 435 | // TODO: A more robust approach would be to extend cleanup_orphaned_cache() | COMMENT |
| MEDIUM | src/cpp/server/model_manager.cpp | 5112 | // Download each file with robust retry and resume support | COMMENT |
| MEDIUM | src/cpp/cli/main.cpp | 710 | // This preserves existing user configuration while providing seamless first-time UX. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_endpoints.py | 2214 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 2657 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 2671 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 2705 | json={"provider": provider, "api_key": "dummy-key"}, | CODE |
| LOW | test/server_endpoints.py | 2716 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 5139 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 5575 | "api_key": "dummy-key", | CODE |
| LOW | test/server_router.py | 573 | "api_key": "dummy-key", | CODE |
| LOW | test/server_router.py | 700 | "api_key": "dummy-key", | CODE |
| LOW | test/server_router.py | 818 | "api_key": "dummy-key", | CODE |
| LOW | test/server_router.py | 1030 | "api_key": "dummy-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_gfx_topology.py | 101 | CODE | |
| LOW | test/utils/server_base.py | 215 | CODE | |
| LOW | test/utils/server_base.py | 276 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/utils/server_base.py | 671 | __all__ = [ | CODE |