AI Slop Code Risk Monitor

4gray/iptvnator

SlopCodeMonitor badge for 4gray/iptvnator Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

:tv: Cross-platform IPTV player application with multiple features, such as support of m3u and m3u8 playlists, favorites, TV guide, TV archive/catchup and more.

2.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for 4gray/iptvnator, a TypeScript project with 7,557 GitHub stars. SynthScan examined 1,030,329 lines of code across 4678 source files, recording 1788 pattern matches distributed across 7 syntactic categories. The legacy adjusted pattern signal is 2.1 (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.

2.1
Adjusted Signal
2.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
7.6K
Stars
TypeScript
Language
1.0M
Lines of Code
4.7K
Files
1.8K
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 7.7/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

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

Agent Over-Engineering Ratio 9.3/100 · LOW

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

PR Review Velocity Impact 9.9/100 · LOW

Which changes need focused human review? 1788 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 6HIGH 0MEDIUM 156LOW 1626

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

Hyper-Verbose Identifiers1541 hits · 1562 pts
SeverityFileLineSnippetContext
LOWtools/release/capture-app-driver.ts158async function assertStalkerMockServerIdentity(): Promise<void> {CODE
LOWtools/release/capture-app-driver.ts235export async function installDownloadFolderDialogStub(CODE
LOWtools/release/capture-navigation-download-actions.ts36async function ensureCaptureDownloadFolder(page: Page): Promise<void> {CODE
LOWtools/release/capture-navigation-download-actions.ts103async function openDownloadsOfflineMovie(page: Page): Promise<void> {CODE
LOWtools/release/capture-navigation-setup-actions.ts224async function openRemoteControlSettings(page: Page): Promise<void> {CODE
LOWtools/release/capture-navigation-setup-actions.ts260async function openSettingsRemoteControl(page: Page): Promise<void> {CODE
LOWtools/release/capture-navigation-setup-actions.ts287async function waitForRemoteControlServer(): Promise<void> {CODE
LOW…perpowers/plans/2026-08-03-playback-recommendations.md274export function classifyUnsupportedHlsManifestCodecs(CODE
LOW…perpowers/plans/2026-08-03-playback-recommendations.md285export function isBrowserMediaTypeSupported(CODE
LOW⚡…perpowers/plans/2026-08-03-playback-recommendations.md517export function resolvePlaybackSourceKind(CODE
LOW⚡…perpowers/plans/2026-08-03-playback-recommendations.md521export function getInlinePlaybackEngineFamily(CODE
LOW⚡…perpowers/plans/2026-08-03-playback-recommendations.md526export function createPlaybackTargetCapabilities(options: {CODE
LOW…perpowers/plans/2026-08-03-playback-recommendations.md707export function recommendPlaybackRecovery(CODE
LOW…plans/2026-07-17-web-player-shared-controls-setting.md595function resolveWebPlayerSharedControls(): boolean {CODE
LOW…s/plans/2026-07-31-download-manager-offline-details.md307export function encodeDownloadMetadataSnapshot(CODE
LOW…s/plans/2026-07-31-download-manager-offline-details.md318export function decodeDownloadMetadataSnapshot(CODE
LOW…s/plans/2026-07-31-download-manager-offline-details.md852export function createMovieDownloadSnapshot(CODE
LOW…s/plans/2026-07-31-download-manager-offline-details.md1115export function isProviderOnlyDetailState(state: unknown): boolean {CODE
LOW…s/superpowers/plans/2026-07-30-download-manager-mvp.md397export function buildDownloadManagerViewModel(options: {CODE
LOW…ers/plans/2026-07-30-responsive-channel-epg-preview.md99async function setPortalChannelItemWidth(CODE
LOW…ers/plans/2026-07-30-responsive-channel-epg-preview.md122async function expectNarrowRowContentFits(CODE
LOW…ans/2026-07-30-accurate-native-playback-diagnostics.md498function formatDiagnosticErrorDetails(issue: PlaybackDiagnostic): string {CODE
LOW…superpowers/plans/2026-07-18-flatpak-zypak-launcher.md68function resolveLinuxLauncherLayout(targets, executableName = 'iptvnator') {CODE
LOW…superpowers/plans/2026-07-18-flatpak-zypak-launcher.md531function resolveElectronBinaryPath(resourceDir, artifactFormat) {CODE
LOW…ns/2026-07-25-coverage-integrity-runtime-boundaries.md523export function createCoverageOutputScanner(maxCharacters = 4096) {CODE
LOW…owers/plans/2026-07-31-structured-shaka-diagnostics.md296export function createShakaPlaybackEvidence(CODE
LOW…/superpowers/plans/2026-08-01-season-download-queue.md228export function createEpisodeDownloadIdentityKey(CODE
LOW…/superpowers/plans/2026-08-01-season-download-queue.md263export function isEpisodeDownloadEligible(CODE
LOW…/superpowers/plans/2026-08-01-season-download-queue.md819export function createXtreamSeriesDownloadAdapter(CODE
LOW…ns/2026-07-29-repository-skills-implementation-sync.md805function generateLegacyVodEpisodeId(CODE
LOW⚡…ns/2026-07-29-repository-skills-implementation-sync.md954export function reconcileStalkerSeriesPositions(options: {CODE
LOW⚡…ns/2026-07-29-repository-skills-implementation-sync.md962export async function saveStalkerSeriesPosition(options: {CODE
LOW⚡…ns/2026-07-29-repository-skills-implementation-sync.md972export async function clearStalkerSeriesPosition(options: {CODE
LOW…wers/plans/2026-08-01-structured-mpegts-diagnostics.md254export function createMpegTsPlaybackEvidence(CODE
LOW…wers/plans/2026-08-01-structured-mpegts-diagnostics.md378export function classifyMpegTsPlaybackIssue(CODE
LOW…plans/2026-07-30-download-manager-file-availability.md136export function getDownloadFileAvailability(CODE
LOWdocs/superpowers/plans/2026-09-06-epg-guide-m3u.md1369export function restoreEpgGuidePreferences(CODE
LOW⚡docs/superpowers/plans/2026-09-06-epg-guide-m3u.md1381export function persistEpgGuidePreferences(CODE
LOW⚡docs/superpowers/plans/2026-09-06-epg-guide-m3u.md1390export function restoreEpgGuideDockCollapsed(CODE
LOW⚡docs/superpowers/plans/2026-09-06-epg-guide-m3u.md1396export function persistEpgGuideDockCollapsed(CODE
LOWdocs/superpowers/plans/2026-09-06-epg-guide-m3u.md4685function xmltvWithCurrentProgramme(CODE
LOW…trol/src/lib/remote-control/remote-control-language.ts48export function resolveRemoteControlLanguage(CODE
LOW…ib/scroll-position/create-scroll-position-preserver.ts4export function createScrollPositionPreserver(destroyRef: DestroyRef): {CODE
LOW…nents/src/lib/vod-sources/vod-source-filtering.util.ts36export function hasActiveVodSourceFilters(CODE
LOW…s/src/lib/season-container/season-auto-select.state.ts73export function createSeasonAutoSelectState(CODE
LOW…s/src/lib/season-container/season-watch-toggle.util.ts32export function buildWatchedEpisodePosition(options: {CODE
LOW…s/src/lib/season-container/season-watch-toggle.util.ts82export function buildSeasonWatchToggleRequest(options: {CODE
LOW…s/src/lib/season-container/season-watch-toggle.util.ts133export function buildSeriesWatchToggleRequest(options: {CODE
LOW…ts/src/lib/season-container/season-auto-select.util.ts40export function resolveAutoSelectedSeason(CODE
LOW…ts/src/lib/season-container/season-auto-select.util.ts103function findMostRecentInProgressSeason(CODE
LOW…/lib/season-container/episode-info-dialog.component.ts25export function buildEpisodeInfoDialogData(CODE
LOW⚡…c/lib/channel-list-container/channel-list-sort.util.ts8export function isPlaylistChannelSortMode(CODE
LOW⚡…c/lib/channel-list-container/channel-list-sort.util.ts14export function restorePlaylistChannelSortMode(CODE
LOW⚡…c/lib/channel-list-container/channel-list-sort.util.ts22export function persistPlaylistChannelSortMode(CODE
LOW⚡…c/lib/channel-list-container/channel-list-sort.util.ts30export function getPlaylistChannelSortModeLabelKey(CODE
LOW…/src/lib/channel-list-container/epg-enrichment.util.ts61export function buildChannelEpgMetadataMap(CODE
LOW…c/lib/web-video-support/external-subtitle-cues.util.ts29export function detectExternalSubtitleFormat(CODE
LOW…c/lib/web-video-support/external-subtitle-cues.util.ts50export function decodeExternalSubtitleBytes(buffer: ArrayBuffer): string {CODE
LOW…c/lib/web-video-support/external-subtitle-cues.util.ts83function chooseLegacySingleByteDecode(buffer: ArrayBuffer): string {CODE
LOW…c/lib/web-video-support/external-subtitle-cues.util.ts148export function parseExternalSubtitleCues(CODE
1481 more matches not shown…
Decorative Section Separators150 hits · 454 pts
SeverityFileLineSnippetContext
MEDIUMdocs/superpowers/plans/2026-09-06-epg-guide-m3u.md4444// ─── Guide mode ─────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss9// ─── Hero header ────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss62// ─── Status pills ───────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss99// ─── Messages ───────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss116// ─── Hero stat cards ────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss192// ─── Content area ───────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss203// ─── Detail panels ──────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss240// ─── Detail rows ────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss295// ─── Chip sections ──────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss352// ─── Empty account block ────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss373// ─── Error state ────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss408// ─── Skeleton loading ───────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss457// ─── Footer actions ─────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_account-dialog.scss464// ─── Responsive breakpoints ─────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_portal-sidebar.scss1// ─── Shared sidebar + sidebar-header styles ───────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_nav-list.scss1// ─── Shared List Navigation Styles ────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss1// ─── Shared mixin for live-stream portal layouts ──────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss22 // ─── Sidebar ─────────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss63 // ─── Main content column ─────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss73 // ─── Floating restore handle (visible when sidebar is collapsed) ─────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss174 // ─── Fix artplayer sizing when nested inside .video-player ───────────────COMMENT
MEDIUMlibs/ui/styles/_portal-layout.scss185 // ─── Phone layout ────────────────────────────────────────────────────────COMMENT
MEDIUMlibs/ui/styles/_detail-view-actions.scss312// ── Cinematic action row (VOD details hero + dashboard hero) ────────────────COMMENT
MEDIUM…ts/src/lib/vod-sources/vod-sources-menu.component.scss199// ── Filter chips ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ts/src/lib/vod-sources/vod-sources-menu.component.scss292// ── Copies expansion ────────────────────────────────────────────────────────COMMENT
MEDIUM…ui/components/src/lib/styles/_channel-list-layout.scss14// ── "All channels" and the favorites/recent context header ─────────────────COMMENT
MEDIUM…ui/components/src/lib/styles/_channel-list-layout.scss45// ── Groups view ────────────────────────────────────────────────────────────COMMENT
MEDIUM…ui/components/src/lib/styles/_channel-list-layout.scss89// ── Placeholders ───────────────────────────────────────────────────────────COMMENT
MEDIUM…l-list-container/channel-list-container.component.scss77// ─── Header ───────────────────────────────────────────────────────────────────COMMENT
MEDIUM…l-list-container/channel-list-container.component.scss93// ─── Divider ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss7// ─── Hero header ────────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss58// ─── Status pills ───────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss101// ─── Hero stat cards ────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss169// ─── Content area ───────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss180// ─── URL block ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss215// ─── Detail panels ──────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss251// ─── Detail rows ────────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss300// ─── Chip sections (sub-group headers) ──────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss318// ─── Footer actions ─────────────────────────────────────────────────────────COMMENT
MEDIUM…l-details-dialog/channel-details-dialog.component.scss320// ─── Responsive breakpoints ─────────────────────────────────────────────────COMMENT
MEDIUM…oading-state/channel-list-loading-state.component.scss56// ── All channels and the favorites/recent views ────────────────────────────COMMENT
MEDIUM…oading-state/channel-list-loading-state.component.scss102// ── Groups view ────────────────────────────────────────────────────────────COMMENT
MEDIUM…-channel-panel/fullscreen-channel-panel.component.scss23// ─── Closed state ────────────────────────────────────────────────────────────COMMENT
MEDIUM…-channel-panel/fullscreen-channel-panel.component.scss90// ─── Open state ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…-channel-panel/fullscreen-channel-panel.component.scss146// ─── Header: one row, search (or title) + close ──────────────────────────────COMMENT
MEDIUM…-channel-panel/fullscreen-channel-panel.component.scss285// ─── Body ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…-channel-panel/fullscreen-channel-panel.component.scss306// ─── Adaptations ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss2// ─── Radio Player — cinematic hero layout ────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss13// ─── Hero container ──────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss22// ─── Blurred backdrop (station logo, blown up) ──────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss35// ─── Vignette overlay (matches content-hero pattern) ─────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss61// ─── Floating content stage ──────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss76// ─── Artwork card ────────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss125// ─── Station name ────────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss142// ─── Live / Paused badge ─────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss182// ─── Transport controls ──────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss239// ─── Volume row ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss268// ─── Entrance ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…yback/src/lib/audio-player/audio-player.component.scss289// ─── Responsive ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…-episode-panel/fullscreen-episode-panel.component.scss143// ─── Row ─────────────────────────────────────────────────────────────────────COMMENT
90 more matches not shown…
Over-Commented Block73 hits · 73 pts
SeverityFileLineSnippetContext
LOWspikes/mpv-frame-copy/collect-results.sh1#!/usr/bin/env bashCOMMENT
LOWspikes/mpv-frame-copy/make-bundle.sh1#!/usr/bin/env bashCOMMENT
LOWspikes/mpv-frame-copy/common/spike_shm.h21#pragma onceCOMMENT
LOWspikes/mpv-frame-copy/helper/mpv_helper.cpp21#include <signal.h>COMMENT
LOWlibs/ui/styles/_focus-ring.scss1// The app's keyboard focus ring. `apps/web/src/styles.scss` draws it onCOMMENT
LOWlibs/ui/styles/_app-controls.scss1// Buttons, menus, the segmented control and floating panels of theCOMMENT
LOWlibs/ui/styles/_skeleton-shimmer.scss1// The one shimmer recipe for loading placeholders: the dashboard hero andCOMMENT
LOWlibs/ui/styles/_portal-layout.scss1// ─── Shared mixin for live-stream portal layouts ──────────────────────────────COMMENT
LOW…bs/ui/components/src/lib/styles/_skeleton-shimmer.scss1// The shared shimmer moved to `libs/ui/styles/_skeleton-shimmer.scss` so theCOMMENT
LOW…-mpv-player/embedded-mpv-overlay-visibility.service.ts61 // Plain set, no read-back guard: signals already skip notificationCOMMENT
LOW…embedded-mpv-player/embedded-mpv-session-controller.ts181 window.addEventListener('resize', scheduleBoundsSync);COMMENT
LOW…src/lib/player-controls/player-controls.component.scss21 // Reds, literal like the rest: the theme's error colour changes with theCOMMENT
LOW…/playback/src/lib/player-controls/_player-palette.scss1// Player colours that surfaces outside the controls host need too. TheCOMMENT
LOW…src/lib/epg-timeline/epg-timeline-scroll.controller.ts121 }COMMENT
LOW…layer/src/lib/video-player/video-player.component.scss141 // Keeps the mixin's player floor rather than releasing it: `height: 50vh`COMMENT
LOW…alker-portal-import/stalker-portal-import.component.ts381 this.importController = controller;COMMENT
LOW…b/stalker-series-view/stalker-series-view.component.ts421 // usually BEFORE the async show-level TMDB enrichment has writtenCOMMENT
LOW…er/data-access/src/lib/stalker-account-info.service.ts121 }COMMENT
LOW…s/src/lib/stores/utils/stalker-player-request.utils.ts61 }COMMENT
LOW…ure/src/lib/search-results/search-results.component.ts261 // Created first so a route `q` reaches the store before the searchCOMMENT
LOW…portal-channels-list/portal-channels-list.component.ts361 this.epgQueueService.epgResult$.subscribe(COMMENT
LOW…e/src/lib/vod-details/vod-multi-source-host.service.ts481 }COMMENT
LOW…a-access/src/lib/collection/stream-resolver.service.ts461 // Skipping `create_link` also skips the only authenticatedCOMMENT
LOW…a-access/src/lib/collection/stream-resolver.service.ts601 // just ran adopted a token under the repaired mode, but the mode-awareCOMMENT
LOW…src/lib/workspace-shell/workspace-shell.component.scss81// a mask layer Blink synthesizes per composited effect: its shader path forCOMMENT
LOW…t-sidebar/workspace-shell-context-sidebar.component.ts121 'contextPanel'COMMENT
LOW…sidebar/workspace-shell-context-sidebar.component.scss81}COMMENT
LOW…-shell/services/workspace-shell-search-sync.service.ts161 // refresh bump) or the router echoing back our own `q`. Syncing anywayCOMMENT
LOW…rd/feature/src/lib/rails/dashboard-hero.component.scss1// Cinematic dashboard hero. Bleeds to the edges of the workspace contentCOMMENT
LOW…ta-access/src/lib/dashboard-recommendations.service.ts181 } else {COMMENT
LOWlibs/shared/tmdb/src/lib/tmdb-metadata-client.ts141 ) {COMMENT
LOW…d/interfaces/src/lib/provider-import-detection.util.ts101 // math alphabets; the extra pass folds the squared/negative-circled/COMMENT
LOWlibs/shared/interfaces/src/lib/ipc-commands.ts121COMMENT
LOW.github/actionlint.yaml1paths:COMMENT
LOW.github/workflows/cleanup-pr-draft.yml121 # being `open` ("Check PR is still open" in build-and-make.yaml), soCOMMENT
LOW.github/workflows/build-and-make.yaml1name: Build and Make Electron AppCOMMENT
LOW.github/workflows/build-and-make.yaml481 TMDB_API_KEY: ${{ secrets.TMDB_API_KEY }}COMMENT
LOW.github/codeql/codeql-config.yml1name: 'IPTVnator CodeQL config'COMMENT
LOWapps/web-backend/src/app/web-backend-app.ts281 let guardToken: HostRequestToken | null = null;COMMENT
LOWapps/electron-backend/native/helper/frame_helper_gl.h41#include <dlfcn.h>COMMENT
LOWapps/electron-backend/native/helper/frame_helper_gl.h61#include <cstdio>COMMENT
LOWapps/electron-backend/native/helper/frame_helper_gl.h81#include <GL/gl.h>COMMENT
LOWapps/electron-backend/native/helper/frame_helper_gl.h101#define GL_COLOR_ATTACHMENT0 0x8CE0COMMENT
LOWapps/electron-backend/native/helper/frame_shm.h21#endifCOMMENT
LOW…s/electron-backend/native/helper/frame_helper_render.h21#endifCOMMENT
LOW…ps/electron-backend/native/helper/mpv_frame_helper.cpp21#include <mpv/client.h>COMMENT
LOWapps/electron-backend/native/src/embedded_mpv.mm1#include <napi.h>COMMENT
LOWapps/electron-backend/native/src/embedded_mpv.mm21#include <cctype>COMMENT
LOW…/electron-backend/native/src/embedded_mpv_wid_common.h1#pragma onceCOMMENT
LOW…/electron-backend/native/src/embedded_mpv_wid_common.h41COMMENT
LOW…/electron-backend/native/src/embedded_mpv_wid_common.h61#include <cctype>COMMENT
LOW…/electron-backend/native/src/embedded_mpv_wid_common.h2281 //COMMENT
LOWapps/electron-backend/src/main.ts61// Packaged Linux launchers force X11 via the .desktop entryCOMMENT
LOWapps/electron-backend/src/app/app.ts421 // Window state is never re-read at event time: on Windows bothCOMMENT
LOWapps/electron-backend/src/app/app.ts561 showMainWindowWhenLoaded(mainWindow, () => {COMMENT
LOW…rc/app/database/operations/title-sources.operations.ts181 */COMMENT
LOW…rc/app/database/operations/title-sources.operations.ts341 )) as TitleSourceRow[]);COMMENT
LOW…p/database/operations/title-sources.operations.spec.ts101 it('can still find a short non-ASCII title', async () => {COMMENT
LOW…ackend/src/app/database/operations/title-token-glob.ts181 ) {COMMENT
LOW…s/electron-backend/src/app/events/epg-query.service.ts921 .from(schema.epgChannelMappings)COMMENT
13 more matches not shown…
Hallucination Indicators6 hits · 60 pts
SeverityFileLineSnippetContext
CRITICAL…layback/src/lib/art-player/art-player-video-session.ts55 this.config.player.video.volume.toString()CODE
CRITICAL…lib/player-controls/player-settings-panel.a11y.spec.ts263 fake.commands.setPlaybackSpeed.mock.calls.map(([speed]) => speed)CODE
CRITICAL…s/src/lib/server-storage/server-user-data-sync.spec.ts131 expect(server.api.sendJson.mock.calls.map(([, path]) => path)).toEqual([CODE
CRITICAL…/src/app/api/main.preload.performance.contract.spec.ts129 const markerSendOrders = harness.ipcRenderer.send.mock.calls.flatMap(CODE
CRITICAL…/src/app/api/main.preload.performance.contract.spec.ts318 harness.ipcRenderer.send.mock.calls.filter(CODE
CRITICAL…end/src/app/events/epg-worker.service.progress.spec.ts187 const statuses = win.webContents.send.mock.calls.map(CODE
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippetContext
LOWdocs/development/tv-metadata-validation.md48| TMDB default-key injection | Disposable fake-key fixture passes; source default remains empty |CODE
LOW…ponents/src/lib/content-hero/content-hero.component.ts157 const hue = this.calculateHue(this.title() || 'placeholder');CODE
LOW…ponents/src/lib/content-hero/content-hero.component.ts163 const hue = this.calculateHue(this.title() || 'placeholder');CODE
LOW…ashboard/feature/src/lib/rails/dashboard-hero.utils.ts92 const key = text || 'placeholder';CODE
LOWlibs/tv/testing/tmdb.test.ts53 apiKey: 'fake-key',CODE
LOW…src/app/database/operations/operations.test-helpers.ts38 kind: 'placeholder',CODE
LOW…c/app/database/operations/favorites.operations.spec.ts8 kind: 'placeholder',CODE
LOW…/src/app/api/main.preload.performance.contract.spec.ts243 ...createPlaylist('placeholder'),CODE
LOWapps/tv-e2e/src/episode-layout.e2e.ts84 .fill('fake-key');CODE
LOWapps/tv-e2e/src/tmdb-series.e2e.ts18 await page.getByLabel('TMDB API key or read access token').fill('fake-key');CODE
LOWapps/tv-e2e/src/tmdb-series.e2e.ts113 await page.getByLabel('TMDB API key or read access token').fill('fake-key');CODE
LOWapps/tv-e2e/src/tmdb-series.e2e.ts284 await page.getByLabel('TMDB API key or read access token').fill('fake-key');CODE
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMspikes/mpv-frame-copy/viewer/index.html213 // robust against rAF quantization on high-Hz displays.COMMENT
MEDIUM.github/workflows/ci.yml266 # Anything can move a journey (application code, the harness, rootCOMMENT
MEDIUM.github/workflows/ci.yml474 # Node specs for the benchmark and journey harness (about tenCOMMENT
MEDIUM.github/actions/performance-journeys/action.yml101 "## Performance journeys (\(.harness.platform), \(.harness.measuredIterations) measured iterations)", CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMdocs/architecture/release-pipeline.md110## Blog scaffold shapeCOMMENT
MEDIUM…owers/specs/2026-08-01-season-download-queue-design.md129### Provider-neutral orchestrationCOMMENT