Repository Analysis

OpenHands/OpenHands

🙌 OpenHands: AI-Driven Development

23.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of OpenHands/OpenHands, a Python project with 80,698 GitHub stars. SynthScan v2.0 examined 396,267 lines of code across 2195 source files, recording 7202 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 23.2 places this repository in the Moderate AI signal band.

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

23.2
Adjusted Score
23.2
Raw Score
100%
Time Factor
2026-07-14
Last Push
80.7K
Stars
Python
Language
396.3K
Lines of Code
2.2K
Files
7.2K
Pattern Hits
2026-07-14
Scan Date
0.07
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 153MEDIUM 636LOW 6413

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 7202 distinct pattern matches across 22 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.

Hyper-Verbose Identifiers4855 hits · 4433 pts
SeverityFileLineSnippetContext
LOW…tend/__tests__/conversation-websocket-handler.test.tsx92function renderWithWebSocketContext(CODE
LOW…__/components/features/user/user-context-menu.test.tsx38function UserContextMenuWithRootOutlet({CODE
LOW…end/__tests__/hooks/use-click-outside-element.test.tsx10function ClickOutsideTestComponent({CODE
LOWfrontend/__tests__/routes/llm-settings.test.tsx49function resetProfilesServiceDefaults() {CODE
LOWfrontend/__tests__/routes/llm-settings.test.tsx67function resetOrgProfilesServiceDefaults() {CODE
LOWfrontend/__tests__/routes/llm-settings.test.tsx188function buildSettingsWithAdvancedToggle(CODE
LOWfrontend/__tests__/routes/billing.test.tsx350 function renderWithForcedReRenders(CODE
LOW…ontend/__tests__/routes/verification-settings.test.tsx43function renderVerificationSettingsScreen() {CODE
LOWfrontend/__tests__/routes/task-list-tab.test.tsx20function createTaskTrackingObservation(CODE
LOW…/__tests__/routes/manage-organization-members.test.tsx56function ManageOrganizationMembersWithPortalRoot() {CODE
LOW…ontend/__tests__/helpers/websocket-test-components.tsx12export function ConnectionStatusComponent() {CODE
LOW…ontend/__tests__/helpers/websocket-test-components.tsx45export function OptimisticUserMessageStoreComponent() {CODE
LOW…ontend/__tests__/helpers/websocket-test-components.tsx59export function ErrorMessageStoreComponent() {CODE
LOW…ontend/src/contexts/conversation-websocket-context.tsx80export function ConversationWebSocketProvider({CODE
LOW…nd/src/context/conversation-subscriptions-provider.tsx73export function ConversationSubscriptionsProvider({CODE
LOW…nd/src/context/conversation-subscriptions-provider.tsx322export function useConversationSubscriptions() {CODE
LOWfrontend/src/constants/acp-provider-secrets.ts103export function getAcpCredentialConflicts(CODE
LOWfrontend/src/utils/download-trajectory.ts3function isSaveFilePickerSupported(): boolean {CODE
LOWfrontend/src/utils/sdk-settings-field-metadata.ts65export function getSettingsFieldConstraints(fieldKey: string) {CODE
LOWfrontend/src/utils/sdk-settings-field-metadata.ts125export function resolveSchemaFieldDescription(CODE
LOWfrontend/src/utils/sdk-settings-field-metadata.ts137export function resolveSchemaFieldSectionLabel(CODE
LOWfrontend/src/utils/mcp-config.ts61function apiKeyFromAuthorizationHeader(value: unknown): string | undefined {CODE
LOWfrontend/src/utils/error-handler.ts45export function isBudgetOrCreditError(errorMessage: string): boolean {CODE
LOWfrontend/src/utils/file-validation.ts13export function validateIndividualFileSizes(CODE
LOWfrontend/src/utils/sdk-settings-schema.ts90export function getConversationSettingValue(CODE
LOWfrontend/src/utils/sdk-settings-schema.ts219export function buildInitialSettingsFormValues(CODE
LOWfrontend/src/utils/sdk-settings-schema.ts284export function hasAdvancedSettingsOverrides(settings: Settings): boolean {CODE
LOWfrontend/src/utils/sdk-settings-schema.ts409export function buildSdkSettingsPayloadForView(CODE
LOWfrontend/src/utils/sdk-settings-schema.ts431export function getVisibleSettingsSections(CODE
LOWfrontend/src/utils/conversation-local-storage.ts128export function clearConversationLocalStorage(conversationId: string) {CODE
LOWfrontend/src/utils/conversation-local-storage.ts153export function useConversationLocalStorageState(conversationId: string): {CODE
LOWfrontend/src/utils/derive-profile-name.ts19export function deriveProfileNameFromModel(model: string): string | null {CODE
LOWfrontend/src/utils/org/permission-guard.ts26async function getPermissionDeniedFallback(): Promise<string> {CODE
LOW…at/task-tracking/task-tracking-observation-content.tsx10export function TaskTrackingObservationContent({CODE
LOW…rc/components/v1/chat/hooks/use-plan-preview-events.ts50function findLastPlanningObservationInPhase(CODE
LOW…ents/v1/chat/subagent/subagent-observation-content.tsx34export function SubagentObservationContent({CODE
LOW…hat/event-message-components/critic-result-display.tsx39function getIterativeRefinementEnabled(CODE
LOW…-message-components/observation-pair-event-message.tsx10export function ObservationPairEventMessage({CODE
LOW…t-message-components/generic-event-message-wrapper.tsx23export function GenericEventMessageWrapper({CODE
LOW…nt-message-components/user-assistant-event-message.tsx15export function UserAssistantEventMessage({CODE
LOW…nts/features/settings/upgrade-banner-with-backdrop.tsx9export function UpgradeBannerWithBackdrop({CODE
LOW…/project-management/project-management-integration.tsx8export function ProjectManagementIntegration() {CODE
LOW…settings/llm-settings/llm-settings-inputs-skeleton.tsx5export function LlmSettingsInputsSkeleton() {CODE
LOW…settings/app-settings/app-settings-inputs-skeleton.tsx4export function AppSettingsInputsSkeleton() {CODE
LOW…settings/git-settings/azure-devops-webhook-manager.tsx50export function AzureDevOpsWebhookManager({CODE
LOW…ttings/git-settings/azure-devops-token-help-anchor.tsx4export function AzureDevOpsTokenHelpAnchor() {CODE
LOW…ttings/git-settings/bitbucket-dc-token-help-anchor.tsx4export function BitbucketDCTokenHelpAnchor() {CODE
LOW…ettings/git-settings/configure-azure-devops-anchor.tsx7export function ConfigureAzureDevOpsAnchor() {CODE
LOW…/git-settings/configure-github-repositories-anchor.tsx9export function ConfigureGitHubRepositoriesAnchor({CODE
LOW…settings/git-settings/bitbucket-dc-webhook-manager.tsx38export function BitbucketDCWebhookManager({CODE
LOW…settings/git-settings/gitlab-webhook-manager-state.tsx13export function GitLabWebhookManagerState({CODE
LOW…recent-conversations/recent-conversations-skeleton.tsx29function RecentConversationSkeleton({CODE
LOW…recent-conversations/recent-conversations-skeleton.tsx44export function RecentConversationsSkeleton() {CODE
LOW…recent-conversations/conversation-status-indicator.tsx12export function ConversationStatusIndicator({CODE
LOW…ents/features/chat/git-control-bar-tooltip-wrapper.tsx10export function GitControlBarTooltipWrapper({CODE
LOW…ts/features/chat/task-tracking-observation-content.tsx8export function TaskTrackingObservationContent({CODE
LOW…onents/features/chat/git-control-bar-branch-button.tsx15export function GitControlBarBranchButton({CODE
LOW…-message-components/observation-pair-event-message.tsx14export function ObservationPairEventMessage({CODE
LOW…t-message-components/generic-event-message-wrapper.tsx20export function GenericEventMessageWrapper({CODE
LOW…nt-message-components/user-assistant-event-message.tsx14export function UserAssistantEventMessage({CODE
4795 more matches not shown…
Decorative Section Separators384 hits · 1486 pts
SeverityFileLineSnippetContext
MEDIUMfrontend/__tests__/routes/llm-settings.test.tsx2457 // ── Auto-profile flow ───────────────────────────────────────────────COMMENT
MEDIUMfrontend/__tests__/routes/llm-settings.test.tsx2739 // ── Add Profile (create flow) ───────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx99 // ── Sub-agents (OpenHands mode) ──────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx120 // ── Parallel tool calls (OpenHands mode) ─────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx140 // ── ACP (ACP mode) ───────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx179 // ── Derived state ─────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx201 // ── Credential form ───────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx218 // ── Save ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx285 // ── Loading ───────────────────────────────────────────────────────────────COMMENT
MEDIUMfrontend/src/routes/agent-settings.tsx290 // ── Render ────────────────────────────────────────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_billing.py652# ---------------------------------------------------------------------------COMMENT
MEDIUMenterprise/tests/unit/test_billing.py654# ---------------------------------------------------------------------------COMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py379# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py381# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py1217# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py1219# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py64# ── Container model ────────────────────────────────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py166# ── Router integration (real Org row over SQLite) ──────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py506# ── FK guard wired into the LLM-profile router ─────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py586# ── SaasSettingsStore resolution + provenance ──────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py783# ── Persisted vs resolved settings views ────────────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_agent_profiles.py1008# ── Best-effort load must not amplify into data loss ────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_org_store.py1387# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_org_store.py1389# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py91# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py93# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py129# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py131# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py232# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py234# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py280# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py282# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py370# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py372# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py873# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py875# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1011# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1013# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1211# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1213# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1442# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py1444# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py27# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py29# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py481# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_authorization.py483# =============================================================================COMMENT
MEDIUMenterprise/tests/unit/test_org_profiles.py180# ── Integration tests ──────────────────────────────────────────────────────COMMENT
MEDIUMenterprise/tests/unit/test_auth_routes.py2501# ---------------------------------------------------------------------------COMMENT
MEDIUMenterprise/tests/unit/test_auth_routes.py2503# ---------------------------------------------------------------------------COMMENT
MEDIUMenterprise/tests/unit/test_auth_routes.py2592# ---------------------------------------------------------------------------COMMENT
MEDIUMenterprise/tests/unit/test_auth_routes.py2594# ---------------------------------------------------------------------------COMMENT
MEDIUM…erprise/tests/unit/test_email_validation_dependency.py275# ---------------------------------------------------------------------------COMMENT
MEDIUM…erprise/tests/unit/test_email_validation_dependency.py277# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py45# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py47# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py64# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py66# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py214# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py216# ---------------------------------------------------------------------------COMMENT
MEDIUM…tests/unit/test_sharing/test_shared_event_filtering.py239# ---------------------------------------------------------------------------COMMENT
324 more matches not shown…
Self-Referential Comments211 hits · 712 pts
SeverityFileLineSnippetContext
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py47 # Create a stale task (working for more than 1 hour)COMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py57 # Create a non-stale task (working for less than 1 hour)COMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py267 # Create a mock processor that raises an exceptionCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py271 # Create a taskCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py380 # Create a mock processorCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py384 # Create a task with delayCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py87 # Create a pending task (older)COMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py168 # Create a pending taskCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py179 # Create a patched version of next_task with the bug fixedCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py210 # Create a mock processorCOMMENT
MEDIUMenterprise/tests/unit/test_run_maintenance_tasks.py426 # Create a stale task and a pending taskCOMMENT
MEDIUMenterprise/tests/unit/test_stripe_service_db.py80 # Create a mock org object to return from OrgStoreCOMMENT
MEDIUMenterprise/tests/unit/test_stripe_service_db.py120 # Create a mock org object to return from OrgStoreCOMMENT
MEDIUMenterprise/tests/unit/test_stripe_service_db.py164 # Create a mock org object to return from OrgStoreCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py771 # Create a JWT access tokenCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py780 # Create a signed token containing the access and refresh tokensCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py144 # Create a valid JWT token that expires in the futureCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py725 # Create a signed tokenCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py805 # Create a mock request with Authorization headerCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py818 # Create a mock request with X-Session-API-Key headerCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py831 # Create a mock request with both headersCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py847 # Create a mock request with no relevant headers or cookiesCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py861 # Create a mock request with incorrectly formatted Authorization headerCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py875 # Create a mock request with X-Access-Token headerCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py888 # Create a mock request with both headersCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py904 # Create a mock request with both headersCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py920 # Create a mock request with all three headersCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py937 # Create a mock request with invalid Authorization header and X-Access-TokenCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py953 # Create a mock request with empty header valuesCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py970 # Create a mock request with Bearer header with empty tokenCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py987 # Create a mock request with the api_key cookie setCOMMENT
MEDIUMenterprise/tests/unit/test_saas_user_auth.py222 # Create a valid JWT tokenSTRING
MEDIUMenterprise/tests/unit/test_gitlab_resolver.py34 # Create a mock request with a payload containing object_attributes.idCOMMENT
MEDIUMenterprise/tests/unit/test_gitlab_resolver.py109 # Create a mock request with a payload without object_attributes.idCOMMENT
MEDIUMenterprise/tests/unit/test_gitlab_resolver.py256 # Create a payload with object_attributes.idCOMMENT
MEDIUMenterprise/tests/unit/test_saas_secrets_store.py58 # Create a Secrets object with some test dataCOMMENT
MEDIUMenterprise/tests/unit/test_saas_secrets_store.py97 # Create a Secrets object with sensitive dataCOMMENT
MEDIUMenterprise/tests/unit/test_org_store.py53 # Create a test orgCOMMENT
MEDIUMenterprise/tests/unit/test_org_store.py126 # Create a test orgCOMMENT
MEDIUMenterprise/tests/unit/test_org_store.py338 # Create a test orgCOMMENT
MEDIUMenterprise/tests/unit/test_org_store.py1339 # Create a second org for the user's current_org_idCOMMENT
MEDIUMenterprise/tests/unit/test_auth_middleware.py464 # Create a fresh mock request for each testCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py21 # Create a mock requestCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py26 # Create a mock stripe sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py30 # Create a mock for stripe.checkout.Session.create_asyncCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py33 # Create a mock for the CreateBillingSessionResponse classCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py38 # Create a mock implementation of create_customer_setup_sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py46 # Create the sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py75 # Create a mock requestCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py80 # Create a mock stripe sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py85 # Create a mock for stripe.checkout.Session.create_asyncCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py88 # Create a mock for the CreateBillingSessionResponse classCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py93 # Create a mock for the CreateCheckoutSessionRequest classCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py98 # Create a mock implementation of create_checkout_sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py106 # Create the sessionCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py161 # Create a mock requestCOMMENT
MEDIUM…terprise/tests/unit/test_billing_stripe_integration.py168 # Create a mock implementation of has_payment_method routeCOMMENT
MEDIUMenterprise/tests/unit/mock_stripe_service.py58 # Create the customer in stripeCOMMENT
MEDIUMenterprise/tests/unit/test_models.py31 # Create a test orgCOMMENT
MEDIUMenterprise/tests/unit/test_models.py36 # Create a test userCOMMENT
151 more matches not shown…
Excessive Try-Catch Wrapping526 hits · 510 pts
SeverityFileLineSnippetContext
LOWenterprise/run_maintenance_tasks.py19 except Exception as e:CODE
LOWenterprise/run_maintenance_tasks.py52 except Exception as e:CODE
MEDIUMenterprise/run_maintenance_tasks.py15def main():CODE
LOWenterprise/enterprise_local/convert_to_env.py50 except Exception as decode_error:CODE
MEDIUMenterprise/enterprise_local/convert_to_env.py51 print(f"Error decoding base64 for '{param}': {decode_error}")CODE
LOWenterprise/enterprise_local/convert_to_env.py71 except Exception as e:CODE
MEDIUMenterprise/enterprise_local/convert_to_env.py72 print(f'Error: {e}')CODE
LOW…/tests/unit/test_maintenance_task_runner_standalone.py113 except Exception:CODE
LOW…/tests/unit/test_maintenance_task_runner_standalone.py162 except Exception:CODE
LOW…/tests/unit/test_maintenance_task_runner_standalone.py297 except Exception as e:CODE
LOW…/tests/unit/test_maintenance_task_runner_standalone.py365 except Exception as e:CODE
LOW…/tests/unit/test_maintenance_task_runner_standalone.py622 except Exception as e:CODE
LOW…unit/test_user_version_upgrade_processor_standalone.py170 except Exception as e:CODE
LOWenterprise/server/rate_limit.py67 except Exception:CODE
LOWenterprise/server/rate_limit.py73 except Exception:CODE
LOWenterprise/server/middleware.py93 except Exception as logout_error:CODE
LOWenterprise/server/middleware.py140 except Exception as e:CODE
LOWenterprise/server/middleware.py222 except Exception:CODE
LOWenterprise/server/auth/token_manager.py132 except Exception:CODE
LOWenterprise/server/auth/token_manager.py678 except Exception as e:CODE
LOWenterprise/server/auth/token_manager.py781 except Exception as e:CODE
LOWenterprise/server/auth/token_manager.py820 except Exception as e:CODE
LOWenterprise/server/auth/token_manager.py969 except Exception as e:CODE
LOWenterprise/server/auth/token_manager.py1114 except Exception:CODE
LOWenterprise/server/auth/saas_user_auth.py518 except Exception as e:CODE
LOWenterprise/server/auth/saas_user_auth.py567 except Exception as e:CODE
LOWenterprise/server/auth/saas_user_auth.py585 except Exception as e:CODE
LOWenterprise/server/auth/saas_user_auth.py716 except Exception as e:CODE
LOWenterprise/server/auth/saas_user_auth.py805 except Exception as exc:CODE
LOWenterprise/server/auth/saas_user_auth.py815 except Exception as exc:CODE
LOWenterprise/server/auth/gitlab_sync.py68 except Exception:CODE
MEDIUMenterprise/server/auth/gitlab_sync.py46def _run():CODE
LOWenterprise/server/auth/sheets_client.py26 except Exception:CODE
LOWenterprise/server/auth/sheets_client.py107 except Exception:CODE
LOWenterprise/server/auth/user/user_authorizer.py43 except Exception as ex:CODE
LOWenterprise/server/auth/user/default_user_authorizer.py82 except Exception:CODE
LOWenterprise/server/utils/rate_limit_utils.py120 except Exception as e:CODE
LOW…e/server/verified_models/litellm_proxy_model_router.py250 except Exception:CODE
LOW…prise/server/app_lifespan/saas_app_lifespan_service.py43 except Exception:CODE
LOW…prise/server/app_lifespan/saas_app_lifespan_service.py54 except Exception:CODE
MEDIUM…prise/server/app_lifespan/saas_app_lifespan_service.py38def __aexit__(self, exc_type, exc_value, traceback):CODE
LOWenterprise/server/routes/auth.py152 except Exception:CODE
LOWenterprise/server/routes/auth.py177 except Exception:CODE
LOWenterprise/server/routes/auth.py216 except Exception:CODE
LOWenterprise/server/routes/auth.py247 except Exception:CODE
LOWenterprise/server/routes/auth.py319 except Exception as e:CODE
LOWenterprise/server/routes/auth.py396 except Exception as e:CODE
LOWenterprise/server/routes/auth.py574 except Exception as e:CODE
LOWenterprise/server/routes/auth.py594 except Exception as e:CODE
LOWenterprise/server/routes/auth.py605 except Exception as e:CODE
LOWenterprise/server/routes/auth.py710 except Exception:CODE
LOWenterprise/server/routes/auth.py959 except Exception:CODE
LOWenterprise/server/routes/auth.py1097 except Exception:CODE
LOWenterprise/server/routes/auth.py1143 except Exception as e:CODE
LOWenterprise/server/routes/service.py182 except Exception as e:CODE
LOWenterprise/server/routes/analytics_events.py104 except Exception:CODE
LOWenterprise/server/routes/oauth_device.py117 except Exception as e:CODE
LOWenterprise/server/routes/oauth_device.py233 except Exception as e:CODE
LOWenterprise/server/routes/oauth_device.py299 except Exception as e:CODE
LOWenterprise/server/routes/oauth_device.py312 except Exception as cleanup_error:CODE
466 more matches not shown…
Docstring Block Structure77 hits · 385 pts
SeverityFileLineSnippetContext
HIGHenterprise/server/email_validation.py15 Dependency that validates user has @openhands.dev email domain. This dependency can be used in place of get_usSTRING
HIGHenterprise/server/email_validation.py75 Dependency that authorizes a user to create an organization. Behavior is gated by the ``OPEN_ORG_CREATION_ENABSTRING
HIGHenterprise/server/auth/token_manager.py154Get user info from Keycloak userinfo endpoint. Args: access_token: A valid Keycloak access token STRING
HIGHenterprise/server/auth/token_manager.py742Check if a user with the same base email already exists. This method checks for duplicate signups using email +STRING
HIGHenterprise/server/auth/token_manager.py835Create a new Keycloak user in the configured realm. Used by the provisioning endpoint to seed accounts on behalSTRING
HIGHenterprise/server/auth/token_manager.py883Exchange password credentials for an offline refresh token. Uses the Resource Owner Password Credentials (ROPC)STRING
HIGHenterprise/server/auth/email_validation.py7Extract base email from an email address. For emails with + modifier, extracts the base email (local part before + STRING
HIGHenterprise/server/auth/authorization.py553 Authorization dependency for accessing organization financial data. Allows access if ANY of these conditions aSTRING
HIGH…terprise/server/utils/saas_pending_message_injector.py123Queue a message with ownership validation. Args: conversation_id: The conversation ID to queue the STRING
HIGH…terprise/server/utils/saas_pending_message_injector.py140Get pending messages with ownership validation. Args: conversation_id: The conversation ID to get mSTRING
HIGH…terprise/server/utils/saas_pending_message_injector.py155Count pending messages with ownership validation. Args: conversation_id: The conversation ID to couSTRING
HIGH…se/server/utils/saas_app_conversation_info_injector.py52Apply user_id and org_id filters to ensure conversation isolation. Filters conversations by: - user_id:STRING
HIGHenterprise/server/routes/service.py60 Validate the service API key from the request header. Args: x_service_api_key: The service API key froSTRING
HIGHenterprise/server/routes/service.py118 Get or create an API key for a user on behalf of the automations service. If a key with the given name alreadySTRING
HIGHenterprise/server/routes/service.py221 Delete a system API key created by the service. This endpoint allows the automations service to clean up API kSTRING
HIGHenterprise/server/routes/user_app_settings.py32Get the current user's app settings. Returns language, analytics consent, sound notifications, and git config. STRING
HIGHenterprise/server/routes/user_app_settings.py77Update the current user's app settings (partial update). Only provided fields will be updated. Pass null to clear aSTRING
HIGHenterprise/server/routes/orgs.py115List organizations for the authenticated user. This endpoint returns a paginated list of all organizations that theSTRING
HIGHenterprise/server/routes/orgs.py190Create a new organization. This endpoint allows authenticated users that hold the ``CREATE_ORGANIZATION`` permiSTRING
HIGHenterprise/server/routes/orgs.py438Get organization app settings for the user's current organization. This endpoint retrieves application settings forSTRING
HIGHenterprise/server/routes/orgs.py483Update organization app settings for the user's current organization. Base access requires MANAGE_APPLICATION_SETTISTRING
HIGHenterprise/server/routes/orgs.py591Get the current user's membership record for an organization. Returns the authenticated user's role, status, email,STRING
HIGHenterprise/server/routes/orgs.py653Delete an organization. This endpoint permanently deletes an organization and all associated data including orgSTRING
HIGHenterprise/server/routes/orgs.py766Update an existing organization. This endpoint updates organization settings. Access requires the EDIT_ORG_SETTINGSSTRING
HIGHenterprise/server/routes/orgs.py872Get all members of an organization with pagination and optional email filter. This endpoint retrieves a paginated lSTRING
HIGHenterprise/server/routes/orgs.py965Get count of organization members with optional email filter. This endpoint returns the total count of organizationSTRING
HIGHenterprise/server/routes/orgs.py1041Get paginated financial data for organization members. Returns financial information (lifetime spend, current budgeSTRING
HIGHenterprise/server/routes/orgs.py1345Switch to a different organization. This endpoint allows authenticated users to switch their current active orgSTRING
HIGHenterprise/server/routes/orgs.py1567Claim a Git organization for an OpenHands organization. Only admin and owner roles can claim Git organizations. STRING
HIGHenterprise/server/routes/orgs.py1655Remove a Git organization claim from an OpenHands organization. Only admin and owner roles can disconnect Git organSTRING
HIGHenterprise/server/routes/orgs.py1773List all conversations for an organization. This endpoint returns a paginated list of all conversations within an oSTRING
HIGHenterprise/server/routes/org_invitations.py64Create organization invitations for multiple email addresses. Sends emails to invitees with secure links to join thSTRING
HIGHenterprise/server/routes/org_invitations.py298Accept an organization invitation via authenticated POST request. This endpoint is called by the frontend after disSTRING
HIGHenterprise/server/routes/integration/jira.py131 Verify Jira webhook signature. Args: body: Raw request body bytes signature: Signature from x-STRING
HIGH…rprise/server/services/org_member_financial_service.py26Get paginated financial data for organization members. Fetches member list from database and joins with financiSTRING
HIGHenterprise/server/services/org_app_settings_service.py89Update organization app settings. Only updates fields that are explicitly provided in update_data. UserSTRING
HIGHenterprise/server/services/org_member_service.py32Get the current user's membership record for an organization. Retrieves the authenticated user's role, status, STRING
HIGHenterprise/server/services/org_member_service.py146Get count of organization members with authorization check. Args: org_id: Organization UUID. STRING
HIGHenterprise/server/services/org_member_service.py257Update a member's role in an organization. Permission rules: - Owners can modify anyone (including otheSTRING
HIGHenterprise/server/services/org_invitation_service.py38Create a new organization invitation. This method: 1. Validates the organization exists 2. ValiSTRING
HIGHenterprise/server/services/org_invitation_service.py166Create multiple organization invitations concurrently. Validates permissions once upfront, then creates invitatSTRING
HIGHenterprise/server/services/org_invitation_service.py358Accept an organization invitation. This method: 1. Validates the token and invitation status 2.STRING
HIGHenterprise/server/services/user_app_settings_service.py64Update user app settings. Only updates fields that are explicitly provided in update_data. User ID is oSTRING
HIGHenterprise/storage/org_app_settings_store.py100Update organization app settings. Only updates fields that are explicitly provided in update_data. UsesSTRING
HIGHenterprise/storage/auth_token_store.py109Load authentication tokens from the database and refresh them if necessary. This method uses a double-checked lSTRING
HIGHenterprise/storage/device_code_store.py34Create a new device code entry. Uses database constraints to ensure uniqueness, avoiding TOCTOU race conditionsSTRING
HIGHenterprise/storage/org_service.py59 Create LiteLLM team integration for the organization. Args: org_id: Organization ID STRING
HIGHenterprise/storage/org_service.py200 Create a new organization, optionally with the specified user as owner. This method orchestrates the cSTRING
HIGHenterprise/storage/org_service.py311 Persist organization with compensation on failure. If database persistence fails, cleans up LiteLLM reSTRING
HIGHenterprise/storage/org_service.py497 Update organization with permission checks for LLM settings. Args: org_id: Organization UUSTRING
HIGHenterprise/storage/org_service.py698 Get organization by ID with membership validation. This method verifies that the user is a member of tSTRING
HIGHenterprise/storage/org_service.py785 Delete organization with complete cleanup of all associated data. This method performs the complete orSTRING
HIGHenterprise/storage/org_service.py881 Switch user's current organization to the specified organization. This method: 1. Validates thSTRING
HIGHenterprise/storage/org_store.py500Persist organization and optional owner membership in a single transaction. Args: org: OrganizationSTRING
HIGHenterprise/storage/org_store.py524Delete organization and all associated data in cascade, including external LiteLLM cleanup. Users that belong tSTRING
HIGHenterprise/storage/resend_synced_user_store.py59Mark a user as synced to a specific audience. Uses upsert to handle race conditions - if the user is already STRING
HIGHenterprise/integrations/jira/jira_view.py468Create a Jira view with repository already selected. This factory method: 1. Creates the view with paylSTRING
HIGHenterprise/integrations/github/github_service.py122 Get the new GitHub GraphQL node ID for a repository using REST API. Args: repo_id: NumericSTRING
HIGHenterprise/integrations/slack/slack_manager.py157Retrieve stored user message from Redis. Args: message_ts: The message timestamp threadSTRING
HIGHenterprise/sync/resend_keycloak.py172Get contacts from Resend. Args: audience_id: The Resend audience ID. Returns: A dictionary mapSTRING
17 more matches not shown…
Cross-File Repetition56 hits · 280 pts
SeverityFileLineSnippetContext
HIGHenterprise/tests/unit/conftest.py0create an async session maker bound to the async engine.STRING
HIGH…tests/unit/server/auth/test_saas_user_auth_org_info.py0create an async session maker bound to the async engine.STRING
HIGHenterprise/tests/unit/storage/test_auth_token_store.py0create an async session maker bound to the async engine.STRING
HIGH…se/tests/unit/storage/test_user_authorization_store.py0create an async session maker bound to the async engine.STRING
HIGH…storage/test_saas_sql_app_conversation_info_service.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGH…/app_server/test_webhook_router_parent_conversation.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGH…t/app_server/test_sql_app_conversation_info_service.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGHtests/unit/app_server/test_webhook_router_stats.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGHtests/unit/app_server/test_webhook_router_auto_title.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGHtests/unit/app_server/test_webhook_router_tags.py0create a sqlappconversationinfoservice instance for testing.STRING
HIGH…tegrations/gitlab/test_gitlab_v1_callback_processor.py0test that budget exceeded errors are logged at info level and user gets friendly message.STRING
HIGH…tegrations/github/test_github_v1_callback_processor.py0test that budget exceeded errors are logged at info level and user gets friendly message.STRING
HIGH…integrations/slack/test_slack_v1_callback_processor.py0test that budget exceeded errors are logged at info level and user gets friendly message.STRING
HIGHenterprise/server/sharing/shared_event_service.py0given a conversation_id and event_id, retrieve an event if the conversation is shared.STRING
HIGHenterprise/server/sharing/aws_shared_event_service.py0given a conversation_id and event_id, retrieve an event if the conversation is shared.STRING
HIGH…se/server/sharing/google_cloud_shared_event_service.py0given a conversation_id and event_id, retrieve an event if the conversation is shared.STRING
HIGH…rise/server/sharing/filesystem_shared_event_service.py0given a conversation_id and event_id, retrieve an event if the conversation is shared.STRING
HIGHenterprise/storage/jira_integration_store.py0deactivate the workspace and all user links for a given workspace.STRING
HIGHenterprise/storage/jira_dc_integration_store.py0deactivate the workspace and all user links for a given workspace.STRING
HIGHenterprise/storage/linear_integration_store.py0deactivate the workspace and all user links for a given workspace.STRING
HIGHenterprise/integrations/types.py0return instructions passed when conversation is first initialized.STRING
HIGHenterprise/integrations/jira_dc/jira_dc_view.py0return instructions passed when conversation is first initialized.STRING
HIGHenterprise/integrations/slack/slack_view.py0return instructions passed when conversation is first initialized.STRING
HIGHenterprise/integrations/gitlab/gitlab_view.py0create conversation using the v1 app conversation system.STRING
HIGHenterprise/integrations/jira/jira_view.py0create conversation using the v1 app conversation system.STRING
HIGHenterprise/integrations/github/github_view.py0create conversation using the v1 app conversation system.STRING
HIGHenterprise/integrations/slack/slack_view.py0create conversation using the v1 app conversation system.STRING
HIGHenterprise/integrations/jira_dc/jira_dc_view.py0create conversation using the v1 app conversation system.STRING
HIGH…se/integrations/gitlab/gitlab_v1_callback_processor.py0send a message to the agent server via the v1 api and return response text.STRING
HIGH…rprise/integrations/jira/jira_v1_callback_processor.py0send a message to the agent server via the v1 api and return response text.STRING
HIGH…/integrations/jira_dc/jira_dc_v1_callback_processor.py0send a message to the agent server via the v1 api and return response text.STRING
HIGHtests/unit/app_server/test_config_router.py0create a test client with the actual event router and mocked dependencies. we override check_session_api_key to bypass aSTRING
HIGHtests/unit/app_server/test_git_router.py0create a test client with the actual event router and mocked dependencies. we override check_session_api_key to bypass aSTRING
HIGHtests/unit/app_server/test_event_router.py0create a test client with the actual event router and mocked dependencies. we override check_session_api_key to bypass aSTRING
HIGHtests/unit/integrations/gitlab/test_gitlab.py0test that get_repositories correctly sets owner_type field for user repositories.STRING
HIGHtests/unit/integrations/github/test_github_service.py0test that get_repositories correctly sets owner_type field for user repositories.STRING
HIGHtests/unit/integrations/bitbucket/test_bitbucket.py0test that get_repositories correctly sets owner_type field for user repositories.STRING
HIGHtests/unit/integrations/gitlab/test_gitlab.py0test that get_repositories correctly sets owner_type field for organization repositories.STRING
HIGHtests/unit/integrations/github/test_github_service.py0test that get_repositories correctly sets owner_type field for organization repositories.STRING
HIGHtests/unit/integrations/bitbucket/test_bitbucket.py0test that get_repositories correctly sets owner_type field for organization repositories.STRING
HIGHtests/unit/integrations/gitlab/test_gitlab.py0test that get_repositories correctly handles mixed user and organization repositories.STRING
HIGHtests/unit/integrations/github/test_github_service.py0test that get_repositories correctly handles mixed user and organization repositories.STRING
HIGHtests/unit/integrations/bitbucket/test_bitbucket.py0test that get_repositories correctly handles mixed user and organization repositories.STRING
HIGHopenhands/app_server/integrations/service_types.py0check if a bitbucket pull request is still active (not closed/merged). args: repository: repository name in format 'owneSTRING
HIGH…rver/integrations/bitbucket_data_center/service/prs.py0check if a bitbucket pull request is still active (not closed/merged). args: repository: repository name in format 'owneSTRING
HIGHopenhands/app_server/integrations/github/service/prs.py0check if a bitbucket pull request is still active (not closed/merged). args: repository: repository name in format 'owneSTRING
HIGH…hands/app_server/integrations/bitbucket/service/prs.py0check if a bitbucket pull request is still active (not closed/merged). args: repository: repository name in format 'owneSTRING
HIGH…nhands/app_server/integrations/gitlab/service/repos.py0parse a bitbucket api repository response into a repository object. args: repo: repository data from bitbucket api link_STRING
HIGH…nhands/app_server/integrations/github/service/repos.py0parse a bitbucket api repository response into a repository object. args: repo: repository data from bitbucket api link_STRING
HIGH…ands/app_server/integrations/bitbucket/service/base.py0parse a bitbucket api repository response into a repository object. args: repo: repository data from bitbucket api link_STRING
HIGH…er/integrations/bitbucket_data_center/service/repos.py0get suggested tasks for the authenticated user across all repositories.STRING
HIGH…nds/app_server/integrations/bitbucket/service/repos.py0get suggested tasks for the authenticated user across all repositories.STRING
HIGH…p_server/integrations/azure_devops/service/features.py0get suggested tasks for the authenticated user across all repositories.STRING
HIGH…rver/integrations/bitbucket_data_center/service/prs.py0get detailed information about a specific pull request args: repository: repository name in format 'owner/repo' pr_numbeSTRING
HIGHopenhands/app_server/integrations/github/service/prs.py0get detailed information about a specific pull request args: repository: repository name in format 'owner/repo' pr_numbeSTRING
HIGH…hands/app_server/integrations/bitbucket/service/prs.py0get detailed information about a specific pull request args: repository: repository name in format 'owner/repo' pr_numbeSTRING
Unused Imports292 hits · 276 pts
SeverityFileLineSnippetContext
LOWenterprise/tests/unit/conftest.py9CODE
LOWenterprise/tests/unit/conftest.py21CODE
LOWenterprise/tests/unit/conftest.py25CODE
LOWenterprise/tests/unit/conftest.py29CODE
LOWenterprise/tests/unit/conftest.py30CODE
LOWenterprise/tests/unit/conftest.py31CODE
LOWenterprise/tests/unit/conftest.py32CODE
LOWenterprise/tests/unit/conftest.py34CODE
LOWenterprise/tests/unit/conftest.py36CODE
LOWenterprise/tests/unit/conftest.py44CODE
LOWenterprise/tests/unit/test_org_budget_service.py1CODE
LOW…tests/unit/test_sharing/test_shared_event_filtering.py9CODE
LOW…unit/server/auth/test_reject_x_org_id_path_mismatch.py14CODE
LOWenterprise/tests/unit/server/routes/conftest.py12CODE
LOW…ise/tests/unit/server/routes/test_org_budget_models.py1CODE
LOW…e/tests/unit/storage/test_saas_stores_effective_org.py17CODE
LOW…ts/unit/storage/test_jira_dc_active_link_constraint.py1CODE
LOW…/unit/storage/test_conversation_cost_events_cascade.py17CODE
LOW…ons/github/test_github_view_v1_initial_user_message.py1CODE
LOWenterprise/tests/unit/routes/test_user_provisioning.py10CODE
LOW…server/sharing/sql_shared_conversation_info_service.py9CODE
LOWenterprise/server/sharing/aws_shared_event_service.py11CODE
LOW…se/server/sharing/google_cloud_shared_event_service.py9CODE
LOW…rise/server/sharing/filesystem_shared_event_service.py9CODE
LOWenterprise/server/auth/org_context.py29CODE
LOWenterprise/server/auth/cookie_chunking.py18CODE
LOW…prise/server/app_lifespan/saas_app_lifespan_service.py7CODE
LOWenterprise/server/routes/super_admins.py19CODE
LOWenterprise/server/routes/agent_profiles.py27CODE
LOWenterprise/server/routes/user_provisioning.py73CODE
LOWenterprise/server/routes/integration/bitbucket_dc.py1CODE
LOWenterprise/server/routes/integration/bitbucket.py1CODE
LOWenterprise/server/routes/integration/azure_devops.py1CODE
LOWenterprise/server/services/org_app_settings_service.py7CODE
LOWenterprise/server/services/org_conversation_service.py7CODE
LOWenterprise/server/services/user_app_settings_service.py7CODE
LOWenterprise/server/services/org_budget_service.py1CODE
LOW…nce_task_processor/org_budget_maintenance_processor.py1CODE
LOWenterprise/storage/user_settings.py1CODE
LOWenterprise/storage/openhands_pr_store.py1CODE
LOWenterprise/storage/saas_settings_store.py1CODE
LOWenterprise/storage/user.py16CODE
LOWenterprise/storage/user.py17CODE
LOWenterprise/storage/user.py18CODE
LOWenterprise/storage/user.py19CODE
LOWenterprise/storage/user_repo_map_store.py1CODE
LOWenterprise/storage/bitbucket_webhook_store.py1CODE
LOWenterprise/storage/org.py17CODE
LOWenterprise/storage/org.py18CODE
LOWenterprise/storage/org.py19CODE
LOWenterprise/storage/org.py20CODE
LOWenterprise/storage/org.py21CODE
LOWenterprise/storage/org.py22CODE
LOWenterprise/storage/org.py23CODE
LOWenterprise/storage/org.py24CODE
LOWenterprise/storage/org.py25CODE
LOWenterprise/storage/org.py26CODE
LOWenterprise/storage/org.py27CODE
LOWenterprise/storage/bitbucket_dc_webhook_store.py1CODE
LOWenterprise/storage/stripe_customer.py10CODE
232 more matches not shown…
Fake / Example Data222 hits · 191 pts
SeverityFileLineSnippetContext
LOWfrontend/tests/placeholder.spec.ts4test("placeholder", () => {});CODE
LOWfrontend/__tests__/utils/input-validation.test.ts12 expect(isValidEmail("user@example.com")).toBe(true);CODE
LOWfrontend/__tests__/utils/input-validation.test.ts87 const emails = ["user@example.com", "test@domain.org"];CODE
LOWfrontend/__tests__/utils/input-validation.test.ts116 const emails = ["user@example.com", "test@domain.org", "admin@company.io"];CODE
LOWfrontend/__tests__/utils/input-validation.test.ts121 const emails = ["user@example.com", "invalid", "test@domain.org"];CODE
LOWfrontend/__tests__/utils/permission-guard.test.ts91 email: "admin@example.com",CODE
LOWfrontend/__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…_tests__/components/features/org/org-selector.test.tsx150 expect(options[1]).toHaveTextContent("Acme Corp");CODE
LOW…_tests__/components/features/org/org-selector.test.tsx175 const acmeOption = within(listbox).getByText("Acme Corp");CODE
LOW…_tests__/components/features/org/org-selector.test.tsx203 const acmeOption = within(listbox).getByText("Acme Corp");CODE
LOW…_tests__/components/features/org/org-selector.test.tsx237 const acmeOption = within(listbox).getByText("Acme Corp");CODE
LOW…_tests__/components/features/org/org-selector.test.tsx270 expect(screen.getByRole("combobox")).toHaveValue("Acme Corp");CODE
LOW…__tests__/components/features/budgets/budgets.test.tsx60 user_email: "user@example.com",CODE
LOW…/features/onboarding/information-request-form.test.tsx122 await user.type(nameInput, "John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx124 expect(nameInput).toHaveValue("John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx221 await user.type(screen.getByTestId("form-input-name"), "John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx222 await user.type(screen.getByTestId("form-input-company"), "Acme Inc");CODE
LOW…/features/onboarding/information-request-form.test.tsx240 await user.type(nameInput, "John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx250 await user.type(screen.getByTestId("form-input-name"), "John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx251 await user.type(screen.getByTestId("form-input-company"), "Acme Inc");CODE
LOW…/features/onboarding/information-request-form.test.tsx271 await user.type(screen.getByTestId("form-input-name"), "John Doe");CODE
LOW…/features/onboarding/information-request-form.test.tsx272 await user.type(screen.getByTestId("form-input-company"), "Acme Inc");CODE
LOW…omponents/features/onboarding/onboarding-form.test.tsx398 await user.type(orgNameInput, "Acme Corp");CODE
LOW…omponents/features/onboarding/onboarding-form.test.tsx414 org_name: "Acme Corp",CODE
LOW…s__/components/features/onboarding/form-input.test.tsx71 expect(input).toHaveAttribute("placeholder", "Enter text here");CODE
LOW…ntend/__tests__/hooks/query/use-organizations.test.tsx81 createMinimalOrg("2", "Acme Corp", false),CODE
LOW…ntend/__tests__/hooks/query/use-organizations.test.tsx98 expect(organizations[1].name).toBe("Acme Corp");CODE
LOW…ntend/__tests__/hooks/query/use-organizations.test.tsx180 createMinimalOrg("2", "Acme Corp", false),CODE
LOW…ntend/__tests__/hooks/query/use-organizations.test.tsx224 createMinimalOrg("2", "Acme Corp", false),CODE
LOWfrontend/__tests__/routes/llm-settings.test.tsx3135 "placeholder",CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx212 expect(githubInput).toHaveProperty("placeholder", "");CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx218 expect(gitlabInput).toHaveProperty("placeholder", "");CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx237 expect(githubInput).toHaveProperty("placeholder", "<hidden>");CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx243 expect(gitlabInput).toHaveProperty("placeholder", "<hidden>");CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx261 expect(githubInput).toHaveProperty("placeholder", "");CODE
LOWfrontend/__tests__/routes/git-settings.test.tsx267 expect(gitlabInput).toHaveProperty("placeholder", "<hidden>");CODE
LOWfrontend/__tests__/routes/home-screen.test.tsx195 github: "fake-token",CODE
LOWfrontend/__tests__/routes/home-screen.test.tsx196 gitlab: "fake-token",CODE
LOWfrontend/__tests__/routes/agent-settings.test.tsx271 "placeholder",CODE
LOWenterprise/tests/unit/test_recaptcha_service.py41 email = 'user@example.com'CODE
LOWenterprise/tests/unit/test_recaptcha_service.py63 email2 = 'user@example.com'CODE
LOWenterprise/tests/unit/test_recaptcha_service.py213 email='user@example.com',CODE
LOWenterprise/tests/unit/test_recaptcha_service.py222 assert assessment.event.user_info.user_ids[0].email == 'user@example.com'CODE
LOWenterprise/tests/unit/test_org_budget_service.py346 service._get_admin_emails = AsyncMock(return_value=['admin@example.com'])CODE
LOWenterprise/tests/unit/test_org_budget_service.py362 ['admin@example.com'],CODE
LOWenterprise/tests/unit/test_token_manager_extended.py325 'email': 'user@example.com',CODE
LOWenterprise/tests/unit/test_identity_utils.py23 'name': 'Jane Doe',CODE
LOWenterprise/tests/unit/test_identity_utils.py28 assert resolve_display_name(user_info) == 'Jane Doe'CODE
LOWenterprise/tests/unit/test_identity_utils.py38 assert resolve_display_name(user_info) == 'Jane Doe'CODE
LOWenterprise/tests/unit/test_identity_utils.py106 assert resolve_display_name(user_info) == 'Jane Doe'CODE
LOWenterprise/tests/unit/test_saas_user_auth.py394 mock_user.email = 'user@example.com'CODE
LOWenterprise/tests/unit/test_saas_user_auth.py404 assert email == 'user@example.com'CODE
LOWenterprise/tests/unit/test_saas_user_auth.py1177 assert result.email == 'user@example.com'CODE
LOWenterprise/tests/unit/test_saas_user_auth.py1179 'user@example.com', NoneCODE
LOWenterprise/tests/unit/test_saas_user_auth.py1155 'email': 'user@example.com',CODE
LOWenterprise/tests/unit/test_smtp_email_service.py132 org_name='Acme Corp',CODE
LOWenterprise/tests/unit/test_smtp_email_service.py133 inviter_name='John Doe',CODE
LOWenterprise/tests/unit/test_smtp_email_service.py141 assert 'Acme Corp' in messageCODE
LOWenterprise/tests/unit/test_smtp_email_service.py142 assert 'John Doe' in messageCODE
162 more matches not shown…
Redundant / Tautological Comments124 hits · 186 pts
SeverityFileLineSnippetContext
LOW.openhands/pre-commit.sh13# Check if any files match specific patternsCOMMENT
LOW.openhands/pre-commit.sh32 # Check if we're in a CI environment or if frontend dependencies are missingCOMMENT
LOWenterprise/enterprise_local/decrypt_env.sh4# Check if DEPLOY_DIR argument was providedCOMMENT
LOWenterprise/tests/unit/test_saas_settings_store.py1400 # Set llm_api_key to raise an error if accessed - this verifies we don't access itCOMMENT
LOWenterprise/tests/unit/test_auth_routes.py568 # Set validate_offline_token to return False to test the "without offline token" scenarioCOMMENT
LOWenterprise/tests/unit/test_lite_llm_manager.py219 user_settings.user_version = 4 # Set version to avoid None comparisonCODE
LOWenterprise/tests/unit/server/routes/test_org_models.py88 # Set llm_api_key to raise an error if accessed - this verifies we don't access itCOMMENT
LOWenterprise/server/config.py120 # Check if the response is successfulCOMMENT
LOWenterprise/server/constants.py7# Check if this is a feature environmentCOMMENT
LOWenterprise/server/auth/recaptcha_service.py125 # Check if any suspicious labels are presentCOMMENT
LOWenterprise/server/auth/authorization.py596 # Check if user has @openhands.dev emailCOMMENT
LOWenterprise/server/auth/authorization.py607 # Check if user has Admin or Owner role in the organizationCOMMENT
LOWenterprise/server/auth/saas_user_auth.py843 # Check if email is blacklisted (whitelist takes precedence)COMMENT
LOWenterprise/server/auth/gitlab_sync.py48 # Check if the user has a GitLab provider token before syncingCOMMENT
LOW…se/server/utils/saas_app_conversation_info_injector.py195 # Check if there are more resultsCOMMENT
LOW…se/server/utils/saas_app_conversation_info_injector.py389 # Check if SAAS metadata already existsCOMMENT
LOWenterprise/server/routes/users_v1.py153 # Check if this is an AuthUserContext with a SaasUserAuthCOMMENT
LOWenterprise/server/routes/orgs.py1585 # Check if this Git org is already claimed (early feedback for the common case)COMMENT
LOWenterprise/server/routes/api_keys.py394 # Check if authenticated via API keyCOMMENT
LOWenterprise/server/routes/api_keys.py449 # Check if the BYOR key exists in the databaseCOMMENT
LOWenterprise/server/routes/integration/gitlab.py292 # Check if user has admin access to this resourceCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py328 # Check if user currently has an active workspace linkCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py346 # Check if user had a previous link to this specific workspaceCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py378 # Check if user is the admin of the workspaceCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py385 # Check if user's current link matches the workspaceCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py404 # Check if Jira DC webhooks are enabledCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py1323 # Check if workspace existsCOMMENT
LOWenterprise/server/routes/integration/jira_dc.py1333 # Check if workspace is activeCOMMENT
LOWenterprise/server/routes/integration/jira.py212 # Check if user currently has an active workspace linkCOMMENT
LOWenterprise/server/routes/integration/jira.py230 # Check if user had a previous link to this specific workspaceCOMMENT
LOWenterprise/server/routes/integration/jira.py262 # Check if user is the admin of the workspaceCOMMENT
LOWenterprise/server/routes/integration/jira.py269 # Check if user's current link matches the workspaceCOMMENT
LOWenterprise/server/routes/integration/jira.py289 # Check if Jira webhooks are enabledCOMMENT
LOWenterprise/server/routes/integration/jira.py739 # Check if workspace existsCOMMENT
LOWenterprise/server/routes/integration/jira.py749 # Check if workspace is activeCOMMENT
LOWenterprise/server/routes/integration/github.py59 # Check if GitHub webhooks are enabledCOMMENT
LOWenterprise/server/services/org_app_settings_service.py112 # Check if any fields are providedCOMMENT
LOWenterprise/server/services/org_member_service.py189 # Check if trying to remove selfCOMMENT
LOWenterprise/server/services/org_member_service.py210 # Check if removing the last ownerCOMMENT
LOWenterprise/server/services/org_member_service.py223 # Set current_org_id to personal workspace (org.id == user.id)COMMENT
LOWenterprise/server/services/org_member_service.py291 # Check if trying to modify selfCOMMENT
LOWenterprise/server/services/org_member_service.py334 # Check if demoting the last ownerCOMMENT
LOWenterprise/server/services/org_conversation_service.py1175 # Check if there's a sandbox to stopCOMMENT
LOWenterprise/server/services/user_app_settings_service.py89 # Check if any fields are providedCOMMENT
LOWenterprise/storage/openhands_pr_store.py19 # Check if PR already existsCOMMENT
LOWenterprise/storage/openhands_pr_store.py104 # Check if the updated_at timestamp has changed (indicating concurrent modification)COMMENT
LOWenterprise/storage/saas_settings_store.py530 # Check if we need to migrate from user_settingsCOMMENT
LOWenterprise/storage/org_member_store.py234 # Check if there are more resultsCOMMENT
LOWenterprise/storage/lite_llm_manager.py35# Check if billing is enabled (defaults to false for enterprise deployments)COMMENT
LOWenterprise/storage/lite_llm_manager.py168 # Check if team already exists and get its budgetCOMMENT
LOWenterprise/storage/lite_llm_manager.py363 # Check if max_budget is None (not 0.0) or set to unlimited to determine if already migratedCOMMENT
LOWenterprise/storage/lite_llm_manager.py429 # Check if the database key exists in LiteLLMCOMMENT
LOWenterprise/storage/auth_token_store.py151 # Check if token needs refreshCOMMENT
LOWenterprise/storage/org_service.py761 # Check if organization existsCOMMENT
LOWenterprise/storage/org_service.py766 # Check if user is a member of the organizationCOMMENT
LOWenterprise/storage/org_service.py771 # Check if user has owner roleCOMMENT
LOWenterprise/storage/org_service.py528 # Check if user is a member of this organizationCOMMENT
LOWenterprise/storage/org_service.py541 # Check if name is being updated and validate uniquenessCOMMENT
LOWenterprise/storage/org_service.py543 # Check if new name conflicts with another orgCOMMENT
LOWenterprise/storage/device_code.py113 # Check if polling too fastCOMMENT
64 more matches not shown…
Structural Annotation Overuse93 hits · 165 pts
SeverityFileLineSnippetContext
LOW…omponents/features/onboarding/onboarding-form.test.tsx170 // Step 1 - select org size (first step in saas mode - single select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx174 // Step 2 - select use case (multi-select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx178 // Step 3 - select role (last step in saas mode - single select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx237 // Step 1 - select org size (single select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx241 // Step 2 - select multiple use cases (multi-select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx247 // Step 3 - select role (single select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx266 // Step 1 - select org sizeCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx270 // Step 2 - select and deselect use casesCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx277 // Step 3 - select roleCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx395 // Step 1 - enter org name and domain (input fields)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx402 // Step 2 - select org size (single select)COMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx406 // Step 3 - select use case (multi-select) - this is the last step in self-hosted modeCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx559 // Step 1 - org sizeCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx563 // Step 2 - use caseCOMMENT
LOW…omponents/features/onboarding/onboarding-form.test.tsx567 // Step 3 - roleCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx113 // Step 1: Validate and filter filesCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx119 // Step 2: Show loading indicators immediatelyCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx122 // Step 3: Process files using REAL FileReaderCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx129 // Step 4: Handle successful resultsCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx133 // Step 5: Handle failed resultsCOMMENT
LOWfrontend/src/routes/settings.tsx59 // Step 1: Get config first (needed for all checks, no user data required)COMMENT
LOWfrontend/src/routes/settings.tsx73 // Step 2: Check SAAS_ONLY_PATHS for OSS mode (no user data required)COMMENT
LOWfrontend/src/routes/settings.tsx78 // Step 3: Check feature flag-based hiding and redirect IMMEDIATELY (no user data required)COMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1278 # Step 2: Switch user to ORG2 in browser sessionCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1287 # Step 3: User in ORG2 should NOT see the conversationCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1303 # Step 4: Switch user back to ORG1COMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1312 # Step 5: User in ORG1 should see the conversationCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1257 # Step 1: Create conversation via API key bound to ORG1COMMENT
LOWenterprise/server/routes/bitbucket_dc_proxy.py42 # Step 1: get usernameCOMMENT
LOWenterprise/server/routes/bitbucket_dc_proxy.py54 # Step 2: get user detailsCOMMENT
LOWenterprise/server/services/org_invitation_service.py76 # Step 1: Validate organization existsCOMMENT
LOWenterprise/server/services/org_invitation_service.py81 # Step 2: Check this is not a personal workspaceCOMMENT
LOWenterprise/server/services/org_invitation_service.py88 # Step 3: Check inviter is a member and has permissionCOMMENT
LOWenterprise/server/services/org_invitation_service.py99 # Step 4: Validate role assignment permissionsCOMMENT
LOWenterprise/server/services/org_invitation_service.py109 # Step 5: Check if user is already a member (by email)COMMENT
LOWenterprise/server/services/org_invitation_service.py120 # Step 6: Create the invitationCOMMENT
LOWenterprise/server/services/org_invitation_service.py128 # Step 7: Send invitation emailCOMMENT
LOWenterprise/server/services/org_invitation_service.py461 # Step 3: Check if user is already a memberCOMMENT
LOWenterprise/server/services/org_invitation_service.py470 # Step 4: Create LiteLLM integration for the user in the new orgCOMMENT
LOWenterprise/server/services/org_invitation_service.py193 # Step 1: Validate permissions upfront (shared for all emails)COMMENT
LOWenterprise/server/services/org_invitation_service.py221 # Step 2: Create invitations concurrentlyCOMMENT
LOWenterprise/server/services/org_invitation_service.py239 # Step 3: Separate successes and failuresCOMMENT
LOWenterprise/server/services/org_invitation_service.py388 # Step 1: Get and validate invitationCOMMENT
LOWenterprise/server/services/org_invitation_service.py413 # Step 2: Check expirationCOMMENT
LOWenterprise/server/services/org_invitation_service.py494 # Step 5: Add user to organization. New members start with noCOMMENT
LOWenterprise/server/services/org_invitation_service.py512 # Step 6: Mark invitation as acceptedCOMMENT
LOWenterprise/storage/lite_llm_manager.py573 # Step 2: Update user to set their max_budget back from unlimitedCOMMENT
LOWenterprise/storage/lite_llm_manager.py582 # Step 3: Add user back to the default teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py607 # Step 5: Remove user from their org teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py616 # Step 6: Delete the org teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py528 # Step 1: Get the team info to retrieve the budgetCOMMENT
LOWenterprise/storage/lite_llm_manager.py596 # Step 4: Update all user keys to remove org team association (set team_id to default)COMMENT
LOWenterprise/storage/org_service.py234 # Step 1: Validate name uniqueness (fails early, no cleanup needed)COMMENT
LOWenterprise/storage/org_service.py237 # Step 2: Generate organization IDCOMMENT
LOWenterprise/storage/org_service.py240 # Step 3: Create LiteLLM integration (external state created)COMMENT
LOWenterprise/storage/org_service.py248 # Step 4: Create organization entityCOMMENT
LOWenterprise/storage/org_service.py256 # Step 5: Apply LiteLLM settingsCOMMENT
LOWenterprise/storage/org_service.py261 # Step 6: Get owner role and create member entityCOMMENT
LOWenterprise/storage/org_service.py270 # Step 7: Persist in transaction (critical section)COMMENT
LOWenterprise/storage/org_service.py809 # Step 1: Verify user authorizationCOMMENT
33 more matches not shown…
Verbosity Indicators68 hits · 119 pts
SeverityFileLineSnippetContext
LOW…/src/components/features/chat/interactive-chat-box.tsx113 // Step 1: Validate and filter filesCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx119 // Step 2: Show loading indicators immediatelyCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx122 // Step 3: Process files using REAL FileReaderCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx129 // Step 4: Handle successful resultsCOMMENT
LOW…/src/components/features/chat/interactive-chat-box.tsx133 // Step 5: Handle failed resultsCOMMENT
LOWfrontend/src/routes/settings.tsx59 // Step 1: Get config first (needed for all checks, no user data required)COMMENT
LOWfrontend/src/routes/settings.tsx73 // Step 2: Check SAAS_ONLY_PATHS for OSS mode (no user data required)COMMENT
LOWfrontend/src/routes/settings.tsx78 // Step 3: Check feature flag-based hiding and redirect IMMEDIATELY (no user data required)COMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1278 # Step 2: Switch user to ORG2 in browser sessionCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1287 # Step 3: User in ORG2 should NOT see the conversationCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1303 # Step 4: Switch user back to ORG1COMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1312 # Step 5: User in ORG1 should see the conversationCOMMENT
LOW…storage/test_saas_sql_app_conversation_info_service.py1257 # Step 1: Create conversation via API key bound to ORG1COMMENT
LOWenterprise/server/routes/bitbucket_dc_proxy.py42 # Step 1: get usernameCOMMENT
LOWenterprise/server/routes/bitbucket_dc_proxy.py54 # Step 2: get user detailsCOMMENT
LOWenterprise/server/services/org_invitation_service.py76 # Step 1: Validate organization existsCOMMENT
LOWenterprise/server/services/org_invitation_service.py81 # Step 2: Check this is not a personal workspaceCOMMENT
LOWenterprise/server/services/org_invitation_service.py88 # Step 3: Check inviter is a member and has permissionCOMMENT
LOWenterprise/server/services/org_invitation_service.py99 # Step 4: Validate role assignment permissionsCOMMENT
LOWenterprise/server/services/org_invitation_service.py109 # Step 5: Check if user is already a member (by email)COMMENT
LOWenterprise/server/services/org_invitation_service.py120 # Step 6: Create the invitationCOMMENT
LOWenterprise/server/services/org_invitation_service.py128 # Step 7: Send invitation emailCOMMENT
LOWenterprise/server/services/org_invitation_service.py461 # Step 3: Check if user is already a memberCOMMENT
LOWenterprise/server/services/org_invitation_service.py470 # Step 4: Create LiteLLM integration for the user in the new orgCOMMENT
LOWenterprise/server/services/org_invitation_service.py193 # Step 1: Validate permissions upfront (shared for all emails)COMMENT
LOWenterprise/server/services/org_invitation_service.py221 # Step 2: Create invitations concurrentlyCOMMENT
LOWenterprise/server/services/org_invitation_service.py239 # Step 3: Separate successes and failuresCOMMENT
LOWenterprise/server/services/org_invitation_service.py388 # Step 1: Get and validate invitationCOMMENT
LOWenterprise/server/services/org_invitation_service.py413 # Step 2: Check expirationCOMMENT
LOWenterprise/server/services/org_invitation_service.py494 # Step 5: Add user to organization. New members start with noCOMMENT
LOWenterprise/server/services/org_invitation_service.py512 # Step 6: Mark invitation as acceptedCOMMENT
LOWenterprise/storage/lite_llm_manager.py573 # Step 2: Update user to set their max_budget back from unlimitedCOMMENT
LOWenterprise/storage/lite_llm_manager.py582 # Step 3: Add user back to the default teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py607 # Step 5: Remove user from their org teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py616 # Step 6: Delete the org teamCOMMENT
LOWenterprise/storage/lite_llm_manager.py528 # Step 1: Get the team info to retrieve the budgetCOMMENT
LOWenterprise/storage/lite_llm_manager.py596 # Step 4: Update all user keys to remove org team association (set team_id to default)COMMENT
LOWenterprise/storage/org_service.py234 # Step 1: Validate name uniqueness (fails early, no cleanup needed)COMMENT
LOWenterprise/storage/org_service.py237 # Step 2: Generate organization IDCOMMENT
LOWenterprise/storage/org_service.py240 # Step 3: Create LiteLLM integration (external state created)COMMENT
LOWenterprise/storage/org_service.py248 # Step 4: Create organization entityCOMMENT
LOWenterprise/storage/org_service.py256 # Step 5: Apply LiteLLM settingsCOMMENT
LOWenterprise/storage/org_service.py261 # Step 6: Get owner role and create member entityCOMMENT
LOWenterprise/storage/org_service.py270 # Step 7: Persist in transaction (critical section)COMMENT
LOWenterprise/storage/org_service.py809 # Step 1: Verify user authorizationCOMMENT
LOWenterprise/storage/org_service.py812 # Step 2: Perform database cascade deletion with LiteLLM cleanup in transactionCOMMENT
LOWenterprise/storage/org_service.py906 # Step 1: Check if organization existsCOMMENT
LOWenterprise/storage/org_service.py911 # Step 2: Validate user is a member of the organizationCOMMENT
LOWenterprise/storage/org_service.py921 # Step 3: Update user's current_org_idCOMMENT
LOWenterprise/storage/user_store.py651 # Step 4: Delete conversation_metadata_saas entriesSTRING
LOWenterprise/storage/user_store.py657 # Step 5: Reset org_id columns in related tablesSTRING
LOWenterprise/storage/user_store.py700 # Step 6: Delete org_member entries for this orgSTRING
LOWenterprise/storage/user_store.py706 # Step 7: Delete the user entrySTRING
LOWenterprise/storage/user_store.py635 # Step 3: Copy user_id from conversation_metadata_saas to conversation_metadataSTRING
LOWenterprise/storage/user_store.py718 # Step 8: Set already_migrated=False on user_settings and encrypt fieldsSTRING
LOWenterprise/integrations/gitlab/gitlab_service.py438 # For projects, we need to check if the user has maintainer or owner accessCOMMENT
LOWenterprise/integrations/gitlab/gitlab_service.py415 # For groups, we need to check if the user is an owner or maintainerCOMMENT
LOWenterprise/integrations/jira/jira_manager.py93 # Step 1: Parse webhook payloadCOMMENT
LOWenterprise/integrations/jira/jira_manager.py123 # Step 2: Validate workspaceCOMMENT
LOWenterprise/integrations/jira/jira_manager.py128 # Step 3: Authenticate userCOMMENT
8 more matches not shown…
Deep Nesting106 hits · 90 pts
SeverityFileLineSnippetContext
LOWenterprise/enterprise_local/convert_to_env.py8CODE
LOWenterprise/tests/unit/test_run_maintenance_tasks.py208CODE
LOWenterprise/tests/unit/test_run_maintenance_tasks.py265CODE
LOWenterprise/tests/unit/test_run_maintenance_tasks.py343CODE
LOWenterprise/tests/unit/test_run_maintenance_tasks.py378CODE
LOWenterprise/tests/unit/test_run_maintenance_tasks.py424CODE
LOWenterprise/tests/unit/test_saas_settings_store.py112CODE
LOWenterprise/tests/unit/test_saas_settings_store.py157CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py966CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py995CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py1034CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py1108CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py2386CODE
LOWenterprise/tests/unit/test_lite_llm_manager.py2407CODE
LOW…/unit/server/routes/test_jira_dc_integration_routes.py34CODE
LOW…/unit/server/routes/test_jira_dc_integration_routes.py1485CODE
LOWenterprise/tests/unit/routes/test_service.py125CODE
LOWenterprise/tests/unit/routes/test_service.py150CODE
LOWenterprise/tests/unit/routes/test_service.py196CODE
LOWenterprise/server/auth/token_manager.py374CODE
LOWenterprise/server/auth/saas_user_auth.py524CODE
LOWenterprise/server/utils/rate_limit_utils.py51CODE
LOW…se/server/utils/saas_app_conversation_info_injector.py131CODE
LOWenterprise/server/routes/auth.py255CODE
LOWenterprise/server/routes/users_v1.py107CODE
LOWenterprise/server/routes/orgs.py2310CODE
LOWenterprise/server/routes/user_provisioning.py256CODE
LOWenterprise/server/routes/integration/bitbucket_dc.py537CODE
LOWenterprise/server/routes/integration/azure_devops.py310CODE
LOWenterprise/server/routes/integration/jira_dc.py577CODE
LOWenterprise/server/services/org_conversation_service.py241CODE
LOWenterprise/server/services/org_conversation_service.py445CODE
LOWenterprise/server/services/org_conversation_service.py860CODE
LOWenterprise/server/services/org_conversation_service.py1140CODE
LOWenterprise/server/services/org_budget_service.py358CODE
LOWenterprise/storage/saas_settings_store.py261CODE
LOWenterprise/storage/saas_settings_store.py720CODE
LOWenterprise/storage/lite_llm_manager.py122CODE
LOWenterprise/storage/lite_llm_manager.py823CODE
LOWenterprise/storage/org_app_settings_store.py97CODE
LOWenterprise/integrations/utils.py290CODE
LOWenterprise/integrations/gitlab/gitlab_service.py227CODE
LOWenterprise/integrations/gitlab/gitlab_service.py357CODE
LOWenterprise/integrations/gitlab/gitlab_service.py399CODE
LOWenterprise/integrations/gitlab/gitlab_view.py387CODE
LOWenterprise/integrations/github/data_collector.py151CODE
LOWenterprise/integrations/github/github_view.py729CODE
LOWenterprise/scripts/standalone_server.py153CODE
LOWenterprise/scripts/seed_conversation_data.py270CODE
LOWenterprise/scripts/setup_and_seed.py356CODE
LOWenterprise/sync/resend_keycloak.py375CODE
LOWtests/unit/server/routes/test_skills_api.py396CODE
LOWopenhands/app_server/config.py240CODE
LOWopenhands/app_server/version.py7CODE
LOWopenhands/app_server/settings/settings_router.py131CODE
LOWopenhands/app_server/settings/settings_models.py210CODE
LOWopenhands/app_server/settings/settings_models.py475CODE
LOWopenhands/app_server/event_callback/webhook_router.py469CODE
LOWopenhands/app_server/secrets/secrets_models.py111CODE
LOWopenhands/app_server/secrets/secrets_router.py96CODE
46 more matches not shown…
Cross-Language Confusion16 hits · 90 pts
SeverityFileLineSnippetContext
HIGHenterprise/storage/org.py79 # ``{profiles: {<id>: AgentProfile}, active: <id> | null}`` (see AgentProfiles).COMMENT
HIGHenterprise/scripts/standalone_server.py490 let currentOrg = null;CODE
HIGHenterprise/scripts/standalone_server.py558 <td>\${c.user_name || c.user_email || 'Unknown'}</td>CODE
HIGHenterprise/scripts/standalone_server.py580 return n.toString();CODE
HIGHtests/unit/app_server/test_skill_loader.py974 # The key is omitted entirely (not sent as null) when not provided.COMMENT
HIGHtests/unit/app_server/test_profiles_api.py385 assert fetched['config']['api_key'] is None # GET returns null, not maskCODE
HIGHtests/unit/app_server/test_agent_server_env_override.py158 'OH_AGENT_SERVER_ENV': '{"NUMBER": 123, "BOOLEAN": true, "NULL": null}',CODE
HIGHopenhands/app_server/settings/agent_profiles.py10* a pydantic envelope ``{profiles: {<id>: AgentProfile}, active: <id> | null}`` storedSTRING
HIGHopenhands/app_server/sandbox/workspace_archive.py211 '|| python3 --version 2>/dev/null || true)"; 'CODE
HIGHopenhands/app_server/sandbox/workspace_archive.py212 'echo "node=$(node --version 2>/dev/null || true)"; 'CODE
HIGHopenhands/app_server/sandbox/workspace_archive.py213 'echo "os=$(. /etc/os-release 2>/dev/null; echo "${ID:-} ${VERSION_ID:-}")"'CODE
HIGH…rver/app_conversation/app_conversation_service_base.py365 'git init && git config --global 'CODE
HIGH…rver/app_conversation/app_conversation_service_base.py507 "$secret_url" 2>/dev/null)" || exit 0CODE
HIGH…rver/app_conversation/app_conversation_service_base.py568 command = 'mkdir -p .git/hooks && chmod +x .openhands/pre-commit.sh'STRING
HIGH…p_conversation/live_status_app_conversation_service.py2369 # Repository is being removed (set to null)COMMENT
HIGHscripts/issue_duplicate_check_openhands.py206 ' "canonical_issue_number": 123 or null,',CODE
Modern AI Meta-Vocabulary18 hits · 68 pts
SeverityFileLineSnippetContext
MEDIUMenterprise/server/utils/conversation_utils.py50 # Create injector state for dependency injectionCOMMENT
MEDIUM…se/integrations/gitlab/gitlab_v1_callback_processor.py215 # Summary orchestrationCOMMENT
MEDIUM…se/integrations/gitlab/gitlab_v1_callback_processor.py237 # Create injector state for dependency injectionCOMMENT
MEDIUM…rprise/integrations/jira/jira_v1_callback_processor.py112 # Create injector state for dependency injectionCOMMENT
MEDIUM…se/integrations/github/github_v1_callback_processor.py233 # Final response orchestrationCOMMENT
MEDIUM…se/integrations/github/github_v1_callback_processor.py250 # Create injector state for dependency injectionCOMMENT
MEDIUMenterprise/integrations/jira_dc/jira_dc_view.py276 # Create injector state for dependency injectionCOMMENT
MEDIUM…/integrations/jira_dc/jira_dc_v1_callback_processor.py122 # Create injector state for dependency injectionCOMMENT
MEDIUM…rise/integrations/slack/slack_v1_callback_processor.py212 # Final response orchestrationCOMMENT
MEDIUM…rise/integrations/slack/slack_v1_callback_processor.py229 # Create injector state for dependency injectionCOMMENT
MEDIUMenterprise/integrations/slack/slack_view.py377 # Create injector state for dependency injectionCOMMENT
MEDIUMopenhands/app_server/user_auth/user_auth.py3# OpenHands V1 uses the Software Agent SDK for the agentic core and runs a new application server. Please refer to:COMMENT
MEDIUMopenhands/app_server/user_auth/user_auth.py4# - V1 agentic core (SDK): https://github.com/OpenHands/software-agent-sdkCOMMENT
MEDIUMopenhands/app_server/user_auth/default_user_auth.py3# OpenHands V1 uses the Software Agent SDK for the agentic core and runs a new application server. Please refer to:COMMENT
MEDIUMopenhands/app_server/user_auth/default_user_auth.py4# - V1 agentic core (SDK): https://github.com/OpenHands/software-agent-sdkCOMMENT
MEDIUMopenhands/app_server/status/system_stats.py3# OpenHands V1 uses the Software Agent SDK for the agentic core and runs a new application server. Please refer to:COMMENT
MEDIUMopenhands/app_server/status/system_stats.py4# - V1 agentic core (SDK): https://github.com/OpenHands/software-agent-sdkCOMMENT
MEDIUM…p_conversation/live_status_app_conversation_service.py2553 # The session is already managed by the dependency injection systemCOMMENT
Modern Structural Boilerplate53 hits · 53 pts
SeverityFileLineSnippetContext
LOW…server/sharing/sql_shared_conversation_info_service.py37logger = logging.getLogger(__name__)CODE
LOWenterprise/server/sharing/aws_shared_event_service.py42logger = logging.getLogger(__name__)CODE
LOW…se/server/sharing/google_cloud_shared_event_service.py43logger = logging.getLogger(__name__)CODE
LOW…rise/server/sharing/filesystem_shared_event_service.py38logger = logging.getLogger(__name__)CODE
LOWenterprise/server/auth/saas_user_auth.py106 def set_effective_org_id_override(self, org_id: UUID | None) -> None:CODE
LOWenterprise/server/auth/user/user_authorizer.py12logger = logging.getLogger(__name__)CODE
LOWenterprise/server/auth/user/default_user_authorizer.py19logger = logging.getLogger(__name__)CODE
LOWenterprise/server/routes/analytics_events.py39logger = logging.getLogger(__name__)CODE
LOWenterprise/server/routes/user_provisioning.py226async def _set_user_provisioned_flags(user_id: str) -> None:CODE
LOWenterprise/server/routes/org_models.py33logger = logging.getLogger(__name__)CODE
LOWenterprise/storage/user_settings.py17logger = logging.getLogger(__name__)CODE
LOWenterprise/storage/org_member_store.py104 async def update_org_member(org_member: OrgMember) -> None:CODE
LOWenterprise/storage/stored_conversation_cost_event.py7__all__ = ['StoredConversationCostEvent']CODE
LOWenterprise/storage/maintenance_task.py98 def set_processor(self, processor: MaintenanceTaskProcessor) -> None:CODE
LOWenterprise/storage/stored_conversation_metadata_saas.py48__all__ = ['StoredConversationMetadataSaas']CODE
LOWenterprise/storage/__init__.py46__all__ = [CODE
LOWenterprise/storage/gitlab_webhook_store.py78 async def update_webhook(self, webhook: GitlabWebhook, update_fields: dict) -> None:CODE
LOWenterprise/storage/gitlab_webhook_store.py159 async def update_last_synced(self, webhook: GitlabWebhook) -> None:CODE
LOWenterprise/storage/redis.py16__all__ = [CODE
LOWenterprise/storage/device_code.py121 def update_poll_time(self, increase_interval: bool = False) -> None:CODE
LOWenterprise/storage/stored_conversation_metadata.py7__all__ = ['StoredConversationMetadata']CODE
LOWenterprise/storage/base.py15__all__ = ['Base']CODE
LOWenterprise/integrations/slack/slack_errors.py15logger = logging.getLogger(__name__)CODE
LOWopenhands/version.py8__all__ = ['__package_name__', '__version__', 'get_version']CODE
LOWopenhands/__init__.py9__all__ = ['__version__', 'get_version']CODE
LOWopenhands/app_server/types.py37__all__ = [CODE
LOWopenhands/app_server/pending_messages/__init__.py14__all__ = [CODE
LOW…/app_server/pending_messages/pending_message_router.py18logger = logging.getLogger(__name__)CODE
LOW…enhands/app_server/settings/marketplace_composition.py33logger = logging.getLogger(__name__)CODE
LOWopenhands/app_server/settings/agent_profiles.py208 def set_llm_profile_ref(self, name: str, new_ref: str) -> None:CODE
LOWopenhands/app_server/settings/settings_models.py47logger = logging.getLogger(__name__)CODE
LOWopenhands/app_server/event_callback/__init__.py16__all__ = [CODE
LOWopenhands/app_server/utils/redis_lock.py12__all__ = [CODE
LOWopenhands/app_server/utils/redis.py69__all__ = [CODE
LOW…nds/app_server/integrations/gitlab/service/__init__.py10__all__ = [CODE
LOW…integrations/bitbucket_data_center/service/__init__.py8__all__ = [CODE
LOW…nds/app_server/integrations/github/service/__init__.py10__all__ = [CODE
LOW…/app_server/integrations/bitbucket/service/__init__.py7__all__ = [CODE
LOW…ds/app_server/integrations/forgejo/service/__init__.py8__all__ = [CODE
LOWopenhands/app_server/recaptcha/sql_recaptcha_service.py20logger = logging.getLogger(__name__)CODE
LOW…app_server/app_conversation/app_conversation_models.py28__all__ = ['SandboxGroupingStrategy']CODE
LOW…/app_conversation/sql_app_conversation_info_service.py88logger = logging.getLogger(__name__)CODE
LOW…onversation/sql_app_conversation_start_task_service.py51logger = logging.getLogger(__name__)CODE
LOW…app_server/app_conversation/app_conversation_router.py110logger = logging.getLogger(__name__)CODE
LOWopenhands/app_server/services/jwt_service.py24logger = logging.getLogger(__name__)CODE
LOWopenhands/server/types.py14__all__ = [CODE
LOWopenhands/server/shared.py13__all__ = [CODE
LOWopenhands/server/static.py8__all__ = ['SPAStaticFiles']CODE
LOWopenhands/server/app.py15__all__ = ['app', 'mcp_app', 'combine_lifespans', 'authentication_error_handler']CODE
LOWopenhands/server/listen.py8__all__ = ['app']CODE
LOWopenhands/server/middleware.py13__all__ = [CODE
LOWopenhands/server/config/server_config.py11__all__ = ['ServerConfig', 'load_server_config']CODE
LOWopenhands/analytics/__init__.py57__all__ = [CODE
Over-Commented Block53 hits · 51 pts
SeverityFileLineSnippetContext
LOWconfig.template.toml1###################### OpenHands Configuration Example ######################COMMENT
LOWconfig.template.toml21# Debugging enabledCOMMENT
LOWconfig.template.toml41#file_store_path = "/tmp/file_store"COMMENT
LOWconfig.template.toml61# Path to mount the workspaceCOMMENT
LOWconfig.template.toml81COMMENT
LOWconfig.template.toml141[agent.CustomAgent]COMMENT
LOWconfig.template.toml161COMMENT
LOWconfig.template.toml181#platform = ""COMMENT
LOWconfig.template.toml201# Enable GPU support in the runtimeCOMMENT
LOWconfig.template.toml221# volumes = "/my/host/dir:/workspace:rw,/path2:/workspace/path2:ro"COMMENT
LOWconfig.template.toml241##############################################################################COMMENT
LOWconfig.template.toml261COMMENT
LOWconfig.template.toml281#keep_first = 1COMMENT
LOWconfig.template.toml301########################### Kubernetes #######################################COMMENT
LOWconfig.template.toml321#resource_memory_request = "1Gi"COMMENT
LOWconfig.template.toml341# Run the runtime sandbox container in privileged mode for use with docker-in-dockerCOMMENT
LOWconfig.template.toml361# "https://api.example.com/mcp/shttp",COMMENT
LOWconfig.template.toml381# env = {DEBUG = "true"}COMMENT
LOWfrontend/playwright.config.ts61 // name: 'Mobile Safari',COMMENT
LOWfrontend/__tests__/routes/llm-settings.test.tsx281 meData?: OrganizationMember;COMMENT
LOW…ontend/src/contexts/conversation-websocket-context.tsx461 }COMMENT
LOWfrontend/src/routes/settings.tsx81 const fallbackPath = getFirstAvailablePath(isSaas, featureFlags);COMMENT
LOWenterprise/alembic.ini1# A generic, single database configuration.COMMENT
LOWenterprise/alembic.ini21COMMENT
LOWenterprise/tests/unit/__init__.py1# Do not delete this! There are dependencies with top level packages named `tests` that collide with ours,COMMENT
LOWenterprise/tests/unit/test_user_store.py1701 # Verify the user_id and org_id valuesCOMMENT
LOWenterprise/tests/unit/server/routes/test_org_models.py1# Licensed under the Apache License, Version 2.0 (the "License");COMMENT
LOWenterprise/server/middleware.py141 logger.warning(f'JWT decode error: {str(e)}')COMMENT
LOWenterprise/server/middleware.py201 async def _logout(self, request: Request):COMMENT
LOWenterprise/server/routes/auth.py1121COMMENT
LOWenterprise/server/routes/user_provisioning.py101# path live under ``/api/organizations`` so they sit alongside the restCOMMENT
LOWenterprise/server/routes/user_provisioning.py281 # explicit fetch produces a clean 404 instead of a confusing 500COMMENT
LOWenterprise/server/routes/user_provisioning.py381 new_user = await UserStore.create_user(kc_user_id, user_info_dict)COMMENT
LOWenterprise/storage/org_store.py561 async with a_session_maker() as session:COMMENT
LOWenterprise/storage/org_store.py581 # another session cannot create a new orphan betweenCOMMENT
LOWenterprise/storage/org_store.py681COMMENT
LOWopenhands/app_server/constants.py21# Override with: OH_MAX_API_SECRET_NAME_LENGTHCOMMENT
LOWopenhands/app_server/constants.py61)COMMENT
LOWopenhands/app_server/settings/settings_router.py381# Profile name constraints: alphanumerics + . _ - only, 1-64 chars. ThisCOMMENT
LOWopenhands/app_server/settings/settings_models.py321 return base_working_dirCOMMENT
LOWopenhands/app_server/web_client/web_client_models.py21 hide_billing_page: bool = FalseCOMMENT
LOWopenhands/app_server/sandbox/workspace_archive.py401 # siblings, and the 1s ts is not unique — without the conversation segment twoCOMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini1# A generic, single database configuration.COMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini21COMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini41COMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini61# behavior of splitting on spaces and/or commas.COMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini81# are written from script.py.makoCOMMENT
LOWopenhands/app_server/app_lifespan/alembic.ini101# black.options = -l 79 REVISION_SCRIPT_FILENAMECOMMENT
LOW…/app_conversation/sql_app_conversation_info_service.py401 #COMMENT
LOW…app_server/app_conversation/app_conversation_router.py661 # Resolve the saved profile for the agent server: provider-default base_url,COMMENT
LOW…p_conversation/live_status_app_conversation_service.py461 task.agent_server_url = agent_server_urlCOMMENT
LOW.github/workflows/tag-image.yml1# Adds a git-tag name to existing Docker images.COMMENT
LOWopenhands-ui/vitest.shims.d.ts1/// <reference types="@vitest/browser/providers/playwright" />COMMENT
AI Slop Vocabulary15 hits · 31 pts
SeverityFileLineSnippetContext
LOW…terprise/tests/unit/test_billing_stripe_integration.py173 # For testing, just return True directlyCOMMENT
LOWenterprise/tests/unit/test_lite_llm_manager.py1196 # Should not raise an exception, just return earlyCOMMENT
LOW…unit/test_sharing/test_sharing_shared_event_service.py71 # For testing purposes, we'll just use a mock that the EventPage can acceptCOMMENT
LOW…sts/unit/test_sharing/test_aws_shared_event_service.py72 # For testing purposes, we'll just use a mock that the EventPage can acceptCOMMENT
MEDIUM…/unit/server/routes/test_jira_dc_integration_routes.py692# Additional comprehensive tests for better coverageCOMMENT
MEDIUM…sts/unit/server/routes/test_jira_integration_routes.py341# Additional comprehensive tests for better coverageCOMMENT
LOWenterprise/server/utils/url_utils.py23 # for now just use the full hostname except for staging stacks.COMMENT
LOWenterprise/server/services/org_app_settings_service.py116 # No fields to update, just return current settingsCOMMENT
LOWenterprise/server/services/user_app_settings_service.py93 # No fields to update, just return current settingsCOMMENT
LOWenterprise/integrations/github/data_collector.py459 # In this case, we will simply return when the exception occursCOMMENT
MEDIUM…/app_server/test_webhook_router_parent_conversation.py293 # Create existing conversation with comprehensive metadataCOMMENT
MEDIUM…nds/app_server/integrations/bitbucket/service/repos.py28 # Extract workspace and repo from URL using robust URL parsingCOMMENT
LOW…nds/app_server/integrations/bitbucket/service/repos.py182 # If we can't extract the page, just use the next URL as isCOMMENT
MEDIUMopenhands/app_server/services/injector.py13 """Object designed to facilitate dependency injection"""STRING
MEDIUM.github/scripts/update_pr_description.sh24 # For existing PR descriptions, use a more robust approachCOMMENT
AI Structural Patterns25 hits · 21 pts
SeverityFileLineSnippetContext
LOW…se/server/utils/saas_app_conversation_info_injector.py131CODE
LOW…rprise/server/verified_models/verified_model_router.py58CODE
LOWenterprise/server/routes/orgs.py1699CODE
LOWenterprise/server/routes/orgs.py2087CODE
LOWenterprise/server/services/org_conversation_service.py241CODE
LOWenterprise/integrations/utils.py259CODE
LOWenterprise/scripts/standalone_server.py153CODE
LOWopenhands/app_server/utils/async_utils.py18CODE
LOWopenhands/app_server/utils/async_utils.py52CODE
LOWopenhands/app_server/utils/async_utils.py112CODE
LOWopenhands/app_server/utils/async_utils.py118CODE
LOWopenhands/app_server/utils/async_utils.py35CODE
LOWopenhands/app_server/utils/import_utils.py31CODE
LOWopenhands/app_server/user/skills_router.py452CODE
LOW…erver/web_client/default_web_client_config_injector.py300CODE
LOWopenhands/app_server/web_client/web_client_router.py19CODE
LOW…/app_conversation/sql_app_conversation_info_service.py177CODE
LOW…rver/app_conversation/app_conversation_info_service.py20CODE
LOW…pp_server/app_conversation/app_conversation_service.py37CODE
LOW…app_server/app_conversation/app_conversation_router.py224CODE
LOW…app_server/app_conversation/app_conversation_router.py1033CODE
LOW…p_conversation/live_status_app_conversation_service.py285CODE
LOW…p_conversation/live_status_app_conversation_service.py671CODE
LOW…p_conversation/live_status_app_conversation_service.py1630CODE
LOW…p_conversation/live_status_app_conversation_service.py2001CODE
Magic Placeholder Names3 hits · 18 pts
SeverityFileLineSnippetContext
HIGHconfig.template.toml355# {url = "https://api.example.com/mcp/sse", api_key = "your-api-key"}COMMENT
HIGHconfig.template.toml366# api_key = "your-api-key",COMMENT
HIGHopenhands/app_server/sandbox/sandbox_spec_service.py180 export LMNR_PROJECT_API_KEY=your-api-keySTRING
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…onversation/sql_app_conversation_start_task_service.py207 # Return tasks in the same order as requested, with None for missing onesCOMMENT
Dead Code2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM…e/tests/unit/integrations/jira_dc/test_jira_dc_view.py147CODE
MEDIUM…e/tests/unit/integrations/jira_dc/test_jira_dc_view.py170CODE
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWfrontend/public/mockServiceWorker.js124async function handleRequest(event, requestId, requestInterceptedAt) {CODE
LOWtests/unit/utils/test_chunk_localizer.py394 'def helper():',CODE