Files
Purefin/graphify-out/GRAPH_REPORT.md
Barnabas Balogh a2121afc2d chore(graphify): add knowledge graph output for codebase exploration
Includes interactive graph visualization (graph.html), audit report
(GRAPH_REPORT.md), raw graph data (graph.json), and extraction
caches built from 349 source files (2741 nodes, 4999 edges).
2026-07-04 09:19:44 +00:00

37 KiB

Graph Report - . (2026-07-04)

Corpus Check

  • 349 files · ~84,907 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 2741 nodes · 4999 edges · 190 communities (172 shown, 18 thin omitted)
  • Extraction: 89% EXTRACTED · 11% INFERRED · 0% AMBIGUOUS · INFERRED: 552 edges (avg confidence: 0.81)
  • Token cost: 0 input · 0 output

Community Hubs (Navigation)

God Nodes (most connected - your core abstractions)

  1. PlayerManager - 51 edges
  2. MediaUiModel - 41 edges
  3. JellyfinApiClient - 39 edges
  4. Icon - 38 edges
  5. FakeDeviceProfileCapabilities - 34 edges
  6. OfflineLocalMediaRepository - 32 edges
  7. AndroidDeviceProfileCapabilities - 32 edges
  8. Route - 31 edges
  9. DeviceProfileCapabilities - 30 edges
  10. OfflineRoomMediaLocalDataSource - 30 edges

