AI Slop Code Risk Monitor

jay3-yy/BiliPai

SlopCodeMonitor badge for jay3-yy/BiliPai Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

原生、纯净、可扩展 —— 重新定义你的 B 站体验

36.9 High pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for jay3-yy/BiliPai, a Kotlin project with 5,052 GitHub stars. SynthScan examined 852,234 lines of code across 4617 source files, recording 3253 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 36.9 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

36.9
Adjusted Signal
36.9
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
5.1K
Stars
Kotlin
Language
852.2K
Lines of Code
4.6K
Files
3.3K
Pattern Hits
2026-10-31
Scan Date
0.68
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 0.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 66 finding(s).

Hallucinated Dependency & Supply Chain Risk 84.0/100 · CRITICAL

Are imports declared and package/API names verified? 3150 finding(s).

Agent Over-Engineering Ratio 0.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 65 finding(s).

PR Review Velocity Impact 84.4/100 · CRITICAL

Which changes need focused human review? 3253 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 3142HIGH 5MEDIUM 44LOW 62

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3253 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators3142 hits · 31235 pts
SeverityFileLineSnippetContext
CRITICAL…libili/core/ui/MiuixContentTabWidthUiRegressionTest.kt53 val colors = top.yukonga.miuix.kmp.theme.lightColorScheme().copy(CODE
CRITICAL…id/purebilibili/core/theme/ThemeColorTransitionTest.kt134 val overrides = com.android.purebilibili.core.store.WallpaperPaletteOverrides(edited, edited)CODE
CRITICAL…id/purebilibili/core/theme/ThemeColorTransitionTest.kt153 val accent = com.android.purebilibili.core.ui.AppContentColors.accent()CODE
CRITICAL…om/Android/purebilibili/feature/home/HomeScreenTest.kt32 com.android.purebilibili.feature.home.components.CategoryTabRow(CODE
CRITICAL…om/Android/purebilibili/feature/home/HomeScreenTest.kt51 com.android.purebilibili.feature.home.components.CategoryTabRow(CODE
CRITICAL…om/Android/purebilibili/feature/home/HomeScreenTest.kt72 com.android.purebilibili.feature.home.components.CategoryTabRow(CODE
CRITICAL…om/Android/purebilibili/feature/home/HomeScreenTest.kt100 com.android.purebilibili.feature.home.components.FrostedBottomBar(CODE
CRITICAL…bili/feature/video/BottomControlBarUiRegressionTest.kt42 val shot = com.android.purebilibili.data.model.response.VideoshotData(CODE
CRITICAL…re/video/VideoDetailWholeCardReturnUiRegressionTest.kt234 val weight = com.android.purebilibili.feature.video.screen.resolveVideoDetailWholeCardReturnAlpha(CODE
CRITICAL…/feature/video/PlayerViewportResizeUiRegressionTest.kt227 androidx.test.platform.app.InstrumentationRegistry.getInstrumentation().targetContext,CODE
CRITICAL…ibili/feature/video/DanmakuComposerUiRegressionTest.kt152 com.android.purebilibili.feature.video.ui.components.glass.LandscapeDanmakuComposer(CODE
CRITICAL…ebilibili/navigation3/BiliPaiReturnSessionStateTest.kt59 val recordedRoute = com.android.purebilibili.feature.video.ui.components.resolveRelatedVideoCardHostRoute(CODE
CRITICAL…ebilibili/navigation3/BiliPaiReturnSessionStateTest.kt103 com.android.purebilibili.core.util.VideoCardPixelOwner(sourceKey, it)CODE
CRITICAL…ion3/predictiveback/MiuixVideoCardNavTransitionTest.kt53 val body = com.android.purebilibili.core.ui.transition.resolveVideoCardSecondaryContentVisualFrame(CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt18 val owner = com.android.purebilibili.core.util.VideoCardPixelOwner("home:BV1", 1L)CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt19 val unrelated = com.android.purebilibili.core.util.VideoCardPixelOwner("home:BV1", 1L)CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt31 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt35 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt59 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt64 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt81 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt101 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt142 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt145 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt174 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt194 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt215 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt220 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…ore/ui/transition/VideoCardDeferredPixelCaptureTest.kt251 androidx.compose.runtime.snapshots.Snapshot.sendApplyNotifications()CODE
CRITICAL…/core/ui/transition/VideoSharedTransitionPolicyTest.kt1117 playerSource.contains("com.android.purebilibili.core.ui.motion.AppMotionTokens.spatialSpec()"),CODE
CRITICAL…ilibili/core/ui/popup/AppGlassPopupInterruptionTest.kt212 val press = com.android.purebilibili.core.ui.components.AppSingleChoicePopupPress()CODE
CRITICAL…ilibili/core/ui/popup/AppGlassPopupInterruptionTest.kt229 val press = com.android.purebilibili.core.ui.components.AppSingleChoicePopupPress()CODE
CRITICAL…ore/ui/skeleton/ContentLoadingSkeletonStructureTest.kt56 assertFalse(space.contains("SpaceUiState.Loading -> {\n com.android.purebilibili.core.ui.CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt79 val expected = if (dark) top.yukonga.miuix.kmp.theme.darkColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt80 else top.yukonga.miuix.kmp.theme.lightColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt106 val expected = if (dark) top.yukonga.miuix.kmp.theme.darkColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt107 else top.yukonga.miuix.kmp.theme.lightColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt123 val expected = if (dark) top.yukonga.miuix.kmp.theme.darkColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt124 else top.yukonga.miuix.kmp.theme.lightColorScheme()CODE
CRITICAL…/purebilibili/core/theme/MiuixThemeBridgePolicyTest.kt161 val upstream = top.yukonga.miuix.kmp.theme.darkColorScheme()CODE
CRITICAL…libili/core/store/AppThemeSettingsMappingPolicyTest.kt44 assertEquals(com.android.purebilibili.feature.settings.DarkThemeSchedule(true, 1335, 405), settings.darkThemeSchCODE
CRITICAL…bilibili/navigation/MessageLinkNavigationPolicyTest.kt238 val link = com.android.purebilibili.feature.message.feed.buildMessageFeedCommentNavigationLink(CODE
CRITICAL…bilibili/navigation/MessageLinkNavigationPolicyTest.kt327 val link = com.android.purebilibili.feature.message.feed.buildMessageFeedCommentNavigationLink(CODE
CRITICAL…bilibili/navigation/MessageLinkNavigationPolicyTest.kt346 val link = com.android.purebilibili.feature.message.feed.buildMessageFeedCommentNavigationLink(CODE
CRITICAL…ebilibili/feature/settings/SettingsSearchPolicyTest.kt19 com.android.purebilibili.navigation3.BiliPaiNavKey.SettingsCategory(SettingsRootCategory.HOME_RECOMMENDACODE
CRITICAL…bili/feature/settings/AppSegmentedControlPolicyTest.kt18 val normal = com.android.purebilibili.core.ui.components.resolveAppSegmentedLabelFontSize(base, 5, 4)CODE
CRITICAL…bili/feature/settings/AppSegmentedControlPolicyTest.kt19 val enlarged = com.android.purebilibili.core.ui.components.resolveAppSegmentedLabelFontSize(base * 1.3f, 5, 4)CODE
CRITICAL⚡…ebilibili/feature/home/HomeFeedGridPolicyTabletTest.kt92 assertEquals(2, com.android.purebilibili.core.ui.adaptive.resolveHingeSafeFeedColumns(5, 440f))CODE
CRITICAL⚡…ebilibili/feature/home/HomeFeedGridPolicyTabletTest.kt93 assertEquals(1, com.android.purebilibili.core.ui.adaptive.resolveHingeSafeFeedColumns(3, 170f))CODE
CRITICAL⚡…ebilibili/feature/home/HomeFeedGridPolicyTabletTest.kt94 assertEquals(1, com.android.purebilibili.core.ui.adaptive.resolveHingeSafeFeedColumns(1, 640f))CODE
CRITICAL⚡…ebilibili/feature/home/HomeFeedGridPolicyTabletTest.kt95 assertEquals(1, com.android.purebilibili.core.ui.adaptive.resolveHingeSafeFeedColumns(2, 440f, minCardWidthDp = CODE
CRITICAL…ature/home/components/FloatingBottomBarGeometryTest.kt663 val geometry = com.android.purebilibili.core.ui.resolveMatchedLiquidIndicatorGeometry(CODE
CRITICAL…ature/home/components/FloatingBottomBarGeometryTest.kt680 val geometry = com.android.purebilibili.core.ui.resolveMatchedLiquidIndicatorGeometry(CODE
CRITICAL…/home/components/cards/VideoCardLongPressPolicyTest.kt32 assertFalse(com.android.purebilibili.core.store.HomeSettings().videoCardLongPressActionEnabled)CODE
CRITICAL⚡…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1010 info = com.android.purebilibili.data.model.response.ViewInfo(CODE
CRITICAL⚡…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1019 com.android.purebilibili.feature.video.subtitle.SubtitleTrackMeta(CODE
CRITICAL⚡…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1026 com.android.purebilibili.feature.video.subtitle.SubtitleCue(CODE
CRITICAL⚡…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1033 com.android.purebilibili.feature.video.subtitle.SubtitleCue(CODE
CRITICAL…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1055 info = com.android.purebilibili.data.model.response.ViewInfo(CODE
CRITICAL…/feature/video/viewmodel/VideoLoadRequestPolicyTest.kt1060 videoshotData = com.android.purebilibili.data.model.response.VideoshotData(CODE
3082 more matches not shown…
Decorative Section Separators31 hits · 92 pts
SeverityFileLineSnippetContext
MEDIUM…ilibili/feature/plugin/dlna/DlnaCastRoutePolicyTest.kt10 // ── toDlnaCastRoute ────────────────────────────────────────────────────────COMMENT
MEDIUM…ilibili/feature/plugin/dlna/DlnaCastRoutePolicyTest.kt32 // ── resolveDlnaRouteSelection ──────────────────────────────────────────────COMMENT
MEDIUM…ilibili/feature/plugin/dlna/DlnaCastRoutePolicyTest.kt60 // ── buildDlnaRouteSnapshot ──────────────────────────────────────────────────COMMENT
MEDIUM…/com/android/purebilibili/core/util/WindowSizeUtils.kt482// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/com/android/purebilibili/core/util/WindowSizeUtils.kt484// ═══════════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt15 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt17 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt84 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt86 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt127 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt129 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt140 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt142 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt153 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt155 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt166 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt168 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt187 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt189 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt212 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt214 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt237 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt239 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt255 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…/java/com/android/purebilibili/core/util/EasterEggs.kt257 // ═══════════════════════════════════════════════════COMMENT
MEDIUM…d/purebilibili/feature/settings/ui/SettingsSections.kt86// ═══════════════════════════════════════════════════COMMENT
MEDIUM…d/purebilibili/feature/settings/ui/SettingsSections.kt88// ═══════════════════════════════════════════════════COMMENT
MEDIUM…d/purebilibili/feature/settings/ui/SettingsSections.kt103// ═══════════════════════════════════════════════════COMMENT
MEDIUM…d/purebilibili/feature/settings/ui/SettingsSections.kt105// ═══════════════════════════════════════════════════COMMENT
MEDIUM…ili/core/ui/components/AdaptivePreferenceComponents.kt99// ═══════════════════════════════════════════════════COMMENT
MEDIUM…ili/core/ui/components/AdaptivePreferenceComponents.kt101// ═══════════════════════════════════════════════════COMMENT
Hyper-Verbose Identifiers26 hits · 32 pts
SeverityFileLineSnippetContext
LOWartwork/brand-motion/lottie.min.js1"undefined"!=typeof navigator&&function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"fuCODE
LOWplugins/tools/bilibili_skin_to_bpskin.py115def build_manifest_and_asset_sources(CODE
LOWplugins/tools/bilibili_skin_to_bpskin.py225def first_existing_package_asset(package_names: set[str], candidates: list[str]) -> str | None:CODE
LOW⚡scripts/test_video_card_transition_tools.py24 def test_refresh_and_percentiles(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py34 def test_workload_budget_not_assumed_refresh_period(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py38 def test_missing_data_is_not_a_pass(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py43 def test_label_never_invents_phase_attribution(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py49 def test_counter_deltas_and_frame_phase_intervals(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py63 def test_unterminated_phase_and_counter_reset_not_invented(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py70 def test_old_header_can_use_explicit_refresh(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py76 def test_invalid_rows_are_excluded(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py93 def test_checkpoint_retains_transition_and_uses_final_window_counters(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py103 def test_overwritten_phase_cannot_pass_on_idle_frames(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py111 def test_partial_phase_is_reported_as_incomplete(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py117 def test_slow_first_frame_is_not_mistaken_for_overwritten_buffer(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py124 def test_disjoint_checkpoints_do_not_claim_coverage_across_a_gap(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py130 def test_modern_and_legacy_platform_counters_are_kept_separate(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py137 def test_duplicate_window_uses_latest_completion(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py142 def test_failures_still_write_json_and_markdown(self):CODE
LOWscripts/test_video_card_transition_tools.py156 def test_sampler_rejects_debug_and_smooth_without_adb(self):CODE
LOWscripts/test_video_card_transition_tools.py165 def test_sampler_start_stop_end_to_end_with_mock_adb(self):CODE
LOW⚡scripts/test_video_card_transition_tools.py228 def test_current_kotlin_tokens_all_presets(self):STRING
LOW⚡scripts/test_video_card_transition_tools.py234 def test_critical_spring_release_has_exact_position_and_velocity(self):STRING
LOW⚡scripts/test_video_card_transition_tools.py243 def test_fixed_refresh_samples_use_actual_frame_interval(self):STRING
LOW⚡scripts/test_video_card_transition_tools.py249 def test_probe_rejects_effects_overshoot(self):STRING
LOW…om/bytedance/danmaku/render/engine/data/DataManager.kt32class DataManager(CODE
Modern AI Meta-Vocabulary12 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUM…rebilibili/feature/home/HomePullRefreshUiPolicyTest.kt50 // Overlay chrome height via indicatorTopInset (not scaffold default 0).COMMENT
MEDIUM…rebilibili/feature/settings/ui/SettingsPageScaffold.kt179 // Keep this backdrop in the scaffold chrome. The scroll content is its source,COMMENT
MEDIUM…va/com/android/purebilibili/feature/home/HomeScreen.kt2097 // 顶部渐进模糊和玻璃控件沿用 feed 背景;避免 scaffold 再录制相同内容。COMMENT
MEDIUM…bili/feature/home/subscription/SubscriptionFeedPage.kt1240 // The scaffold records its content for both progressive blur and Haze.COMMENT
MEDIUM…oid/purebilibili/feature/message/MessageAppScaffold.kt16 // The scaffold's content source replays the root-owned static wallpaper. DynamicCOMMENT
MEDIUM…com/android/purebilibili/feature/message/ChatScreen.kt365 // Capture wallpaper and messages together, excluding the scaffold's top bar.COMMENT
MEDIUM…com/android/purebilibili/feature/message/ChatScreen.kt646 // scaffold body so the external chrome source includes message content as well.COMMENT
MEDIUM…om/android/purebilibili/feature/search/SearchScreen.kt1062 // zero here leaves only Search's opaque scaffold background for the remainder of theCOMMENT
MEDIUM…om/android/purebilibili/feature/search/SearchScreen.kt1110 // Keep the top chrome on the same semantic plane as the Miuix list scaffold.COMMENT
MEDIUM…om/android/purebilibili/feature/search/SearchScreen.kt1308 // One BasicTextField moves between the results scaffold and the landing overlay.COMMENT
MEDIUM…om/android/purebilibili/feature/search/SearchScreen.kt2792 // Landing keeps an overlay search bar; results pin it in the scaffold chromeCOMMENT
MEDIUM…ava/com/android/purebilibili/core/ui/AdaptiveChrome.kt231 // 默认仍由 scaffold 录制,关闭玻璃时不改变 MD3 / Miuix 的原生路径。COMMENT
Over-Commented Block16 hits · 16 pts
SeverityFileLineSnippetContext
LOW…/purebilibili/core/cooldown/PlaybackCooldownManager.kt101 if (consecutiveFailures > 0) {COMMENT
LOW…oid/purebilibili/feature/settings/SettingsViewModel.kt1121 SettingsManager.setSmartVisualGuardEnabled(context, value)COMMENT
LOW…ebilibili/feature/home/components/FloatingBottomBar.kt1// Floating bottom bar structure and interactions. Liquid effects use project-localCOMMENT
LOW…i/feature/audio/lyrics/halcyon/AppleMusicLyricsView.kt341 val averageItemExtent = visibleItems.sumOf { it.size }.toFloat() / visibleItems.size +COMMENT
LOW…droid/purebilibili/feature/profile/ProfileViewModel.kt961 // 构造搜索参数COMMENT
LOW…/android/purebilibili/feature/profile/ProfileScreen.kt4121 // [Modified] Background logic moved to ProfileBackground()COMMENT
LOWplugins/tools/create-plugin.js61// BiliPai.http.get(url, headers) / BiliPai.http.post(url, body, headers)COMMENT
LOWscripts/generate_rovniced_skin_catalog.sh1#!/usr/bin/env bashCOMMENT
LOW…main/java/top/yukonga/miuix/kmp/nav/core/NavDisplay.kt381 // its exit animation, and is pruned only when it has finished leaving (see the unload effectCOMMENT
LOW…main/java/top/yukonga/miuix/kmp/nav/core/NavDisplay.kt461 // Wire the platform predictive back gesture to the single driver. Enabled only when there isCOMMENT
LOW…main/java/top/yukonga/miuix/kmp/nav/core/NavDisplay.kt681 onCancel = {},COMMENT
LOW…main/java/top/yukonga/miuix/kmp/nav/core/NavDisplay.kt741 // Local non-null guard, NOT a non-local `return@key`: Compose Hot Reload turns theCOMMENT
LOW…main/java/top/yukonga/miuix/kmp/nav/core/NavDisplay.kt761 if (effects.dimAmount > 0f && entryIndex == topMostVisibleIndex && entryIndex > 0) {COMMENT
LOW…a/top/yukonga/miuix/kmp/nav/gesture/NavSwipeDismiss.kt341 val releaseAnchor = if (anchor.isNaN()) topIndex - animatedTop.value else anchorCOMMENT
LOW…a/top/yukonga/miuix/kmp/nav/gesture/NavSwipeDismiss.kt361 if (settleSink != null) {COMMENT
LOW…a/top/yukonga/miuix/kmp/nav/gesture/NavSwipeDismiss.kt381 animatedTop.settleTo(COMMENT
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…ebilibili/feature/video/ui/section/VideoInfoSection.kt0((https?|ftp|file)://[-a-za-z0-9+&@#/%?=~_|!:,.;]*[-a-za-z0-9+&@#/%=~_|])STRING
HIGH…ilibili/feature/video/ui/components/ReplyComponents.kt0((https?|ftp|file)://[-a-za-z0-9+&@#/%?=~_|!:,.;]*[-a-za-z0-9+&@#/%=~_|])STRING
HIGH…li/feature/dynamic/components/DynamicRichTextPolicy.kt0((https?|ftp|file)://[-a-za-z0-9+&@#/%?=~_|!:,.;]*[-a-za-z0-9+&@#/%=~_|])STRING
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
LOWartwork/brand-motion/generate.py309CODE
LOWartwork/brand-motion/render-cleaning-frames.py24CODE
LOWartwork/brand-motion/render-cleaning-frames.py54CODE
LOWscripts/augment_skin_catalog_effects.py29CODE
LOWscripts/augment_skin_catalog_effects.py40CODE
LOWscripts/video_card_transition_curve_probe.py68CODE
LOWscripts/video_card_transition_curve_probe.py107CODE
LOWscripts/update_settings_description_index.py7CODE
LOWscripts/video_card_transition_report.py115CODE
Unused Imports6 hits · 6 pts
SeverityFileLineSnippetContext
LOWartwork/brand-motion/validate.py2CODE
LOWplugins/tools/bilibili_skin_to_bpskin.py9CODE
LOWscripts/augment_skin_catalog_effects.py4CODE
LOWscripts/video_card_transition_curve_probe.py7CODE
LOWscripts/port_halcyon_lyrics.py3CODE
LOWscripts/video_card_transition_report.py6CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/video_card_transition_report.py225 "Missing phase data is null, never a zero-jank measurement."]}CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/video_card_transition_report.py154except (KeyError, ValueError):CODE
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWartwork/brand-motion/generate.py41CODE
LOWscripts/video_card_transition_report.py197CODE
Excessive Try-Catch Wrapping2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/tv_smoke.py131 except Exception as error:CODE
LOWscripts/update_settings_description_index.py20 except Exception:return ''CODE
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUM…i/feature/video/screen/VideoDetailScreenStateHolder.kt814 // 🔄 [Seamless Playback] Internal BVID state to support seamless switching in portrait modeCOMMENT
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…d/purebilibili/feature/login/LoginAppAuthPolicyTest.kt106 username = "user@example.com",CODE