Repository Analysis

hydralauncher/hydra

Hydra Launcher is an open-source gaming platform created to be the single tool that you need

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-29
Last Push
15,831
Stars
TypeScript
Language
165,714
Lines of Code
980
Files
202
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 0MEDIUM 7LOW 193

Pattern Findings

202 matches across 7 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers177 hits · 189 pts
SeverityFileLineSnippet
LOWpython_rpc/torrent_downloader.py175 def _set_selected_file_priorities(self, selected_indices: List[int], files_storage):
LOWpython_rpc/torrent_downloader.py331 def _get_torrent_info_if_available(self, status):
LOWpython_rpc/setup.py7def get_windows_openssl_includes():
LOWpython_rpc/main.py199def map_downloader_error_code(error: Exception):
LOWpython_rpc/main.py233def normalize_metadata_timeout_ms(value):
LOWpython_rpc/main.py250def validate_rpc_password_value(password: Optional[str]):
LOW…erer/src/context/game-details/game-details.context.tsx69export function GameDetailsContextProvider({
LOW…erer/src/context/user-profile/user-profile.context.tsx55export function UserProfileContextProvider({
LOW…omponents/sidebar/sidebar-adding-custom-game-modal.tsx20export function SidebarAddingCustomGameModal({
LOW…ents/notification/achievement-notification-overlay.tsx27export function AchievementNotificationOverlay() {
LOW…achievements/notification/achievement-notification.tsx17export function AchievementNotificationItem({
LOWsrc/renderer/src/hooks/use-download-options-listener.ts5export function useDownloadOptionsListener() {
LOW…r/src/pages/settings/settings-context-integrations.tsx4export function SettingsContextIntegrations() {
LOW…/src/pages/settings/settings-context-notifications.tsx19export function SettingsContextNotifications() {
LOW…/src/pages/settings/settings-context-compatibility.tsx20export function SettingsContextCompatibility() {
LOW…ages/settings/download-directory-replacement-modal.tsx16export function DownloadDirectoryReplacementModal({
LOW…c/pages/settings/settings-context-content-gameplay.tsx11export function SettingsContextContentGameplay() {
LOW…ages/game-details/modals/remove-from-library-modal.tsx13export function RemoveGameFromLibraryModal({
LOW…ails/modals/game-options-modal/hydra-cloud-section.tsx14export function HydraCloudSettingsSection({
LOW…ls/modals/game-options-modal/compatibility-section.tsx36export function CompatibilitySettingsSection({
LOW…me-artifact-modal/cloud-sync-rename-artifact-modal.tsx20export function CloudSyncRenameArtifactModal({
LOW…ground-image-button/upload-background-image-button.tsx13export function UploadBackgroundImageButton() {
LOW…r/src/pages/catalogue/proton-compatibility-section.tsx22export function ProtonCompatibilitySection({
LOWsrc/shared/language-flags.ts53export function getLanguageFlagCountryCode(languageKey: string) {
LOWsrc/shared/language-flags.ts59export function getFlagEmojiFromCountryCode(countryCode: string | null) {
LOWsrc/shared/download-directories.ts202export function resolveDownloadDirectories(
LOWsrc/shared/download-directories.ts254export function getDownloadDirectoryPreferences(
LOWsrc/shared/download-directories.ts272export function setDefaultDownloadDirectory(
LOWsrc/shared/download-directories.ts314export function prepareDefaultDownloadPathSync(
LOWsrc/shared/download-directories.ts431export function replaceSavedDownloadDirectoryAndSetDefault(
LOWsrc/shared/download-directories.ts481export function addOptionalDownloadDirectory(
LOWsrc/shared/download-directories.ts564export function getDownloadDirectoryTitle(path: string) {
LOWsrc/big-picture/src/layout/navigation.ts34export function getBigPictureSidebarLibraryGameFocusId(
LOWsrc/big-picture/src/layout/navigation.ts40export function normalizeBigPicturePathname(pathname: string) {
LOWsrc/big-picture/src/layout/navigation.ts54export function getBigPictureGameRouteMatch(
LOWsrc/big-picture/src/layout/navigation.ts68export function getBigPictureSidebarItemIdFromPathname(pathname: string) {
LOWsrc/big-picture/src/layout/navigation.ts101export function getBigPictureContentEntryRegionIdFromPathname(
LOWsrc/big-picture/src/layout/navigation.ts133export function getBigPictureContentRouteEntryTargetFromPathname(
LOWsrc/big-picture/src/layout/navigation.ts154export function getBigPictureContentSidebarReturnTargetFromPathname(
LOWsrc/big-picture/src/stores/downloads.store.ts117export function initializeBigPictureDownloadsStore() {
LOW…mponents/providers/navigation-auto-scroll.provider.tsx5export function NavigationAutoScrollBridge() {
LOW…src/components/providers/navigation-input.provider.tsx21function createInitialHoldSessions(): Record<HoldManagedButton, HoldSession> {
LOW…src/components/providers/navigation-input.provider.tsx77function shouldIgnoreKeyboardNavigation(event: KeyboardEvent) {
LOW…-picture/src/components/modals/download-game/index.tsx137function getSourceViewportSlideMetrics(
LOW…-picture/src/components/modals/download-game/index.tsx176function syncSourceThresholdFocusScroll(
LOW…-picture/src/components/modals/download-game/index.tsx209function useSourceThresholdFocusScroll(emblaApi: SourceCarouselEmblaApi) {
LOW…ts/skeletons/download-source-option-skeleton/index.tsx5export function DownloadSourceOptionSkeleton() {
LOW…cture/src/components/common/virtual-keyboard/index.tsx202function findClosestLayoutKeyByPosition(
LOW…cture/src/components/common/virtual-keyboard/index.tsx261function getKeyboardAvoidanceScrollContainer(element: HTMLElement) {
LOW…cture/src/components/common/virtual-keyboard/index.tsx275function scrollTargetAboveKeyboard(
LOW…cture/src/components/common/virtual-keyboard/index.tsx312function isTargetBehindKeyboardArea(
LOW…cture/src/components/common/virtual-keyboard/index.tsx378function restoreInputSelectionAfterRender(
LOW…cture/src/components/common/virtual-keyboard/index.tsx465function insertContentEditableText(target: HTMLElement, text: string) {
LOW…picture/src/components/common/focus-carousel/index.tsx72function getDefaultItemNavigationOverrides(
LOW…ig-picture/src/components/common/diagnostics/index.tsx367function getConnectedGamepadsLabel(
LOW…ig-picture/src/components/common/diagnostics/index.tsx919function NavigationDiagnosticsPanel() {
LOW…mponents/common/horizontal-library-game-card/index.tsx34export function HorizontalLibraryGameCard({
LOW…big-picture/src/components/pages/library/navigation.ts25export function getLibraryFiltersTabFocusId(tabValue: string) {
LOW…big-picture/src/components/pages/library/navigation.ts38export function getLibraryFocusGridItemId(gameId: string) {
LOW…big-picture/src/components/pages/library/navigation.ts42export function getFirstLibraryFocusGridItemId(gameId?: string | null) {
117 more matches not shown…
Decorative Section Separators6 hits · 22 pts
SeverityFileLineSnippet
MEDIUMsrc/main/events/library/transfer-game-files.ts11// ── Helpers ─────────────────────────────────────────────────────────────────
MEDIUMsrc/main/events/library/transfer-game-files.ts21// ── State ───────────────────────────────────────────────────────────────────
MEDIUMsrc/main/events/library/transfer-game-files.ts31// ── Steam‑style copy engine ─────────────────────────────────────────────────
MEDIUMsrc/main/events/library/transfer-game-files.ts177// ── Helper functions for transfer validation ────────────────────────────────
MEDIUMsrc/main/events/library/transfer-game-files.ts303// ── MAIN TRANSFER EVENT ─────────────────────────────────────────────────────
MEDIUMsrc/main/events/library/transfer-game-files.ts413// ── CANCEL ────────────────────────────────────────────────────────────────────
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippet
CRITICALsrc/main/services/window-manager.ts188 this.mainWindow.webContents.session.webRequest.onBeforeSendHeaders(
CRITICALsrc/main/services/window-manager.ts218 this.mainWindow.webContents.session.webRequest.onHeadersReceived(
Excessive Try-Catch Wrapping11 hits · 12 pts
SeverityFileLineSnippet
LOWpython_rpc/torrent_downloader.py126 except Exception:
LOWpython_rpc/torrent_downloader.py259 except Exception:
LOWpython_rpc/main.py295 except Exception:
LOWpython_rpc/main.py320 except Exception as error:
LOWpython_rpc/main.py334 except Exception as error:
LOWpython_rpc/main.py381 except Exception as error:
LOWpython_rpc/main.py422 except Exception as error:
LOWpython_rpc/main.py518 except Exception as error:
LOWpython_rpc/main.py588 except Exception as error:
LOWpython_rpc/main.py603 except Exception:
MEDIUMpython_rpc/main.py224def normalize_download_limit(value):
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippet
LOW…chievements/notification/achievement-notification.scss301 animation: trophy-out 900ms ease-in-out;
LOW…chievements/notification/achievement-notification.scss321 #503808 83.6%,
LOW…chievements/notification/achievement-notification.scss461 #d5900f 26.41%,
LOW…chievements/notification/achievement-notification.scss481 color: #fff;
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWpython_rpc/main.py559def handle_request(request_payload: dict):
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippet
LOWpython_rpc/main.py429