Surprising Connections (you probably didn't know these)

  • tvEpisodeSection() --calls--> SeriesDto [INFERRED] app-tv/src/main/java/hu/bbara/purefin/navigation/TvRouteEntryBuilder.kt → core/src/main/java/hu/bbara/purefin/core/navigation/SeriesDto.kt
  • PosterCardContent() --calls--> UnwatchedEpisodeBadge() [INFERRED] app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt → core-ui/src/main/java/hu/bbara/purefin/ui/common/badge/UnwatchedEpisodeBadge.kt
  • PosterCardContent() --calls--> WatchStateBadge() [INFERRED] app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt → core-ui/src/main/java/hu/bbara/purefin/ui/common/badge/WatchStateBadge.kt
  • PosterCardContent() --calls--> PurefinAsyncImage() [INFERRED] app-tv/src/main/java/hu/bbara/purefin/ui/common/card/PosterCard.kt → core-ui/src/main/java/hu/bbara/purefin/ui/common/image/PurefinAsyncImage.kt
  • TvMediaDetailBodyBox() --calls--> PurefinAsyncImage() [INFERRED] app-tv/src/main/java/hu/bbara/purefin/ui/common/media/MediaDetailShell.kt → core-ui/src/main/java/hu/bbara/purefin/ui/common/image/PurefinAsyncImage.kt

Import Cycles

  • None detected.

Hyperedges (group relationships)

  • Purefin Tech Stack — readme_kotlin, readme_jetpack_compose, readme_media3_exoplayer, readme_hilt, readme_room_database, readme_datastore, readme_coil, readme_jellyfin_core_sdk, readme_okhttp, readme_androidx_navigation_3, readme_kotlin_serialization [INFERRED 0.95]
  • Purefin Features — readme_video_playback_queue, readme_continue_watching, readme_user_authentication, readme_smart_downloads, readme_centralized_subtitles_management [INFERRED 0.95]
  • Purefin Development Conventions — agents_material_design_3, agents_conventional_commits, agents_preferred_workflow [INFERRED 0.85]
  • Android TV App Launcher Icon Variants — app-tv_src_main_res_mipmap_purefin_logo [INFERRED 0.95]

Communities (190 total, 18 thin omitted)

Community 0 - "Playback Profile Family"

Cohesion: 0.05 Nodes (17): PlaybackProfileFamilyModule, TvPlaybackProfileFamilyModule, PlaybackProfileFamily, AndroidDeviceProfileCapabilities, Av1ProfileLevels, DeviceProfileCapabilities, DolbyVisionProfiles, Boolean (+9 more)

Community 1 - "Media Segment Model"

Cohesion: 0.05 Nodes (21): MediaSegment, SegmentType, List, MediaSegmentListener, MediaSegmentManager, Boolean, Flow, List (+13 more)

Community 2 - "Download Controller"

Cohesion: 0.06 Nodes (28): Download, DownloadControllerModule, Boolean, Float, Flow, List, Map, MediaItem (+20 more)

Community 3 - "Download Media Source"

Cohesion: 0.05 Nodes (29): DownloadMediaSourceResolver, EpisodeDownloadSource, Boolean, Int, List, Set, UUID, MovieDownloadSource (+21 more)

Community 4 - "Jellyfin Playback Profiles"

Cohesion: 0.06 Nodes (21): CodecProfile, create(), generateCodecProfile(), JellyfinAndroidMobileProfileConfig, DeviceProfile, Set, String, codecRangeTypes() (+13 more)

Community 5 - "Playable Media Model"

Cohesion: 0.08 Nodes (27): Episode, List, Long, MediaItem, UUID, Movie, PlayableMedia, Series (+19 more)

Community 6 - "Season & Series Model"

Cohesion: 0.09 Nodes (26): Season, formatReleaseDate(), formatRuntime(), Episode, Int, Long, Movie, Series (+18 more)

Community 7 - "Login Screen"

Cohesion: 0.09 Nodes (37): Modifier, LoginContent(), LoginPhaseContent(), ServerSearchContent(), Modifier, LoginScreen(), Composable, FocusRequester (+29 more)

Community 8 - "Playback Progress Reporter"

Cohesion: 0.09 Nodes (19): Boolean, Long, UUID, PlaybackProgressReporter, PlaybackReportContext, Boolean, Job, Long (+11 more)

Community 9 - "TV Home Content Tests"

Cohesion: 0.17 Nodes (12): Double, Episode, Float, List, Map, Movie, String, UUID (+4 more)

Community 10 - "Offline Media Repository"

Cohesion: 0.11 Nodes (12): Boolean, Double, Episode, Flow, List, Long, Map, Movie (+4 more)

Community 11 - "TV Hero Tests"

Cohesion: 0.10 Nodes (14): Boolean, Double, Episode, Movie, Series, TvFocusedItemHeroTest, Boolean, Movie (+6 more)

Community 12 - "Track Mapper"

Cohesion: 0.12 Nodes (20): Boolean, Int, String, TrackMapper, TrackSelectionState, addRangeTypeIfSupported(), Audio, Codec (+12 more)

Community 13 - "Jellyfin API Client"

Cohesion: 0.21 Nodes (10): JellyfinApiClient, BaseItemDto, DeviceProfile, Int, List, Set, T, UUID (+2 more)

Community 14 - "Composite Media Repository"

Cohesion: 0.13 Nodes (13): CompositeLocalMediaRepository, Boolean, Double, Episode, Flow, Long, Map, Movie (+5 more)

Community 15 - "Logging & Logger"

Cohesion: 0.15 Nodes (13): FileLogTree, Boolean, Context, File, Int, List, String, Throwable (+5 more)

Community 16 - "In-Memory App Content"

Cohesion: 0.15 Nodes (12): HomeContentSnapshot, HomeRefreshFailedException, InMemoryAppContentRepository, Job, List, Map, StateFlow, String (+4 more)

Community 17 - "TV Nav Drawer Tests"

Cohesion: 0.11 Nodes (19): TvNavigationDrawerTest, TvDrawerDestinationItem, Boolean, List, Modifier, ProvideTvDrawerTheme(), TvDrawerHeader(), TvNavigationDrawer() (+11 more)

Community 18 - "Authentication Repository"

Cohesion: 0.13 Nodes (9): JellyfinServerCandidate, Boolean, Job, List, StateFlow, String, LoginViewModel, Phase (+1 more)

Community 19 - "Home Refresh Side Effect"

Cohesion: 0.14 Nodes (9): HomeRefreshSideEffect, HomeRefreshSideEffectModule, SyncSmartDownloadsHomeRefreshSideEffect, Boolean, Double, Long, LocalPlaybackPosition, RemotePlaybackPosition (+1 more)

Community 20 - "Player UI Models"

Cohesion: 0.11 Nodes (6): PlaylistElementUiModel, Job, StateFlow, String, UUID, PlayerViewModel

Community 21 - "Episode & Series Feature"

Cohesion: 0.09 Nodes (24): Conventional Commits, Material Design 3, Preferred Workflow, Android, Android TV, AndroidX Navigation 3, APK Version Manager, Centralized Subtitles Management (+16 more)

Community 22 - "Section Header UI"

Cohesion: 0.15 Nodes (8): Boolean, Episode, Job, List, Series, StateFlow, UUID, SeriesViewModel

Community 23 - "Home Screen UI"

Cohesion: 0.09 Nodes (18): Modifier, String, SectionHeader(), ContinueWatchingSection(), List, Modifier, HomeContent(), Boolean (+10 more)

Community 24 - "Player Screen UI"

Cohesion: 0.11 Nodes (19): DefaultTopBar(), DefaultTopBarIconButton(), DefaultTopBarSearchButton(), DefaultTopBarTextButton(), Boolean, ImageVector, Modifier, String (+11 more)

Community 25 - "Settings Screen UI"

Cohesion: 0.09 Nodes (19): List, Long, Modifier, PlayerSeekBar(), Boolean, FocusRequester, List, Long (+11 more)

Community 26 - "Room Database Layer"

Cohesion: 0.10 Nodes (19): BooleanSettingItem(), Boolean, Modifier, String, Modifier, String, ReadOnlySettingItem(), Modifier (+11 more)

Community 27 - "Playback Profile Policy"

Cohesion: 0.16 Nodes (8): EpisodeDao, Boolean, Double, Flow, Int, List, UUID, EpisodeEntity

Community 28 - "Media Detail Scaffold"

Cohesion: 0.16 Nodes (20): Activity, applyBrightness(), formatSeekDelta(), HiddenSeekTimeline(), Boolean, Float, List, Long (+12 more)

Community 29 - "Download Service"

Cohesion: 0.21 Nodes (21): Dp, Modifier, String, MarkAsWatched, MediaDetailActions(), MediaDetailActionsUiModel, MediaDetailCastRow(), MediaDetailCastUiModel (+13 more)

Community 30 - "Media Detail Components"

Cohesion: 0.13 Nodes (15): DownloadServiceEntryPoint, Context, DownloadManager, DownloadNotificationHelper, DownloadRequest, Int, Long, String (+7 more)

Community 31 - "TV Navigation Module"

Cohesion: 0.22 Nodes (19): Icon, GenreChip(), GenreSelector(), Boolean, Composable, List, Modifier, Set (+11 more)

Community 32 - "Media Metadata Updater"

Cohesion: 0.20 Nodes (11): EntryProviderScope, Unit, TvNavigationModule, tvEpisodeSection(), tvHomeSection(), tvLibrarySection(), tvLoginSection(), tvMovieSection() (+3 more)

Community 33 - "Poster Card UI"

Cohesion: 0.14 Nodes (10): Boolean, Double, Long, UUID, MediaMetadataUpdater, JellyfinMediaMetadataUpdaterImpl, Boolean, Double (+2 more)

Community 34 - "Series Screen UI"

Cohesion: 0.12 Nodes (15): Dp, Float, List, Modifier, PaddingValues, String, TextStyle, MediaImageCard() (+7 more)

Community 35 - "Settings ViewModel"

Cohesion: 0.22 Nodes (17): borderIfFocused(), CastRow(), Boolean, Color, Episode, FocusRequester, List, Modifier (+9 more)

Community 36 - "Library Screen UI"

Cohesion: 0.23 Nodes (15): BooleanSetting, DropdownSetting, Boolean, Double, String, T, RangeSetting, ReadOnlySetting (+7 more)

Community 37 - "Movie Screen UI"

Cohesion: 0.14 Nodes (10): List, Modifier, LibraryPosterGrid(), LibraryScreen(), Boolean, List, StateFlow, UUID (+2 more)

Community 38 - "Media Detail Shell"

Cohesion: 0.11 Nodes (15): TopAppBarScrollBehavior, MovieTopBar(), CircularIconButton(), Color, Dp, Float, ImageVector, Modifier (+7 more)

Community 39 - "Community 39"

Cohesion: 0.22 Nodes (16): calculateScrollDistance(), Any, Float, Modifier, String, MediaDetailOverviewSection(), MediaDetailPlaybackSection(), MediaDetailSectionTitle() (+8 more)

Community 40 - "Community 40"

Cohesion: 0.14 Nodes (15): Float, Modifier, String, TvFocusedItemHero(), TvHomeHeroBackdrop(), TvHomeHeroMetadataRow(), Boolean, Modifier (+7 more)

Community 41 - "Community 41"

Cohesion: 0.25 Nodes (17): Boolean, ClosedFloatingPointRange, Double, List, Modifier, String, T, TvBooleanSettingItem() (+9 more)

Community 42 - "Community 42"

Cohesion: 0.20 Nodes (8): Episode, Flow, Map, Movie, Series, StateFlow, UUID, LocalMediaRepository

Community 43 - "Community 43"

Cohesion: 0.15 Nodes (5): AppViewModel, Boolean, StateFlow, String, UUID

Community 44 - "Community 44"

Cohesion: 0.15 Nodes (11): HomeLibrarySettingsProvider, Flow, List, Flow, List, LogoutSettingsProvider, SettingGroup, Flow (+3 more)

Community 45 - "Community 45"

Cohesion: 0.16 Nodes (7): Boolean, Double, Flow, List, UUID, MovieDao, MovieEntity

Community 46 - "Community 46"

Cohesion: 0.18 Nodes (6): Flow, Int, List, UUID, SeriesDao, SeriesEntity

Community 47 - "Community 47"

Cohesion: 0.18 Nodes (14): Boolean, Dp, Int, Modifier, PosterCard(), PosterCardContent(), Boolean, Dp (+6 more)

Community 48 - "Community 48"

Cohesion: 0.19 Nodes (16): AppScreen(), appTabIndex(), appTabMetadata(), AppTabRoute, Downloads, Home, Any, Int (+8 more)

Community 49 - "Community 49"

Cohesion: 0.15 Nodes (11): List, Modifier, LibrariesContent(), Modifier, LibraryListItem(), TvLibrariesOverviewScreenTest, List, Modifier (+3 more)

Community 50 - "Community 50"

Cohesion: 0.15 Nodes (11): FocusRequester, Modifier, Movie, TvMovieHeroSection(), Boolean, Double, Float, String (+3 more)

Community 51 - "Community 51"

Cohesion: 0.20 Nodes (15): Boolean, ImageVector, Int, Modifier, String, TvIconButton(), Boolean, Modifier (+7 more)

Community 52 - "Community 52"

Cohesion: 0.32 Nodes (16): Array, androidAudioCodecName(), AndroidCodecCatalog, androidVideoCodecName(), androidVideoProfileName(), avcProfileName(), create(), h263ProfileName() (+8 more)

Community 53 - "Community 53"

Cohesion: 0.18 Nodes (10): CacheEvictor, DownloadModule, DownloadModuleFactories, CacheDataSource, Context, DataSource, DownloadManager, DownloadNotificationHelper (+2 more)

Community 54 - "Community 54"

Cohesion: 0.14 Nodes (10): Settings, Flow, SettingsRepository, bindSettingsRepository(), Context, DataStore, SettingsModule, InputStream (+2 more)

Community 55 - "Community 55"

Cohesion: 0.20 Nodes (10): create(), Movie, Series, String, SearchResult, List, Set, StateFlow (+2 more)

Community 56 - "Community 56"

Cohesion: 0.19 Nodes (7): AppUpdateInstaller, AndroidAppUpdateInstaller, File, Int, Long, String, IntentSender

Community 57 - "Community 57"

Cohesion: 0.19 Nodes (8): DefaultNavigationManager, SharedFlow, Navigate, NavigationCommand, NavigationManager, Pop, ReplaceAll, NavigationManagerModule

Community 58 - "Community 58"

Cohesion: 0.20 Nodes (13): EntryProviderScope, Unit, NavigationModule, EpisodeRoute, Home, HomeSearchRoute, LibraryRoute, LoginRoute (+5 more)

Community 59 - "Community 59"

Cohesion: 0.22 Nodes (15): CastRow(), DownloadOptionRow(), DownloadOptionsBottomSheet(), EpisodeCard(), EpisodeCarousel(), Boolean, Episode, ImageVector (+7 more)

Community 60 - "Community 60"

Cohesion: 0.19 Nodes (6): Episode, List, Movie, Series, UUID, OfflineMediaManager

Community 61 - "Community 61"

Cohesion: 0.22 Nodes (8): InMemoryLocalMediaRepository, Episode, Flow, List, Map, Movie, Series, StateFlow

Community 62 - "Community 62"

Cohesion: 0.18 Nodes (7): Flow, List, LibraryDao, LibraryEntity, LibraryWithContent, SeasonWithEpisodes, SeriesWithSeasonsAndEpisodes

Community 63 - "Community 63"

Cohesion: 0.21 Nodes (5): Int, List, UUID, SeasonDao, SeasonEntity

Community 64 - "Community 64"

Cohesion: 0.20 Nodes (8): Boolean, Bundle, EntryProviderScope, OkHttpClient, Set, Unit, PurefinActivity, ExitAppDialog()

Community 65 - "Community 65"

Cohesion: 0.13 Nodes (11): DownloadingItemRow(), Modifier, Modifier, NextEpisodeOverlay(), ContentScale, ActiveDownloadItem, Any, ImageVector (+3 more)

Community 66 - "Community 66"

Cohesion: 0.13 Nodes (12): Modifier, String, SuggestionCard(), List, Modifier, SuggestionsSection(), Color, Dp (+4 more)

Community 67 - "Community 67"

Cohesion: 0.35 Nodes (13): Float, List, Modifier, String, UUID, TvContinueWatchingSection(), TvHomeLandscapeCard(), tvHomeLibraryFirstItemTag() (+5 more)

Community 68 - "Community 68"

Cohesion: 0.14 Nodes (9): ApplicationInfo, AppVersionProvider, Long, String, AndroidAppVersionProvider, Long, String, AppUpdateModule (+1 more)

Community 69 - "Community 69"

Cohesion: 0.17 Nodes (7): AppUpdateController, Boolean, Flow, List, SharedFlow, StateFlow, String

Community 70 - "Community 70"

Cohesion: 0.17 Nodes (8): UserSession, Context, DataStore, UserSessionModule, InputStream, OutputStream, UserSessionSerializer, Serializer

Community 71 - "Community 71"

Cohesion: 0.20 Nodes (6): Boolean, Flow, List, UUID, SmartDownloadDao, SmartDownloadEntity

Community 72 - "Community 72"

Cohesion: 0.26 Nodes (13): BottomSection(), formatTime(), Boolean, Dp, Int, Long, Modifier, String (+5 more)

Community 73 - "Community 73"

Cohesion: 0.16 Nodes (11): Modifier, PlayerLoadingErrorEndCard(), Modifier, TvPlayerLoadingErrorEndCard(), PlayerUiState, Boolean, Dp, Float (+3 more)

Community 74 - "Community 74"

Cohesion: 0.23 Nodes (7): Boolean, Bundle, EntryProviderScope, OkHttpClient, Set, Unit, TvActivity

Community 75 - "Community 75"

Cohesion: 0.22 Nodes (12): Boolean, Color, FocusRequester, Modifier, String, TvPlayerQueuePanel(), TvQueueArtwork(), TvQueueRowCard() (+4 more)

Community 76 - "Community 76"

Cohesion: 0.18 Nodes (6): Boolean, Flow, List, UUID, SmartDownloadStore, OfflineBindingsModule

Community 77 - "Community 77"

Cohesion: 0.21 Nodes (5): Boolean, Double, Long, UUID, RuntimeException

Community 78 - "Community 78"

Cohesion: 0.25 Nodes (5): JellyfinAuthenticationRepository, AuthenticationResult, Boolean, Flow, String

Community 79 - "Community 79"

Cohesion: 0.21 Nodes (4): Context, MediaDatabaseModule, OfflineMediaDatabase, RoomDatabase

Community 80 - "Community 80"

Cohesion: 0.32 Nodes (12): androidx, formatTime(), handleExpandPlaylistKey(), Boolean, FocusRequester, Long, Modifier, String (+4 more)

Community 81 - "Community 81"

Cohesion: 0.21 Nodes (7): TrackPreferences, Context, DataStore, TrackPreferencesModule, InputStream, OutputStream, TrackPreferencesSerializer

Community 82 - "Community 82"

Cohesion: 0.21 Nodes (4): QuickConnectSession, AuthenticationResult, String, RecommendedServerInfo

Community 83 - "Community 83"

Cohesion: 0.24 Nodes (7): DownloadModuleTest, FakeDataSourceFactory, Any, Boolean, CacheDataSource, String, DataSource

Community 84 - "Community 84"

Cohesion: 0.29 Nodes (12): CachedCastMember, CachedEpisode, CachedLibrary, CachedMediaItem, CachedMovie, CachedSeries, toCachedCastMember(), toCachedEpisode() (+4 more)

Community 85 - "Community 85"

Cohesion: 0.29 Nodes (4): CastMemberDao, List, UUID, CastMemberEntity

Community 86 - "Community 86"

Cohesion: 0.21 Nodes (9): action, appRouteEntryBuilder(), Unit, rememberNotificationPermissionGate(), Modifier, Movie, MovieScreen(), MovieScreenInternal() (+1 more)

Community 87 - "Community 87"

Cohesion: 0.20 Nodes (5): Bundle, PlayerActivity, AppTheme(), Boolean, ComponentActivity

Community 88 - "Community 88"

Cohesion: 0.27 Nodes (11): homeMediaSharedBounds(), homeMediaSharedBoundsDestination(), homeMediaSharedBoundsKey(), homeMediaSharedBoundsSource(), isHomeMediaSharedBoundsTransitionActive(), Boolean, Modifier, String (+3 more)

Community 89 - "Community 89"

Cohesion: 0.27 Nodes (10): EpisodeTopBar(), EpisodeTopBarShortcut, String, TopAppBarScrollBehavior, Series, EpisodeScreen(), EpisodeScreenInternal(), Episode (+2 more)

Community 90 - "Community 90"

Cohesion: 0.17 Nodes (9): Modifier, String, SearchMessage(), Boolean, Dp, Modifier, SearchOverlay(), Modifier (+1 more)

Community 91 - "Community 91"

Cohesion: 0.20 Nodes (9): Boolean, Modifier, String, PlayerQueuePanel(), QueueRow(), Modifier, TvNextEpisodeOverlay(), Unit (+1 more)

Community 92 - "Community 92"

Cohesion: 0.41 Nodes (10): createPlaceholder(), EpisodeUiModel, Boolean, Float, Int, String, UUID, MediaUiModel (+2 more)

Community 93 - "Community 93"

Cohesion: 0.24 Nodes (7): Double, Movie, MovieScreenContentTest, Modifier, Movie, TvMovieScreen(), TvMovieScreenContent()

Community 94 - "Community 94"

Cohesion: 0.17 Nodes (10): Episode, FocusRequester, Modifier, String, TvEpisodeHeroSection(), Color, List, Modifier (+2 more)

Community 95 - "Community 95"

Cohesion: 0.18 Nodes (10): calculateScrollDistance(), Float, tvHomeColumnBringIntoViewSpec(), List, Map, Modifier, PaddingValues, UUID (+2 more)

Community 96 - "Community 96"

Cohesion: 0.27 Nodes (11): handleTvPlayerRootKeyEvent(), HiddenTvSeekTimeline(), Boolean, List, Long, Modifier, String, TvPlayerClock() (+3 more)

Community 97 - "Community 97"

Cohesion: 0.23 Nodes (11): Library, Episode, Movie, Series, UUID, toCastMember(), toEpisode(), toLibrary() (+3 more)

Community 98 - "Community 98"

Cohesion: 0.35 Nodes (10): Cached, CacheEntry, Join, String, T, Resolution, SingleFlight, Start (+2 more)

Community 99 - "Community 99"

Cohesion: 0.24 Nodes (5): Boolean, Flow, String, UUID, UserSessionRepository

Community 100 - "Community 100"

Cohesion: 0.20 Nodes (4): Boolean, Movie, StateFlow, MovieScreenViewModel

Community 101 - "Community 101"

Cohesion: 0.24 Nodes (5): DataStoreUserSessionRepository, Boolean, Flow, String, UUID

Community 102 - "Community 102"

Cohesion: 0.20 Nodes (7): HomeCache, HomeCacheModule, Context, DataStore, HomeCacheSerializer, InputStream, OutputStream

Community 103 - "Community 103"

Cohesion: 0.22 Nodes (6): UpdateAvailableDialog(), AppUpdateInfo, String, AppUpdateManifest, AppUpdateRepository, String

Community 104 - "Community 104"

Cohesion: 0.51 Nodes (10): AudioSelectionButton(), Boolean, List, Modifier, String, QualitySelectionButton(), SubtitlesSelectionButton(), TrackOptionItem() (+2 more)

Community 105 - "Community 105"

Cohesion: 0.29 Nodes (6): empty(), String, MediaTrackPreferences, Flow, String, TrackPreferencesRepository

Community 106 - "Community 106"

Cohesion: 0.31 Nodes (4): AuthenticationRepository, Boolean, Flow, String

Community 107 - "Community 107"

Cohesion: 0.20 Nodes (5): DownloadsViewModel, String, UUID, SeriesDto, ViewModel

Community 108 - "Community 108"

Cohesion: 0.25 Nodes (4): Set, String, UUID, SearchViewModel

Community 109 - "Community 109"

Cohesion: 0.20 Nodes (8): Boolean, Double, List, SharedFlow, StateFlow, String, T, SettingsViewModel

Community 110 - "Community 110"

Cohesion: 0.22 Nodes (4): Long, Job, Long, SeekByCollector

Community 111 - "Community 111"

Cohesion: 0.18 Nodes (9): DownloadActionButton(), Dp, Modifier, Color, Dp, Float, ImageVector, Modifier (+1 more)

Community 112 - "Community 112"

Cohesion: 0.20 Nodes (8): AppBottomBar(), Boolean, Int, Boolean, Int, List, Modifier, LibrariesScreen()

Community 113 - "Community 113"

Cohesion: 0.27 Nodes (4): EpisodeScreenContentTest, Double, Episode, CastMember

Community 114 - "Community 114"

Cohesion: 0.38 Nodes (9): defaultSeason(), focusTargetEpisodeId(), Episode, Modifier, Series, UUID, nextUpEpisode(), TvSeriesScreen() (+1 more)

Community 115 - "Community 115"

Cohesion: 0.33 Nodes (5): AudioTrackProperties, SubtitleTrackProperties, Int, List, TrackMatcher

Community 116 - "Community 116"

Cohesion: 0.24 Nodes (4): EpisodeScreenViewModel, Boolean, Episode, StateFlow

Community 118 - "Community 118"

Cohesion: 0.22 Nodes (5): AppUpdateViewModel, Boolean, SharedFlow, StateFlow, String

Community 119 - "Community 119"

Cohesion: 0.22 Nodes (6): JellyfinAuthInterceptor, String, JellyfinNetworkModule, OkHttpClient, Interceptor, Response

Community 120 - "Community 120"

Cohesion: 0.31 Nodes (9): Boolean, Color, Dp, Float, Modifier, String, TextUnit, MediaResumeButton() (+1 more)

Community 121 - "Community 121"

Cohesion: 0.24 Nodes (3): Boolean, Long, PlayMethod

Community 122 - "Community 122"

Cohesion: 0.22 Nodes (5): LogUploadSettingsModule, Flow, List, String, LogUploadSettingsProvider

Community 123 - "Community 123"

Cohesion: 0.27 Nodes (5): Boolean, Flow, List, UUID, RoomSmartDownloadStore

Community 124 - "Community 124"

Cohesion: 0.22 Nodes (7): HomeBrowseCard(), Modifier, String, Color, Int, Modifier, UnwatchedEpisodeBadge()

Community 125 - "Community 125"

Cohesion: 0.28 Nodes (7): Boolean, Composable, Modifier, Unit, PersistentOverlayContainer(), PersistentOverlayController, rememberPersistentOverlayController()

Community 126 - "Community 126"

Cohesion: 0.39 Nodes (8): canPerform(), Boolean, Modifier, Series, MarkSeriesAsWatchedConfirmationDialog(), requiresNotificationPermission(), SeriesScreen(), SeriesScreenInternal()

Community 127 - "Community 127"

Cohesion: 0.28 Nodes (5): List, Set, StateFlow, String, SearchManager

Community 128 - "Community 128"

Cohesion: 0.33 Nodes (4): ArtworkKind, ImageUrlBuilder, String, UUID

Community 129 - "Community 129"

Cohesion: 0.28 Nodes (6): UUID, UuidSerializer, Decoder, Encoder, KSerializer, SerialDescriptor

Community 130 - "Community 130"

Cohesion: 0.22 Nodes (8): Boolean, Color, Dp, Int, Modifier, String, TextUnit, MediaSynopsis()

Community 131 - "Community 131"

Cohesion: 0.36 Nodes (6): Boolean, Double, Flow, String, T, SettingsRepositoryImpl

Community 132 - "Community 132"

Cohesion: 0.25 Nodes (6): ContentBadge(), Color, Modifier, String, HomeEmptyState(), Modifier

Community 133 - "Community 133"

Cohesion: 0.25 Nodes (6): DownloadsContent(), Modifier, DownloadsScreen(), Boolean, Int, Modifier

Community 134 - "Community 134"

Cohesion: 0.25 Nodes (7): HomeScreen(), Boolean, Int, List, Map, Modifier, UUID

Community 136 - "Community 136"

Cohesion: 0.36 Nodes (7): GhostTextButton(), Dp, FocusRequester, Modifier, String, MediaDetailsTopBar(), MediaDetailsTopBarShortcut

Community 137 - "Community 137"

Cohesion: 0.25 Nodes (5): HomeRepository, List, Map, StateFlow, UUID

Community 138 - "Community 138"

Cohesion: 0.39 Nodes (3): HomeRefreshCoordinator, Boolean, Unit

Community 139 - "Community 139"

Cohesion: 0.25 Nodes (7): CircularTextButton(), Color, Dp, Float, Int, Modifier, String

Community 140 - "Community 140"

Cohesion: 0.25 Nodes (7): Color, Float, ImageVector, Int, Modifier, String, PurefinIconButton()

Community 141 - "Community 141"

Cohesion: 0.29 Nodes (3): PurefinApplication, TvApplication, Application

Community 142 - "Community 142"

Cohesion: 0.29 Nodes (6): Dp, Float, ImageVector, Modifier, String, PlayerAdjustmentIndicator()

Community 143 - "Community 143"

Cohesion: 0.38 Nodes (4): BroadcastReceiver, AppUpdateInstallReceiver, Context, Intent

Community 144 - "Community 144"

Cohesion: 0.48 Nodes (6): EpisodeMedia, Media, MovieMedia, SeasonMedia, SeriesMedia, toMedia()

Community 146 - "Community 146"

Cohesion: 0.33 Nodes (6): Boolean, Color, Int, Modifier, WatchStateBadge(), WatchStateBadgePreview()

Community 147 - "Community 147"

Cohesion: 0.48 Nodes (6): Color, ImageVector, Modifier, String, MediaPlaybackSettings(), MediaSettingDropdown()

Community 148 - "Community 148"

Cohesion: 0.48 Nodes (6): Color, Float, Modifier, PurefinWaitingScreen(), WaitingDot(), WaitingDots()

Community 149 - "Community 149"

Cohesion: 0.33 Nodes (5): DropdownSettingItem(), List, Modifier, String, T

Community 150 - "Community 150"

Cohesion: 0.33 Nodes (5): ClosedFloatingPointRange, Double, Modifier, String, RangeSettingItem()

Community 151 - "Community 151"

Cohesion: 0.60 Nodes (5): Downloaded, Downloading, DownloadState, Failed, NotDownloaded

Community 152 - "Community 152"

Cohesion: 0.33 Nodes (4): Application, DataSource, Player, VideoPlayerModule

Community 153 - "Community 153"

Cohesion: 0.33 Nodes (3): CodecDebugHelper, Boolean, String

Community 154 - "Community 154"

Cohesion: 0.47 Nodes (3): String, UUID, UuidConverters

Community 155 - "Community 155"

Cohesion: 0.40 Nodes (3): HorizontalSeekGestureHelper, Float, Long

Community 156 - "Community 156"

Cohesion: 0.40 Nodes (4): DragDirection, Boolean, Modifier, PlayerGesturesLayer()

Community 159 - "Community 159"

Cohesion: 0.40 Nodes (3): OkHttpClient, OkHttpDataSource, PlaybackNetworkModule

Community 160 - "Community 160"

Cohesion: 0.40 Nodes (4): Color, Modifier, String, MediaMetaChip()

Community 162 - "Community 162"

Cohesion: 0.50 Nodes (3): Modifier, String, StringSettingItem()

Community 163 - "Community 163"

Cohesion: 0.50 Nodes (3): hslColor(), Color, Float

Community 164 - "Community 164"

Cohesion: 0.50 Nodes (3): hslColor(), Color, Float

Knowledge Gaps

  • 37 isolated node(s): ColorFamily, DragDirection, SeriesDownloadOption, Episode, LibraryKind (+32 more) These have ≤1 connection - possible missing edges or undocumented components.
  • 18 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does Icon connect TV Navigation Module to Community 132, Community 133, Login Screen, Community 142, TV Nav Drawer Tests, Community 146, Community 147, Community 148, Home Screen UI, Player Screen UI, Download Service, Series Screen UI, Settings ViewModel, Media Detail Shell, Community 41, Community 49, Community 51, Community 59, Community 65, Community 75, Community 90, Community 91, Community 96, Community 104, Community 112, Community 120? High betweenness centrality (0.215) - this node is a cross-community bridge.
  • Why does TrackOption connect Community 104 to Media Segment Model, Track Mapper, Community 115, Player UI Models, Settings Screen UI? High betweenness centrality (0.174) - this node is a cross-community bridge.
  • Why does Season connect Season & Series Model to Settings ViewModel, Community 135, Offline Media Repository, Community 114, Community 59, Community 60, Download Service? High betweenness centrality (0.130) - this node is a cross-community bridge.
  • Are the 41 inferred relationships involving RoundedCornerShape (e.g. with MediaImageCard() and PosterCardContent()) actually correct? RoundedCornerShape has 41 INFERRED edges - model-reasoned connections that need verification.
  • Are the 36 inferred relationships involving Icon (e.g. with MediaImageCard() and SectionHeader()) actually correct? Icon has 36 INFERRED edges - model-reasoned connections that need verification.
  • What connects ColorFamily, DragDirection, SeriesDownloadOption to the rest of the system? 40 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should Playback Profile Family be split into smaller, more focused modules? Cohesion score 0.054746835443037975 - nodes in this community are weakly interconnected.