Repository Analysis

OpenHands/OpenHands

🙌 OpenHands: AI-Driven Development

4.3 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of OpenHands/OpenHands, a TypeScript project with 85,430 GitHub stars. SynthScan v2.0 examined 304,483 lines of code across 1927 source files, recording 922 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 4.3 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

4.3
Adjusted Score
4.3
Raw Score
100%
Time Factor
2026-08-28
Last Push
85.4K
Stars
TypeScript
Language
304.5K
Lines of Code
1.9K
Files
922
Pattern Hits
2026-08-29
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

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

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 0MEDIUM 222LOW 700

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 922 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators220 hits · 645 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.ts90// ── Skill test support ────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts107// ── Folder-workspace test support ──────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm-docker.config.ts118// ── ACP test support ──────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm.config.ts41// ── Session API key ────────────────────────────────────────────────────COMMENT
MEDIUMplaywright.mock-llm.config.ts47// ── State directory (isolated per test run) ────────────────────────────COMMENT
MEDIUMplaywright.mock-llm.config.ts55// ── URLs ───────────────────────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh2# ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMdocker/entrypoint.sh56# ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMdocker/entrypoint.sh290# ── 1. Start Agent Server ────────────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh307# ── 2. Start Automation Server ───────────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh352# ── 3. Wait for backends to be ready ─────────────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh373# ── 4. Start static server (frontend + proxy) ────────────────────────────────COMMENT
MEDIUMdocker/entrypoint.sh413# ── 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.ts231// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts233// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts370// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/mock-llm/settings/mock-llm-profile-management.spec.ts372// ═══════════════════════════════════════════════════════════════════════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.ts33// ── Paths ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts40// ── Port ranges (high ports unlikely to collide with other tests) ──────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts48// ── Helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts319// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts321// ═══════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts325// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts327// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts394 // ── 4. Open browser to the frontend-only instance ─────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts404 // ── 5. Add the backend-only instance via onboarding ───────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts412 // ── 6. Reload to pick up the new backend ──────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts419 // ── 7. Verify the app loads ───────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts353 // ── 1. Start backend-only instance ────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts364 // ── 2. Start frontend-only instance ───────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts375 // ── 3. Wait for both to become ready (in parallel) ────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts448// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts450// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts474 // ── 1. Spawn all three instances concurrently ─────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts502 // ── 2. Wait for all three to become ready ─────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts526 // ── 3. Verify both backends are independently reachable ───────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts538 // ── 4. Open browser to the frontend-only instance ─────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts548 // ── 5. Add Backend A through onboarding ──────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts562 // ── 6. Add Backend B via the dropdown menu ────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts599 // ── 7. Switch to Backend B via the dropdown ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts627 // ── 8. Verify the app works after switching ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts636 // ── 9. Verify both backends appear in the manage modal ────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts650// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts652// ───────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts677 // ── 1. Spawn both backends and the frontend ───────────────────────COMMENT
MEDIUM…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts733 // ── 2. Seed a conversation that exists ONLY on backend A ──────────COMMENT
160 more matches not shown…
Hyper-Verbose Identifiers560 hits · 538 pts
SeverityFileLineSnippetContext
LOWeslint.config.js56function createNoDirectAgentServerFetchRule() {CODE
LOW…s/e2e/mock-llm/backends/mock-llm-cross-connect.spec.ts159async function seedBackendAnalyticsConsent(backendUrl: string, apiKey: string) {CODE
LOWtests/e2e/mock-llm/backends/mock-llm-auth-modes.spec.ts209 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.ts599async function fillLlmProfileEditorAndSave(CODE
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts808export 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
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts91async function waitForCreatedAutomationId(CODE
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts520 function findRuntimeServicesContent(CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts64function createAllPaginationEvents(prefix: string): PaginationEvent[] {CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts228async function routePaginationConversation(page: Page) {CODE
LOW…e/mock-llm/regressions/mock-llm-ui-regressions.spec.ts338async 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.ts108export async function waitForOnboardingBackendConnected(page: Page) {CODE
LOWtests/e2e/support/onboarding-helpers.ts118export async function waitForOnboardingLlmSettingsReady(page: Page) {CODE
LOWtests/e2e/support/onboarding-helpers.ts129export async function clickOnboardingStepButton(page: Page, testId: string) {CODE
LOWtests/e2e/support/onboarding-helpers.ts175export 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.ts282export async function guardAgainstPostHogRequests(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts393export async function clickButtonByTestIdOrText(CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts458export async function waitForNonUserMessageText(page: Page, text: string) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts479export async function expandVisibleEventDetails(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts540export function getOptionalConversationIdFromURL(page: Page) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts567function isSuccessfulBashObservation(event: unknown) {CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts616export async function waitForSuccessfulBashObservation(CODE
LOWtests/e2e/live/utils/agent-server-conversation.ts680export async function waitForCriticResultDisplay(page: Page) {CODE
LOW__tests__/utils/automation-catalog.test.ts64function createInstalledAutomation(templateId?: string): Automation {CODE
LOW…settings/llm-profiles/llm-settings-local-view.test.tsx154function createMockLlmProfilesReturn(CODE
LOW…onents/features/mcp-page/custom-server-editor.test.tsx76function EditEditorOnceSettingsLoaded({ onClose }: { onClose: () => void }) {CODE
LOW…onents/features/mcp-page/custom-server-editor.test.tsx88function EditOAuthEditorOnceSettingsLoaded({CODE
LOW…ponents/features/skills/extensions-navigation.test.tsx25function renderExtensionsNavigation(ui: ReactNode) {CODE
LOW…omponents/automations/recommended-automations.test.tsx155function continueGithubResponderLocally() {CODE
LOW…ests__/components/onboarding/onboarding-modal.test.tsx136async function waitForConfiguredBackendToBeSkipped() {CODE
LOW…tests__/components/onboarding/onboarding-host.test.tsx63function seedUserAddedLocalBackend() {CODE
LOW__tests__/hooks/use-task-list.test.ts8function createTaskTrackerObservation(CODE
LOW__tests__/hooks/use-click-outside-element.test.tsx11function ClickOutsideTestComponent({CODE
LOW__tests__/hooks/query/use-active-conversation.test.ts53function renderAndCaptureIntervalFn(): IntervalFn {CODE
LOW…tests__/hooks/query/use-agent-settings-schema.test.tsx39function useSchemaWithBackendContext() {CODE
LOW__tests__/hooks/query/use-workspace-session.test.tsx56 const Wrapper = function WorkspaceSessionTestWrapper({CODE
LOW__tests__/hooks/query/use-workspace-files.test.tsx72 return function WorkspaceFilesTestWrapper({CODE
LOW…ests__/hooks/query/use-workspace-file-content.test.tsx57 const Wrapper = function WorkspaceFileContentTestWrapper({CODE
LOW__tests__/scripts/static-server.test.ts278 async function startServerWithRuntimeInfo(CODE
LOW__tests__/scripts/docker-vscode-route-sync.test.ts110function expectRouteMatchesAdvertised(resolved: ResolvedEditorConfig): void {CODE
LOW__tests__/manifests/manifest-test-data.ts141export function createInterfaceManifestWith(CODE
LOW__tests__/manifests/manifest-test-data.ts152export function createInterfaceManifestWithSubPages(): InterfaceManifest {CODE
LOW__tests__/routes/llm-settings.test.tsx101function createMockLlmProfilesReturn(CODE
LOW__tests__/routes/secrets-settings.test.tsx7function renderSecretsSettingsScreen() {CODE
LOW__tests__/routes/automations-dashboard.test.tsx107async function renderDashboardWithSettledInsights() {CODE
LOW__tests__/routes/skills-settings.test.tsx67function renderSkillsSettingsScreen(initialEntry = "/skills") {CODE
LOW__tests__/routes/verification-settings.test.tsx30function renderVerificationSettingsScreen() {CODE
LOW__tests__/routes/agent-context-settings.test.tsx24function renderAgentContextSettingsScreen() {CODE
500 more matches not shown…
Over-Commented Block91 hits · 91 pts
SeverityFileLineSnippetContext
LOWplaywright.mock-llm-docker.config.ts181 {COMMENT
LOWplaywright.config.ts61 // use: { ...devices['Pixel 5'] },COMMENT
LOWeslint.config.js1// Flat ESLint config (ESLint 9+).COMMENT
LOWeslint.config.js201 // Project conventions previously enforced via airbnb / custom rules.COMMENT
LOWeslint.config.js261 message:COMMENT
LOWeslint.config.js321 "import-x/prefer-default-export": "off",COMMENT
LOWvite.config.ts61 test: /node_modules[\\/](@heroui[\\/]|tailwind-variants[\\/]|tailwind-merge[\\/]|clsx[\\/])/,COMMENT
LOWvite.config.ts441 },COMMENT
LOWplaywright.mock-llm.config.ts141 "VITE_ENABLE_BROWSER_TOOLS=false",COMMENT
LOWvitest.setup.ts61}COMMENT
LOWtools/canvas_ui_tool.py141COMMENT
LOWdocker/entrypoint.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/entrypoint.sh21# not EXPOSE it and the editor is reached throughCOMMENT
LOWdocker/entrypoint.sh41# agent-server (default: http://127.0.0.1:AGENT_SERVER_PORT).COMMENT
LOWdocker/entrypoint.sh61COMMENT
LOWdocker/entrypoint.sh81# set and which this entrypoint passes through like any other OH_* var, whileCOMMENT
LOWdocker/entrypoint.sh261# AUTOMATION_AGENT_SERVER_URL — the URL the automation service uses to reachCOMMENT
LOWdocker/entrypoint.sh421# what tells the frontend this origin can. Omitting only the route would leaveCOMMENT
LOWdocker/entrypoint.sh461COMMENT
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…/mock-llm/settings/mock-llm-profile-management.spec.ts401 await page.close();COMMENT
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/backends/mock-llm-auth-modes.spec.ts321 test("re-prompts when the server rotates its key (stale localStorage)", async ({COMMENT
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts481 try {COMMENT
LOWtests/e2e/mock-llm/utils/mock-llm-helpers.ts721 // row to render in the list, so wait for the row explicitly before actingCOMMENT
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.ts301 }) => {COMMENT
LOW…s/e2e/mock-llm/automations/mock-llm-automation.spec.ts361 //COMMENT
LOW__tests__/root.test.tsx621COMMENT
LOW__tests__/components/chat-message.test.tsx1import { render, screen, waitFor, fireEvent } from "@testing-library/react";COMMENT
LOW…omponents/features/markdown/markdown-renderer.test.tsx81 }COMMENT
LOW…ests__/components/onboarding/onboarding-modal.test.tsx381 // Cloud login must dismiss the modal (not advance to Choose Agent).COMMENT
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
LOW__tests__/routes/agent-settings.test.tsx761 // Regression guard for the data-corruption bug:COMMENT
LOW__tests__/routes/agent-settings.test.tsx821COMMENT
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/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
LOW.github/workflows/issue-readiness-check.yml1---COMMENT
LOW.github/workflows/mock-llm-docker-e2e.yml1name: Mock-LLM Docker E2E TestsCOMMENT
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
LOWhelm/agent-canvas/values.yaml221 failureThreshold: 60COMMENT
LOWsrc/root.tsx221 },COMMENT
31 more matches not shown…
Fake / Example Data41 hits · 35 pts
SeverityFileLineSnippetContext
LOWeslint.config.js221 "placeholder",CODE
LOWtests/e2e/mock-llm/utils/skill-test-helpers.ts102 execSync('git config user.email "test@test.com"', opts);CODE
LOW__tests__/components/ui/dropdown.test.tsx291 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.tsx53 data: { user_consents_to_analytics: true, email: "user@example.com" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx200 { id: "org-2", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx247 { id: "org-acme", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx299 { id: "org-acme", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx351 { id: "org-2", name: "Acme Inc" },CODE
LOW__tests__/components/backends/backend-selector.test.tsx395 { id: "org-2", name: "Acme Inc" },CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx71 data: { user_consents_to_analytics: true, email: "user@example.com" },CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx398 { id: "org-acme", name: "Acme Inc" },CODE
LOW…s__/components/backends/manage-backends-modal.test.tsx430 expect(await screen.findByText("Acme Inc")).toBeInTheDocument();CODE
LOW…onents/features/home/workspace-selection-form.test.tsx341 "placeholder",CODE
LOW…onents/features/mcp-page/install-server-modal.test.tsx901 "placeholder",CODE
LOW…s__/components/modals/settings/model-selector.test.tsx146 expect(providerInput.getAttribute("placeholder") ?? "").toBe("");CODE
LOW…s__/components/modals/settings/model-selector.test.tsx147 expect(modelInput.getAttribute("placeholder") ?? "").toBe("");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.ts448 data: { email: "user@example.com", user_consents_to_analytics: false },CODE
LOW__tests__/hooks/use-tracking.test.ts461 data: { email: "user@example.com", user_consents_to_analytics: null },CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts53 data: { email: "user@example.com", git_user_email: "git@example.com" },CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts65 email: "user@example.com",CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts69 email: "user@example.com",CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts136 email: "user@example.com",CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts140 email: "user@example.com",CODE
LOW__tests__/hooks/use-telemetry-identity.test.ts155 email: "user@example.com",CODE
LOW…_/hooks/mutation/use-new-conversation-command.test.tsx45 data: { email: "user@example.com", user_consents_to_analytics: true },CODE
LOW…tests__/hooks/query/use-cloud-current-user-id.test.tsx59 { id: "org-2", name: "Acme Inc" },CODE
LOW.github/scripts/tests/test_pr_description.py114 errors = validate_linked_issue_ready("Fixes #123\n", "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py119 errors = validate_linked_issue_ready("Fixes #123\n", "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py128 errors = validate_linked_issue_ready("Fixes #123 and Closes #456\n", "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py133 errors = validate_linked_issue_ready("Fixes #999\n", "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py166 errors = validate_linked_issue_ready(body, "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py172 errors = validate_linked_issue_ready(body, "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py178 errors = validate_linked_issue_ready(body, "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py184 errors = validate_linked_issue_ready(body, "owner/repo", "fake-token")STRING
LOW.github/scripts/tests/test_pr_description.py190 errors = validate_linked_issue_ready(body, "owner/repo", "fake-token")STRING
LOW…res/automations/git-sync/git-sync-config-form.test.tsx87 "placeholder",CODE
LOW…res/automations/git-sync/git-sync-config-form.test.tsx99 "placeholder",CODE
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.md56## Step 3: Cut the ReleaseCOMMENT
LOW.agents/skills/release.md68## Step 4: Watch the PipelineCOMMENT
LOW.agents/skills/release.md80## Step 5: Verify the ReleaseCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMvitest.setup.ts73// The robust fix is to drain those pending async response callbacks inCOMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdocs/DefenseClaw.md3[DefenseClaw](https://github.com/cisco-ai-defense/defenseclaw) is a security governance layer for agentic AI runtimes — CODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.github/scripts/check_pr_description.py26CODE
LOW.github/scripts/check_issue_readiness.py27CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpublic/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE