Repository Analysis

lemonade-sdk/lemonade

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

7.5 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of lemonade-sdk/lemonade, a C++ project with 4,892 GitHub stars. SynthScan v2.0 examined 201,066 lines of code across 608 source files, recording 836 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 7.5 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).

7.5
Adjusted Score
7.5
Raw Score
100%
Time Factor
2026-07-14
Last Push
4.9K
Stars
C++
Language
201.1K
Lines of Code
608
Files
836
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 21MEDIUM 268LOW 547

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 836 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.

Decorative Section Separators227 hits · 673 pts
SeverityFileLineSnippetContext
MEDIUMCMakeLists.txt431# ============================================================COMMENT
MEDIUMCMakeLists.txt433# ============================================================COMMENT
MEDIUMCMakeLists.txt438# ============================================================COMMENT
MEDIUMCMakeLists.txt440# ============================================================COMMENT
MEDIUMCMakeLists.txt744# ============================================================COMMENT
MEDIUMCMakeLists.txt746# ============================================================COMMENT
MEDIUMCMakeLists.txt749# ============================================================COMMENT
MEDIUMCMakeLists.txt751# ============================================================COMMENT
MEDIUMCMakeLists.txt758# ============================================================COMMENT
MEDIUMCMakeLists.txt760# ============================================================COMMENT
MEDIUMCMakeLists.txt38# ============================================================COMMENT
MEDIUMCMakeLists.txt40# ============================================================COMMENT
MEDIUMCMakeLists.txt73# ============================================================COMMENT
MEDIUMCMakeLists.txt75# ============================================================COMMENT
MEDIUMCMakeLists.txt95# ============================================================COMMENT
MEDIUMCMakeLists.txt97# ============================================================COMMENT
MEDIUMCMakeLists.txt214# ============================================================COMMENT
MEDIUMCMakeLists.txt216# ============================================================COMMENT
MEDIUMCMakeLists.txt460# ============================================================COMMENT
MEDIUMCMakeLists.txt462# ============================================================COMMENT
MEDIUMCMakeLists.txt479 # ============================================================COMMENT
MEDIUMCMakeLists.txt481 # ============================================================COMMENT
MEDIUMCMakeLists.txt616# ============================================================COMMENT
MEDIUMCMakeLists.txt618# ============================================================COMMENT
MEDIUMCMakeLists.txt691# ============================================================COMMENT
MEDIUMCMakeLists.txt693# ============================================================COMMENT
MEDIUMCMakeLists.txt779# ============================================================COMMENT
MEDIUMCMakeLists.txt781# ============================================================COMMENT
MEDIUMCMakeLists.txt895# ============================================================COMMENT
MEDIUMCMakeLists.txt897# ============================================================COMMENT
MEDIUMCMakeLists.txt948# ============================================================COMMENT
MEDIUMCMakeLists.txt950# ============================================================COMMENT
MEDIUMCMakeLists.txt1085# ============================================================COMMENT
MEDIUMCMakeLists.txt1087# ============================================================COMMENT
MEDIUMCMakeLists.txt1234# ============================================================COMMENT
MEDIUMCMakeLists.txt1236# ============================================================COMMENT
MEDIUMCMakeLists.txt1487# ============================================================COMMENT
MEDIUMCMakeLists.txt1489# ============================================================COMMENT
MEDIUMCMakeLists.txt1733# ============================================================COMMENT
MEDIUMCMakeLists.txt1735# ============================================================COMMENT
MEDIUMCMakeLists.txt1823# ============================================================COMMENT
MEDIUMCMakeLists.txt1825# ============================================================COMMENT
MEDIUMtest/test_cuda_arch_mapping.py15# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_cuda_arch_mapping.py17# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_cuda_arch_mapping.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_cuda_arch_mapping.py51# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_cuda_arch_mapping.py166# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_cuda_arch_mapping.py168# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/test_ollama.py104 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py106 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py300 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py302 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py487 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py489 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py608 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py610 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py639 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py641 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py663 # ========================================================================COMMENT
MEDIUMtest/test_ollama.py665 # ========================================================================COMMENT
167 more matches not shown…
Over-Commented Block187 hits · 186 pts
SeverityFileLineSnippetContext
LOWCMakeLists.txt41# The authoritative backend list. Each entry is "<recipe>|<stem>":COMMENT
LOWmkdocs.yml1# Configuration for the Lemonade Server documentation site.COMMENT
LOWtest/server_endpoints.py4121 self.assertTrue(COMMENT
LOWtest/cpp/test_rocm_root_resolution.cpp1// Unit tests for lemon::backends::BackendUtils::resolve_rocm_root() and itsCOMMENT
LOWtest/cpp/test_install_atomicity.cpp1// Standalone test for lemon::backends::commit_staged_install.COMMENT
LOWtest/cpp/test_directory_watcher.cpp1// Standalone test for lemon::DirectoryWatcher.COMMENT
LOWtest/cpp/test_routing_policy_contract.cpp1// Foundation contract test for the generic routing engine.COMMENT
LOWtest/cpp/test_routing_policy_contract.cpp21COMMENT
LOWtest/cpp/fake_classifier_services.h1#pragma onceCOMMENT
LOWtest/cpp/test_routing_policy_store.cpp1// Unit tests for the directory-backed RoutingPolicyStore (#2383).COMMENT
LOWtest/cpp/test_latest_version_fallback.cpp1// Standalone unit tests for lemon::resolve_latest_pin() — the pure policy thatCOMMENT
LOWtest/cpp/test_routing_policy_engine.cpp1// Unit tests for the RoutingPolicyEngine assembly (#2382).COMMENT
LOWtest/cpp/test_config_migration.cpp1// Standalone unit tests for lemon::config_get_version(),COMMENT
LOWtest/cpp/test_routing_policy_deterministic.cpp1// Unit tests for the Lemonade Router deterministic leaf conditions (#2380).COMMENT
LOWtest/cpp/test_gguf_capabilities.cpp1// Standalone test for lemon GGUF capability detection (src/cpp/include/lemon/gguf_capabilities.h).COMMENT
LOWtest/cpp/test_network_utils.cpp1#include "lemon/utils/network_utils.h"COMMENT
LOWtest/cpp/test_routing_policy_parser.cpp1// Unit tests for the Lemonade Router policy parser (#2383).COMMENT
LOWtest/cpp/test_cloud_discovery_policy.cpp1// Unit tests for CloudServer::discovery_policy(), which selects the HTTP trustCOMMENT
LOWtest/cpp/test_ggml_hip_path.cpp1// Standalone test for lemon::utils::is_ggml_hip_plugin_available().COMMENT
LOWtest/cpp/test_routing_policy_evaluator.cpp1// Unit tests for the Lemonade Router match evaluator (#2378).COMMENT
LOWtest/cpp/test_telemetry_helpers.cpp1#include <algorithm>COMMENT
LOWtest/cpp/test_routing_policy_semantic.cpp1// Unit tests for the Lemonade Router semantic_similarity classifier (#2381).COMMENT
LOWtest/cpp/test_http_client_security.cpp1// Unit tests for the HttpSecurityPolicy trust boundaries applied byCOMMENT
LOWdocs/assets/flowchart.js1// ============================================================================COMMENT
LOWdocs/assets/flowchart.js61 // durations are fixed (in ms); within a route the dot moves at constantCOMMENT
LOWdocs/assets/flowchart.js461 var opacityTimes = routerTimes([0, fadeIn, routerFrac(t.end), routerFrac(t.end + routerFlow.dotFade), 1]);COMMENT
LOWdocs/assets/flowchart.js821 // ------------------------------------------------------------------------COMMENT
LOWdocs/assets/flowchart.js1301COMMENT
LOWdocs/assets/flowchart.js1501 function routerDemo(kind) {COMMENT
LOWdocs/assets/persona-demo/framework.js1// ============================================================================COMMENT
LOWdocs/assets/persona-demo/common.js1// ============================================================================COMMENT
LOWdocs/assets/persona-demo/developers/interfaces.js1// Developers · section 2 · "Standard interfaces"COMMENT
LOWcontrib/debian/salsa-ci.yml1# For more information on what jobs are run see:COMMENT
LOW.github/workflows/triage-dashboard.yml1name: Triage dashboardCOMMENT
LOW.github/workflows/monitor_selfhosted_runners.yml81 # LOOKBACK_DAYS, regardless of event type. We intentionally do NOTCOMMENT
LOW.github/workflows/auto-label.yml1# Auto-label issues and PRs.COMMENT
LOWsrc/web-app/tauri-stub.js1// Stub module used only by the src/web-app/ webpack build.COMMENT
LOWsrc/app/src-tauri/src/webview_shim.rs1//! Platform-specific webview tweaks the original Electron app got "for free"COMMENT
LOWsrc/app/src-tauri/src/webview_shim.rs21//! auto-grants every media-capture request — nothing to do here.COMMENT
LOWsrc/app/src-tauri/src/webview_shim.rs181 // a future Tauri change that violates that assumption, in which case aCOMMENT
LOWsrc/app/src-tauri/src/beacon.rs1//! UDP beacon discovery for the running Lemonade server.COMMENT
LOWsrc/app/src-tauri/src/settings.rs121 #[serde(rename = "assistantVoice")]COMMENT
LOWsrc/app/src/renderer/tauriShim.ts1// Tauri shim: installs `window.api` on the renderer so the existing ReactCOMMENT
LOWsrc/app/src/renderer/utils/collectionImageConfig.ts1// The fixed image size used by collection-mode image tools. Drives:COMMENT
LOWsrc/app/src/renderer/utils/modelDisplayName.ts1// Canonical-prefix table for shadowed-source model IDs. A "shadowed" id isCOMMENT
LOWsrc/app/src/renderer/utils/modelData.ts281 return {};COMMENT
LOWsrc/cpp/include/lemon_tray/tray_ui.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon_tray/platform/linux_tray.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon_tray/platform/windows_tray.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/collection_orchestrator.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/collection_orchestrator.h21// targets the collection name behave like a single multimodal model: it injectsCOMMENT
LOWsrc/cpp/include/lemon/realtime_session.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/canonical_id.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/backend_version_policy.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/backend_version_policy.h21};COMMENT
LOWsrc/cpp/include/lemon/mcp_server.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/config_file.h81/// Manages reading and writing config.json in the lemonade cache dir.COMMENT
LOWsrc/cpp/include/lemon/model_manager.h1#pragma onceCOMMENT
LOWsrc/cpp/include/lemon/model_manager.h21COMMENT
LOWsrc/cpp/include/lemon/model_manager.h101 // Per-collection system prompt template (collection.omni models only).COMMENT
127 more matches not shown…
Hyper-Verbose Identifiers119 hits · 121 pts
SeverityFileLineSnippetContext
LOWtools/moonshine-server/main.py61def convert_tokenizer_json_to_bin(CODE
LOWtools/moonshine-server/main.py276async def _handle_streaming_session(reader, sender: _EventSender, transcriber_factory):CODE
LOWtest/server_watchdog_lifecycle.py128 def _wait_for_model_absent_from_health(CODE
LOWtest/server_watchdog_lifecycle.py177 def _non_streaming_chat_completion(self, model_name):CODE
LOWtest/server_watchdog_lifecycle.py260 def _assert_fresh_backend_pid(self, model_name, old_pid):CODE
LOWtest/server_watchdog_lifecycle.py271 def test_idle_crashed_backend_is_reaped_and_removed_from_health(self):CODE
LOWtest/server_watchdog_lifecycle.py292 def test_next_streaming_request_reaps_and_reloads_crashed_backend(self):CODE
LOWtest/server_watchdog_lifecycle.py316 def test_active_non_streaming_request_reloads_and_replays_after_backend_crash(self):CODE
LOWtest/server_watchdog_lifecycle.py374 def test_next_non_streaming_request_reaps_reloads_and_returns_completion(self):CODE
LOWtest/server_watchdog_lifecycle.py405 def test_concurrent_non_streaming_request_during_reload_also_completes(self):CODE
LOWtest/server_pinning.py118 def test_pinning_lru_eviction_protection(self):CODE
LOWtest/server_pinning.py166 def test_eviction_engine_skips_pinned_models(self):CODE
LOWtest/server_pinning.py208 def test_pinned_model_bypasses_idle_timeout_downsize(self):CODE
LOWtest/server_pinning.py235 def test_watchdog_reload_preserves_pin_state(self):CODE
LOWtest/test_multi_checkpoint_completeness.py81 def test_multi_checkpoint_completeness(self):CODE
LOWtest/test_multi_checkpoint_completeness.py186 def test_collection_status_with_incomplete_component(self):CODE
LOWtest/test_multi_checkpoint_completeness.py233 def test_single_checkpoint_guard(self):CODE
LOWtest/test_cuda_arch_mapping.py132def identify_cuda_arch_from_name(device_name: str) -> str:CODE
LOWtest/test_cuda_arch_mapping.py187 def test_unsupported_but_parseable(self):CODE
LOWtest/test_cuda_arch_mapping.py197 def test_supported_arch_membership(self):CODE
LOWtest/test_cuda_arch_mapping.py204 def test_unsupported_arch_not_in_set(self):CODE
LOWtest/test_cuda_arch_mapping.py253 def test_blackwell_datacenter_guard(self):CODE
LOWtest/test_cuda_arch_mapping.py266 def test_non_nvidia_returns_empty(self):CODE
LOWtest/test_cuda_arch_mapping.py271 def test_unsupported_nvidia_returns_empty(self):CODE
LOWtest/test_ollama.py93 def ensure_tool_calling_model_pulled(self):CODE
LOWtest/server_streaming_errors.py70 def _wait_for_no_running_models(self, timeout=15):CODE
LOWtest/server_streaming_errors.py102 def _ensure_test_model_loaded(self, attempts=3):CODE
LOWtest/server_endpoints.py871 def _start_mock_cloud_provider(CODE
LOWtest/server_endpoints.py2694 def _write_collection_manifest(self, cache_root, repo_id, components, models):CODE
LOWtest/server_endpoints.py3165 def _cleanup_router_collection(self, canonical_name):CODE
LOWtest/server_endpoints.py3187 def _assert_stream_route_decision(self, resp, endpoint_name):CODE
LOWtest/server_moonshine.py75 def test_moonshine_file_transcription(self):CODE
LOWtest/server_moonshine.py105 def test_moonshine_file_transcription_real_speech(self):CODE
LOWtest/server_moonshine.py254 def test_moonshine_realtime_streaming_main_port(self):CODE
LOWtest/server_moonshine.py264 def test_moonshine_realtime_streaming_legacy_port(self):CODE
LOWtest/server_moonshine.py279 def test_moonshine_realtime_clear_then_append(self):CODE
LOWtest/server_moonshine.py293 def test_moonshine_thread_count(self):CODE
LOWtest/server_moonshine.py327 def test_moonshine_invalid_file_transcription(self):CODE
LOWtest/server_moonshine.py364 def test_moonshine_unsupported_ogg_transcription(self):CODE
LOWtest/test_routing_fixtures.py48 def test_route_policy_fixtures_validate(self):CODE
LOWtest/test_routing_fixtures.py60 def test_decision_example_validates(self):CODE
LOWtest/test_routing_fixtures.py64 def test_request_example_validates(self):CODE
LOWtest/test_routing_fixtures.py68 def test_request_rejects_non_string_metadata(self):CODE
LOWtest/test_routing_fixtures.py74 def test_classifier_type_specific_requirements(self):CODE
LOWtest/test_routing_fixtures.py93 def test_locked_structural_invariants(self):CODE
LOWtest/server_omni.py111 def _solid_color_png_data_uri(r, g, b, size=256):CODE
LOWtest/test_model_name_normalization.py33 def test_chat_completions_with_latest_suffix(self):CODE
LOWtest/test_model_name_normalization.py59 def test_chat_completions_streaming_with_latest_suffix(self):CODE
LOWtest/test_model_name_normalization.py97 def test_completions_with_latest_suffix(self):CODE
LOWtest/test_model_name_normalization.py123 def test_completions_streaming_with_latest_suffix(self):CODE
LOWtest/test_model_name_normalization.py161 def test_without_latest_suffix_still_works(self):CODE
LOWtest/test_device_family_matching.py16def device_matches_constraint(device_family: str, allowed_families: set) -> bool:CODE
LOWtest/test_device_family_matching.py54 def test_empty_allowed_families(self):CODE
LOWtest/test_device_family_matching.py58 def test_multiple_allowed_families(self):CODE
LOWtest/test_schema_lock.py74 def test_every_schema_is_locked(self):CODE
LOWtest/test_flm_status.py462 def test_unsupported_system_info(self):CODE
LOWtest/test_flm_status.py527 def test_installable_system_info(self):CODE
LOWtest/test_flm_status.py607 def test_update_required_old_version_system_info(self):CODE
LOWtest/test_flm_status.py625 def test_update_required_old_version_models(self):CODE
LOWtest/test_flm_status.py637 def test_update_required_old_version_load(self):CODE
59 more matches not shown…
Cross-Language Confusion17 hits · 120 pts
SeverityFileLineSnippetContext
HIGH.github/scripts/triage_dashboard.py247let dateFrom = null; // "YYYY-MM-DD" or nullCODE
HIGH.github/scripts/triage_dashboard.py248let dateTo = null; // "YYYY-MM-DD" or nullCODE
HIGH.github/scripts/triage_dashboard.py262 if (dateFrom && day < dateFrom) return false;CODE
HIGH.github/scripts/triage_dashboard.py263 if (dateTo && day > dateTo) return false;CODE
HIGH.github/scripts/triage_dashboard.py268 return activeFilters.size > 0 || dateFrom || dateTo;CODE
HIGH.github/scripts/triage_dashboard.py282 const isCollapsed = collapsible && collapsedFamilies.has(fname);CODE
HIGH.github/scripts/triage_dashboard.py326 if (f === ASSIGNEE_UNASSIGNED || f.startsWith("assignee::")) assigneeFilters.push(f);CODE
HIGH.github/scripts/triage_dashboard.py326 if (f === ASSIGNEE_UNASSIGNED || f.startsWith("assignee::")) assigneeFilters.push(f);CODE
HIGH.github/scripts/triage_dashboard.py327 else labelFilters.push(f);CODE
HIGH.github/scripts/triage_dashboard.py377 matches.sort((a, b) => b.comments - a.comments || b.number - a.number);CODE
HIGH.github/scripts/triage_dashboard.py379 if (dateFrom) dateBits.push("from " + dateFrom);CODE
HIGH.github/scripts/triage_dashboard.py380 if (dateTo) dateBits.push("to " + dateTo);CODE
HIGH.github/scripts/triage_dashboard.py450dateFromEl.addEventListener("change", () => { dateFrom = dateFromEl.value || null; render(); });CODE
HIGH.github/scripts/triage_dashboard.py450dateFromEl.addEventListener("change", () => { dateFrom = dateFromEl.value || null; render(); });CODE
HIGH.github/scripts/triage_dashboard.py451dateToEl.addEventListener("change", () => { dateTo = dateToEl.value || null; render(); });CODE
HIGH.github/scripts/triage_dashboard.py451dateToEl.addEventListener("change", () => { dateTo = dateToEl.value || null; render(); });CODE
HIGH.github/scripts/triage_dashboard.py453 dateFrom = null; dateTo = null;CODE
Excessive Try-Catch Wrapping104 hits · 120 pts
SeverityFileLineSnippetContext
MEDIUMtools/moonshine-server/main.py208def _drain(self):CODE
LOWtools/moonshine-server/main.py197 except Exception:CODE
LOWtools/moonshine-server/main.py205 except Exception:CODE
LOWtools/moonshine-server/main.py211 except Exception:CODE
LOWtools/moonshine-server/main.py173 except Exception:CODE
LOWtools/moonshine-server/main.py319 except Exception:CODE
LOWtools/moonshine-server/main.py342 except Exception:CODE
LOWtools/moonshine-server/main.py365 except Exception:CODE
LOWtools/moonshine-server/main.py369 except Exception:CODE
LOWtools/moonshine-server/main.py394 except Exception:CODE
LOWtools/moonshine-server/main.py481 except Exception as e:CODE
LOWtools/moonshine-server/main.py487 except Exception:CODE
LOWtools/moonshine-server/main.py518 except Exception as e:CODE
LOWtest/server_websocket_auth.py90 except Exception:CODE
LOWtest/server_websocket_auth.py105 except Exception:CODE
LOWtest/validate_sdcpp.py41 except Exception as exc: # noqa: BLE001 - argparse shows the clean messageCODE
LOWtest/validate_sdcpp.py283 except Exception as exc: # noqa: BLE001 - keep JSON on all failuresCODE
LOWtest/validate_sdcpp.py354 except Exception as exc: # noqa: BLE001 - keep JSON on all failuresCODE
LOWtest/server_watchdog_lifecycle.py79 except Exception:CODE
LOWtest/validate_vllm.py52 except Exception as exc:CODE
LOWtest/server_websocket_telemetry.py88 except Exception:CODE
LOWtest/server_websocket_telemetry.py92 except Exception:CODE
LOWtest/server_websocket_telemetry.py96 except Exception:CODE
LOWtest/server_websocket_telemetry.py104 except Exception:CODE
LOWtest/server_websocket_telemetry.py156 except Exception:CODE
LOWtest/server_websocket_telemetry.py164 except Exception:CODE
LOWtest/server_websocket_telemetry.py402 except Exception as e:CODE
MEDIUMtest/server_websocket_telemetry.py403 print("Error parsing mock OTLP data:", e)CODE
LOWtest/validate_llamacpp.py53 except Exception as exc:CODE
LOWtest/test_ollama.py442 except Exception as exc: # noqa: BLE001 - best-effort cleanupCODE
LOWtest/test_ollama.py935 except Exception as exc: # noqa: BLE001 - best-effort cleanupCODE
LOWtest/server_cli_apikey.py159 except Exception:CODE
LOWtest/server_endpoints.py1946 except Exception:CODE
LOWtest/server_endpoints.py2156 except Exception:CODE
LOWtest/server_endpoints.py2295 except Exception:CODE
LOWtest/server_endpoints.py2343 except Exception:CODE
LOWtest/server_endpoints.py2408 except Exception:CODE
LOWtest/server_endpoints.py2545 except Exception:CODE
LOWtest/server_endpoints.py2686 except Exception:CODE
LOWtest/server_endpoints.py2839 except Exception:CODE
LOWtest/server_endpoints.py2942 except Exception:CODE
LOWtest/server_endpoints.py2950 except Exception:CODE
LOWtest/server_endpoints.py3059 except Exception:CODE
LOWtest/server_endpoints.py3067 except Exception:CODE
LOWtest/server_endpoints.py3174 except Exception:CODE
LOWtest/server_endpoints.py3210 except Exception:CODE
LOWtest/server_endpoints.py3427 except Exception:CODE
LOWtest/server_endpoints.py3553 except Exception:CODE
LOWtest/server_endpoints.py3665 except Exception:CODE
LOWtest/server_endpoints.py3719 except Exception:CODE
LOWtest/server_endpoints.py3831 except Exception:CODE
LOWtest/server_endpoints.py4647 except Exception:CODE
LOWtest/server_moonshine.py323 except Exception as e:CODE
LOWtest/server_sd.py104 except Exception as e:CODE
LOWtest/test_flm_status.py89 except Exception:CODE
LOWtest/test_flm_status.py102 except Exception:CODE
LOWtest/test_flm_status.py284 except Exception:CODE
LOWtest/test_flm_status.py373 except Exception:CODE
LOWtest/test_flm_status.py380 except Exception:CODE
LOWtest/server_eviction.py272 except Exception as exc: # noqa: BLE001 - surfaced via errors listCODE
44 more matches not shown…
Structural Annotation Overuse32 hits · 55 pts
SeverityFileLineSnippetContext
LOWtest/cpp/test_config_migration.cpp329 // Step 1: merge with fresh defaultsCOMMENT
LOWdocs/guide/install/ubuntu.md7## Step 1: Install lemonade-serverCOMMENT
LOWdocs/guide/install/ubuntu.md22## Step 2: Choose your frontendCOMMENT
LOWdocs/guide/install/arch.md3## Step 1: Install lemonade-serverCOMMENT
LOWdocs/guide/install/arch.md11## Step 2: Choose your frontendCOMMENT
LOWdocs/api/openai.md803 # Step 1: Generate an image and save the base64 responseCOMMENT
LOWdocs/api/openai.md814 # Step 2: Build the upscale JSON payload and pipe it to curl via stdinCOMMENT
LOWdocs/api/openai.md828 # Step 1: Generate an imageCOMMENT
LOWdocs/api/openai.md841 # Step 2: Extract the base64 imageCOMMENT
LOWdocs/api/openai.md844 # Step 3: Upscale the image with Real-ESRGANCOMMENT
LOWdocs/api/openai.md861 # Step 1: Generate an imageCOMMENT
LOWdocs/api/openai.md871 # Step 2: Upscale the image with Real-ESRGAN (512x512 -> 2048x2048)COMMENT
LOWdocs/api/openai.md877 # Step 3: Save the upscaled image to a fileCOMMENT
LOWdocs/dev/release.md19## Step 1: Update the VersionCOMMENT
LOWdocs/dev/release.md34## Step 2: Create the Release BranchCOMMENT
LOWdocs/dev/release.md83## Step 3: Push a TagCOMMENT
LOWdocs/dev/release.md103## Step 4: Windows SigningCOMMENT
LOWdocs/dev/release.md119## Step 5: Release Action FinishesCOMMENT
LOWdocs/dev/release.md135## Step 6: Reconcile the Tag into `main`COMMENT
LOWdocs/dev/release.md153## Step 7: Update the Release NotesCOMMENT
LOWdocs/dev/release.md174## Step 8: Discord AnnouncementCOMMENT
LOWdocs/dev/release.md183## Step 9: Social MediaCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts721 // Step 1: Check if model is already loaded via health endpointCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts740 // Step 2: Signal UI that model loading is in progressCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts743 // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure)COMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts775 // Step 4: Check if model is downloadedCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts792 // Step 5: Pull model if not downloaded (shows in Download Manager)COMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts797 // Step 6: Load model into memory (merge loadBody if provided)COMMENT
LOWsrc/cpp/server/system_info.cpp827 // NOTE: This function collects hardware info only (no inference engines).COMMENT
LOWsrc/cpp/server/model_manager.cpp1591 // Step 1: Load ALL models from JSON (server models)COMMENT
LOWsrc/cpp/server/model_manager.cpp1754 // Step 2: Filter by backend availabilityCOMMENT
LOWsrc/cpp/server/model_manager.cpp1757 // Step 3: Check download status for all models. Dynamic-discovery backendsCOMMENT
Unused Imports43 hits · 38 pts
SeverityFileLineSnippetContext
LOWtools/moonshine-server/main.py25CODE
LOWtools/moonshine-server/main.py27CODE
LOWtools/moonshine-server/main.py41CODE
LOWtest/server_webapp.py17CODE
LOWtest/server_webapp.py18CODE
LOWtest/server_webapp.py19CODE
LOWtest/validate_sdcpp.py11CODE
LOWtest/server_watchdog_lifecycle.py36CODE
LOWtest/server_pinning.py6CODE
LOWtest/server_gfx_topology.py29CODE
LOWtest/test_ollama.py16CODE
LOWtest/test_ollama.py29CODE
LOWtest/server_tts.py11CODE
LOWtest/server_tts.py18CODE
LOWtest/server_llm.py28CODE
LOWtest/server_llm.py28CODE
LOWtest/server_llm.py28CODE
LOWtest/server_llm.py35CODE
LOWtest/server_llm.py35CODE
LOWtest/server_llm.py41CODE
LOWtest/server_llm.py41CODE
LOWtest/server_llm.py41CODE
LOWtest/server_endpoints.py37CODE
LOWtest/server_endpoints.py43CODE
LOWtest/server_moonshine.py16CODE
LOWtest/server_moonshine.py18CODE
LOWtest/server_omni.py31CODE
LOWtest/server_omni.py31CODE
LOWtest/server_omni.py42CODE
LOWtest/server_sd.py24CODE
LOWtest/server_downloads.py18CODE
LOWtest/utils/server_base.py35CODE
LOWtest/utils/server_base.py35CODE
LOWtest/utils/server_base.py43CODE
LOWtest/utils/capabilities.py11CODE
LOWexamples/api_image_edits.py21CODE
LOWexamples/api_text_to_speech.py14CODE
LOWexamples/api_text_to_speech.py16CODE
LOWexamples/realtime_transcription.py49CODE
LOWexamples/api_image_variations.py22CODE
LOW.github/scripts/render_sdcpp_pr_body.py10CODE
LOW.github/scripts/update_sdcpp_versions.py10CODE
LOWsrc/cpp/installer/generate_tauri_fragment.py16CODE
Deep Nesting42 hits · 33 pts
SeverityFileLineSnippetContext
LOWtools/model_sizes.py183CODE
LOWtools/model_sizes.py304CODE
LOWtools/moonshine-server/main.py61CODE
LOWtools/moonshine-server/main.py276CODE
LOWtools/moonshine-server/main.py398CODE
LOWtools/moonshine-server/main.py423CODE
LOWtest/validate_sdcpp.py245CODE
LOWtest/server_websocket_telemetry.py82CODE
LOWtest/server_websocket_telemetry.py108CODE
LOWtest/server_websocket_telemetry.py390CODE
LOWtest/server_gfx_topology.py144CODE
LOWtest/server_llm.py307CODE
LOWtest/server_llm.py826CODE
LOWtest/server_llm.py909CODE
LOWtest/server_endpoints.py414CODE
LOWtest/server_endpoints.py1278CODE
LOWtest/server_endpoints.py3972CODE
LOWtest/server_endpoints.py4098CODE
LOWtest/server_endpoints.py4287CODE
LOWtest/server_endpoints.py4545CODE
LOWtest/server_moonshine.py293CODE
LOWtest/test_model_name_normalization.py59CODE
LOWtest/test_model_name_normalization.py123CODE
LOWtest/test_flm_status.py74CODE
LOWtest/test_flm_status.py255CODE
LOWtest/test_flm_status.py296CODE
LOWtest/test_flm_status.py937CODE
LOWtest/server_cli2.py84CODE
LOWtest/server_cli2.py583CODE
LOWtest/server_cli2.py2094CODE
LOWtest/server_telemetry.py53CODE
LOWtest/server_telemetry.py82CODE
LOWtest/server_telemetry.py121CODE
LOWtest/server_telemetry.py355CODE
LOWtest/server_whisper.py424CODE
LOWtest/utils/server_base.py192CODE
LOWtest/utils/server_base.py278CODE
LOWdocs/tools/gen_backend_boilerplate.py164CODE
LOWexamples/realtime_transcription.py86CODE
LOWexamples/realtime_transcription.py129CODE
LOWexamples/realtime_transcription.py169CODE
LOW.github/scripts/render_sdcpp_pr_body.py140CODE
Modern AI Meta-Vocabulary11 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMdocs/guide/configuration/custom-models.md469### Example 3: Adding an embedding modelCOMMENT
MEDIUMdocs/integrations/langchain.md72## Example 2 — RAG Pipeline (Chat with Your Documents)COMMENT
MEDIUMdocs/integrations/langchain.md107# Requires the embedding model to be pulled first:COMMENT
MEDIUMdocs/integrations/langchain.md129# ── Build RAG chain ──────────────────────────────────────COMMENT
MEDIUMdocs/integrations/anythingLLM.md80You can always use the built in no-code [Agent Flow builder](https://docs.anythingllm.com/agent-flows/overview), [createCODE
MEDIUMdocs/integrations/anythingLLM.md100 <img src="https://github.com/lemonade-sdk/assets/blob/main/anythingllm/tool-calling.png?raw=true" alt="Complex multi-sCODE
MEDIUMdocs/dev/app.md44│ ├── App.tsx # Root component, layout orchestrationCODE
MEDIUMdocs/assets/news-data.js158 url: "https://styrk.ai/styrk-ai-and-amd-guardrails-for-your-on-device-ai-revolution/",CODE
MEDIUM.github/workflows/routing_schema_tests.yml27 # policy/decision schemas. Keeps the back-compat guardrails enforced.COMMENT
MEDIUMsrc/app/src/renderer/utils/chatTypes.ts29// Wire protocol types for tool-calling agentic loopCOMMENT
MEDIUMsrc/app/src/renderer/components/panels/LLMChatPanel.tsx1154 // Assistant-generated TTS audio (from the collection agentic loop)COMMENT
Magic Placeholder Names4 hits · 28 pts
SeverityFileLineSnippetContext
HIGHdocs/guide/cli.md93export LEMONADE_API_KEY=your-api-key-hereCODE
HIGHdocs/guide/cli.md101set LEMONADE_API_KEY=your-api-key-hereCODE
HIGHdocs/guide/cli.md109$env:LEMONADE_API_KEY="your-api-key-here"CODE
HIGHdocs/guide/telemetry.md148 telemetry.otlp.headers='{"x-honeycomb-team": "YOUR_API_KEY"}'CODE
Redundant / Tautological Comments17 hits · 27 pts
SeverityFileLineSnippetContext
LOWsetup.sh30# Check if command existsCOMMENT
LOWsetup.sh35# Check if system is managed by rpm-ostreeCOMMENT
LOWsetup.sh40# Check if running as rootCOMMENT
LOWsetup.sh615 # Check if running in CI environmentCOMMENT
LOWsetup.sh634 # Check if pre-commit needs pipCOMMENT
LOWtest/server_cli2.py586 # Set host to 0.0.0.0 (listen on all interfaces).COMMENT
LOWdocs/update_readme_marketplace.py84 # Check if markers existCOMMENT
LOWexamples/migrate-to-systemd.sh11# Check if running as rootCOMMENT
LOWexamples/migrate-to-systemd.sh43# Check if lemonade user existsCOMMENT
LOWexamples/migrate-to-systemd.sh138 # Check if destination already existsCOMMENT
LOW.github/workflows/validate_llamacpp.yml721 # Check if a PR already exists for this updateCOMMENT
LOW.github/workflows/cpp_server_build_test_release.yml44 # Check if CMake is already installedCOMMENT
LOW.github/actions/install-lemonade-server-msi/action.yml75 # Check if installation directory existsCOMMENT
LOW.github/actions/build-macos-dmg/action.yml84 # Check if binaries are signed (non-fatal)COMMENT
LOW.github/actions/setup-python/action.yml43 # Check if already installedCOMMENT
LOW.github/actions/generate-release-notes/action.yml33 # Check if tag exists via GitHub API (works without local git tags)COMMENT
LOW.github/actions/generate-release-notes/action.yml36 # Check if this tag already has a release on GitHubCOMMENT
Self-Referential Comments8 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUMtest/server_moonshine.py335 # Create an invalid WAV file (just some text content) using NamedTemporaryFileCOMMENT
MEDIUMtest/test_llamacpp_system_backend.py40# Define a dummy executable content (e.g., a simple shell script)COMMENT
MEDIUMtest/test_llamacpp_system_backend.py344 # Create a temporary directory for our dummy llama-server executableCOMMENT
MEDIUMexamples/api_image_edits.py32 # Create a 512x512 white image with a simple shapeCOMMENT
MEDIUMexamples/api_image_variations.py33 # Create a 512x512 image with a simple patternCOMMENT
MEDIUM.github/actions/setup-venv/action.yml113 # Create the venv using the explicit Python pathCOMMENT
MEDIUM.github/actions/setup-venv/action.yml165 # Create the venv using the explicit Python pathCOMMENT
MEDIUM.github/actions/setup-macos-keychain/action.yml34 # Create a temporary keychainCOMMENT
Verbosity Indicators10 hits · 20 pts
SeverityFileLineSnippetContext
LOWtest/cpp/test_config_migration.cpp329 // Step 1: merge with fresh defaultsCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts721 // Step 1: Check if model is already loaded via health endpointCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts740 // Step 2: Signal UI that model loading is in progressCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts743 // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure)COMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts775 // Step 4: Check if model is downloadedCOMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts792 // Step 5: Pull model if not downloaded (shows in Download Manager)COMMENT
LOWsrc/app/src/renderer/utils/backendInstaller.ts797 // Step 6: Load model into memory (merge loadBody if provided)COMMENT
LOWsrc/cpp/server/model_manager.cpp1591 // Step 1: Load ALL models from JSON (server models)COMMENT
LOWsrc/cpp/server/model_manager.cpp1754 // Step 2: Filter by backend availabilityCOMMENT
LOWsrc/cpp/server/model_manager.cpp1757 // Step 3: Check download status for all models. Dynamic-discovery backendsCOMMENT
AI Slop Vocabulary7 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUMtest/server_watchdog_lifecycle.py59 # Make the file usable under pytest too. The existing test harness callsCOMMENT
MEDIUMdocs/index.html734 // Duplicate for seamless loopCOMMENT
MEDIUM.github/actions/install-lemonade-deb/action.yml136 # an in-use port. The resolved port is exported so the test harnessCOMMENT
LOWsrc/app/src/renderer/utils/toolDefinitions.json139 "description": "Transcribe audio to text (speech-to-text). Use this when the user provides an audio file or whenCODE
MEDIUMsrc/cpp/server/model_manager.cpp336// TODO: A more robust approach would be to extend cleanup_orphaned_cache()COMMENT
MEDIUMsrc/cpp/server/model_manager.cpp3413 // Download each file with robust retry and resume supportCOMMENT
MEDIUMsrc/cpp/cli/main.cpp644 // This preserves existing user configuration while providing seamless first-time UX.COMMENT
Fake / Example Data5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtest/server_endpoints.py1035 "api_key": "dummy-key",CODE
LOWtest/server_endpoints.py1478 "api_key": "dummy-key",CODE
LOWtest/server_endpoints.py1492 "api_key": "dummy-key",CODE
LOWtest/server_endpoints.py1526 json={"provider": provider, "api_key": "dummy-key"},CODE
LOWtest/server_endpoints.py1537 "api_key": "dummy-key",CODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtest/server_gfx_topology.py101CODE
LOWtest/utils/server_base.py185CODE
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/utils/server_base.py575__all__ = [CODE