ODS V3 Pre-Release: Public testing and refinement ahead of the official V3 launch. Turn your PC, Mac, or Linux box into a private AI server.
This report summarizes scanner evidence for Light-Heart-Labs/DreamServer, a Python project with 7,264 GitHub stars. SynthScan examined 667,867 lines of code across 3431 source files, recording 12796 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 26.0 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 10165 finding(s).
Are imports declared and package/API names verified? 500 finding(s).
Are wrappers, guards, and repeated structures necessary? 11113 finding(s).
Which changes need focused human review? 12796 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 12796 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_access_bridge.py | 374 | def gateway_installation_binding(self, *, require_running=False): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 418 | def verify_gateway_installation_binding(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 422 | def verify_host_agent_custody(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1368 | def _source_edge_restart_proof(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1410 | def restart_stopped_source_edge(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1522 | def verify_installer_model_access(self, transaction_id): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2054 | def require_release_completion(self, transaction_id, config_sha, outcome): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2098 | def legacy_access_marker_baseline(self, config, marker): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2422 | def _verify_launchd_definition(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2438 | def gateway_installation_binding(self, *, require_running=False): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2463 | def verify_gateway_installation_binding(self): | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2627 | def _policy_activation_identity(self, mode): | STRING |
| LOW | ods/bin/pixel_macos_custody.py | 22 | def verify_loaded_launchd_definition(raw, target, filename, expected): | CODE |
| LOW | ods/bin/pixel_macos_custody.py | 339 | def protected_inspection_bytes(filename, *, limit=8 * 1024 * 1024): | CODE |
| LOW | ods/bin/pixel_macos_custody.py | 356 | def replace_protected_inspection_bytes(filename, *, expected, replacement, mode, gid=0): | CODE |
| LOW | ods/bin/pixel_access_relay.py | 104 | def request_runtime_model_control(operation, request=None, *, config): | STRING |
| LOW | ods/bin/pixel_access_relay.py | 136 | def _request_runtime_controller(request, *, config, path, timeout): | STRING |
| LOW | ods/bin/pixel_source_upgrade.py | 826 | def _renew_unheld_scratch_after_remount(self): | STRING |
| LOW | ods/bin/pixel_source_upgrade.py | 867 | def _completed_scratch_remounted(self): | STRING |
| LOW | ods/bin/pixel_gateway_service.py | 22 | def launchd_definition_digest(document, error): | CODE |
| LOW | ods/bin/pixel_macos_policy.py | 142 | def system_python_readable_paths(): | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 11243 | def _handle_remote_provider_ssh_supervisor_status(self): | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 11249 | def _handle_invalidate_compose_cache(self): | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 15656 | def _host_native_runtime_port(env: dict) -> str: | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 15660 | def _native_llm_container_origin(env: dict) -> str: | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 15669 | def _runtime_uses_router_transport(env: dict) -> bool: | CODE |
| LOW | ods/bin/ods-host-agent.py | 143 | def _active_model_bind_directory(env: dict) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 150 | def _windows_management_shell() -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 326 | def _ensure_windows_resolver_pyyaml(python_cmd: str) -> None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 402 | def _windows_whisper_cuda_supported(env: dict) -> bool: | CODE |
| LOW | ods/bin/ods-host-agent.py | 585 | def _model_download_thread_alive() -> bool: | CODE |
| LOW | ods/bin/ods-host-agent.py | 630 | def _model_lifecycle_conflict(requested_operation: str, active: dict) -> dict: | CODE |
| LOW | ods/bin/ods-host-agent.py | 670 | def _set_model_activation_phase(phase: str, failure_code: str | None = None) -> None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 682 | def _record_model_activation_result(outcome: str, failure_code: str | None = None) -> None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 693 | def _model_activation_public_failure(diagnosis: dict, healthy: bool) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 732 | def _prepare_initial_switchboard_verification() -> bool: | CODE |
| LOW | ods/bin/ods-host-agent.py | 770 | def _download_status_model_token(value: object) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 775 | def _format_curl_download_error(returncode: int | None, stderr_text: object) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 795 | def _model_download_allowed_hosts() -> frozenset[str]: | CODE |
| LOW | ods/bin/ods-host-agent.py | 808 | def _model_download_url_error(url: object) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 825 | def _parse_huggingface_resolve_url(url: object) -> tuple[str, str, str] | None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 856 | def _download_huggingface_artifact( | CODE |
| LOW | ods/bin/ods-host-agent.py | 8906 | def _redact_credential_assignments(text: str) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9029 | def _container_start_diagnostic(container_name: str, service_def: dict, ext_dir: Path | None = None) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9050 | def _collect_container_start_diagnostic(container_name: str, service_def: dict, ext_dir: Path | None) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9102 | def _install_build_diagnostic(result, services: dict, subject: str = 'build') -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9168 | def _disable_unprepared_install(service_id: str) -> str: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9411 | def _narrow_install_pull_flags(flags: list, service_id: str) -> list: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9429 | def _narrowed_compose_set_resolves(narrowed_flags: list, service_id: str, | CODE |
| LOW | ods/bin/ods-host-agent.py | 9480 | def _fail_stale_update_status(data: dict) -> dict: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9928 | def _handle_pixel_access_mode(self, change: bool): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10179 | def _write_tailscale_status_payload(self, payload: dict, source: str): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10203 | def _find_native_tailscale_cli(self) -> str | None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 10220 | def _try_native_tailscale_status(self) -> bool: | CODE |
| LOW | ods/bin/ods-host-agent.py | 10461 | def _handle_pixel_approval_terminal(self): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10666 | def _handle_pixel_advice_runtime(self, action=None): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10815 | def _handle_pixel_provider_health(self): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10825 | def _handle_pixel_providers_runtime(self, *, change): | CODE |
| LOW | ods/bin/ods-host-agent.py | 10874 | def _handle_pixel_settings_runtime(self, *, change): | CODE |
| LOW | ods/bin/ods-host-agent.py | 11014 | def _handle_pixel_connection_probe(self): | CODE |
| 8907 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | ods/test-stack.sh | 2 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 18 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 112 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 114 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 122 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 124 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 130 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 132 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 164 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 167 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 176 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | ods/test-stack.sh | 178 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | ods/test-stack.sh | 206 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | ods/test-stack.sh | 208 | # ═══════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | ods/ods-update.sh | 18 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 20 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 43 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 45 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 582 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 584 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 655 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 657 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 709 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 711 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 851 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 853 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 893 | # ── Step 1: rollback snapshot ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 899 | # ── Step 2: pull latest changes ─────────────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 915 | # ── Step 3: migrations ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 950 | # ── Step 4: restart services ────────────────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 983 | # ── Step 5: health-check with timeout ──────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 991 | # ── Step 6: record new version ──────────────────────────────────────────── | COMMENT |
| MEDIUM | ods/ods-update.sh | 1010 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1012 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1175 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1177 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1213 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1215 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1310 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1312 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1358 | #============================================================================== | COMMENT |
| MEDIUM | ods/ods-update.sh | 1360 | #============================================================================== | COMMENT |
| MEDIUM | ods/install-core.sh | 2 | # ============================================================================ | COMMENT |
| MEDIUM | ods/install-core.sh | 4 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 15 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 19 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 21 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 61 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 63 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 87 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 89 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 127 | #============================================================================= | COMMENT |
| MEDIUM | ods/install-core.sh | 129 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 712 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 714 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 720 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/install-core.sh | 722 | #============================================================================= | COMMENT |
| MEDIUM⚡ | ods/docker-compose.base.yml | 9 | # ============================================ | COMMENT |
| MEDIUM⚡ | ods/docker-compose.base.yml | 11 | # ============================================ | COMMENT |
| MEDIUM⚡ | ods/docker-compose.base.yml | 19 | # ============================================ | COMMENT |
| 1464 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ods/bin/pixel_access_bridge.py | 982 | except FileExistsError: pass | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 1099 | except FileNotFoundError: pass | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 925 | except AccessError: | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 274 | except subprocess.TimeoutExpired: | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 1911 | except (AccessError, OSError): | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 2038 | except OSError: pass | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 2047 | except OSError: pass | CODE |
| HIGH | ods/bin/pixel_access_bridge.py | 2263 | except AccessError: pass | CODE |
| HIGH | ods/bin/pixel_macos_custody.py | 170 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_source_upgrade.py | 775 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_source_upgrade.py | 1225 | except FileExistsError: | CODE |
| HIGH | ods/bin/ods-macos-llm-bridge.py | 75 | except OSError: | CODE |
| HIGH | ods/bin/ods-macos-llm-bridge.py | 70 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 3117 | except FileNotFoundError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 3834 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 6477 | except (FileNotFoundError, subprocess.SubprocessError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 6826 | except (urllib_error.URLError, TimeoutError, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 8562 | except (subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 9657 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 18506 | except (OSError, ValueError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 19784 | except (ValueError, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 1060 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 6467 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 7966 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 9754 | except (OSError, subprocess.SubprocessError, ValueError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 11456 | except (subprocess.TimeoutExpired, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 19576 | except (IndexError, OSError, subprocess.TimeoutExpired, ValueError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 20716 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 8312 | except Exception: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 8446 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 13672 | except (OSError, AttributeError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 20678 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 2533 | except (StoreError, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 965 | except (OSError, AttributeError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 2517 | except (StoreError, OSError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 13431 | except (subprocess.TimeoutExpired, ValueError): | CODE |
| HIGH | ods/bin/ods-host-agent.py | 13453 | except OSError: | CODE |
| HIGH | ods/bin/ods-host-agent.py | 13447 | except (OSError, AttributeError): | CODE |
| HIGH | ods/bin/pixel_provider/scopes.py | 229 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/advice_setup.py | 157 | except Exception: | CODE |
| HIGH | ods/bin/pixel_provider/advice_setup.py | 185 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/store.py | 284 | except FileNotFoundError: | CODE |
| HIGH | ods/bin/pixel_provider/advice_process.py | 37 | except subprocess.TimeoutExpired: | CODE |
| HIGH | ods/bin/pixel_provider/lease_claim.py | 41 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/advice_jobs.py | 141 | except Exception: | CODE |
| HIGH | ods/bin/pixel_provider/advice_jobs.py | 81 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/advice_jobs.py | 162 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/advice.py | 155 | except asyncio.CancelledError: | CODE |
| HIGH | ods/bin/pixel_provider/sharing_service.py | 175 | except (StoreError, KeyError, TypeError): | CODE |
| HIGH | ods/bin/pixel_provider/sharing_service.py | 193 | except OSError: | CODE |
| HIGH | ods/bin/pixel_provider/sharing_service.py | 184 | except (OSError, StoreError): | CODE |
| HIGH | ods/bin/pixel_provider/client.py | 387 | except ProcessLookupError: | CODE |
| HIGH | ods/bin/pixel_provider/client.py | 394 | except ProcessLookupError: | CODE |
| HIGH | ods/bin/pixel_provider/sharing_host_api.py | 51 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/store_factory.py | 79 | except FileExistsError: | CODE |
| HIGH | ods/bin/pixel_provider/route_worker.py | 124 | except (OSError,ValueError): | CODE |
| HIGH | ods/bin/pixel_provider/vault.py | 131 | except OSError: | CODE |
| HIGH | ods/bin/pixel_provider/handoff_approvals.py | 256 | except FileExistsError: pass | CODE |
| HIGH | ods/bin/pixel_provider/connection_tunnel.py | 68 | except (OSError,asyncio.TimeoutError,TimeoutError,ConnectionError): | CODE |
| HIGH | ods/bin/model_switchboard/wsl_runtime.py | 112 | except (BrokenPipeError, OSError): | CODE |
| 177 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ods/bin/ods-host-agent.py | 496 | 'case "$(uname -s 2>/dev/null)" in ' | CODE |
| HIGH | ods/bin/ods-host-agent.py | 3738 | || { command -v sudo >/dev/null 2>&1 && sudo -n true >/dev/null 2>&1; }; then | CODE |
| HIGH | ods/bin/ods-host-agent.py | 9586 | $cpu = $null; $total = $null; $used = $null | CODE |
| HIGH | ods/bin/ods-host-agent.py | 9594 | $prefix=$adapter.Prefix; $totals=@{}; $util=$null; $dedicated=$null | CODE |
| HIGH⚡ | ods/bin/ods-host-agent.py | 19295 | "owner=$(stat -c '%u:%g' \"$target\" 2>/dev/null || printf '10000:10000'); " | STRING |
| HIGH⚡ | ods/bin/ods-host-agent.py | 19296 | "mode=$(stat -c '%a' \"$target\" 2>/dev/null || printf '600'); " | STRING |
| HIGH | ods/tests/test-model-selection-matrix.py | 140 | 'source "$3"; resolve_tier_config >/dev/null; printf %s "$LLM_MODEL_SIZE_MB"', | CODE |
| HIGH | ods/tests/test_matrix_checkout_retry.py | 25 | timeout() { test "$1" = 180 || return 99; shift; "$@"; } | CODE |
| HIGH⚡ | ods/tests/test_remote_completion_telemetry.py | 49 | sample.feed(b'data: {"error":null,"usage":{"completion_tokens":20}}\n\ndata: [DONE]\n\n') | CODE |
| HIGH | ods/tests/test-pixel-model-selector.py | 328 | assert 'ods_detect_runtime_ram || error' in detection | CODE |
| HIGH | ods/tests/test_dashboard_published_readiness.py | 189 | start = phase.index("if ! $DRY_RUN && command -v ods_readiness_summary") | STRING |
| HIGH | ods/tests/test-update-changelog-fallback.py | 41 | null) printf '{"tag_name":null}' ;; | CODE |
| HIGH | ods/tests/test-agent-manager-failures.py | 31 | cmd_agent restart || warn 'Host agent restart failed (non-fatal)' | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 201 | "ps.push({id:c,type:\"reading\",reading:[{content:\"\",metadata:{url:a,title:k.title}}]}),b.ses" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 204 | "ata.subSteps[d].reading.push({content:\"\",metadata:{url:a,title:k.title}}),b.session.update" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 210 | "a),m=l[0]}else m=k.content;j.push({content:m,metadata:{url:a,title:k.title}})}catch(b){j.p" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 219 | ".[1]||`Content from ${a}`;if(!d&&f&&\"research\"===f.type)d=!0,f.data.subSteps.push({id:c,ty" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 223 | "g.push({content:\"\",metadata:{url:a,title:j}}),b.session.updateBlock(b.researchBlockId,[{op" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 224 | ":\"replace\",path:\"/data/subSteps\",value:f.data.subSteps}])}let k=e.turndown(i);g.push({cont" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 225 | "ent:k,metadata:{url:a,title:j}})}catch(b){g.push({content:`Failed to fetch content from ${" | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 235 | var e = {A: {scrape: async (url) => { calls.push(url); throw new Error("blocked"); }}, turndown: (html) => String(html)} | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 237 | globalThis.fetch = async (url) => { calls.push(url); throw new Error("blocked"); }; | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 242 | {session: {getBlock: () => undefined, updateBlock() {}}, researchBlockId: "r", llm: {}}); | CODE |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 268 | (LEGACY_SCRAPE_ACTION, 'g.push({content:k.slice(0,30000),metadata:{url:a,title:j}})'), | STRING |
| HIGH⚡ | ods/tests/test-perplexica-entrypoint.py | 269 | (VANE_SCRAPE_ACTION, 'j.push({content:m.slice(0,30000),metadata:{url:a,title:k.title}})'), | STRING |
| HIGH | ods/tests/test-perplexica-entrypoint.py | 288 | assert 'reading.push({content:"",metadata:{url:a,title:k.title}})' in patched | STRING |
| HIGH | ods/tests/test-perplexica-entrypoint.py | 336 | no_push = VANE_SCRAPE_ACTION.replace("j.push({content:m,", "j.unshift({content:m,") | STRING |
| HIGH | ods/tests/test-doctor-optional-webui.py | 48 | r'if \[\[ "\$WEBUI_ENABLED" == "true" \]\] \\\n && curl -sf --max-time 10 "http://127\.0\.0\.1:\$\{_WEBUI | CODE |
| HIGH | ods/tests/test_macos_pixel_native_recover.py | 870 | test "$2" = ods/current && test "$3" = http://litellm:4000 && test "$4" = fixture-private-key || return 2 | STRING |
| HIGH | ods/tests/test_macos_pixel_native_recover.py | 870 | test "$2" = ods/current && test "$3" = http://litellm:4000 && test "$4" = fixture-private-key || return 2 | STRING |
| HIGH⚡ | ods/tests/test_preview_inspection_fill.py | 114 | return React.createElement('div',null,React.createElement('input',{id:'task',type:'number',value,onChange:e=>s | CODE |
| HIGH⚡ | ods/tests/test_preview_inspection_fill.py | 115 | React.createElement('button',{id:'save',onClick:()=>setSaved(String(Number(value)/4))},'Calcular'),React.cre | CODE |
| HIGH⚡ | ods/tests/test_preview_inspection_fill.py | 130 | return React.createElement('div',null,React.createElement('input',{id:'task',value,onChange:e=>setValue(e.targ | CODE |
| HIGH⚡ | ods/tests/test_preview_inspection_fill.py | 131 | React.createElement('button',{id:'save',onClick:()=>setSaved(value)},'Adicionar'),React.createElement('h1',n | CODE |
| HIGH | ods/tests/test_bootstrap_reinstall_preflight.py | 89 | if $keep; then preserve_model_cache >/dev/null || exit 68; fi | CODE |
| HIGH | ods/tests/test_bootstrap_status_checksum.py | 79 | ls -1 "{status_file}".tmp.* 2>/dev/null && exit 1 | CODE |
| HIGH | ods/tests/test_bootstrap_status_checksum.py | 290 | "cygpath": 'test "$1" = -w || exit 1; printf "%s" "$2"', | STRING |
| HIGH | ods/tests/test_bootstrap_keep_models.py | 73 | if $keep; then preserve_model_cache || exit 68; fi | CODE |
| HIGH⚡ | ods/tests/test_preview_inspection.py | 1837 | "Element.prototype.getAttribute=()=>null;Element.prototype.hasAttribute=()=>false;" | CODE |
| HIGH | ods/tests/test_preview_inspection.py | 2038 | 'catch{seen=null}</script>') | CODE |
| HIGH | ods/tests/pixel_inference/test_provider_runtime.py | 134 | SSE = b'data: {"id":"fixture","choices":[{"delta":{"content":"ok"},"finish_reason":null}]}\n\ndata: [DONE]\n\n' | CODE |
| HIGH | ods/tests/contracts/test-wsl-stack.py | 192 | 'start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }') | CODE |
| HIGH | …xtensions/services/dashboard-api/routers/extensions.py | 1334 | # `deploy: { resources: null }` or `resources: { reservations: null }` | COMMENT |
| HIGH | ods/extensions/services/dashboard-api/routers/gpu.py | 493 | # history endpoint represents absent readings as null, never as zero. | COMMENT |
| HIGH | ods/extensions/services/dashboard-api/routers/talk.py | 888 | "status": "ok", "warning": null} | STRING |
| HIGH | …ervices/dashboard-api/tests/test_performance_oracle.py | 149 | """A catalog entry may carry an explicit ``"aliases": null`` (JSON null). | STRING |
| HIGH | …nsions/services/dashboard-api/tests/test_extensions.py | 3583 | ' "phase_label": "stale", "error": null,' | CODE |
| HIGH | …nsions/services/dashboard-api/tests/test_extensions.py | 3008 | """Strict regression for the audit-flagged bug: `deploy: { resources: null }`. | STRING |
| HIGH | …nsions/services/dashboard-api/tests/test_extensions.py | 3028 | """Defense-in-depth: `resources: { reservations: null }`. | STRING |
| HIGH⚡ | …ons/services/dashboard-api/tests/test_agent_monitor.py | 331 | proc.communicate = AsyncMock(return_value=(b'{"nodes": null}', b"")) | CODE |
| HIGH | …ons/services/dashboard-api/tests/test_agent_monitor.py | 358 | (b'{"nodes": null}', 0), (b'{"nodes": {}}', 0), | CODE |
| HIGH | …ons/services/dashboard-api/tests/test_agent_monitor.py | 383 | b'{"nodes": [null, 3, "bad", {"healthy": "false"}, {"healthy": 1},' | CODE |
| HIGH⚡ | …ons/services/dashboard-api/tests/test_agent_monitor.py | 326 | """ClusterStatus.refresh handles {"nodes": null} without TypeError.""" | STRING |
| HIGH | …ashboard-api/tests/test_accelerator_policy_fixtures.py | 378 | command: ["sh", "-c", "echo $$HOME && exec recipe"] | CODE |
| HIGH | …ashboard-api/tests/test_accelerator_policy_fixtures.py | 606 | ("origin-null", '{"origin": null}'), | CODE |
| HIGH | …s/extensions/services/dashboard-api/tests/test_talk.py | 1531 | body = (b'data: {"choices":[{"delta":{"content":"Red."},"finish_reason":null}]}\n\n' | CODE |
| HIGH | …/extensions/services/model-router/tests/test_router.py | 1871 | b'[{"delta":{"content":"hi"},"finish_reason":null}]}\n\n' | CODE |
| HIGH | …/extensions/services/model-router/tests/test_router.py | 1902 | b'[{"delta":{"content":"partial"},"finish_reason":null}],' | CODE |
| HIGH⚡ | …ons/services/model-router/tests/test_probe_attempts.py | 230 | @pytest.mark.parametrize('body', [b'not-json', b'[]', b'{"messages":null}', | CODE |
| HIGH⚡ | …ons/services/model-router/tests/test_probe_attempts.py | 231 | b'{"messages":[{"role":[]}]}', b'{"messages":[null]}', | CODE |
| 104 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_model_coordinator.py | 267 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 187 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 509 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 733 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 758 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1135 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1341 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1466 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1584 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1777 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 1887 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 2130 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 2200 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 2147 | CODE | |
| LOW | ods/bin/pixel_macos_custody.py | 148 | CODE | |
| LOW | ods/bin/pixel_macos_custody.py | 184 | CODE | |
| LOW | ods/bin/pixel_macos_custody.py | 273 | CODE | |
| LOW | ods/bin/pixel_macos_custody.py | 356 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 601 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 912 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 1049 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 1080 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 1214 | CODE | |
| LOW | ods/bin/ods-macos-llm-bridge.py | 41 | CODE | |
| LOW | ods/bin/pixel_gateway_service.py | 286 | CODE | |
| LOW | ods/bin/pixel_model_transition.py | 96 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 856 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 1996 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 2484 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 3103 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 5545 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 5681 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 6312 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 6434 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 6506 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 6870 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 7038 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 7232 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 7435 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 7744 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 7804 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 8056 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 8195 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 8567 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 8711 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 9330 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 9633 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 9691 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 9765 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 16731 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 17201 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 17883 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 18405 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 18613 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 18673 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 18787 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 20278 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 20748 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 9842 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 10461 | CODE | |
| 572 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_access_bridge.py | 164 | except Exception: | CODE |
| LOW | ods/bin/pixel_access_bridge.py | 931 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1247 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1516 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1578 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1680 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1736 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 1881 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2049 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_bridge.py | 2295 | except Exception as error: | STRING |
| LOW | ods/bin/pixel_access_relay.py | 39 | except Exception: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 2333 | def _verify_stale_manifest() -> None: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 2507 | def work(): | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 3048 | def _run() -> None: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 4573 | def verify_held(self): | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 8292 | def _thread_target() -> None: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 8450 | def read_json_body(handler) -> dict | None: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 11294 | def _handle_update_check(self): | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 12497 | def restart_container_later(): | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 12996 | def _download() -> None: | CODE |
| MEDIUM | ods/bin/ods-host-agent.py | 19532 | def _system_ram_gb() -> int: | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 11234 | except Exception as exc: | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 11413 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 71 | except Exception: # pragma: no cover - import environment dependent | CODE |
| LOW | ods/bin/ods-host-agent.py | 76 | except Exception: # pragma: no cover - import environment dependent | CODE |
| LOW | ods/bin/ods-host-agent.py | 98 | except Exception: # pragma: no cover - import environment dependent | CODE |
| LOW | ods/bin/ods-host-agent.py | 900 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9045 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9193 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9937 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 9950 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 10413 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 10497 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 11152 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 11201 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 11368 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 11400 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 12385 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 12438 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 12508 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 12528 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 12934 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13011 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13125 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13614 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13641 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13751 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 13772 | except Exception: | CODE |
| LOW | ods/bin/ods-host-agent.py | 14487 | except Exception as rollback_exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 15367 | except Exception as exc: | CODE |
| LOW | ods/bin/ods-host-agent.py | 15420 | except Exception as exc: | CODE |
| LOW⚡ | ods/bin/ods-host-agent.py | 5367 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 5375 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 5380 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 5468 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 5474 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 5479 | except Exception as rollback_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 20617 | except Exception as rename_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 20620 | except Exception as restart_exc: | STRING |
| LOW⚡ | ods/bin/ods-host-agent.py | 20630 | except Exception as recreate_exc: | STRING |
| 256 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_model_coordinator.py | 10 | CODE | |
| LOW | ods/bin/portal_identity_contract.py | 7 | CODE | |
| LOW | ods/bin/pixel_access_bridge.py | 7 | CODE | |
| LOW | ods/bin/pixel_source_upgrade.py | 11 | CODE | |
| LOW | ods/bin/ods-macos-llm-bridge.py | 4 | CODE | |
| LOW | ods/bin/portal_identity.py | 7 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 12 | CODE | |
| LOW | ods/bin/ods-mdns.py | 27 | CODE | |
| LOW | ods/bin/pixel_provider/store.py | 7 | CODE | |
| LOW | ods/bin/pixel_provider/activity.py | 8 | CODE | |
| LOW | ods/bin/pixel_provider/activation_config.py | 7 | CODE | |
| LOW | ods/bin/model_switchboard/reconciler.py | 14 | CODE | |
| LOW | ods/bin/model_switchboard/reconciler.py | 19 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 8 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 8 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/__init__.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/wsl_runtime.py | 9 | CODE | |
| LOW | ods/bin/model_switchboard/router_transport.py | 10 | CODE | |
| LOW | ods/bin/model_switchboard/state.py | 20 | CODE | |
| LOW | ods/bin/model_switchboard/adapters.py | 19 | CODE | |
| LOW | ods/bin/pixel_settings/store.py | 7 | CODE | |
| LOW | ods/bin/pixel_settings/projection.py | 7 | CODE | |
| LOW | ods/bin/pixel_settings/contract.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/egress.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/reconciler.py | 9 | CODE | |
| LOW | ods/bin/remote_provider/transport.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/policy.py | 9 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 7 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| LOW | ods/bin/remote_provider/__init__.py | 26 | CODE | |
| 255 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/test-stack.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/ods-update.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/docker-compose.amd-rocm.yml | 1 | # ODS — AMD ROCm overlay (upstream llama.cpp, HIP) | COMMENT |
| LOW | ods/docker-compose.intel.yml | 1 | # ODS — Intel Arc GPU Overlay (SYCL backend) | COMMENT |
| LOW | ods/install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/docker-compose.multigpu-amd.yml | 1 | # ODS — AMD Multi-GPU Overlay | COMMENT |
| LOW | ods/test-install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/install-core.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/docker-compose.amd.yml | 1 | # ODS — AMD GPU Overlay (upstream llama.cpp, Vulkan) | COMMENT |
| LOW | ods/docker-compose.host-native-llm.yml | 1 | # ODS - host-native llama-server overlay | COMMENT |
| LOW | ods/docker-compose.arc.yml | 1 | # ODS — Intel Arc GPU Overlay (oneAPI SYCL, build-from-source) | COMMENT |
| LOW | ods/docker-compose.base.yml | 61 | environment: | COMMENT |
| LOW | ods/docker-compose.base.yml | 81 | # kept per slot (b9014 default 32) and the prompt cache in MiB (default | COMMENT |
| LOW | ods/docker-compose.base.yml | 141 | ENABLE_PERSISTENT_CONFIG: "false" | COMMENT |
| LOW | ods/docker-compose.base.yml | 161 | # Share links carry it, so set it only to a URL that actually resolves. | COMMENT |
| LOW | ods/docker-compose.base.yml | 301 | - TOKEN_SPY_URL=${TOKEN_SPY_URL:-http://token-spy:8080} | COMMENT |
| LOW | ods/docker-compose.base.yml | 321 | # container by /api/setup/test). The script's own `localhost:<port>` | COMMENT |
| LOW | ods/get-ods.sh | 661 | # potentially older installed copy. This lets a newer release safely repair a | COMMENT |
| LOW | ods/ods-uninstall.sh | 661 | # process from a PRIOR unit's ExecStart keeps its port. The next install | COMMENT |
| LOW | ods/ods-uninstall.sh | 741 | # Container-UID files under data/ stay untouched (--keep-data implies | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 8781 | # dashboard or Pixel: build and Compose diagnostics, container start | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 8821 | 'md'}) | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 11421 | }) | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12181 | COMMENT | |
| LOW | ods/bin/ods-host-agent.py | 12761 | # | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12841 | # returns 0 even for Created/Exited/Restarting containers, | COMMENT |
| LOW | ods/config/ape/policy.yaml | 1 | # APE Policy Configuration | COMMENT |
| LOW | ods/tests/test-macos-config-show-secret-mask.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-service-registry.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-cloud-model-ids.py | 41 | # - it accepts temperature. ODS callers send `temperature: 0`, and LiteLLM's | COMMENT |
| LOW | ods/tests/test-cloud-model-ids.py | 61 | # version's per-provider default and moves when that changes | COMMENT |
| LOW | ods/tests/test-amd-cpu-smoke.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-resolve-compose-symlinked-install.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-preflight.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-jetson-detection.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-cli-prompts-noninteractive.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-token-spy-session-manager.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-resolve-compose-nondict-service.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-doc-links.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-tier-map.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-update-rollback-latest-backup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-open-webui-live.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-wsl-nvidia-detection.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-root-build-context.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-model-profile-smoke.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-wsl-whisper-port-reservation.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-extension-integration.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-legacy-openclaw-removal.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-update-backup-restore-configs.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-amd-igpu-dgpu-selection.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-env-example-inline-comments.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-cli-user-extension-deps.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-phase05-podman-shim.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-health-check-json-output.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-hardware-compatibility.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-validate-env.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-network-security.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-installed-root-group-repair.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | ods/tests/test-cli-update-verification.sh | 1 | #!/bin/bash | COMMENT |
| LOW | ods/tests/test-hooks.sh | 1 | #!/bin/bash | COMMENT |
| 214 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/ods-host-agent.py | 11607 | # Step 1: resolve and verify this is a Wi-Fi profile. Use -t for | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 11647 | # Step 2: type-confirmed Wi-Fi → safe to delete. | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12757 | # Step 1: Setup hook (if requested). The helper is a no-op | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12774 | # Step 2: Prepare images. Pulls may use a cached image on | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12812 | # Step 3: Start | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12912 | # Step 4: Success | COMMENT |
| LOW | ods/docs/EXTENSIONS.md | 118 | ### Step 1: Create the extension directory | COMMENT |
| LOW | ods/docs/EXTENSIONS.md | 128 | ### Step 2: Create the manifest | COMMENT |
| LOW | ods/docs/EXTENSIONS.md | 141 | ### Step 3: Create the compose fragment | COMMENT |
| LOW | ods/docs/EXTENSIONS.md | 168 | ### Step 4: Validate | COMMENT |
| LOW | ods/docs/EXTENSIONS.md | 187 | ### Step 5: Test it | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 25 | ## Step 1: Enable WSL2 | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 45 | ## Step 2: Install GPU Drivers | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 66 | ## Step 3: Install Docker Desktop | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 84 | ## Step 4: Run ODS Installer | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 180 | ## Step 5: Verify Installation | COMMENT |
| LOW | ods/docs/WINDOWS-INSTALL-WALKTHROUGH.md | 211 | ## Step 6: Run Diagnostics | COMMENT |
| LOW | ods/docs/WINDOWS-WSL2-GPU-GUIDE.md | 65 | ### Step 1: Enable WSL2 | COMMENT |
| LOW | ods/docs/WINDOWS-WSL2-GPU-GUIDE.md | 80 | ### Step 2: Install Docker Desktop | COMMENT |
| LOW | ods/docs/WINDOWS-WSL2-GPU-GUIDE.md | 88 | ### Step 3: Install NVIDIA Drivers | COMMENT |
| LOW | ods/docs/WINDOWS-WSL2-GPU-GUIDE.md | 101 | ### Step 4: Run ODS Installer | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 131 | ### Step 1: Check Your Windows Version | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 141 | ### Step 2: Install WSL2 (Windows Subsystem for Linux) | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 159 | ### Step 3: Install Docker Desktop | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 173 | ### Step 4: Install NVIDIA Drivers | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 185 | ### Step 5: Run ODS Installer | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 203 | ### Step 6: Wait for Model Download | COMMENT |
| LOW | ods/docs/WINDOWS-TROUBLESHOOTING-GUIDE.md | 219 | ### Step 7: Access Your AI | COMMENT |
| LOW | …ashboard/src/components/__tests__/SetupWizard.test.jsx | 79 | // Step 4: type a name so Next becomes enabled | COMMENT |
| LOW | …/extensions/services/dashboard/src/pages/FirstBoot.jsx | 346 | // Step 1 - Welcome / setup label | COMMENT |
| LOW | …/extensions/services/dashboard/src/pages/FirstBoot.jsx | 395 | // Step 2 - First user | COMMENT |
| LOW | …/extensions/services/dashboard/src/pages/FirstBoot.jsx | 452 | // Step 3 - Stack picker | COMMENT |
| LOW | …/extensions/services/dashboard/src/pages/FirstBoot.jsx | 519 | // Step 4 - Confirm & finish | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 241 | # Step 1: Separate system messages from conversation messages | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 250 | # Step 2: Group conversation messages into atomic units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 255 | # Step 3: Apply max_pairs — keep only the N most recent units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 262 | # Step 4: Drop old tool calls from older units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 301 | # Step 6: Flatten units back into message list | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 306 | # Step 7: Apply always_keep_last_n safety — ensure the last N raw messages | COMMENT |
| LOW | ods/extensions/services/token-spy/filters.py | 288 | # Step 5: Truncate tool result content in all kept messages | COMMENT |
| LOW | ods/extensions/services/token-spy/filters.py | 321 | # Step 8: Apply max_total_chars if set | COMMENT |
| LOW | ods/installers/macos/lib/post-pixel-install.sh | 361 | # Step 1: wait briefly for the models API to be ready (max 15s). | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 375 | # Step 2: skip if already cached. | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 379 | # Step 3: POST to trigger download. | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 383 | # Step 4: verify the model is actually cached. | COMMENT |
| LOW | ods/installers/lib/detection.sh | 757 | # Step 1: Is there even NVIDIA hardware on this machine? | COMMENT |
| LOW | ods/installers/lib/detection.sh | 770 | # Step 2: Ensure a driver package is installed | COMMENT |
| LOW | ods/installers/lib/detection.sh | 802 | # Step 3: Try loading the module — see why it fails | COMMENT |
| LOW⚡ | ods/installers/lib/detection.sh | 816 | # Step 4: If it's not a Secure Boot issue, bail out | COMMENT |
| LOW⚡ | ods/installers/lib/detection.sh | 822 | # Step 5: Secure Boot is blocking the module — ensure it's properly signed | COMMENT |
| LOW | ods/installers/lib/detection.sh | 894 | # Step 6: Try loading — if MOK key is already enrolled, this works immediately | COMMENT |
| LOW | ods/installers/lib/detection.sh | 905 | # Step 7: MOK key needs firmware enrollment — one reboot required | COMMENT |
| LOW⚡ | ods/installers/phases/11-services.sh | 1495 | # Step 1: start any containers already in Created state | COMMENT |
| LOW⚡ | ods/installers/phases/11-services.sh | 1497 | # Step 2: wait for services to stabilize, then compose pass | COMMENT |
| LOW | ods/installers/phases/11-services.sh | 1509 | # Step 3: catch any stragglers from the second pass | COMMENT |
| LOW | ods/installers/phases/12-health.sh | 694 | # Step 1: wait briefly for the models API to be ready. Whisper's /health | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 709 | # Step 2: skip download if already cached. | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 713 | # Step 3: POST to trigger download. Log stdout/stderr to install log. | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 717 | # Step 4: verify the model is actually cached. POST can return 200 | COMMENT |
| LOW | .claude/commands/docs-update.md | 50 | ## Step 1: Gather Git Context | COMMENT |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ARCHITECTURE.md | 140 | ### 5. RAG Pipeline | COMMENT |
| MEDIUM | CONTRIBUTORS.md | 55 | * [Tony363 (Tony Siu)](https://github.com/Tony363) — Raised dashboard-api test coverage to 95% with 3,500+ lines of te | COMMENT |
| MEDIUM | ods/install-core.sh | 459 | # The Extensions Library adds voice and RAG documents without Open WebUI | COMMENT |
| MEDIUM | ods/config/n8n/06-rag-demo.json | 14 | "content": "## RAG Demo\n\nThis is a template workflow for retrieval-augmented generation.\n\nCustomize the node | CODE |
| MEDIUM | ods/config/n8n/rag-pipeline-trigger.json | 14 | "content": "## RAG Pipeline Trigger\n\nThis is a template workflow for ingesting documents from a watched folder | CODE |
| MEDIUM | ods/tests/test-phase-c-p1.sh | 112 | # Test RAG test endpoint | COMMENT |
| MEDIUM | ods/tests/test-portal-no-webui-selection.sh | 34 | # An installation whose Extensions Library added voice and RAG without Open | COMMENT |
| MEDIUM | ods/tests/test_macos_bootstrap_promote.py | 27 | # Windows can exercise orchestration and real HTTP, not POSIX file | COMMENT |
| MEDIUM | ods/tests/test-phase11-litellm-reload.sh | 54 | # Execute the real orchestration boundary, not a copy of its commands. | COMMENT |
| MEDIUM | ods/tests/contracts/test-installer-contracts.sh | 468 | # RAG = qdrant (vector store) + embeddings (TEI). Both default from | COMMENT |
| MEDIUM | ods/docs/PLATFORM-TRUTH-TABLE.md | 20 | ## Release language guardrails | COMMENT |
| MEDIUM | ods/docs/M1-OFFLINE-MODE.md | 76 | # Test local embeddings/RAG if enabled. | COMMENT |
| MEDIUM | ods/docs/INTEGRATION-GUIDE.md | 89 | ### With RAG (Qdrant + Embeddings) | COMMENT |
| MEDIUM | ods/extensions/library/services/crewai/compose.yaml | 1 | # CrewAI Studio — no-code multi-agent UI (https://github.com/strnad/CrewAI-Studio) | COMMENT |
| MEDIUM | …s/services/dashboard-api/tests/test_model_preflight.py | 209 | # Not being a chat model outranks access: a token would not make an embedding model chat-capable. | COMMENT |
| MEDIUM | ods/scripts/showcase.sh | 174 | echo -e "${YELLOW}Qdrant not running. Enable with: docker compose ps qdrant # RAG services start with the stack | CODE |
| MEDIUM | ods/scripts/showcase.sh | 198 | # Simple RAG demo using direct LLM (without full workflow for CLI demo) | COMMENT |
| MEDIUM | ods/scripts/demo-offline.sh | 164 | # ── Demo 3: RAG ────────────────────────────────────── | COMMENT |
| MEDIUM | ods/lib/backup-paths.sh | 24 | "data/open-webui" # chats, prompts, RAG documents | CODE |
| MEDIUM | ods/installers/macos/lib/env-generator.sh | 359 | # Backfill the TEI/RAG contract without replacing persisted operator | COMMENT |
| MEDIUM | ods/installers/macos/lib/env-generator.sh | 728 | #=== Embeddings / RAG === | COMMENT |
| MEDIUM⚡ | ods/installers/macos/lib/tier-map.sh | 12 | # Each tier maps to a specific GGUF quantization and context window. | COMMENT |
| MEDIUM⚡ | ods/installers/macos/lib/tier-map.sh | 226 | # Hermes requires at least a 64K context window. Keep the fast-start model at | COMMENT |
| MEDIUM⚡ | ods/installers/lib/bootstrap-model.sh | 16 | # Hermes requires at least a 64K context window, so fast-start installs keep | COMMENT |
| MEDIUM⚡ | ods/installers/lib/tier-map.sh | 14 | # Each tier maps to a specific GGUF quantization and context window. | COMMENT |
| MEDIUM⚡ | ods/installers/phases/09-offline.sh | 45 | # Use local RAG instead of web search | COMMENT |
| MEDIUM | ods/installers/phases/06-directories.sh | 1752 | #=== Embeddings / RAG === | COMMENT |
| MEDIUM | ods/installers/phases/03-features.sh | 169 | # retain WebUI for features that still rely on its voice, RAG, or LAN proxy. | COMMENT |
| MEDIUM | ods/installers/phases/03-features.sh | 557 | # RAG = qdrant (vector store) + embeddings (TEI). Both default from | COMMENT |
| MEDIUM | ods/installers/phases/07-devtools.sh | 168 | # ── OpenCode (local agentic coding platform) ── | COMMENT |
| MEDIUM | ods/installers/phases/12-health.sh | 477 | # Perplexica auto-config: seed chat model + embedding model on first boot. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ods/docker-compose.host-native-llm.yml | 13 | # This file is intentionally not standalone. scripts/resolve-compose-stack.sh | COMMENT |
| MEDIUM | ods/tests/test-migrate-config.sh | 164 | # Create the mock validator in the temp dir and point migrate-config.sh at | COMMENT |
| MEDIUM | ods/tests/test-windows-cli-model.sh | 145 | # Create a failing docker stub (batch file for Windows execution) | COMMENT |
| MEDIUM | ods/tests/benchmark-status-performance.sh | 35 | # Create a simple HTTP server that responds to health checks | COMMENT |
| MEDIUM⚡ | ods/tests/test-hooks.sh | 76 | # Create a test extension with both setup_hook and hooks.post_install | COMMENT |
| MEDIUM | ods/tests/test-restore-safety-ux.sh | 32 | # Create a minimal backup (manifest only, no data dirs) | COMMENT |
| MEDIUM | ods/tests/test-preflight-resolver-bug.sh | 19 | # Create a mock python-cmd.sh | COMMENT |
| MEDIUM | ods/tests/test-preflight-resolver-bug.sh | 29 | # Create a mock python script that preflight-engine.sh should run | COMMENT |
| MEDIUM | ods/tests/test-doctor-command.sh | 130 | # Create a mock report with failures | COMMENT |
| MEDIUM | ods/tests/test-preflight-dashboard-port.sh | 22 | # Create a temporary directory for stubs | COMMENT |
| MEDIUM | ods/tests/test-backup-integrity.sh | 25 | # Create a minimal fake ODS directory with some data | COMMENT |
| MEDIUM | ods/tests/test-pixel-integration.sh | 67 | # Create a mock /proc/1/comm | COMMENT |
| MEDIUM | ods/tests/test-pixel-integration.sh | 75 | # Create a mock /proc/version | COMMENT |
| MEDIUM | ods/tests/test-stt-full.sh | 14 | # Create a small test audio file (silence + tone) | COMMENT |
| MEDIUM | ods/tests/test-disk-space-preflight.sh | 37 | # Create a minimal fake ODS dir with some data so the estimated size is > ~0 | COMMENT |
| MEDIUM | ods/tests/test-disk-space-preflight.sh | 61 | # Create a minimal backup directory for restore size estimation | COMMENT |
| MEDIUM | ods/tests/test-extension-runtime-check.sh | 133 | # Create a mock bin directory with stub docker and curl executables | COMMENT |
| MEDIUM⚡ | ods/extensions/library/templates/compose-template.yaml | 5 | # This file is merged into the compose stack via: | COMMENT |
| MEDIUM⚡ | ods/extensions/templates/compose-template.yaml | 5 | # This file is merged into the compose stack via: | COMMENT |
| MEDIUM | …nsions/services/dashboard-api/tests/test_extensions.py | 839 | # Create a broken user extension directory (no compose.yaml or compose.yaml.disabled) | COMMENT |
| MEDIUM | …nsions/services/dashboard-api/tests/test_extensions.py | 3506 | # Create a real file and symlink compose.yaml to it | COMMENT |
| MEDIUM | …nsions/services/dashboard-api/tests/test_extensions.py | 3528 | # Create a real file and symlink the .disabled to it | COMMENT |
| MEDIUM | …ensions/services/pixel-agent/host/pixel_access_mode.py | 325 | # Create the missing chain under the nearest existing ancestor. | COMMENT |
| MEDIUM | ods/extensions/services/dashboard/entrypoint.sh | 6 | # This file is generated by dashboard-api on first start. | COMMENT |
| MEDIUM | ods/extensions/services/token-spy/db_postgres.py | 85 | # Create the default tenant | COMMENT |
| MEDIUM | ods/scripts/ods-test-functional.sh | 218 | # Create a simple test audio file or use existing | COMMENT |
| MEDIUM | ods/lib/service-registry.sh | 90 | # Create the cache as a race-safe, private (mode 0600) temp file. Its | COMMENT |
| MEDIUM | ods/lib/python-cmd.sh | 5 | # This file is sourced by other scripts, so it must not change the caller's shell options. | COMMENT |
| MEDIUM | ods/installers/lib/pixel-host-install.sh | 5370 | # Create the fixed empty targets on WSL's shared tmpfs so its rshared | COMMENT |
| MEDIUM | ods/installers/lib/model-selector.sh | 16 | # This file is sourced; it must not change the caller's shell options. | COMMENT |
| MEDIUM | ods/installers/phases/04-requirements.sh | 473 | # This file is sourced by install-core.sh under `set -e`. Keep the phase's | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ods/docker-compose.base.yml | 399 | # fleet harness can create/rotate/remove it without recreating the | COMMENT |
| MEDIUM | ods/tests/fleet-multi-distro.sh | 6 | # harness without pre-created per-distro containers. | COMMENT |
| MEDIUM | ods/tests/test-simulate-installers-exit-codes.sh | 6 | # was recorded as exit code 0. Run the harness against a stub tree whose | COMMENT |
| MEDIUM | ods/tests/test-simulate-installers-exit-codes.sh | 28 | # Stub tree: the harness resolves everything relative to its own parent | COMMENT |
| MEDIUM | ods/tests/test-atomic-env-writes.sh | 205 | # shared implementation rather than reimplementing it in this harness. | COMMENT |
| MEDIUM | ods/tests/test-bootstrap-upgrade-close-inherited-fds.sh | 5 | # opened (e.g. FD 9 from the fleet harness, or common FD 200 wrappers) for the | COMMENT |
| MEDIUM | ods/tests/test-phase03-no-gpu-assignment-message.sh | 8 | # multi-GPU harness uses and check the zero-GPU and single-GPU messages. | COMMENT |
| MEDIUM | ods/tests/test-docker-image-pull-retry.sh | 41 | # Run in a clean bash so we can stub sleep/spin_task without affecting this test harness. | COMMENT |
| MEDIUM | ods/tests/test-pixel-integration.sh | 26 | # ---- Test harness ----------------------------------------------------------- | COMMENT |
| MEDIUM | ods/tests/test-windows-cli-enable-disable.sh | 570 | # Sanity: every function we asked for made it into the harness. | COMMENT |
| MEDIUM⚡ | …tests/contracts/test-windows-hermes-config-patching.sh | 160 | # delegated Windows installer. The fleet harness and public docs call the | COMMENT |
| MEDIUM | ods/extensions/services/dashboard-api/config.py | 84 | # camelCase alias: the fleet model-ui harness gates required probes on llm.swapSafe | COMMENT |
| MEDIUM | …xtensions/services/dashboard-api/performance_oracle.py | 414 | # fleet-QA notes (run IDs, host names, harness vocabulary). They stay in the | COMMENT |
| MEDIUM | ods/extensions/services/dashboard-api/routers/agents.py | 17 | """Get comprehensive agent monitoring metrics.""" | STRING |
| MEDIUM | ods/extensions/services/dashboard-api/routers/talk.py | 185 | # on each compatibility entry is an internal fleet-QA note (run IDs, harness | COMMENT |
| MEDIUM | ods/extensions/services/dashboard-api/routers/pixel.py | 745 | # Edge can wait 20 s for harness and managed-project cleanup. | COMMENT |
| MEDIUM⚡ | …ns/services/dashboard-api/tests/test_setup_sentinel.py | 169 | # the test harness — but assert only the structural contract here so | COMMENT |
| MEDIUM⚡ | …ns/services/dashboard-api/tests/test_setup_sentinel.py | 170 | # this test stays robust against fixture changes. | COMMENT |
| MEDIUM | …/services/pixel-agent/host/project_owner_resolution.py | 73 | # Ordinary owner/model processes cannot elevate here. | COMMENT |
| MEDIUM | ods/extensions/services/pixel-edge/pixel_edge.py | 1349 | # tool authorization remains the responsibility of the broker and harness. | COMMENT |
| MEDIUM | ods/extensions/services/pixel-edge/pixel_edge.py | 1375 | # and the unavailable-browser response remain enforced by the harness. | COMMENT |
| MEDIUM | ods/extensions/services/pixel-edge/pixel_edge.py | 1457 | # Outlive the ingress's 16 s harness + managed-project cancellation budget. | COMMENT |
| MEDIUM | ods/scripts/bootstrap-upgrade.sh | 1588 | # active so the UI/harness do not require a manual `ods restart`. | COMMENT |
| MEDIUM⚡ | ods/scripts/validate-env.sh | 90 | # .env parsing (robust) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 9 | # Check if ods directory exists | COMMENT |
| LOW | ods/ods-backup.sh | 740 | # Check if running in ODS directory | COMMENT |
| LOW | ods/ods-restore.sh | 814 | # Check if running in ODS directory | COMMENT |
| LOW | ods/ods-preflight.sh | 240 | # Check if container is running but model still loading | COMMENT |
| LOW | ods/tests/test-tts-full.sh | 27 | # Check if we got audio data (MP3 starts with ID3 or empty binary) | COMMENT |
| LOW | ods/tests/test-phase-c-p1.sh | 69 | # Check if values are hardcoded (static string detection) | COMMENT |
| LOW | ods/tests/test-phase-c-p1.sh | 157 | # Check if settings endpoint returns data | COMMENT |
| LOW | ods/tests/test-phase-c-p1.sh | 176 | # Check if voice agent service is running properly | COMMENT |
| LOW⚡ | ods/tests/test-hardware-compatibility.sh | 230 | # Check if installer validates disk space | COMMENT |
| LOW | ods/tests/test-network-security.sh | 126 | # Check if this is intentional (dashboard, API endpoints) | COMMENT |
| LOW | ods/tests/benchmark-status-performance.sh | 25 | # Check if ods-cli exists | COMMENT |
| LOW | ods/tests/test-network-timeouts.sh | 53 | # Check if timeout is present on the same line or nearby | COMMENT |
| LOW | ods/tests/test-network-timeouts.sh | 60 | # Check if timeout is on the same line (use grep -F for fixed string) | COMMENT |
| LOW | ods/tests/test-stt-full.sh | 18 | # Check if we can generate a simple test | COMMENT |
| LOW | ods/tests/test-secret-security.sh | 303 | # Check if there's allowlist validation to mitigate the risk | COMMENT |
| LOW | ods/tests/smoke/installer-env-smoke.sh | 438 | # Check if it's defined anywhere else | COMMENT |
| LOW | …xtensions/services/dashboard-api/routers/extensions.py | 5378 | # Check if service is still enabled (built-in or user extension) | COMMENT |
| LOW | …nsions/services/dashboard-api/tests/test_extensions.py | 4114 | # Set updated_at to far in the past (well over 1 hour) | COMMENT |
| LOW | ods/extensions/services/token-spy/db_postgres.py | 74 | # Check if tenant exists | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/main.py | 1628 | # Check if this agent needs an auto-reset | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 310 | # Check if tail messages are already in filtered_conv | COMMENT |
| LOW | ods/extensions/services/whisper/docker-entrypoint.sh | 59 | # Check if VAD parameters already exist | COMMENT |
| LOW⚡ | ods/scripts/migrate-config.sh | 9 | # ./migrate-config.sh check # Check if migration needed | COMMENT |
| LOW | ods/scripts/migrate-config.sh | 205 | # Check if migration is needed | COMMENT |
| LOW | ods/scripts/migrate-config.sh | 299 | # Check if this migration is needed | COMMENT |
| LOW⚡ | ods/scripts/pre-download.sh | 194 | # Check if model is cached | COMMENT |
| LOW | ods/scripts/validate.sh | 124 | # Check if container is running | COMMENT |
| LOW | ods/scripts/ods-test-functional.sh | 114 | # Check if response contains "4" (the answer to 2+2) | COMMENT |
| LOW | ods/scripts/ods-test-functional.sh | 200 | # Check if response contains array of numbers | COMMENT |
| LOW | ods/scripts/validate-compose-stack.sh | 76 | # Check if docker/docker compose is available | COMMENT |
| LOW | ods/scripts/ods-doctor.sh | 602 | # Check if extension is enabled | COMMENT |
| LOW | ods/scripts/llm-cold-storage.sh | 61 | # Check if any running process references this model | COMMENT |
| LOW | ods/memory-shepherd/memory-shepherd.sh | 330 | # Check if the agent exists in config | COMMENT |
| LOW | ods/installers/macos/install-macos.sh | 2417 | # Check if process died | COMMENT |
| LOW | ods/installers/macos/install-macos.sh | 2495 | # Check if "apple" is not listed but service works on CPU | COMMENT |
| LOW | ods/installers/macos/lib/detection.sh | 103 | # Check if docker CLI is available | COMMENT |
| LOW | ods/installers/macos/lib/detection.sh | 127 | # Check if Docker daemon is responsive | COMMENT |
| LOW | ods/installers/lib/packaging.sh | 225 | # Check if a package is available in the repos | COMMENT |
| LOW | ods/installers/lib/background-tasks.sh | 127 | # Check if process is still running | COMMENT |
| LOW | ods/installers/lib/background-tasks.sh | 205 | # Check if still running | COMMENT |
| LOW | ods/installers/lib/path-utils.sh | 86 | # Check if path is empty | COMMENT |
| LOW | ods/installers/lib/path-utils.sh | 92 | # Check if parent directory exists and is writable | COMMENT |
| LOW | ods/installers/phases/13-summary.sh | 145 | # Check if any background tasks are registered | COMMENT |
| LOW | ods/installers/phases/11-services.sh | 925 | # Check if model exists and verify integrity | COMMENT |
| LOW | ods/installers/phases/02-detection.sh | 253 | # Check if upgrade succeeded | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/ods-host-agent.py | 11607 | # Step 1: resolve and verify this is a Wi-Fi profile. Use -t for | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 11647 | # Step 2: type-confirmed Wi-Fi → safe to delete. | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12757 | # Step 1: Setup hook (if requested). The helper is a no-op | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12774 | # Step 2: Prepare images. Pulls may use a cached image on | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12812 | # Step 3: Start | COMMENT |
| LOW | ods/bin/ods-host-agent.py | 12912 | # Step 4: Success | COMMENT |
| LOW | …ashboard/src/components/__tests__/SetupWizard.test.jsx | 79 | // Step 4: type a name so Next becomes enabled | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 241 | # Step 1: Separate system messages from conversation messages | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 250 | # Step 2: Group conversation messages into atomic units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 255 | # Step 3: Apply max_pairs — keep only the N most recent units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 262 | # Step 4: Drop old tool calls from older units | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 301 | # Step 6: Flatten units back into message list | COMMENT |
| LOW⚡ | ods/extensions/services/token-spy/filters.py | 306 | # Step 7: Apply always_keep_last_n safety — ensure the last N raw messages | COMMENT |
| LOW | ods/extensions/services/token-spy/filters.py | 288 | # Step 5: Truncate tool result content in all kept messages | COMMENT |
| LOW | ods/extensions/services/token-spy/filters.py | 321 | # Step 8: Apply max_total_chars if set | COMMENT |
| LOW | ods/installers/macos/lib/post-pixel-install.sh | 361 | # Step 1: wait briefly for the models API to be ready (max 15s). | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 375 | # Step 2: skip if already cached. | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 379 | # Step 3: POST to trigger download. | COMMENT |
| LOW⚡ | ods/installers/macos/lib/post-pixel-install.sh | 383 | # Step 4: verify the model is actually cached. | COMMENT |
| LOW | ods/installers/lib/detection.sh | 757 | # Step 1: Is there even NVIDIA hardware on this machine? | COMMENT |
| LOW | ods/installers/lib/detection.sh | 770 | # Step 2: Ensure a driver package is installed | COMMENT |
| LOW | ods/installers/lib/detection.sh | 802 | # Step 3: Try loading the module — see why it fails | COMMENT |
| LOW⚡ | ods/installers/lib/detection.sh | 816 | # Step 4: If it's not a Secure Boot issue, bail out | COMMENT |
| LOW⚡ | ods/installers/lib/detection.sh | 822 | # Step 5: Secure Boot is blocking the module — ensure it's properly signed | COMMENT |
| LOW | ods/installers/lib/detection.sh | 894 | # Step 6: Try loading — if MOK key is already enrolled, this works immediately | COMMENT |
| LOW | ods/installers/lib/detection.sh | 905 | # Step 7: MOK key needs firmware enrollment — one reboot required | COMMENT |
| LOW⚡ | ods/installers/phases/11-services.sh | 1495 | # Step 1: start any containers already in Created state | COMMENT |
| LOW⚡ | ods/installers/phases/11-services.sh | 1497 | # Step 2: wait for services to stabilize, then compose pass | COMMENT |
| LOW | ods/installers/phases/11-services.sh | 1509 | # Step 3: catch any stragglers from the second pass | COMMENT |
| LOW | ods/installers/phases/12-health.sh | 694 | # Step 1: wait briefly for the models API to be ready. Whisper's /health | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 709 | # Step 2: skip download if already cached. | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 713 | # Step 3: POST to trigger download. Log stdout/stderr to install log. | COMMENT |
| LOW⚡ | ods/installers/phases/12-health.sh | 717 | # Step 4: verify the model is actually cached. POST can return 200 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_access_bridge.py | 561 | if not isinstance(value, dict): raise ValueError() | STRING |
| LOW | ods/bin/ods-host-agent.py | 670 | def _set_model_activation_phase(phase: str, failure_code: str | None = None) -> None: | CODE |
| LOW | ods/bin/ods-host-agent.py | 18787 | def _setup_managed_opencode(env: dict) -> None: | STRING |
| LOW | ods/bin/ods-mdns.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/bin/model_switchboard/reconciler.py | 144 | __all__ = ["PHASES", "run_runtime_activation", "result"] | CODE |
| LOW | ods/bin/model_switchboard/__init__.py | 23 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/egress.py | 419 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/reconciler.py | 129 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/transport.py | 201 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/__init__.py | 81 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/ssh_supervisor.py | 115 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/lifecycle.py | 285 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/probe.py | 248 | __all__ = [ | CODE |
| LOW | ods/bin/remote_provider/egress_probe.py | 48 | __all__ = [ | CODE |
| LOW | ods/extensions/services/dashboard-api/hermes_bridge.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/config.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/gguf_inspector.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/security.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/agent_monitor.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/gpu.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/main.py | 157 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/helpers.py | 73 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/session_signer.py | 58 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/session_signer.py | 79 | def _set_secret_for_tests(value: str) -> None: | CODE |
| LOW | …s/extensions/services/dashboard-api/user_extensions.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/auth.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ns/services/dashboard-api/routers/dashboard_session.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ns/services/dashboard-api/routers/dashboard_session.py | 172 | def _set_session_cookie(response: Response, request: Request, now: float) -> None: | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/models.py | 71 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ensions/services/dashboard-api/routers/opencode_app.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s/extensions/services/dashboard-api/routers/updates.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ensions/services/dashboard-api/routers/pixel_images.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | …tensions/services/dashboard-api/routers/model_state.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …/extensions/services/dashboard-api/routers/features.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ns/services/dashboard-api/routers/oauth_passthrough.py | 84 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/voice.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …extensions/services/dashboard-api/routers/templates.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | …xtensions/services/dashboard-api/routers/extensions.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | …xtensions/services/dashboard-api/routers/magic_link.py | 75 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/setup.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …extensions/services/dashboard-api/routers/tailscale.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | …extensions/services/dashboard-api/routers/workflows.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …extensions/services/dashboard-api/routers/resources.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rvices/dashboard-api/routers/remote_provider_status.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/gpu.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/talk.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/pixel.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ensions/services/dashboard-api/routers/model_routes.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/dashboard-api/routers/usage.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …s/extensions/services/dashboard-api/routers/privacy.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/token-spy/db_postgres.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | ods/extensions/services/token-spy/providers/__init__.py | 11 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ods/config/n8n/llm-summarizer.json | 14 | "content": "## LLM Summarizer\n\nThis is a template workflow for sending text or URLs to a webhook and getting a | CODE |
| HIGH | ods/docs/MAINTENANCE-AUDIT-2026-09.md | 24 | | [#6551](https://github.com/Osmantic/ODS/pull/6551) | Replace all 12 wallpapers with documented AI-generated artwork, p | CODE |
| HIGH | ods/docs/MAINTENANCE-AUDIT-2026-09.md | 24 | | [#6551](https://github.com/Osmantic/ODS/pull/6551) | Replace all 12 wallpapers with documented AI-generated artwork, p | CODE |
| HIGH⚡ | …ons/services/dashboard-api/tests/test_pixel_sharing.py | 266 | # Using existing fixture test_client as requested | COMMENT |
| HIGH | .claude/commands/deep-research.md | 527 | *Generated by Claude Code Deep Research with Rube MCP + PAL MCP* | COMMENT |
| HIGH | .claude/commands/code-review.md | 384 | *Generated by Claude Code Review with PAL MCP Consensus* | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | ods/test-stack.sh | 8 | # Usage: | COMMENT |
| LOW | ods/test-install.sh | 7 | # Usage: | COMMENT |
| LOW⚡ | ods/tests/test-multi-distro.sh | 8 | # Usage: | COMMENT |
| LOW | ods/tests/reproducers/langfuse-uid-check.sh | 13 | # Usage: | COMMENT |
| LOW⚡ | ods/scripts/migrate-config.sh | 8 | # Usage: | COMMENT |
| LOW | ods/scripts/extension-runtime-check.sh | 6 | # Usage: | COMMENT |
| LOW | ods/scripts/validate-manifests.sh | 5 | # Usage: | COMMENT |
| LOW⚡ | ods/scripts/pre-download.sh | 10 | # Usage: | COMMENT |
| LOW⚡ | ods/scripts/ods-test.sh | 12 | # Usage: | COMMENT |
| LOW⚡ | ods/scripts/upgrade-model.sh | 10 | # Usage: | COMMENT |
| LOW | ods/scripts/llm-cold-storage.sh | 11 | # Usage: | COMMENT |
| LOW | ods/scripts/linux-install-preflight.sh | 5 | # Usage: | COMMENT |
| LOW⚡ | ods/lib/rsync.sh | 11 | # Usage: | COMMENT |
| LOW⚡ | ods/installers/macos/ods-macos.sh | 8 | # Usage: | COMMENT |
| LOW⚡ | ods/installers/macos/install-macos.sh | 11 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ods/extensions/library/workflows/comfyui/README.md | 34 | -H "X-API-Key: your-api-key" \ | CODE |
| HIGH | ods/extensions/library/workflows/comfyui/README.md | 66 | -H "X-API-Key: your-api-key" \ | CODE |
| HIGH | ods/extensions/library/workflows/langflow/README.md | 32 | -H "X-API-Key: your-api-key" \ | CODE |
| HIGH | ods/extensions/library/workflows/flowise/README.md | 32 | -H "X-API-Key: your-api-key" \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/docker-compose.base.yml | 203 | "6":{"inputs":{"text":"placeholder","clip":["4",1]},"class_type":"CLIPTextEncode"}, | CODE |
| LOW | …extensions/library/services/open-interpreter/server.py | 78 | interpreter.llm.api_key = "fake_key" | CODE |
| LOW | …extensions/library/services/open-interpreter/server.py | 101 | interpreter.llm.api_key = "fake_key" | CODE |
| LOW | ods/extensions/library/services/dify/manifest.yaml | 38 | default: "dummy-key" | CODE |
| LOW | …ervices/dashboard-api/tests/test_performance_oracle.py | 1912 | (models_dir / "Qwen3.6-35B-A3B-UD-Q4_K_M.gguf").write_text("placeholder", encoding="utf-8") | CODE |
| LOW | …s/extensions/services/dashboard-api/tests/test_talk.py | 1708 | {"id": "placeholder", "result": {"status": "interrupted"}}, | CODE |
| LOW | …s/extensions/services/dashboard-api/tests/test_talk.py | 1723 | if frame.get("id") == "placeholder": | CODE |
| LOW⚡ | …ervices/pixel-agent/host/preview_inspection_capsule.py | 368 | return !placeholder || title ? title : e.getAttribute('placeholder') || ''; | CODE |
| LOW | …ons/services/privacy-shield/tests/test_pii_scrubber.py | 30 | assert "user@example.com" not in result | CODE |
| LOW⚡ | …ons/services/privacy-shield/tests/test_pii_scrubber.py | 232 | @pytest.mark.parametrize("value", [None, 42, [], {}, b"user@example.org"]) | CODE |
| LOW⚡ | …ons/services/privacy-shield/tests/test_pii_scrubber.py | 235 | token = detector.scrub("user@example.org") | CODE |
| LOW⚡ | …ons/services/privacy-shield/tests/test_pii_scrubber.py | 242 | assert detector.restore(token) == "user@example.org" | CODE |
| LOW | .github/scripts/test_check_commit_identities.py | 20 | ('User Name', 'user@example.com'), | CODE |
| LOW⚡ | .github/scripts/test_check_commit_identities.py | 35 | ('Jane Doe', 'jane@company.dev'), | CODE |
| LOW⚡ | .github/scripts/test_check_commit_identities.py | 39 | ('Jane Doe', 'jane.doe@gmail.com'), | CODE |
| LOW | .github/scripts/test_check_commit_identities.py | 57 | git('commit', '-q', '--allow-empty', '-m', 'bad', name='User Name', email='user@example.com') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/bin/pixel_access_bridge.py | 758 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 16500 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 16731 | CODE | |
| LOW | ods/bin/ods-host-agent.py | 17028 | CODE | |
| LOW | ods/tests/test-wsl-portal-readiness.py | 16 | CODE | |
| LOW | ods/extensions/services/dashboard-api/main.py | 1713 | CODE | |
| LOW | ods/extensions/services/dashboard-api/helpers.py | 401 | CODE | |
| LOW | ods/extensions/services/dashboard-api/routers/models.py | 2733 | CODE | |
| LOW | …rvices/dashboard-api/routers/remote_provider_status.py | 307 | CODE | |
| LOW | …s/services/dashboard-api/tests/test_metric_sampling.py | 341 | CODE | |
| LOW | …services/dashboard-api/tests/test_status_cloud_mode.py | 32 | CODE | |
| LOW | …ensions/services/pixel-agent/host/pixel_access_mode.py | 686 | CODE | |
| LOW | ods/scripts/extension-selection.py | 432 | CODE | |
| LOW | ods/installers/macos/lib/pixel-native-prepare.py | 380 | CODE | |
| LOW | ods/installers/macos/lib/pixel-runtime-bundle.py | 702 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ods/installers/macos/lib/pixel-native-services.py | 23 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-prepare.py | 16 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-finalize.py | 25 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-recover.py | 59 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-uninstall.py | 45 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-install.py | 97 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-docker-migrate.py | 13 | def helper(name): | CODE |
| LOW | …stallers/macos/lib/pixel-controller-held-proof-live.py | 14 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-update.py | 16 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-onboarding.py | 14 | def helper(name): | CODE |
| LOW | ods/installers/macos/lib/pixel-native-activate.py | 22 | def helper(filename): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ensions/services/dashboard-api/pixel_sharing_public.py | 5 | Validates and normalizes an ODS dashboard API response. Args: raw: The raw response dictionary. | STRING |
| HIGH | ods/extensions/services/token-spy/providers/registry.py | 30 | Get a provider instance by name. Creates a new instance with the given config. Does not cache instances | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/src/components/settings/PixelSharingSettings.test.jsx | 206 | expect(JSON.parse(navigator.clipboard.writeText.mock.calls.at(-1)[0]).baseUrl).toBe('https://new.example/v1') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …nsions/services/dashboard-api/tests/test_extensions.py | 4285 | CODE | |
| MEDIUM | …s/extensions/services/dashboard-api/tests/test_talk.py | 1468 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ices/dashboard/src/lib/pixelDeliveredArtifacts.test.js | 111 | const after = `${directive()}\nLet me know if you need changes.` | CODE |
| MEDIUM | …ices/dashboard/src/lib/pixelDeliveredArtifacts.test.js | 112 | const both = `Here is your file:\n${directive()}\nLet me know if you need changes.` | CODE |