AI Slop Code Risk Monitor

OpenHands/OpenHands

SlopCodeMonitor badge for OpenHands/OpenHands Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

🙌 OpenHands: AI-Driven Development

3.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for OpenHands/OpenHands, a TypeScript project with 92,314 GitHub stars. SynthScan examined 465,341 lines of code across 2438 source files, recording 1105 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 3.3 (Low 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.

3.3
Adjusted Signal
3.3
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
92.3K
Stars
TypeScript
Language
465.3K
Lines of Code
2.4K
Files
1.1K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 8.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 809 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.9/100 · LOW

Are imports declared and package/API names verified? 87 finding(s).

Agent Over-Engineering Ratio 13.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 914 finding(s).

PR Review Velocity Impact 15.2/100 · LOW

Which changes need focused human review? 1105 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 1MEDIUM 211LOW 893

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1105 distinct pattern matches across 11 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.

Hyper-Verbose Identifiers705 hits · 702 pts
SeverityFileLineSnippetContext
LOWeslint.config.js57function createNoDirectAgentServerFetchRule() {CODE
LOWvitest.setup.ts125function installXhrGlobalsFallback(fallbacks: Record<string, unknown>) {CODE
LOW…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts160async function seedBackendAnalyticsConsent(backendUrl: string, apiKey: string) {CODE
LOWtests/e2e/mock-llm/backends/mock-llm-auth-modes.spec.ts212 async function openPublicAuthScreenFromFirstRun(page: Page) {CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts73export async function seedBackendAnalyticsConsent(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts198export async function waitForNonUserMessageText(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts238export async function waitForSuccessfulBashObservation(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts288export async function waitForAgentMessageContaining(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts405export async function ensureMockLLMProfileViaAPI(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts532export async function ensureMockLLMAgentProfile(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts601async function fillLlmProfileEditorAndSave(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts820export async function resetToOpenHandsAgentViaUI(page: Page) {CODE
LOWtests/e2e/mock-llm/utils/folder-workspace-paths.ts12export function resolveFolderWorkspacePaths({CODE
LOWtests/e2e/mock-llm/utils/folder-workspace-paths.ts35export function getFolderBrowserPathSegments(targetPath: string): string[] {CODE
LOWtests/e2e/mock-llm/scripts/test_mock_llm_server.py56def test_validation_ping_leaves_the_trajectory_intact(url, as_parts, with_system):CODE
LOWtests/e2e/mock-llm/scripts/test_mock_llm_server.py71def test_one_token_conversation_is_not_mistaken_for_validation(url):CODE
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts91async function waitForCreatedAutomationId(CODE
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts632 function findRuntimeServicesContent(CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts67function createAllPaginationEvents(prefix: string): PaginationEvent[] {CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts231async function routePaginationConversation(page: Page) {CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts341async function waitForScrollableConversation(page: Page) {CODE
LOWtests/e2e/mock-llm/skills/mock-llm-skills.spec.ts82async function removeWorkspaceFromServer(CODE
LOWtests/e2e/support/onboarding-helpers.ts15export async function routeOnboardingLlmCatalog(page: Page) {CODE
LOWtests/e2e/support/onboarding-helpers.ts122export async function waitForOnboardingBackendConnected(page: Page) {CODE
LOWtests/e2e/support/onboarding-helpers.ts132export async function waitForOnboardingLlmSettingsReady(page: Page) {CODE
LOWtests/e2e/support/onboarding-helpers.ts143export async function clickOnboardingStepButton(page: Page, testId: string) {CODE
LOWtests/e2e/support/onboarding-helpers.ts189export async function advanceOnboardingToLlmStep(page: Page) {CODE
LOWtests/e2e/live/real-agent-server-conversation.spec.ts56 async function cleanupKnownConversations(request: APIRequestContext) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts73export async function routeBackendSessionApiKey(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts198function buildLiveVerificationSettings(CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts279export async function guardAgainstPostHogRequests(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts390export async function clickButtonByTestIdOrText(CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts455export async function waitForNonUserMessageText(page: Page, text: string) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts476export async function expandVisibleEventDetails(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts537export function getOptionalConversationIdFromURL(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts564function isSuccessfulBashObservation(event: unknown) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts613export async function waitForSuccessfulBashObservation(CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts677export async function waitForCriticResultDisplay(page: Page) {CODE
LOW__tests__/root.test.tsx130function mockLockedCookieDeployment() {CODE
LOW__tests__/utils/scroll-fade-state.test.ts4function mockVerticalScrollMetrics(CODE
LOW__tests__/utils/automation-catalog.test.ts67function createInstalledAutomation(templateId?: string): Automation {CODE
LOW…settings/llm-profiles/llm-settings-local-view.test.tsx172function createMockLlmProfilesReturn(CODE
LOW…omponents/backends/cloud-organization-startup.test.tsx408 function renderCloudSettingsConsumer() {CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx117async function selectLocalRowFromSecondBackend(CODE
LOW…onents/features/mcp-page/custom-server-editor.test.tsx91function EditEditorOnceSettingsLoaded({ onClose }: { onClose: () => void }) {CODE
LOW…onents/features/mcp-page/custom-server-editor.test.tsx103function EditRemoteEditorOnceSettingsLoaded({CODE
LOW…onents/features/mcp-page/custom-server-editor.test.tsx119function EditOAuthEditorOnceSettingsLoaded({CODE
LOW…ion-panel/advanced-conversation-options-modal.test.tsx7function mockVerticalScrollMetrics(CODE
LOW…ponents/features/skills/extensions-navigation.test.tsx37function renderExtensionsNavigation(CODE
LOW…nts/features/conversation/secret-request-card.test.tsx31function PendingSecretRequestCards() {CODE
LOW…omponents/automations/recommended-automations.test.tsx206function continueGithubResponderLocally() {CODE
LOW…ests__/components/onboarding/onboarding-modal.test.tsx192async function waitForConfiguredBackendToBeSkipped() {CODE
LOW…ests__/components/onboarding/onboarding-modal.test.tsx229async function createSlideOffsetAssertion() {CODE
LOW…tests__/components/onboarding/onboarding-host.test.tsx63function seedUserAddedLocalBackend() {CODE
LOW__tests__/hooks/use-handle-plan-click.test.tsx116function makeTaggedPlannerConversation(CODE
LOW__tests__/hooks/use-task-list.test.ts8function createTaskTrackerObservation(CODE
LOW__tests__/hooks/use-click-outside-element.test.tsx12function ClickOutsideTestComponent({CODE
LOW__tests__/hooks/use-load-older-events.test.tsx64function makeModelSwitchObservation(CODE
LOW__tests__/hooks/use-auto-resize.test.tsx56function installControlledAnimationFrames() {CODE
LOW__tests__/hooks/chat/use-slash-command.test.ts110function getSelectedCharacterOffset(element: HTMLElement) {CODE
645 more matches not shown…
Decorative Section Separators208 hits · 621 pts
SeverityFileLineSnippetContext
MEDIUMplaywright.mock-llm-docker.config.ts35// ── Docker image ────────────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts56// ── Session API key ────────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts62// ── URLs ───────────────────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts91// ── Skill test support ────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts108// ── Folder-workspace test support ──────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts119// ── ACP test support ──────────────────────────────────────────────────COMMENT
MEDIUM⚡playwright.mock-llm.config.ts41// ── Session API key ────────────────────────────────────────────────────COMMENT
MEDIUM⚡playwright.mock-llm.config.ts47// ── State directory (isolated per test run) ────────────────────────────COMMENT
MEDIUM⚡playwright.mock-llm.config.ts55// ── URLs ───────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh2# ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMdocker/entrypoint.sh71# ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMdocker/entrypoint.sh467# ── 1. Start Agent Server ────────────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh484# ── 2. Start Automation Server ───────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh531# ── 3. Wait for backends to be ready ─────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh552# ── 4. Start static server (frontend + proxy) ────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh610# ── 5. (Optional) Public-mode static server ─────────────────────────────────COMMENT
MEDIUMtests/e2e/mock-llm/settings/mock-llm-acp-agent.spec.ts94 // ── Step 1: Configure ACP agent through the Settings → Agent UI ─────COMMENT
MEDIUMtests/e2e/mock-llm/settings/mock-llm-acp-agent.spec.ts170 // ── Step 2: Reload and verify the UI reflects saved ACP config ──────COMMENT
MEDIUMtests/e2e/mock-llm/settings/mock-llm-acp-agent.spec.ts195 // ── Step 3: Start an ACP conversation from the home page ────────────COMMENT
MEDIUMtests/e2e/mock-llm/settings/mock-llm-acp-agent.spec.ts331 // ── Step 4: Resume the ACP conversation from the sidebar ────────────COMMENT
MEDIUM…m/settings/mock-llm-cloud-providers-pagination.spec.ts78 // ── Seed: cloud backend in localStorage BEFORE the app boots ───────COMMENT
MEDIUM…m/settings/mock-llm-cloud-providers-pagination.spec.ts127 // ── Mock cloud API ──────────────────────────────────────────────────COMMENT
MEDIUM…m/settings/mock-llm-cloud-providers-pagination.spec.ts304 // ── Drive the UI ────────────────────────────────────────────────────COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts75// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts77// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts234// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts236// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts376// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts378// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…e2e/mock-llm/settings/mock-llm-acp-auth-banner.spec.ts151 // ── Select ACP → Claude Code ─────────────────────────────────────────COMMENT
MEDIUM…ts/e2e/mock-llm/home/mock-llm-folder-workspace.spec.ts105 // ── Step 1: Browse to a folder and add it as a workspace ────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts34// ── Paths ──────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts41// ── Port ranges (high ports unlikely to collide with other tests) ──────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts49// ── Helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts320// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts322// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts326// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts328// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts395 // ── 4. Open browser to the frontend-only instance ─────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts405 // ── 5. Add the backend-only instance via onboarding ───────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts413 // ── 6. Reload to pick up the new backend ──────────────────────────COMMENT
MEDIUM⚡…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts420 // ── 7. Verify the app loads ───────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts354 // ── 1. Start backend-only instance ────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts365 // ── 2. Start frontend-only instance ───────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts376 // ── 3. Wait for both to become ready (in parallel) ────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts449// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts451// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts475 // ── 1. Spawn all three instances concurrently ─────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts503 // ── 2. Wait for all three to become ready ─────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts527 // ── 3. Verify both backends are independently reachable ───────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts539 // ── 4. Open browser to the frontend-only instance ─────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts549 // ── 5. Add Backend A through onboarding ──────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts563 // ── 6. Add Backend B via the dropdown menu ────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts600 // ── 7. Switch to Backend B via the dropdown ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts628 // ── 8. Verify the app works after switching ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts637 // ── 9. Verify both backends appear in the manage modal ────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts651// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts653// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts678 // ── 1. Spawn both backends and the frontend ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts734 // ── 2. Seed a conversation that exists ONLY on backend A ──────────COMMENT
148 more matches not shown…
Over-Commented Block94 hits · 94 pts
SeverityFileLineSnippetContext
LOWplaywright.mock-llm-docker.config.ts181 url: MOCK_LLM_URL,COMMENT
LOWplaywright.config.ts61 // use: { ...devices['Pixel 5'] },COMMENT
LOWeslint.config.js1// Flat ESLint config (ESLint 9+).COMMENT
LOWeslint.config.js201 ...reactPlugin.configs["jsx-runtime"].rules,COMMENT
LOWeslint.config.js281 // agent-server `/api/...` path bypasses the typed access layer, so it isCOMMENT
LOWeslint.config.js321COMMENT
LOWeslint.config.js401 "react/react-in-jsx-scope": "off",COMMENT
LOWplaywright.mock-llm.config.ts121 timeout: 30_000,COMMENT
LOWplaywright.mock-llm.config.ts161 // GET /api/automation/v1 returns 200 (empty list) without authCOMMENT
LOWvitest.setup.ts61 vi.stubGlobal("requestAnimationFrame", (callback: FrameRequestCallback) =>COMMENT
LOWvitest.setup.ts81// `XMLHttpRequestUpload` equivalent). Vitest reports that as anCOMMENT
LOWvitest.setup.ts221});COMMENT
LOWtools/canvas_ui_tool.py141 ]COMMENT
LOWdocker/entrypoint.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/entrypoint.sh21# not EXPOSE it and the editor is reached throughCOMMENT
LOWdocker/entrypoint.sh41# in with at start (needs MARS_WEB=1)COMMENT
LOWdocker/entrypoint.sh61# Without this the automation backend may fall back toCOMMENT
LOWdocker/entrypoint.sh81 . /opt/agent-canvas/defaults.envCOMMENT
LOWdocker/entrypoint.sh121VSCODE_BASE_PATH="$(normalize_base_path "$VSCODE_BASE_PATH")"COMMENT
LOWdocker/entrypoint.sh241export AUTOMATION_AGENT_SERVER_API_KEY="${AUTOMATION_AGENT_SERVER_API_KEY:-${EFFECTIVE_SESSION_KEY}}"COMMENT
LOWdocker/entrypoint.sh381COMMENT
LOWdocker/entrypoint.sh401# so Canvas and the agent-server see the same catalog and nothing is cloned.COMMENT
LOWdocker/entrypoint.sh601 --route "/docs=http://127.0.0.1:${AGENT_SERVER_PORT}" \COMMENT
LOWdocker/entrypoint.sh621#COMMENT
LOWdocker/entrypoint.sh661 PIDS+=($!)COMMENT
LOW…m/settings/mock-llm-cloud-providers-pagination.spec.ts201 }COMMENT
LOW…m/settings/mock-llm-cloud-providers-pagination.spec.ts341 // the virtualized listbox render so every option (page-1 + page-2) isCOMMENT
LOW…e2e/mock-llm/settings/mock-llm-acp-auth-banner.spec.ts121 test("Claude credential in the store surfaces a 'configured' banner, never 'signed in'", async ({COMMENT
LOWtests/e2e/mock-llm/backends/mock-llm-auth-modes.spec.ts41COMMENT
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts481 try {COMMENT
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts741 // updates reactively — `useActivateLlmProfile` invalidates the profiles queryCOMMENT
LOW…e/mock-llm/conversations/mock-llm-conversation.spec.ts301 await dismissAnalyticsModal(page);COMMENT
LOW…e/mock-llm/conversations/mock-llm-image-upload.spec.ts81 // Use a vision-capable model name so litellm does not strip image_urlCOMMENT
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts381COMMENT
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts441 // openhands-automation skill, triggering this internal call.COMMENT
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts481COMMENT
LOW__tests__/root.test.tsx921 });COMMENT
LOW__tests__/components/chat-message.test.tsx41 // "Cannot update a component (`ChatMessage`) while rendering a differentCOMMENT
LOW…omponents/features/markdown/markdown-renderer.test.tsx81 }COMMENT
LOW…ests__/components/onboarding/onboarding-modal.test.tsx481COMMENT
LOW__tests__/hooks/use-auto-refresh-files-on-edit.test.tsx261 countAfterInitial + 1,COMMENT
LOW__tests__/scripts/docker-vscode-route-sync.test.ts1// @vitest-environment nodeCOMMENT
LOW__tests__/scripts/docker-vscode-route-sync.test.ts161 // --auth-required only decides whether the session key is injected intoCOMMENT
LOW__tests__/scripts/vscode-base-path-opt-in.test.ts1// @vitest-environment nodeCOMMENT
LOW__tests__/scripts/vscode-base-path-opt-in.test.ts161 //COMMENT
LOWexamples/acp-docker/docker-compose.yml1# Containerized ACP agent-server for Agent Canvas (agent-canvas#1014).COMMENT
LOWexamples/acp-docker/docker-compose.yml21 agent-server:COMMENT
LOWexamples/acp-docker/docker-compose.yml41 # container restarts and (b) enable the encrypted-settings path used byCOMMENT
LOWscripts/vercel-install.sh1#!/usr/bin/env bashCOMMENT
LOW.github/workflows/release.yml1name: releaseCOMMENT
LOW.github/workflows/verify-skill-isolation.yml1---COMMENT
LOW.github/workflows/bump-chart.yml1# Opens a PR in OpenHands/OpenHands-Cloud pointing the agent-canvas chart'sCOMMENT
LOW.github/workflows/desktop-macos.yml1name: Desktop (macOS)COMMENT
LOW.github/workflows/desktop-linux.yml1name: Desktop (Linux)COMMENT
LOWhelm/agent-canvas/values.yaml1# Default values for agent-canvas.COMMENT
LOWhelm/agent-canvas/values.yaml21# - name: ghcr-pull-secretCOMMENT
LOWhelm/agent-canvas/values.yaml41serviceAccount:COMMENT
LOWhelm/agent-canvas/values.yaml81 - host: agent-canvas.localCOMMENT
LOWhelm/agent-canvas/values.yaml101# * $HOME/workspace — the agent's default working directory: clonedCOMMENT
LOWhelm/agent-canvas/values.yaml141 # Extra environment variables to pass through to the container.COMMENT
34 more matches not shown…
Fake / Example Data85 hits · 82 pts
SeverityFileLineSnippetContext
LOWeslint.config.js233 "placeholder",CODE
LOWtests/e2e/mock-llm/utils/skill-test-helpers.ts102 execSync('git config user.email "test@test.com"', opts);CODE
LOW.agents/skills/verify-openhands/references/mapping.md115 `control-openhands browser fill 'testid=add-secret-form >> testid=value-input' dummy-value`,CODE
LOW…openhands/references/feature-map/F06-agent-activity.md184- Known issue [#17559](https://github.com/OpenHands/OpenHands/issues/17559) (`F06.load-older-history`): History paginatiCODE
LOW…erify-openhands/references/feature-map/F24-git-sync.md67- **Encryption key (`F24.encryption`).** Start with plaintext exported by the preceding sync bullets. Run `control-openhCODE
LOW…erify-openhands/references/feature-map/F24-git-sync.md68- **Access token (`F24.token`).** `control-openhands browser attr 'testid=git-sync-token-input' type` is `password` and CODE
LOW…fy-openhands/references/feature-map/F17-mcp-servers.md94- **Custom remote server (`F17.custom-add-remote`).** With the Streamable HTTP fixture from Preconditions running, run `CODE
LOW…nds/references/feature-map/F16-application-settings.md70- **Voice input endpoint (`F16.voice-endpoint`).** Run `control-openhands browser fill 'testid=transcription-base-url-inCODE
LOW…openhands/references/feature-map/F13-agent-profiles.md73- **Credentials (`F13.acp-credentials`).** In a new ACP editor with preset `Claude Code`, `control-openhands browser tesCODE
LOW…y-openhands/references/feature-map/F10-llm-profiles.md88- **Refused save shows the server's reason (`F10.edit`).** Arrange a disposable dummy-key loopback profile (`QA_DUMMY=skCODE
LOW…y-openhands/references/feature-map/F10-llm-profiles.md89- **Basic re-save keeps a hidden Base URL (`F10.basic-save-keeps-base-url`).** `QA_adv` carries `base_url` `https://api.CODE
LOW…verify-openhands/references/feature-map/F14-secrets.md43- **Create (`F14.create`).** Run `control-openhands browser click 'testid=add-secret-button'`, `control-openhands browseCODE
LOW…verify-openhands/references/feature-map/F14-secrets.md44- **Reveal the value (`F14.value-reveal`).** Run `control-openhands browser click 'testid=add-secret-button'` and `contrCODE
LOW…erify-openhands/references/feature-map/F05-composer.md205- Known issue [#17271](https://github.com/OpenHands/OpenHands/issues/17271) (`F05.context-window-meter`): New chat retaiCODE
LOW…erify-openhands/references/feature-map/F05-composer.md207- Known issue [#16851](https://github.com/OpenHands/OpenHands/issues/16851) (`F05.profile-identity`): wrong model is disCODE
LOW⚡…nds/references/feature-map/F11-provider-connections.md61- **Server error (`F11.create-error`).** Run `control-openhands browser click 'testid=add-provider-connection'`, `controCODE
LOW⚡…nds/references/feature-map/F11-provider-connections.md62- **Second connection.** Create `QA_spare` the same way with `dummy-key-2` as key and `control-openhands browser fill 'tCODE
LOW⚡…nds/references/feature-map/F11-provider-connections.md72- **Long name and provider change (`F11.long-name`, `F11.edit`).** Create a connection named `"QA_long$(printf 'x%.0s' $CODE
LOW⚡…nds/references/feature-map/F11-provider-connections.md74- **Unlisted provider (`F11.edit-unlisted-provider`).** Arrange (not proof) `control-openhands api POST /api/llm/provideCODE
LOW⚡…nds/references/feature-map/F11-provider-connections.md79- **Redacted key is rejected (`F11.create-validation`, `F11.edit`).** Add `QA_SENTINEL`, choose OpenAI (`browser click 'CODE
LOW…nhands/references/backfills/2026-10-16-main-refresh.md159| [OpenHands/OpenHands#17559](https://github.com/OpenHands/OpenHands/issues/17559) | mapped | blocked | [F06.load-older-CODE
LOW…nhands/references/backfills/2026-10-16-main-refresh.md179| [OpenHands/OpenHands#17271](https://github.com/OpenHands/OpenHands/issues/17271) | mapped | blocked | [F05.context-winCODE
LOW…nhands/references/backfills/2026-10-16-main-refresh.md220| [OpenHands/OpenHands#16851](https://github.com/OpenHands/OpenHands/issues/16851) | mapped | blocked | [F05.profile-ideCODE
LOW…openhands/references/backfills/2026-10-12-open-bugs.md130| [OpenHands/OpenHands#17559](https://github.com/OpenHands/OpenHands/issues/17559) | mapped | [F06.load-older-history](.CODE
LOW…openhands/references/backfills/2026-10-12-open-bugs.md151| [OpenHands/OpenHands#17271](https://github.com/OpenHands/OpenHands/issues/17271) | mapped | [F05.context-window-meter]CODE
LOW…openhands/references/backfills/2026-10-12-open-bugs.md193| [OpenHands/OpenHands#16851](https://github.com/OpenHands/OpenHands/issues/16851) | mapped | [F05.profile-identity](../CODE
LOW…enhands/references/backfills/2026-10-12-open-bugs.json1176 "backfill-18309-settings-rechecks/evidence/F10.edit/17806-dummy-key-preserved.png",CODE
LOW…enhands/references/backfills/2026-10-12-open-bugs.json1798 "reason": "A real persisted history page boundary splitting an action/observation or ACP started/completed pair; dCODE
LOW…enhands/references/backfills/2026-10-12-open-bugs.json2239 "reason": "A completed conversation with nonzero token usage before New Chat; a dummy-key run supplies no genuine CODE
LOW…enhands/references/backfills/2026-10-12-open-bugs.json3345 "reason": "The original conversation/model-switch history and usage record showing Opus with a Fable selector; a dCODE
LOW…/references/backfills/2026-10-12-open-bugs-checks.json636 "backfill-18309-settings-rechecks/evidence/F10.edit/17806-dummy-key-preserved.png"CODE
LOW…/references/backfills/2026-10-12-open-bugs-checks.json670 "backfill-18309-settings-rechecks/evidence/F10.edit/17806-dummy-key-preserved.png",CODE
LOW…/references/backfills/2026-10-12-open-bugs-checks.json673 "note": "Corrected Basic trial used owned default OpenAI loopback endpoints; one earlier rejected dummy-key providCODE
LOW__tests__/components/ui/dropdown.test.tsx343 expect(input).toHaveAttribute("placeholder", "Select an option");CODE
LOW__tests__/components/settings/settings-input.test.tsx56 "placeholder",CODE
LOW…ents/settings/llm-profiles/profile-name-input.test.tsx177 "placeholder",CODE
LOW…ents/settings/llm-profiles/profile-name-input.test.tsx192 "placeholder",CODE
LOW…tests__/components/backends/add-backend-modal.test.tsx58 data: { user_consents_to_analytics: true, email: "user@example.com" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx247 { id: "org-2", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx301 { id: "org-acme", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx351 { id: "org-acme", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx425 "placeholder",CODE
LOW__tests__/components/backends/backend-selector.test.tsx446 { id: "org-2", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx490 { id: "org-2", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx905 items: [{ id: "org-acme", name: "Acme Inc" }],CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx75 data: { user_consents_to_analytics: true, email: "user@example.com" },CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx555 { id: "org-acme", name: "Acme Inc" },CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx587 expect(await screen.findByText("Acme Inc")).toBeInTheDocument();CODE
LOW…sts__/components/manifest/manifest-form-field.test.tsx144 "placeholder",CODE
LOW…onents/features/home/workspace-selection-form.test.tsx348 "placeholder",CODE
LOW…_/components/features/home/provider-selection.test.tsx87 expect(input).toHaveAttribute("placeholder", "Select provider");CODE
LOW…_/components/features/home/provider-selection.test.tsx289 "placeholder",CODE
LOW…__/components/features/home/git-repo-dropdown.test.tsx171 "placeholder",CODE
LOW…__/components/features/home/git-repo-dropdown.test.tsx209 expect(input).toHaveAttribute("placeholder", "Choose a repository");CODE
LOW…onents/features/mcp-page/install-server-modal.test.tsx1442 "placeholder",CODE
LOW…s__/components/modals/settings/model-selector.test.tsx154 expect(providerInput.getAttribute("placeholder") ?? "").toBe("");CODE
LOW…s__/components/modals/settings/model-selector.test.tsx155 expect(modelInput.getAttribute("placeholder") ?? "").toBe("");CODE
LOW…components/automations/automation-setup-panel.test.tsx2643 "placeholder",CODE
LOW__tests__/hooks/use-tracking.test.ts46 data: { email: "user@example.com", user_consents_to_analytics: true },CODE
LOW__tests__/hooks/use-tracking.test.ts449 data: { email: "user@example.com", user_consents_to_analytics: false },CODE
25 more matches not shown…
Structural Annotation Overuse5 hits · 8 pts
SeverityFileLineSnippetContext
LOW.agents/skills/release.md33## Step 1: Find the Release PRCOMMENT
LOW.agents/skills/release.md47## Step 2: Review ItCOMMENT
LOW.agents/skills/release.md57## Step 3: Cut the ReleaseCOMMENT
LOW.agents/skills/release.md69## Step 4: Watch the PipelineCOMMENT
LOW.agents/skills/release.md81## Step 5: Verify the ReleaseCOMMENT
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtests/e2e/mock-llm/scripts/mock-llm-server.py478except KeyboardInterrupt:CODE
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMdocs/DefenseClaw.md3[DefenseClaw](https://github.com/cisco-ai-defense/defenseclaw) is a security governance layer for agentic AI runtimes — CODE
MEDIUM…exts/conversation-websocket-provider.behavior.test.tsx1347 // repo/branch/provider scaffold; optional fields it doesn't ownCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…s/evidence/2026-10-17/final/controller-live-proof.json37 "product_outcome": "Accepted parameter edits absent from actual create, separately filed as fork #127; harness projeCODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.github/scripts/check_pr_description.py24CODE
LOW.github/scripts/update_debian_snapshot.py4CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpublic/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOW.github/scripts/update_debian_snapshot.py35CODE