AI Slop Code Risk Monitor

andrewrabert/jellium-desktop

SlopCodeMonitor badge for andrewrabert/jellium-desktop Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

An unofficial desktop client for Jellyfin

1.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for andrewrabert/jellium-desktop, a Rust project with 1,876 GitHub stars. SynthScan examined 76,673 lines of code across 351 source files, recording 96 pattern matches distributed across 3 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low 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.

1.3
Adjusted Signal
1.3
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
1.9K
Stars
Rust
Language
76.7K
Lines of Code
351
Files
96
Pattern Hits
2026-10-31
Scan Date
0.00
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 6.5/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

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

Agent Over-Engineering Ratio 0.1/100 · LOW

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

PR Review Velocity Impact 6.4/100 · LOW

Which changes need focused human review? 96 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 0HIGH 1MEDIUM 0LOW 95

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 96 distinct pattern matches across 3 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.

Over-Commented Block94 hits · 94 pts
SeverityFileLineSnippetContext
LOWsrc/gpu_paint/src/types.rs21 },COMMENT
LOWsrc/gpu_paint/src/painter.rs21/// How a surface chooses its swapchain extent.COMMENT
LOWsrc/gpu_paint/src/painter.rs101 }COMMENT
LOWsrc/gpu_paint/src/painter.rs141 // Persistent upload texture sized to the swapchain. Recreated onCOMMENT
LOWsrc/gpu_paint/src/painter.rs161 // import is not a cache hit, so it can never sample a stale texture.COMMENT
LOWsrc/gpu_paint/src/painter.rs321 /// Store a new target size.COMMENT
LOWsrc/gpu_paint/src/painter.rs341 /// On dx12 the swapchain is bound to the composition visual *inside*COMMENT
LOWsrc/gpu_paint/src/painter.rs661 /// The swapchain had no texture this cycle. The surface is fine, the frameCOMMENT
LOWsrc/gpu_paint/src/error.rs1use crate::FrameSize;COMMENT
LOWsrc/gpu_paint/src/lib.rs1//! The only place in the process that knows wgpu exists.COMMENT
LOWsrc/gpu_paint/src/swapchain.rs1//! A swapchain the caller draws into itself.COMMENT
LOWsrc/gpu_paint/src/context.rs61 AlphaSource::Straight => &self.pipeline_premultiplied,COMMENT
LOWsrc/gpu_paint/src/shared_texture.rs1//! A CEF accelerated-paint texture, selected statically per platform.COMMENT
LOWsrc/gpu_paint/src/shared/mod.rs1//! Importing CEF's shared-texture frames, and the device selection that makesCOMMENT
LOWsrc/gpu_paint/src/shared/mod.rs21pub use backend::ProducerId;COMMENT
LOWsrc/compositor_core/src/transition.rs1//! Fullscreen/resize transition gate.COMMENT
LOWsrc/compositor_core/src/transition.rs21//! [`end`]: TransitionGate::endCOMMENT
LOWsrc/compositor_core/src/lib.rs1//! Pure, host-testable compositor bookkeeping for the backends that cannot beCOMMENT
LOWsrc/compositor_core/src/stack.rs1//! Per-surface registry: the bottom-to-top stacking order plusCOMMENT
LOWsrc/windows_sink/src/lib.rs1//! Windows SystemMediaTransportControls (SMTC) sink. The sharedCOMMENT
LOWsrc/macos/src/backend.rs21// =====================================================================COMMENT
LOWsrc/macos/src/backend.rs201 jfn_mpv_toggle_fullscreen();COMMENT
LOWsrc/macos/src/backend.rs261/// Wakeup hook to install with `mpv_set_wakeup_callback`. Bridges mpv'sCOMMENT
LOWsrc/macos/src/backend.rs421// - the surface stack (bottom-to-top, set by macos_apply_stack)COMMENT
LOWsrc/macos/src/compositor.rs1//! `CAMetalLayer`-based per-surface compositor.COMMENT
LOWsrc/macos/src/compositor.rs81}COMMENT
LOWsrc/macos/src/mpv_host.rs1//! macOS [`MpvHost`]: pre-create environment (bundle marker, MoltenVKCOMMENT
LOWsrc/macos/src/init.rs41 /// macos_init through macos_cleanup.COMMENT
LOWsrc/macos/src/init.rs261// =====================================================================COMMENT
LOWsrc/macos/src/init.rs641use crate::macos_pump_block;COMMENT
LOWsrc/jellyfin/src/lib.rs1//! Jellyfin DeviceProfile JSON builder.COMMENT
LOWsrc/jellyfin/src/lib.rs61// this list (StreamBuilder keeps profile order; StreamingHelpers takes theCOMMENT
LOWsrc/input/src/route.rs41/// What the shell overlay owns at `p`. Grips win over the bar at overlaps.COMMENT
LOWsrc/input/src/scroll.rs1//! Coalescing scroll accumulator.COMMENT
LOWsrc/input/src/sink.rs41 fn paste(&self);COMMENT
LOWsrc/color/src/theme.rs1//! Window-scoped theme color tracker.COMMENT
LOWsrc/wake_event/src/lib.rs1//! Cross-platform one-shot event for waking poll()/WaitForMultipleObjects().COMMENT
LOWsrc/platform_abi/src/lib.rs1//! `Platform` trait + global handle held by `jfn_app_main`.COMMENT
LOWsrc/platform_abi/src/lib.rs61pub use visibility::{Ack, Visibility, VisibilityCommit};COMMENT
LOWsrc/platform_abi/src/lib.rs481 s: SurfaceHandle,COMMENT
LOWsrc/platform_abi/src/lib.rs961 }COMMENT
LOWsrc/platform_abi/src/mpv_host.rs1//! How the platform hosts mpv: pre-create environment, host-windowCOMMENT
LOWsrc/platform_abi/src/cef_host.rs1//! How the platform drives CEF's message loop.COMMENT
LOWsrc/platform_abi/src/geometry.rs1//! Window-geometry value types + on-screen clamping.COMMENT
LOWsrc/platform_abi/src/menu.rs161COMMENT
LOWsrc/platform_abi/src/media_sink.rs1//! OS media-session integration (MPRIS / MPNowPlaying / SMTC).COMMENT
LOWsrc/jfn_cef/src/runtime.rs21 source: std::io::Error,COMMENT
LOWsrc/jfn_cef/src/ffi.rs21// the program name; no jfn CLI flag is ever in there.COMMENT
LOWsrc/jfn_cef/src/business_common.rs1//! Shared helpers for the three `business_*` modules.COMMENT
LOWsrc/jfn_cef/src/client_impl/os_ffi.rs1//! Per-OS CEF handler-callback signature types. Each must match the nativeCOMMENT
LOWsrc/jfn_cef/src/client/accel.rs1//! The CEF ABI boundary for accelerated-paint frames.COMMENT
LOWsrc/jfn_cef/src/web_overlay/size.rs1//! What the web overlay is sized to.COMMENT
LOWsrc/mpris/src/projection.rs1//! MPRIS Player projection rules — every derived-field rule behind theCOMMENT
LOWsrc/wayland/src/layer_actor.rs361COMMENT
LOWsrc/wayland/src/wl_state.rs1//! Wayland surface / present / transition state, driven through theCOMMENT
LOWsrc/wayland/src/make_platform.rs1//! Wayland backend impl of [`jfn_platform_abi::Platform`].COMMENT
LOWsrc/wayland/src/lifecycle.rs1//! Wayland-backend `Platform::init` / `Platform::cleanup` body.COMMENT
LOWsrc/linux_util/src/dmabuf_probe.rs61 *const egl::Int,COMMENT
LOWsrc/jfn_rust/build.rs1//! Build-script hooks for the jellium-desktop binary.COMMENT
LOWsrc/jfn_rust/build.rs21 // requiring LD_LIBRARY_PATH at runtime.COMMENT
34 more matches not shown…
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHsrc/wayland/src/paint_override.rs1//! Which paint path to use, as requested on the command line.COMMENT
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/web/mpv-video-player.js2 function getMediaStreamAudioTracks(mediaSource) {CODE