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 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).
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 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | CMakeLists.txt | 431 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 433 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 438 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 440 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 744 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 746 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 749 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 751 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 758 | # ============================================================ | COMMENT |
| MEDIUM⚡ | CMakeLists.txt | 760 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 38 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 40 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 73 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 75 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 95 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 97 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 214 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 216 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 460 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 462 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 479 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 481 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 616 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 618 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 691 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 693 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 779 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 781 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 895 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 897 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 948 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 950 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1085 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1087 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1234 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1236 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1487 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1489 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1733 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1735 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1823 | # ============================================================ | COMMENT |
| MEDIUM | CMakeLists.txt | 1825 | # ============================================================ | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 17 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 166 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_cuda_arch_mapping.py | 168 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/test_ollama.py | 104 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 106 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 300 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 302 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 487 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 489 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 608 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 610 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 639 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 641 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 663 | # ======================================================================== | COMMENT |
| MEDIUM | test/test_ollama.py | 665 | # ======================================================================== | COMMENT |
| 167 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 41 | # The authoritative backend list. Each entry is "<recipe>|<stem>": | COMMENT |
| LOW | mkdocs.yml | 1 | # Configuration for the Lemonade Server documentation site. | COMMENT |
| LOW | test/server_endpoints.py | 4121 | self.assertTrue( | 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_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/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_latest_version_fallback.cpp | 1 | // Standalone unit tests for lemon::resolve_latest_pin() — the pure policy that | 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_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 | #include "lemon/utils/network_utils.h" | 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 CloudServer::discovery_policy(), which selects the HTTP trust | COMMENT |
| LOW | test/cpp/test_ggml_hip_path.cpp | 1 | // Standalone test for lemon::utils::is_ggml_hip_plugin_available(). | 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_policy_semantic.cpp | 1 | // Unit tests for the Lemonade Router semantic_similarity classifier (#2381). | 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 |
| LOW | contrib/debian/salsa-ci.yml | 1 | # For more information on what jobs are run see: | COMMENT |
| LOW | .github/workflows/triage-dashboard.yml | 1 | name: Triage dashboard | COMMENT |
| LOW | .github/workflows/monitor_selfhosted_runners.yml | 81 | # LOOKBACK_DAYS, regardless of event type. We intentionally do NOT | COMMENT |
| LOW | .github/workflows/auto-label.yml | 1 | # Auto-label issues and PRs. | COMMENT |
| LOW | src/web-app/tauri-stub.js | 1 | // Stub module used only by the src/web-app/ webpack build. | COMMENT |
| LOW | src/app/src-tauri/src/webview_shim.rs | 1 | //! Platform-specific webview tweaks the original Electron app got "for free" | COMMENT |
| LOW | src/app/src-tauri/src/webview_shim.rs | 21 | //! auto-grants every media-capture request — nothing to do here. | COMMENT |
| LOW | src/app/src-tauri/src/webview_shim.rs | 181 | // a future Tauri change that violates that assumption, in which case a | COMMENT |
| LOW | src/app/src-tauri/src/beacon.rs | 1 | //! UDP beacon discovery for the running Lemonade server. | COMMENT |
| LOW | src/app/src-tauri/src/settings.rs | 121 | #[serde(rename = "assistantVoice")] | COMMENT |
| LOW | src/app/src/renderer/tauriShim.ts | 1 | // Tauri shim: installs `window.api` on the renderer so the existing React | COMMENT |
| LOW | src/app/src/renderer/utils/collectionImageConfig.ts | 1 | // The fixed image size used by collection-mode image tools. Drives: | COMMENT |
| LOW | src/app/src/renderer/utils/modelDisplayName.ts | 1 | // Canonical-prefix table for shadowed-source model IDs. A "shadowed" id is | COMMENT |
| LOW | src/app/src/renderer/utils/modelData.ts | 281 | return {}; | COMMENT |
| LOW | src/cpp/include/lemon_tray/tray_ui.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon_tray/platform/linux_tray.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon_tray/platform/windows_tray.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/collection_orchestrator.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/collection_orchestrator.h | 21 | // targets the collection name behave like a single multimodal model: it injects | COMMENT |
| LOW | src/cpp/include/lemon/realtime_session.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/canonical_id.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/backend_version_policy.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/backend_version_policy.h | 21 | }; | COMMENT |
| LOW | src/cpp/include/lemon/mcp_server.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/config_file.h | 81 | /// Manages reading and writing config.json in the lemonade cache dir. | COMMENT |
| LOW | src/cpp/include/lemon/model_manager.h | 1 | #pragma once | COMMENT |
| LOW | src/cpp/include/lemon/model_manager.h | 21 | COMMENT | |
| LOW | src/cpp/include/lemon/model_manager.h | 101 | // Per-collection system prompt template (collection.omni models only). | COMMENT |
| 127 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_watchdog_lifecycle.py | 128 | def _wait_for_model_absent_from_health( | CODE |
| LOW | test/server_watchdog_lifecycle.py | 177 | def _non_streaming_chat_completion(self, model_name): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 260 | def _assert_fresh_backend_pid(self, model_name, old_pid): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 271 | def test_idle_crashed_backend_is_reaped_and_removed_from_health(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 292 | def test_next_streaming_request_reaps_and_reloads_crashed_backend(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 316 | def test_active_non_streaming_request_reloads_and_replays_after_backend_crash(self): | CODE |
| LOW | test/server_watchdog_lifecycle.py | 374 | 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_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 | 81 | def test_multi_checkpoint_completeness(self): | CODE |
| LOW | test/test_multi_checkpoint_completeness.py | 186 | def test_collection_status_with_incomplete_component(self): | CODE |
| LOW | test/test_multi_checkpoint_completeness.py | 233 | def test_single_checkpoint_guard(self): | CODE |
| LOW | test/test_cuda_arch_mapping.py | 132 | def identify_cuda_arch_from_name(device_name: str) -> str: | CODE |
| LOW⚡ | test/test_cuda_arch_mapping.py | 187 | def test_unsupported_but_parseable(self): | CODE |
| LOW⚡ | test/test_cuda_arch_mapping.py | 197 | def test_supported_arch_membership(self): | CODE |
| LOW⚡ | test/test_cuda_arch_mapping.py | 204 | def test_unsupported_arch_not_in_set(self): | CODE |
| LOW | test/test_cuda_arch_mapping.py | 253 | def test_blackwell_datacenter_guard(self): | CODE |
| LOW | test/test_cuda_arch_mapping.py | 266 | def test_non_nvidia_returns_empty(self): | CODE |
| LOW | test/test_cuda_arch_mapping.py | 271 | def test_unsupported_nvidia_returns_empty(self): | CODE |
| LOW | test/test_ollama.py | 93 | def ensure_tool_calling_model_pulled(self): | CODE |
| LOW | test/server_streaming_errors.py | 70 | def _wait_for_no_running_models(self, timeout=15): | CODE |
| LOW | test/server_streaming_errors.py | 102 | def _ensure_test_model_loaded(self, attempts=3): | CODE |
| LOW | test/server_endpoints.py | 871 | def _start_mock_cloud_provider( | CODE |
| LOW | test/server_endpoints.py | 2694 | def _write_collection_manifest(self, cache_root, repo_id, components, models): | CODE |
| LOW | test/server_endpoints.py | 3165 | def _cleanup_router_collection(self, canonical_name): | CODE |
| LOW | test/server_endpoints.py | 3187 | def _assert_stream_route_decision(self, resp, endpoint_name): | CODE |
| LOW | test/server_moonshine.py | 75 | def test_moonshine_file_transcription(self): | CODE |
| LOW | test/server_moonshine.py | 105 | def test_moonshine_file_transcription_real_speech(self): | CODE |
| LOW | test/server_moonshine.py | 254 | def test_moonshine_realtime_streaming_main_port(self): | CODE |
| LOW | test/server_moonshine.py | 264 | def test_moonshine_realtime_streaming_legacy_port(self): | CODE |
| LOW | test/server_moonshine.py | 279 | def test_moonshine_realtime_clear_then_append(self): | CODE |
| LOW | test/server_moonshine.py | 293 | def test_moonshine_thread_count(self): | CODE |
| LOW⚡ | test/server_moonshine.py | 327 | def test_moonshine_invalid_file_transcription(self): | CODE |
| LOW | test/server_moonshine.py | 364 | def test_moonshine_unsupported_ogg_transcription(self): | CODE |
| LOW | test/test_routing_fixtures.py | 48 | def test_route_policy_fixtures_validate(self): | CODE |
| LOW⚡ | test/test_routing_fixtures.py | 60 | def test_decision_example_validates(self): | CODE |
| LOW⚡ | test/test_routing_fixtures.py | 64 | def test_request_example_validates(self): | CODE |
| LOW⚡ | test/test_routing_fixtures.py | 68 | def test_request_rejects_non_string_metadata(self): | CODE |
| LOW⚡ | test/test_routing_fixtures.py | 74 | def test_classifier_type_specific_requirements(self): | CODE |
| LOW | test/test_routing_fixtures.py | 93 | def test_locked_structural_invariants(self): | CODE |
| LOW | test/server_omni.py | 111 | def _solid_color_png_data_uri(r, g, b, size=256): | CODE |
| LOW | test/test_model_name_normalization.py | 33 | def test_chat_completions_with_latest_suffix(self): | CODE |
| LOW | test/test_model_name_normalization.py | 59 | def test_chat_completions_streaming_with_latest_suffix(self): | CODE |
| LOW | test/test_model_name_normalization.py | 97 | def test_completions_with_latest_suffix(self): | CODE |
| LOW | test/test_model_name_normalization.py | 123 | def test_completions_streaming_with_latest_suffix(self): | CODE |
| LOW | test/test_model_name_normalization.py | 161 | def test_without_latest_suffix_still_works(self): | CODE |
| LOW⚡ | test/test_device_family_matching.py | 16 | def device_matches_constraint(device_family: str, allowed_families: set) -> bool: | CODE |
| LOW | test/test_device_family_matching.py | 54 | def test_empty_allowed_families(self): | CODE |
| LOW | test/test_device_family_matching.py | 58 | def test_multiple_allowed_families(self): | CODE |
| LOW | test/test_schema_lock.py | 74 | def test_every_schema_is_locked(self): | CODE |
| LOW | test/test_flm_status.py | 462 | def test_unsupported_system_info(self): | CODE |
| LOW | test/test_flm_status.py | 527 | def test_installable_system_info(self): | CODE |
| LOW | test/test_flm_status.py | 607 | def test_update_required_old_version_system_info(self): | CODE |
| LOW | test/test_flm_status.py | 625 | def test_update_required_old_version_models(self): | CODE |
| LOW | test/test_flm_status.py | 637 | def test_update_required_old_version_load(self): | CODE |
| 59 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 |
|---|---|---|---|---|
| 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/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_watchdog_lifecycle.py | 79 | 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 | 156 | except Exception: | CODE |
| LOW | test/server_websocket_telemetry.py | 164 | except Exception: | CODE |
| LOW | test/server_websocket_telemetry.py | 402 | except Exception as e: | CODE |
| MEDIUM | test/server_websocket_telemetry.py | 403 | print("Error parsing mock OTLP data:", e) | CODE |
| LOW | test/validate_llamacpp.py | 53 | except Exception as exc: | CODE |
| LOW | test/test_ollama.py | 442 | except Exception as exc: # noqa: BLE001 - best-effort cleanup | CODE |
| LOW | test/test_ollama.py | 935 | 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 | 1946 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2156 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2295 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2343 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2408 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2545 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2686 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2839 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2942 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 2950 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3059 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3067 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3174 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3210 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3427 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3553 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3665 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3719 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 3831 | except Exception: | CODE |
| LOW | test/server_endpoints.py | 4647 | except Exception: | CODE |
| LOW⚡ | test/server_moonshine.py | 323 | except Exception as e: | CODE |
| LOW | test/server_sd.py | 104 | except Exception as e: | CODE |
| LOW | test/test_flm_status.py | 89 | except Exception: | CODE |
| LOW | test/test_flm_status.py | 102 | except Exception: | CODE |
| LOW | test/test_flm_status.py | 284 | except Exception: | CODE |
| LOW | test/test_flm_status.py | 373 | except Exception: | CODE |
| LOW | test/test_flm_status.py | 380 | except Exception: | CODE |
| LOW | test/server_eviction.py | 272 | except Exception as exc: # noqa: BLE001 - surfaced via errors list | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/cpp/test_config_migration.cpp | 329 | // Step 1: merge with fresh defaults | 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 | 721 | // Step 1: Check if model is already loaded via health endpoint | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 740 | // Step 2: Signal UI that model loading is in progress | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 743 | // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure) | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 775 | // Step 4: Check if model is downloaded | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 792 | // Step 5: Pull model if not downloaded (shows in Download Manager) | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 797 | // Step 6: Load model into memory (merge loadBody if provided) | COMMENT |
| LOW | src/cpp/server/system_info.cpp | 827 | // NOTE: This function collects hardware info only (no inference engines). | COMMENT |
| LOW | src/cpp/server/model_manager.cpp | 1591 | // Step 1: Load ALL models from JSON (server models) | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 1754 | // Step 2: Filter by backend availability | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 1757 | // Step 3: Check download status for all models. Dynamic-discovery backends | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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_watchdog_lifecycle.py | 36 | CODE | |
| LOW | test/server_pinning.py | 6 | CODE | |
| LOW | test/server_gfx_topology.py | 29 | CODE | |
| LOW | test/test_ollama.py | 16 | CODE | |
| LOW | test/test_ollama.py | 29 | CODE | |
| LOW | test/server_tts.py | 11 | CODE | |
| LOW | test/server_tts.py | 18 | CODE | |
| LOW | test/server_llm.py | 28 | CODE | |
| LOW | test/server_llm.py | 28 | CODE | |
| LOW | test/server_llm.py | 28 | CODE | |
| LOW | test/server_llm.py | 35 | CODE | |
| LOW | test/server_llm.py | 35 | CODE | |
| LOW | test/server_llm.py | 41 | CODE | |
| LOW | test/server_llm.py | 41 | CODE | |
| LOW | test/server_llm.py | 41 | CODE | |
| LOW | test/server_endpoints.py | 37 | CODE | |
| LOW | test/server_endpoints.py | 43 | CODE | |
| LOW | test/server_moonshine.py | 16 | CODE | |
| LOW | test/server_moonshine.py | 18 | CODE | |
| LOW | test/server_omni.py | 31 | CODE | |
| LOW | test/server_omni.py | 31 | CODE | |
| LOW | test/server_omni.py | 42 | CODE | |
| LOW | test/server_sd.py | 24 | CODE | |
| LOW | test/server_downloads.py | 18 | CODE | |
| LOW | test/utils/server_base.py | 35 | CODE | |
| LOW | test/utils/server_base.py | 35 | CODE | |
| LOW | test/utils/server_base.py | 43 | CODE | |
| LOW | test/utils/capabilities.py | 11 | 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/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 |
|---|---|---|---|---|
| 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/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 | 390 | CODE | |
| LOW | test/server_gfx_topology.py | 144 | CODE | |
| LOW | test/server_llm.py | 307 | CODE | |
| LOW | test/server_llm.py | 826 | CODE | |
| LOW | test/server_llm.py | 909 | CODE | |
| LOW | test/server_endpoints.py | 414 | CODE | |
| LOW | test/server_endpoints.py | 1278 | CODE | |
| LOW | test/server_endpoints.py | 3972 | CODE | |
| LOW | test/server_endpoints.py | 4098 | CODE | |
| LOW | test/server_endpoints.py | 4287 | CODE | |
| LOW | test/server_endpoints.py | 4545 | 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 | 84 | CODE | |
| LOW | test/server_cli2.py | 583 | CODE | |
| LOW | test/server_cli2.py | 2094 | CODE | |
| LOW | test/server_telemetry.py | 53 | CODE | |
| LOW | test/server_telemetry.py | 82 | CODE | |
| LOW | test/server_telemetry.py | 121 | CODE | |
| LOW | test/server_telemetry.py | 355 | CODE | |
| LOW | test/server_whisper.py | 424 | CODE | |
| LOW | test/utils/server_base.py | 192 | CODE | |
| LOW | test/utils/server_base.py | 278 | CODE | |
| LOW | docs/tools/gen_backend_boilerplate.py | 164 | 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/render_sdcpp_pr_body.py | 140 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/guide/configuration/custom-models.md | 469 | ### 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/dev/app.md | 44 | │ ├── App.tsx # Root component, layout orchestration | CODE |
| MEDIUM | docs/assets/news-data.js | 158 | 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/utils/chatTypes.ts | 29 | // Wire protocol types for tool-calling agentic loop | COMMENT |
| MEDIUM | src/app/src/renderer/components/panels/LLMChatPanel.tsx | 1154 | // Assistant-generated TTS audio (from the collection agentic loop) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | docs/guide/cli.md | 93 | export LEMONADE_API_KEY=your-api-key-here | CODE |
| HIGH⚡ | docs/guide/cli.md | 101 | set LEMONADE_API_KEY=your-api-key-here | CODE |
| HIGH⚡ | docs/guide/cli.md | 109 | $env:LEMONADE_API_KEY="your-api-key-here" | CODE |
| HIGH | docs/guide/telemetry.md | 148 | telemetry.otlp.headers='{"x-honeycomb-team": "YOUR_API_KEY"}' | CODE |
| 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 | 586 | # 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 | 138 | # Check if destination already exists | COMMENT |
| LOW | .github/workflows/validate_llamacpp.yml | 721 | # Check if a PR already exists for this update | COMMENT |
| LOW | .github/workflows/cpp_server_build_test_release.yml | 44 | # Check if CMake is already installed | COMMENT |
| LOW | .github/actions/install-lemonade-server-msi/action.yml | 75 | # Check if installation directory exists | COMMENT |
| LOW | .github/actions/build-macos-dmg/action.yml | 84 | # 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 |
|---|---|---|---|---|
| MEDIUM⚡ | test/server_moonshine.py | 335 | # Create an invalid WAV file (just some text content) using NamedTemporaryFile | COMMENT |
| MEDIUM | test/test_llamacpp_system_backend.py | 40 | # Define a dummy executable content (e.g., a simple shell script) | COMMENT |
| MEDIUM | test/test_llamacpp_system_backend.py | 344 | # Create a temporary directory for our dummy llama-server executable | 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 |
|---|---|---|---|---|
| LOW | test/cpp/test_config_migration.cpp | 329 | // Step 1: merge with fresh defaults | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 721 | // Step 1: Check if model is already loaded via health endpoint | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 740 | // Step 2: Signal UI that model loading is in progress | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 743 | // Step 3: Ensure backend is installed (fetch fresh system info to avoid stale closure) | COMMENT |
| LOW | src/app/src/renderer/utils/backendInstaller.ts | 775 | // Step 4: Check if model is downloaded | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 792 | // Step 5: Pull model if not downloaded (shows in Download Manager) | COMMENT |
| LOW⚡ | src/app/src/renderer/utils/backendInstaller.ts | 797 | // Step 6: Load model into memory (merge loadBody if provided) | COMMENT |
| LOW | src/cpp/server/model_manager.cpp | 1591 | // Step 1: Load ALL models from JSON (server models) | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 1754 | // Step 2: Filter by backend availability | COMMENT |
| LOW⚡ | src/cpp/server/model_manager.cpp | 1757 | // Step 3: Check download status for all models. Dynamic-discovery backends | 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 | 734 | // 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 | 336 | // TODO: A more robust approach would be to extend cleanup_orphaned_cache() | COMMENT |
| MEDIUM | src/cpp/server/model_manager.cpp | 3413 | // Download each file with robust retry and resume support | COMMENT |
| MEDIUM | src/cpp/cli/main.cpp | 644 | // This preserves existing user configuration while providing seamless first-time UX. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_endpoints.py | 1035 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 1478 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 1492 | "api_key": "dummy-key", | CODE |
| LOW | test/server_endpoints.py | 1526 | json={"provider": provider, "api_key": "dummy-key"}, | CODE |
| LOW | test/server_endpoints.py | 1537 | "api_key": "dummy-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/server_gfx_topology.py | 101 | CODE | |
| LOW | test/utils/server_base.py | 185 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/utils/server_base.py | 575 | __all__ = [ | CODE |