gitextract_ol6wqqha/ ├── .claude/ │ └── memory/ │ └── feedback_coding_boundaries.md ├── .coderabbit.yaml ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── custom.md │ │ └── feature_request.md │ └── workflows/ │ └── build-desktop-platforms.yml ├── .gitignore ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── build-logic/ │ ├── convention/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── kotlin/ │ │ ├── AndroidApplicationComposeConventionPlugin.kt │ │ ├── AndroidApplicationConventionPlugin.kt │ │ ├── BuildKonfigConventionPlugin.kt │ │ ├── CmpApplicationConventionPlugin.kt │ │ ├── CmpFeatureConventionPlugin.kt │ │ ├── CmpLibraryConventionPlugin.kt │ │ ├── KmpLibraryConventionPlugin.kt │ │ ├── KtlintConventionPlugin.kt │ │ ├── RoomConventionPlugin.kt │ │ └── zed/ │ │ └── rainxch/ │ │ └── githubstore/ │ │ └── convention/ │ │ ├── AndroidCompose.kt │ │ ├── KotlinAndroid.kt │ │ ├── KotlinAndroidTarget.kt │ │ ├── KotlinJvmTarget.kt │ │ ├── KotlinMultiplatform.kt │ │ ├── PathUtil.kt │ │ └── ProjectExt.kt │ ├── gradle.properties │ └── settings.gradle.kts ├── build.gradle.kts ├── composeApp/ │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ ├── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── githubstore/ │ │ │ ├── MainActivity.kt │ │ │ └── app/ │ │ │ └── GithubStoreApp.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_launcher_monochrome.xml │ │ │ └── ic_splash.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── splash.xml │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── filepaths.xml │ │ └── network_security_config.xml │ ├── commonMain/ │ │ ├── composeResources/ │ │ │ └── drawable/ │ │ │ └── ic_github.xml │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── githubstore/ │ │ ├── Main.kt │ │ ├── MainAction.kt │ │ ├── MainState.kt │ │ ├── MainViewModel.kt │ │ └── app/ │ │ ├── components/ │ │ │ ├── RateLimitDialog.kt │ │ │ └── SessionExpiredDialog.kt │ │ ├── deeplink/ │ │ │ └── DeepLinkParser.kt │ │ ├── desktop/ │ │ │ ├── KeyboardNavigation.kt │ │ │ └── KeyboardNavigationEvent.kt │ │ ├── di/ │ │ │ ├── SharedModules.kt │ │ │ ├── ViewModelsModule.kt │ │ │ └── initKoin.kt │ │ └── navigation/ │ │ ├── AppNavigation.kt │ │ ├── BottomNavigation.kt │ │ ├── BottomNavigationUtils.kt │ │ ├── GithubStoreGraph.kt │ │ └── NavigationUtils.kt │ └── jvmMain/ │ ├── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── githubstore/ │ │ ├── DesktopApp.kt │ │ └── DesktopDeepLink.kt │ └── resources/ │ └── logo/ │ └── app_icon.icns ├── core/ │ ├── data/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── schemas/ │ │ │ └── zed.rainxch.core.data.local.db.AppDatabase/ │ │ │ ├── 3.json │ │ │ ├── 4.json │ │ │ ├── 5.json │ │ │ └── 6.json │ │ └── src/ │ │ ├── androidMain/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── aidl/ │ │ │ │ └── zed/ │ │ │ │ └── rainxch/ │ │ │ │ └── core/ │ │ │ │ └── data/ │ │ │ │ └── services/ │ │ │ │ └── shizuku/ │ │ │ │ └── IShizukuInstallerService.aidl │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── core/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── PlatformModule.android.kt │ │ │ ├── local/ │ │ │ │ ├── data_store/ │ │ │ │ │ └── createDataStore.kt │ │ │ │ └── db/ │ │ │ │ ├── initDatabase.kt │ │ │ │ └── migrations/ │ │ │ │ ├── MIGRATION_1_2.kt │ │ │ │ ├── MIGRATION_2_3.kt │ │ │ │ ├── MIGRATION_3_4.kt │ │ │ │ ├── MIGRATION_4_5.kt │ │ │ │ └── MIGRATION_5_6.kt │ │ │ ├── network/ │ │ │ │ └── HttpClientFactory.android.kt │ │ │ ├── services/ │ │ │ │ ├── AndroidDownloader.kt │ │ │ │ ├── AndroidFileLocationsProvider.kt │ │ │ │ ├── AndroidInstaller.kt │ │ │ │ ├── AndroidInstallerInfoExtractor.kt │ │ │ │ ├── AndroidLocalizationManager.kt │ │ │ │ ├── AndroidPackageMonitor.kt │ │ │ │ ├── AndroidUpdateScheduleManager.kt │ │ │ │ ├── AutoUpdateWorker.kt │ │ │ │ ├── BootReceiver.kt │ │ │ │ ├── PackageEventReceiver.kt │ │ │ │ ├── UpdateCheckWorker.kt │ │ │ │ ├── UpdateScheduler.kt │ │ │ │ └── shizuku/ │ │ │ │ ├── AndroidInstallerStatusProvider.kt │ │ │ │ ├── ShizukuInstallerServiceImpl.kt │ │ │ │ ├── ShizukuInstallerWrapper.kt │ │ │ │ ├── ShizukuServiceManager.kt │ │ │ │ └── model/ │ │ │ │ └── ShizukuStatus.kt │ │ │ └── utils/ │ │ │ ├── AndroidAppLauncher.kt │ │ │ ├── AndroidBrowserHelper.kt │ │ │ ├── AndroidClipboardHelper.kt │ │ │ └── AndroidShareManager.kt │ │ ├── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── core/ │ │ │ └── data/ │ │ │ ├── cache/ │ │ │ │ └── CacheManager.kt │ │ │ ├── data_source/ │ │ │ │ ├── TokenStore.kt │ │ │ │ └── impl/ │ │ │ │ └── DefaultTokenStore.kt │ │ │ ├── di/ │ │ │ │ ├── PlatformModule.kt │ │ │ │ └── SharedModule.kt │ │ │ ├── dto/ │ │ │ │ ├── AssetNetwork.kt │ │ │ │ ├── GitHubStarredResponse.kt │ │ │ │ ├── GithubDeviceStartDto.kt │ │ │ │ ├── GithubDeviceTokenErrorDto.kt │ │ │ │ ├── GithubDeviceTokenSuccessDto.kt │ │ │ │ ├── GithubOwnerNetworkModel.kt │ │ │ │ ├── GithubRepoNetworkModel.kt │ │ │ │ ├── GithubRepoSearchResponse.kt │ │ │ │ ├── OwnerNetwork.kt │ │ │ │ ├── ReleaseNetwork.kt │ │ │ │ ├── RepoByIdNetwork.kt │ │ │ │ ├── RepoInfoNetwork.kt │ │ │ │ └── UserProfileNetwork.kt │ │ │ ├── local/ │ │ │ │ ├── data_store/ │ │ │ │ │ └── createDataStoreCore.kt │ │ │ │ └── db/ │ │ │ │ ├── AppDatabase.kt │ │ │ │ ├── dao/ │ │ │ │ │ ├── CacheDao.kt │ │ │ │ │ ├── FavoriteRepoDao.kt │ │ │ │ │ ├── InstalledAppDao.kt │ │ │ │ │ ├── SeenRepoDao.kt │ │ │ │ │ ├── StarredRepoDao.kt │ │ │ │ │ └── UpdateHistoryDao.kt │ │ │ │ └── entities/ │ │ │ │ ├── CacheEntryEntity.kt │ │ │ │ ├── FavoriteRepoEntity.kt │ │ │ │ ├── InstalledAppEntity.kt │ │ │ │ ├── SeenRepoEntity.kt │ │ │ │ ├── StarredRepositoryEntity.kt │ │ │ │ └── UpdateHistoryEntity.kt │ │ │ ├── logging/ │ │ │ │ └── KermitLogger.kt │ │ │ ├── mappers/ │ │ │ │ ├── AssetNetwork.kt │ │ │ │ ├── FavouriteRepoMappers.kt │ │ │ │ ├── GithubAuthMappers.kt │ │ │ │ ├── GithubRepoMapper.kt │ │ │ │ ├── InstalledAppsMappers.kt │ │ │ │ ├── ReleaseNetwork.kt │ │ │ │ ├── StarredRepoMapper.kt │ │ │ │ └── UpdateHistoryMapper.kt │ │ │ ├── network/ │ │ │ │ ├── GitHubClientProvider.kt │ │ │ │ ├── HttpClientFactory.kt │ │ │ │ ├── ProxyManager.kt │ │ │ │ └── interceptor/ │ │ │ │ ├── RateLimitInterceptor.kt │ │ │ │ └── UnauthorizedInterceptor.kt │ │ │ ├── repository/ │ │ │ │ ├── AuthenticationStateImpl.kt │ │ │ │ ├── FavouritesRepositoryImpl.kt │ │ │ │ ├── InstalledAppsRepositoryImpl.kt │ │ │ │ ├── ProxyRepositoryImpl.kt │ │ │ │ ├── RateLimitRepositoryImpl.kt │ │ │ │ ├── SeenReposRepositoryImpl.kt │ │ │ │ ├── StarredRepositoryImpl.kt │ │ │ │ └── TweaksRepositoryImpl.kt │ │ │ └── services/ │ │ │ ├── FileLocationsProvider.kt │ │ │ └── LocalizationManager.kt │ │ └── jvmMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── core/ │ │ └── data/ │ │ ├── di/ │ │ │ └── PlatformModule.jvm.kt │ │ ├── local/ │ │ │ ├── data_store/ │ │ │ │ └── createDataStore.kt │ │ │ └── db/ │ │ │ └── initDatabase.kt │ │ ├── model/ │ │ │ ├── LinuxPackageType.kt │ │ │ └── LinuxTerminal.kt │ │ ├── network/ │ │ │ └── HttpClientFactory.jvm.kt │ │ ├── services/ │ │ │ ├── DesktopDownloader.kt │ │ │ ├── DesktopFileLocationsProvider.kt │ │ │ ├── DesktopInstaller.kt │ │ │ ├── DesktopInstallerInfoExtractor.kt │ │ │ ├── DesktopInstallerStatusProvider.kt │ │ │ ├── DesktopLocalizationManager.kt │ │ │ ├── DesktopPackageMonitor.kt │ │ │ └── DesktopUpdateScheduleManager.kt │ │ └── utils/ │ │ ├── DesktopAppLauncher.kt │ │ ├── DesktopBrowserHelper.kt │ │ ├── DesktopClipboardHelper.kt │ │ └── DesktopShareManager.kt │ ├── domain/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ ├── AndroidManifest.xml │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── core/ │ │ │ └── domain/ │ │ │ └── Platform.android.kt │ │ ├── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── core/ │ │ │ └── domain/ │ │ │ ├── Platform.kt │ │ │ ├── logging/ │ │ │ │ └── GitHubStoreLogger.kt │ │ │ ├── model/ │ │ │ │ ├── ApkPackageInfo.kt │ │ │ │ ├── AppTheme.kt │ │ │ │ ├── AssetArchitectureMatcher.kt │ │ │ │ ├── DeviceApp.kt │ │ │ │ ├── DiscoveryPlatform.kt │ │ │ │ ├── DownloadProgress.kt │ │ │ │ ├── ExportedApp.kt │ │ │ │ ├── FavoriteRepo.kt │ │ │ │ ├── FontTheme.kt │ │ │ │ ├── GithubAsset.kt │ │ │ │ ├── GithubDeviceStart.kt │ │ │ │ ├── GithubDeviceTokenError.kt │ │ │ │ ├── GithubDeviceTokenSuccess.kt │ │ │ │ ├── GithubRelease.kt │ │ │ │ ├── GithubRepoSummary.kt │ │ │ │ ├── GithubUser.kt │ │ │ │ ├── GithubUserProfile.kt │ │ │ │ ├── InstallSource.kt │ │ │ │ ├── InstalledApp.kt │ │ │ │ ├── InstallerType.kt │ │ │ │ ├── PackageChangeType.kt │ │ │ │ ├── PaginatedDiscoveryRepositories.kt │ │ │ │ ├── Platform.kt │ │ │ │ ├── ProxyConfig.kt │ │ │ │ ├── RateLimitException.kt │ │ │ │ ├── RateLimitInfo.kt │ │ │ │ ├── ShizukuAvailability.kt │ │ │ │ ├── StarredRepository.kt │ │ │ │ ├── SystemArchitecture.kt │ │ │ │ ├── SystemPackageInfo.kt │ │ │ │ └── UpdateHistory.kt │ │ │ ├── network/ │ │ │ │ └── Downloader.kt │ │ │ ├── repository/ │ │ │ │ ├── AuthenticationState.kt │ │ │ │ ├── FavouritesRepository.kt │ │ │ │ ├── InstalledAppsRepository.kt │ │ │ │ ├── ProxyRepository.kt │ │ │ │ ├── RateLimitRepository.kt │ │ │ │ ├── SeenReposRepository.kt │ │ │ │ ├── StarredRepository.kt │ │ │ │ └── TweaksRepository.kt │ │ │ ├── system/ │ │ │ │ ├── Installer.kt │ │ │ │ ├── InstallerInfoExtractor.kt │ │ │ │ ├── InstallerStatusProvider.kt │ │ │ │ ├── PackageMonitor.kt │ │ │ │ └── UpdateScheduleManager.kt │ │ │ ├── use_cases/ │ │ │ │ └── SyncInstalledAppsUseCase.kt │ │ │ └── utils/ │ │ │ ├── AppLauncher.kt │ │ │ ├── BrowserHelper.kt │ │ │ ├── ClipboardHelper.kt │ │ │ └── ShareManager.kt │ │ └── jvmMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── core/ │ │ └── domain/ │ │ └── Platform.jvm.kt │ └── presentation/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── core/ │ │ └── presentation/ │ │ ├── theme/ │ │ │ └── Theme.android.kt │ │ └── utils/ │ │ ├── ApplyAndroidSystemBars.android.kt │ │ └── isLiquidFrostAvailable.android.kt │ ├── commonMain/ │ │ ├── composeResources/ │ │ │ ├── drawable/ │ │ │ │ ├── ic_github.xml │ │ │ │ ├── ic_platform_android.xml │ │ │ │ ├── ic_platform_linux.xml │ │ │ │ ├── ic_platform_macos.xml │ │ │ │ └── ic_platform_windows.xml │ │ │ ├── values/ │ │ │ │ └── strings.xml │ │ │ ├── values-ar/ │ │ │ │ └── strings-ar.xml │ │ │ ├── values-bn/ │ │ │ │ └── strings-bn.xml │ │ │ ├── values-es/ │ │ │ │ └── strings-es.xml │ │ │ ├── values-fr/ │ │ │ │ └── strings-fr.xml │ │ │ ├── values-hi/ │ │ │ │ └── strings-hi.xml │ │ │ ├── values-it/ │ │ │ │ └── strings-it.xml │ │ │ ├── values-ja/ │ │ │ │ └── strings-ja.xml │ │ │ ├── values-ko/ │ │ │ │ └── strings-ko.xml │ │ │ ├── values-pl/ │ │ │ │ └── strings-pl.xml │ │ │ ├── values-ru/ │ │ │ │ └── strings-ru.xml │ │ │ ├── values-tr/ │ │ │ │ └── strings-tr.xml │ │ │ └── values-zh-rCN/ │ │ │ └── strings-zh-rCN.xml │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── core/ │ │ └── presentation/ │ │ ├── components/ │ │ │ ├── ExpressiveCard.kt │ │ │ ├── GitHubStoreImage.kt │ │ │ ├── GithubStoreButton.kt │ │ │ └── RepositoryCard.kt │ │ ├── locals/ │ │ │ ├── LocalBottomNavigationHeight.kt │ │ │ └── LocalBottomNavigationLiquid.kt │ │ ├── model/ │ │ │ ├── DiscoveryRepositoryUi.kt │ │ │ ├── GithubRepoSummaryUi.kt │ │ │ └── GithubUserUi.kt │ │ ├── theme/ │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── utils/ │ │ ├── AppThemeUtil.kt │ │ ├── ApplyAndroidSystemBars.kt │ │ ├── CountFormatter.kt │ │ ├── DiscoveryPlatformUiResources.kt │ │ ├── GithubRepoSummaryMappers.kt │ │ ├── GithubUserMappers.kt │ │ ├── ObserveAsEvents.kt │ │ ├── TimeFormatters.kt │ │ └── isLiquidFrostAvailable.kt │ └── jvmMain/ │ └── kotlin/ │ └── zed/ │ └── rainxch/ │ └── core/ │ └── presentation/ │ ├── theme/ │ │ └── Theme.jvm.kt │ └── utils/ │ ├── ApplyAndroidSystemBars.jvm.kt │ └── isLiquidFrostAvailable.jvm.kt ├── docs/ │ ├── README-BN.md │ ├── README-ES.md │ ├── README-FR.md │ ├── README-HI.md │ ├── README-IT.md │ ├── README-JA.md │ ├── README-KR.md │ ├── README-PL.md │ ├── README-RU.md │ ├── README-TR.md │ └── README-ZH.md ├── fastlane/ │ └── metadata/ │ └── android/ │ └── en-US/ │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── feature/ │ ├── apps/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── apps/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ └── repository/ │ │ │ └── AppsRepositoryImpl.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── apps/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ ├── GithubRepoInfo.kt │ │ │ │ └── ImportResult.kt │ │ │ └── repository/ │ │ │ └── AppsRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── apps/ │ │ └── presentation/ │ │ ├── AppsAction.kt │ │ ├── AppsEvent.kt │ │ ├── AppsRoot.kt │ │ ├── AppsState.kt │ │ ├── AppsViewModel.kt │ │ ├── components/ │ │ │ └── LinkAppBottomSheet.kt │ │ ├── mappers/ │ │ │ ├── DeviceAppMapper.kt │ │ │ ├── GithubAssetMapper.kt │ │ │ ├── GithubRepoInfoMapper.kt │ │ │ └── InstalledAppMapper.kt │ │ └── model/ │ │ ├── AppItem.kt │ │ ├── DeviceAppUi.kt │ │ ├── GithubAssetUi.kt │ │ ├── GithubRepoInfoUi.kt │ │ ├── GithubUserUi.kt │ │ ├── InstalledAppUi.kt │ │ ├── UpdateAllProgress.kt │ │ └── UpdateState.kt │ ├── auth/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── auth/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── network/ │ │ │ │ └── GitHubAuthApi.kt │ │ │ └── repository/ │ │ │ └── AuthenticationRepositoryImpl.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── auth/ │ │ │ └── domain/ │ │ │ └── repository/ │ │ │ └── AuthenticationRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── auth/ │ │ └── presentation/ │ │ ├── AuthenticationAction.kt │ │ ├── AuthenticationEvents.kt │ │ ├── AuthenticationRoot.kt │ │ ├── AuthenticationState.kt │ │ ├── AuthenticationViewModel.kt │ │ ├── mapper/ │ │ │ └── GithubDeviceStartMapper.kt │ │ └── model/ │ │ ├── AuthLoginState.kt │ │ └── GithubDeviceStartUi.kt │ ├── details/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── details/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── dto/ │ │ │ │ └── AttestationsResponse.kt │ │ │ ├── model/ │ │ │ │ └── ReadmeAttempt.kt │ │ │ ├── repository/ │ │ │ │ ├── DetailsRepositoryImpl.kt │ │ │ │ └── TranslationRepositoryImpl.kt │ │ │ └── utils/ │ │ │ ├── ReadmeLocalizationHelper.kt │ │ │ └── preprocessMarkdown.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── details/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ ├── ReleaseCategory.kt │ │ │ │ ├── RepoStats.kt │ │ │ │ ├── SupportedLanguage.kt │ │ │ │ └── TranslationResult.kt │ │ │ └── repository/ │ │ │ ├── DetailsRepository.kt │ │ │ └── TranslationRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── details/ │ │ └── presentation/ │ │ ├── DetailsAction.kt │ │ ├── DetailsEvent.kt │ │ ├── DetailsRoot.kt │ │ ├── DetailsState.kt │ │ ├── DetailsViewModel.kt │ │ ├── components/ │ │ │ ├── AppHeader.kt │ │ │ ├── LanguagePicker.kt │ │ │ ├── ReleaseAssetsPicker.kt │ │ │ ├── SmartInstallButton.kt │ │ │ ├── StatItem.kt │ │ │ ├── TranslationControls.kt │ │ │ ├── VersionPicker.kt │ │ │ ├── VersionTypePicker.kt │ │ │ ├── sections/ │ │ │ │ ├── About.kt │ │ │ │ ├── Header.kt │ │ │ │ ├── Logs.kt │ │ │ │ ├── Owner.kt │ │ │ │ ├── ReportIssue.kt │ │ │ │ ├── Stats.kt │ │ │ │ └── WhatsNew.kt │ │ │ └── states/ │ │ │ └── ErrorState.kt │ │ ├── model/ │ │ │ ├── AttestationStatus.kt │ │ │ ├── DownloadStage.kt │ │ │ ├── InstallLogItem.kt │ │ │ ├── LogResult.kt │ │ │ ├── ShowDowngradeWarning.kt │ │ │ ├── SigningKeyWarning.kt │ │ │ ├── SupportedLanguages.kt │ │ │ ├── TranslationState.kt │ │ │ └── TranslationTarget.kt │ │ └── utils/ │ │ ├── LocalTopbarLiquidState.kt │ │ ├── LogResultAsText.kt │ │ ├── MarkdownImageTransformer.kt │ │ ├── MarkdownUtils.kt │ │ └── SystemArchitecture.kt │ ├── dev-profile/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── devprofile/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── dto/ │ │ │ │ ├── GitHubRepoResponse.kt │ │ │ │ └── GitHubUserResponse.kt │ │ │ ├── mappers/ │ │ │ │ ├── GitHubRepoToDomain.kt │ │ │ │ └── GitHubUserToDomain.kt │ │ │ └── repository/ │ │ │ └── DeveloperProfileRepositoryImpl.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── devprofile/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ ├── DeveloperProfile.kt │ │ │ │ ├── DeveloperRepository.kt │ │ │ │ ├── RepoFilterType.kt │ │ │ │ └── RepoSortType.kt │ │ │ └── repository/ │ │ │ └── DeveloperProfileRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── devprofile/ │ │ └── presentation/ │ │ ├── DeveloperProfileAction.kt │ │ ├── DeveloperProfileRoot.kt │ │ ├── DeveloperProfileState.kt │ │ ├── DeveloperProfileViewModel.kt │ │ └── components/ │ │ ├── DeveloperRepoItem.kt │ │ ├── FilterSortControls.kt │ │ ├── ProfileInfoCard.kt │ │ └── StatsRow.kt │ ├── favourites/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ └── androidMain/ │ │ │ └── AndroidManifest.xml │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ └── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── favourites/ │ │ └── presentation/ │ │ ├── FavouritesAction.kt │ │ ├── FavouritesRoot.kt │ │ ├── FavouritesState.kt │ │ ├── FavouritesViewModel.kt │ │ ├── components/ │ │ │ └── FavouriteRepositoryItem.kt │ │ ├── mappers/ │ │ │ └── FavouriteRepositoryMapper.kt │ │ └── model/ │ │ └── FavouriteRepository.kt │ ├── home/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── home/ │ │ │ └── data/ │ │ │ ├── data_source/ │ │ │ │ ├── CachedRepositoriesDataSource.kt │ │ │ │ └── impl/ │ │ │ │ └── CachedRepositoriesDataSourceImpl.kt │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── dto/ │ │ │ │ ├── CachedGithubOwner.kt │ │ │ │ ├── CachedGithubRepoSummary.kt │ │ │ │ └── CachedRepoResponse.kt │ │ │ ├── mappers/ │ │ │ │ └── CachedGithubRepoSummaryMappers.kt │ │ │ └── repository/ │ │ │ └── HomeRepositoryImpl.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── home/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ └── HomeCategory.kt │ │ │ └── repository/ │ │ │ └── HomeRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── home/ │ │ └── presentation/ │ │ ├── HomeAction.kt │ │ ├── HomeEvent.kt │ │ ├── HomeRoot.kt │ │ ├── HomeState.kt │ │ ├── HomeViewModel.kt │ │ ├── components/ │ │ │ └── HomeFilterChips.kt │ │ ├── locals/ │ │ │ └── LocalHomeTopBarLiquid.kt │ │ └── utils/ │ │ └── HomeCategoryMapper.kt │ ├── profile/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── profile/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── mappers/ │ │ │ │ └── UserProfileMappers.kt │ │ │ └── repository/ │ │ │ └── ProfileRepositoryImpl.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── profile/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ └── UserProfile.kt │ │ │ └── repository/ │ │ │ └── ProfileRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── profile/ │ │ └── presentation/ │ │ ├── ProfileAction.kt │ │ ├── ProfileEvent.kt │ │ ├── ProfileRoot.kt │ │ ├── ProfileState.kt │ │ ├── ProfileViewModel.kt │ │ ├── SponsorScreen.kt │ │ ├── components/ │ │ │ ├── LogoutDialog.kt │ │ │ ├── SectionText.kt │ │ │ └── sections/ │ │ │ ├── About.kt │ │ │ ├── Account.kt │ │ │ ├── AccountSection.kt │ │ │ ├── Appearance.kt │ │ │ ├── Installation.kt │ │ │ ├── Network.kt │ │ │ ├── Options.kt │ │ │ ├── Others.kt │ │ │ ├── ProfileSection.kt │ │ │ └── SettingsSection.kt │ │ └── model/ │ │ └── ProxyType.kt │ ├── search/ │ │ ├── CLAUDE.md │ │ ├── data/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── search/ │ │ │ └── data/ │ │ │ ├── di/ │ │ │ │ └── SharedModule.kt │ │ │ ├── dto/ │ │ │ │ ├── AssetNetworkModel.kt │ │ │ │ └── GithubReleaseNetworkModel.kt │ │ │ ├── repository/ │ │ │ │ └── SearchRepositoryImpl.kt │ │ │ └── utils/ │ │ │ └── LruCache.kt │ │ ├── domain/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── commonMain/ │ │ │ └── kotlin/ │ │ │ └── zed/ │ │ │ └── rainxch/ │ │ │ └── domain/ │ │ │ ├── model/ │ │ │ │ ├── ProgrammingLanguage.kt │ │ │ │ ├── SortBy.kt │ │ │ │ └── SortOrder.kt │ │ │ └── repository/ │ │ │ └── SearchRepository.kt │ │ └── presentation/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ └── AndroidManifest.xml │ │ └── commonMain/ │ │ └── kotlin/ │ │ └── zed/ │ │ └── rainxch/ │ │ └── search/ │ │ └── presentation/ │ │ ├── SearchAction.kt │ │ ├── SearchEvent.kt │ │ ├── SearchRoot.kt │ │ ├── SearchState.kt │ │ ├── SearchViewModel.kt │ │ ├── components/ │ │ │ ├── LanguageFilterBottomSheet.kt │ │ │ └── SortByBottomSheet.kt │ │ ├── mappers/ │ │ │ ├── PlatformLanguageMappers.kt │ │ │ ├── SearchPlatformMappers.kt │ │ │ ├── SortByMappers.kt │ │ │ └── SortOrderMapper.kt │ │ ├── model/ │ │ │ ├── ParsedGithubLink.kt │ │ │ ├── ProgrammingLanguageUi.kt │ │ │ ├── SearchPlatformUi.kt │ │ │ ├── SortByUi.kt │ │ │ └── SortOrderUi.kt │ │ └── utils/ │ │ ├── GithubUrlParser.kt │ │ ├── ProgrammingLanguageMapper.kt │ │ ├── SortByMapper.kt │ │ └── SortOrderMapper.kt │ └── starred/ │ ├── CLAUDE.md │ ├── data/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── androidMain/ │ │ └── AndroidManifest.xml │ ├── domain/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── androidMain/ │ │ └── AndroidManifest.xml │ └── presentation/ │ ├── .gitignore │ ├── build.gradle.kts │ └── src/ │ ├── androidMain/ │ │ └── AndroidManifest.xml │ └── commonMain/ │ └── kotlin/ │ └── zed/ │ └── rainxch/ │ └── starred/ │ └── presentation/ │ ├── StarredReposAction.kt │ ├── StarredReposRoot.kt │ ├── StarredReposState.kt │ ├── StarredReposViewModel.kt │ ├── components/ │ │ └── StarredRepositoryItem.kt │ ├── mappers/ │ │ └── StarredRepoToUiMapper.kt │ ├── model/ │ │ └── StarredRepositoryUi.kt │ └── utils/ │ └── TimeFormatUtils.kt ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── packaging/ │ └── flatpak/ │ ├── README.md │ ├── disable-android-for-flatpak.sh │ ├── flatpak-sources.json │ ├── githubstore.sh │ ├── zed.rainxch.githubstore.desktop │ ├── zed.rainxch.githubstore.metainfo.xml │ └── zed.rainxch.githubstore.yml └── settings.gradle.kts