{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-23be38f8489e3ba8", "name": "Possibly dead Python function: prune_cache_loop", "shortDescription": {"text": "Possibly dead Python function: prune_cache_loop"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-793f7e265c7b8b49", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2025e359479c8be6", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-370a4cd55fc461f8", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb054f7cb4b5cd38", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0392a024f40bd18", "name": "Stray `console.log` in TS/JS \u2014 apps/android-blissful/scripts/link-core.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/android-blissful/scripts/link-core.js:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f4a08b665a161953", "name": "Stray `console.log` in TS/JS \u2014 apps/shared/blissful-storage/server.js:322", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/shared/blissful-storage/server.js:322"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d2e982cfd85b9d5", "name": "Stray `console.log` in TS/JS \u2014 apps/shared/addon-proxy/server.js:962", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/shared/addon-proxy/server.js:962"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a603935c6d25082f", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/AccountModal.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/AccountModal.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4771993e32ddfd8", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/HomeSettingsModal", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/HomeSettingsModal.tsx:56"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-309f04c33dcca2f4", "name": "Stray `console.log` in TS/JS \u2014 apps/web-blissful/src/layout/app-shell/hooks/useStoredStateSync.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/web-blissful/src/layout/app-shell/hooks/useStoredStateSync.ts:63"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7f8c363eb48e018", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/netflix/NetflixTopBar.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/netflix/NetflixTopBar.tsx:169"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e853416ad2aedd49", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/top-nav/TopNav.tsx:313", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/top-nav/TopNav.tsx:313"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7468ad7db9524837", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/ResumeOrStartOverModal.tsx:93", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/ResumeOrStartOverModal.tsx:93"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61347072d02de64a", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BananasPicker.tsx:326", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BananasPicker.tsx:326"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32e1726331d9c364", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WhatToDoDrawer.tsx:61", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WhatToDoDrawer.tsx:61"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-877b6b743b26bdaf", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/MediaCard.tsx:300", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/MediaCard.tsx:300"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74012ac71bf10699", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SettingsStremioPanel.tsx:247", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SettingsStremioPanel.tsx:247"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8ea529df11bf93e", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PartyInviteListener.tsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PartyInviteListener.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffe0ecbc12802291", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PlayerBufferingScreen.tsx:43", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PlayerBufferingScreen.tsx:43"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75b8a0e1dae83a32", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/MobileNav.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/MobileNav.tsx:140"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-081a05beacc0c2d2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/DesktopNav.tsx:202", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/DesktopNav.tsx:202"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-997d883edbb28307", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopove", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopover.tsx:137"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3ce8cb3c113ba06", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:239"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac8ead4034ebede4", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.tsx:52"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-169dc00567342f94", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:49"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-925d133f1910b8c0", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast.tsx:162"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f14b142745d0be45", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:704"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29e6792c3c5d9e48", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:3", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:366"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe154471e1fffcd2", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:83"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fde1bbd963eb33d6", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:69", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:69"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7818c4d4835c6409", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/FriendRow.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/FriendRow.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62706da2165fea82", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/PersonActionsRow.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/PersonActionsRow.tsx:116"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15acb19e0d820b22", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/ProfilePage.tsx:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/ProfilePage.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54145a50078d5e70", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/AccountsPage.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/AccountsPage.tsx:95"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-386965b7648b68f0", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:178", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:178"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b417808d8353ba1", "name": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/features/detail/components/SeasonHeader.tsx:6", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/features/detail/components/SeasonHeader.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09dc6ea39004ea72", "name": "Icon-only button without accessible name \u2014 apps/web-blissful/src/features/home/components/ModernHeroPanel.tsx:100", "shortDescription": {"text": "Icon-only button without accessible name \u2014 apps/web-blissful/src/features/home/components/ModernHeroPanel.tsx:100"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef53017f78cf3f32", "name": "Stray `console.log` in TS/JS \u2014 scripts/dev-launcher/main.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-launcher/main.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c4d477bbd9acdce", "name": "Insecure pattern 'new_function_used' in apps/shared/addon-proxy/videasy-decrypt.js:72", "shortDescription": {"text": "Insecure pattern 'new_function_used' in apps/shared/addon-proxy/videasy-decrypt.js:72"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e7855928cdbd4fe", "name": "Insecure pattern 'node_child_process' in apps/shared/addon-proxy/server.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/shared/addon-proxy/server.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c97d5cc12c30ccb6", "name": "Insecure pattern 'cors_wildcard' in apps/shared/addon-proxy/server.js:720", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in apps/shared/addon-proxy/server.js:720"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cc29da6d8e5ab98", "name": "Possible secret in apps/desktop-blissful/installer/README.md", "shortDescription": {"text": "Possible secret in apps/desktop-blissful/installer/README.md"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-cef2cbb7345cbc00", "name": "Insecure pattern 'node_child_process' in scripts/dev.cjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev.cjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fde352303b38dca", "name": "Insecure pattern 'node_child_process' in scripts/run-cargo.cjs:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/run-cargo.cjs:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb66a30fb6b75dae", "name": "Insecure pattern 'node_child_process' in scripts/dev-android.cjs:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-android.cjs:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71206df7fde5898a", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/dev-launcher/renderer/renderer.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/dev-launcher/renderer/renderer.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8f41a02f3181ff3", "name": "Insecure pattern 'node_child_process' in scripts/dev-launcher/lib/manager.cjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/dev-launcher/lib/manager.cjs:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64b67fb372bb1407", "name": "Insecure pattern 'node_child_process' in scripts/e2e/verify-software-transcode.mjs:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-software-transcode.mjs:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b45bce21b94a3648", "name": "Insecure pattern 'node_child_process' in scripts/e2e/verify-renderer-recovery.mjs:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-renderer-recovery.mjs:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-135561ba8f354fe6", "name": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty.mjs:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty.mjs:29"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b348f1caad1227b7", "name": "Insecure pattern 'cors_wildcard' in scripts/e2e/watchparty.mjs:203", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in scripts/e2e/watchparty.mjs:203"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-255cb296c690023b", "name": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty-v2.mjs:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty-v2.mjs:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa2153091188437a", "name": "Insecure pattern 'node_child_process' in scripts/e2e/relay-crash-repro.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/relay-crash-repro.mjs:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78b023fe396d5081", "name": "Insecure pattern 'node_child_process' in scripts/e2e/episode-change-share.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/episode-change-share.mjs:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82c299eef188514a", "name": "Insecure pattern 'node_child_process' in scripts/e2e/verify-leftover-replace.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-leftover-replace.mjs:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de3a9a46c75fa87a", "name": "Insecure pattern 'node_child_process' in scripts/e2e/host-relay.mjs:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/host-relay.mjs:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20aeca371791ce57", "name": "Insecure pattern 'cors_wildcard' in infra/scripts/blissful-transcoder.py:248", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/scripts/blissful-transcoder.py:248"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b88644ded2b44f3b", "name": "Insecure pattern 'node_child_process' in e2e/run.mjs:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/run.mjs:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-587107bb1c75f49d", "name": "Insecure pattern 'node_child_process' in e2e/suites/shell-transcode.desktop.spec.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/suites/shell-transcode.desktop.spec.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e96d49277ab2e2a2", "name": "Insecure pattern 'node_child_process' in e2e/suites/shell-leftover.desktop.spec.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/suites/shell-leftover.desktop.spec.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faf7cb6428680a4d", "name": "Insecure pattern 'node_child_process' in e2e/suites/smoke.android.spec.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/suites/smoke.android.spec.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8a0cd314b2533d7", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e754276b9fd1cf17", "name": "Very large file: apps/android-blissful/src/screens/PlayerScreen.tsx (1083 lines)", "shortDescription": {"text": "Very large file: apps/android-blissful/src/screens/PlayerScreen.tsx (1083 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ccc7778a21596c46", "name": "Very large file: apps/shared/blissful-storage/server.js (3002 lines)", "shortDescription": {"text": "Very large file: apps/shared/blissful-storage/server.js (3002 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0d3309631e997c2", "name": "Very large file: apps/shared/addon-proxy/server.js (2592 lines)", "shortDescription": {"text": "Very large file: apps/shared/addon-proxy/server.js (2592 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77612d4ca1d1d975", "name": "Very large file: apps/web-blissful/src/components/NativeMpvPlayer.tsx (3643 lines)", "shortDescription": {"text": "Very large file: apps/web-blissful/src/components/NativeMpvPlayer.tsx (3643 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2e3101eb998704b", "name": "Very large file: apps/web-blissful/src/components/BlissfulPlayer/index.tsx (4041 lines)", "shortDescription": {"text": "Very large file: apps/web-blissful/src/components/BlissfulPlayer/index.tsx (4041 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2036e084f99df957", "name": "Very large file: apps/web-blissful/src/pages/PlayerPageWeb.tsx (1561 lines)", "shortDescription": {"text": "Very large file: apps/web-blissful/src/pages/PlayerPageWeb.tsx (1561 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "9 test file(s) for 445 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 122 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 165 placeholder/mock markers across 55 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93a66d876ea1f55b", "name": "Commented-code block (5 lines) in playwright.config.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in playwright.config.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6ea15e156aa46c6", "name": "Commented-code block (6 lines) in apps/android-blissful/metro.config.js:14", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/metro.config.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-984f446d09508210", "name": "Commented-code block (7 lines) in apps/android-blissful/scripts/link-core.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/android-blissful/scripts/link-core.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d24bf585708551c1", "name": "Commented-code block (6 lines) in apps/android-blissful/src/screens/LibraryScreen.tsx:27", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/LibraryScreen.tsx:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97f7e591dda8c759", "name": "Commented-code block (6 lines) in apps/android-blissful/src/screens/DetailScreen.tsx:231", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/DetailScreen.tsx:231"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-185112b0f7362b80", "name": "Commented-code block (5 lines) in apps/android-blissful/src/screens/SettingsScreen.tsx:116", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/SettingsScreen.tsx:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3aa459128be2094a", "name": "Commented-code block (5 lines) in apps/android-blissful/src/screens/HomeScreen.tsx:112", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/HomeScreen.tsx:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22f8e2859f1cfc53", "name": "Commented-code block (6 lines) in apps/android-blissful/src/screens/PlayerScreen.tsx:39", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/PlayerScreen.tsx:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-faadde86d16f3e44", "name": "Commented-code block (5 lines) in apps/android-blissful/src/screens/DiscoverScreen.tsx:34", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/DiscoverScreen.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-114a1ee994b47b6a", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/Img.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/Img.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04cc629d22c65c72", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/NavRail.tsx:132", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/NavRail.tsx:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b96470e96fa130d", "name": "Commented-code block (6 lines) in apps/android-blissful/src/components/Rating.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/Rating.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d42cfe77edd54f36", "name": "Commented-code block (8 lines) in apps/android-blissful/src/components/PartyInviteListener.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/components/PartyInviteListener.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cd74fb30a76d270", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/FocusTrap.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/FocusTrap.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5718ba0419cf7423", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/LibraryActionOverlay.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/LibraryActionOverlay.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a12e992886d9ac4", "name": "Commented-code block (6 lines) in apps/android-blissful/src/components/LoginModal.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/LoginModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59f0948da71dbaa4", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/ProfileMenu.tsx:127", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/ProfileMenu.tsx:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f909847e641a0c9c", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsStremioPanel.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsStremioPanel.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0420eff14545573", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/TvTextField.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/TvTextField.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f7d177f11fd0b27", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsTraktPanel.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsTraktPanel.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02698ad7a5b710e7", "name": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/SubtitleMenu.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/SubtitleMenu.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-172005a5039cd540", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/SubtitleOverlay.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/SubtitleOverlay.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0267135b9022a513", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PlayerControls.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PlayerControls.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-107ede07825f4647", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PauseOverlay.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PauseOverlay.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e7d20f7bee634bd", "name": "Commented-code block (10 lines) in apps/android-blissful/src/components/player/SettingsDrawer.tsx:9", "shortDescription": {"text": "Commented-code block (10 lines) in apps/android-blissful/src/components/player/SettingsDrawer.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-782e26e82ba17c9e", "name": "Commented-code block (11 lines) in apps/android-blissful/src/components/player/EpisodesDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in apps/android-blissful/src/components/player/EpisodesDrawer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2492c2055bf4537e", "name": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/WatchPartyDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/WatchPartyDrawer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-942c56a89811a9b4", "name": "Commented-code block (9 lines) in apps/android-blissful/src/components/ui/Button.tsx:7", "shortDescription": {"text": "Commented-code block (9 lines) in apps/android-blissful/src/components/ui/Button.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36898290d7d28a82", "name": "Commented-code block (6 lines) in apps/android-blissful/src/components/ui/MenuActionButton.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/ui/MenuActionButton.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c778ac928c09019", "name": "Commented-code block (8 lines) in apps/android-blissful/src/components/ui/Chip.tsx:7", "shortDescription": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/components/ui/Chip.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b86a3c7722f1f1ce", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/HomeActionOverlay.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/HomeActionOverlay.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fa73db3d35828f9", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/CustomizeHomeModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/CustomizeHomeModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ae04ecd4e57ee19", "name": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/useAddonRows.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/useAddonRows.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-368fd2a25cdcf2e0", "name": "Commented-code block (7 lines) in apps/android-blissful/src/components/home/useFocusedMeta.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in apps/android-blissful/src/components/home/useFocusedMeta.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e70394c41e468c16", "name": "Commented-code block (5 lines) in apps/android-blissful/src/theme/colors.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/theme/colors.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da86155643630440", "name": "Commented-code block (6 lines) in apps/android-blissful/src/theme/metrics.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/theme/metrics.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32332b93e5c9552d", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/watchParty.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/watchParty.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b429ded094eedeed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/watchParty.ts:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/watchParty.ts:150"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82f10fd1ac24fc21", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/settingsLeftTarget.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/settingsLeftTarget.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24a575ef52f0ce5b", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/subtitles.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/subtitles.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcc43ba248b4f54a", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktApi.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktApi.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7d0d1876d434d07", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/useImdbRating.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/useImdbRating.ts:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9301a116f699b975", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/addons.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/addons.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53e3425edfbc85fa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/addons.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/addons.ts:56"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9924b5c904c17222", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/appInfo.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/appInfo.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-455472af430680ac", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/joinWatchParty.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/joinWatchParty.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc7348ac37bffdb5", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/images.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/images.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-befe5fe34c008fa0", "name": "Commented-code block (11 lines) in apps/android-blissful/src/lib/useTvFocusable.ts:11", "shortDescription": {"text": "Commented-code block (11 lines) in apps/android-blissful/src/lib/useTvFocusable.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96968ed6d87588d4", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/useWatchPartyRoom.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/useWatchPartyRoom.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0e2d17addfa6c9b", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/presence.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/presence.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1913d4372616990f", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/railStore.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/railStore.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19654bbc780d8e4b", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/streamPicker.ts:208", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/streamPicker.ts:208"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27468270dad306bf", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/overlayStore.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/overlayStore.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1903d5fd5391e10a", "name": "Commented-code block (8 lines) in apps/android-blissful/src/lib/metaResolver.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/lib/metaResolver.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49f4d92d9fbf5b10", "name": "Commented-code block (7 lines) in apps/android-blissful/src/lib/subtitleCues.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/android-blissful/src/lib/subtitleCues.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ffff1ccefdc1241", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/stremioLink.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/stremioLink.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e73c9b006adb70fc", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/focusBus.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/focusBus.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2c2adf7366db3cb", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktConfig.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktConfig.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0eff4f3e0bd159a0", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/tmdbArt.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/tmdbArt.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20c870247e41118c", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/useSelfTag.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/useSelfTag.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16ae05c0bff55162", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/loginStore.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/loginStore.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6b862e6c08c0ea0", "name": "Commented-code block (8 lines) in apps/android-blissful/src/lib/tvSettings.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/lib/tvSettings.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3be806a3c4b73469", "name": "Commented-code block (6 lines) in apps/android-blissful/src/lib/contentFocus.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/contentFocus.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b31c42b3e63f861", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/activeParties.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/activeParties.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb1196d6f7e25bb6", "name": "Commented-code block (9 lines) in apps/android-blissful/src/lib/streamRelevance.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/android-blissful/src/lib/streamRelevance.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b67cf8906d0be0a", "name": "Commented-code block (5 lines) in apps/android-blissful/src/lib/homeRows.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/homeRows.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e542f82372ae1488", "name": "Commented-code block (5 lines) in apps/android-blissful/src/icons/StremioLogo.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/icons/StremioLogo.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b0f948426f39836", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/stremioAddon.ts:208", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/stremioAddon.ts:208"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7116055555345868", "name": "Commented-code block (5 lines) in apps/shared/blissful-core/src/adapters.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/shared/blissful-core/src/adapters.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e27d8210009ae73d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/adapters.ts:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/adapters.ts:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3612d1d58e995d56", "name": "Commented-code block (7 lines) in apps/shared/blissful-core/src/mediaTypes.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/shared/blissful-core/src/mediaTypes.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-968a9848ee62b21e", "name": "Commented-code block (5 lines) in apps/shared/blissful-core/src/blissfulAuthApi.ts:299", "shortDescription": {"text": "Commented-code block (5 lines) in apps/shared/blissful-core/src/blissfulAuthApi.ts:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5776602203074910", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/blissfulStorageApi.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/blissfulStorageApi.ts:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db9ded08422a4c2c", "name": "Commented-code block (7 lines) in apps/shared/blissful-storage/server.js:71", "shortDescription": {"text": "Commented-code block (7 lines) in apps/shared/blissful-storage/server.js:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f6be5ab78cf86b4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-storage/server.js:1364", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-storage/server.js:1364"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-235310f021d33f92", "name": "Commented-code block (5 lines) in apps/shared/addon-proxy/videasy-decrypt.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/shared/addon-proxy/videasy-decrypt.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e01c75ab19a90cb7", "name": "Commented-code block (7 lines) in apps/shared/addon-proxy/server.js:10", "shortDescription": {"text": "Commented-code block (7 lines) in apps/shared/addon-proxy/server.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a21cc8d39b90e24", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/addon-proxy/server.js:1114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/addon-proxy/server.js:1114"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d0d47081190f3f4", "name": "Commented-code block (9 lines) in apps/web-blissful/vite.config.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/vite.config.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa95d52bf264fe03", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/vite.config.ts:187", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/vite.config.ts:187"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9153a1bb77e2bb4", "name": "Commented-code block (15 lines) in apps/web-blissful/src/main.tsx:12", "shortDescription": {"text": "Commented-code block (15 lines) in apps/web-blissful/src/main.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-351b00838a1692ee", "name": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/constants.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/constants.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de42298450eb2b1d", "name": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/WhoWatchingModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/WhoWatchingModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4299455bf6d77b93", "name": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/LoginModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/LoginModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f23903c7315c0ae", "name": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatchingActions.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatchingActions.ts:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4e58cd3115e3345", "name": "Commented-code block (8 lines) in apps/web-blissful/src/layout/app-shell/hooks/useGradientBackdrop.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/layout/app-shell/hooks/useGradientBackdrop.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34a91a3b9ab5af87", "name": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useAddonsManager.ts:52", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useAddonsManager.ts:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-baee11e188cb0897", "name": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatching.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatching.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e26b6bd39e6a8c0c", "name": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useHomeCatalog.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useHomeCatalog.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05975ee150c959d8", "name": "Commented-code block (9 lines) in apps/web-blissful/src/layout/top-nav/TopNav.tsx:96", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/layout/top-nav/TopNav.tsx:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00e53b007dc9e88a", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/BananasPicker.tsx:45", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BananasPicker.tsx:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17c6147031f22013", "name": "Commented-code block (8 lines) in apps/web-blissful/src/components/TruncatedText.tsx:19", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/TruncatedText.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2420425585c73b0", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/PersistentPlayerHost.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/PersistentPlayerHost.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-567ef7c92765cc4e", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/MiniPlayerWindow.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/MiniPlayerWindow.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e70bf1e30831e6a", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/UnreleasedEpisodeModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/UnreleasedEpisodeModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecad312973d77b7c", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/Rating.tsx:31", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/Rating.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80eb04f46085e7cb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/Rating.tsx:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/Rating.tsx:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-821241d0c689ef6d", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/useChapterSkipWeb.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/useChapterSkipWeb.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6a9e1ec1b4f89b0", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/MediaCard.tsx:57", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/MediaCard.tsx:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65d84c7dae7b0758", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/RouteTransition.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/RouteTransition.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5587130f7234895", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/SettingsStremioPanel.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/SettingsStremioPanel.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22f4dda935bf02af", "name": "Commented-code block (11 lines) in apps/web-blissful/src/components/BlissTooltip.tsx:42", "shortDescription": {"text": "Commented-code block (11 lines) in apps/web-blissful/src/components/BlissTooltip.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8090e9c514268511", "name": "Commented-code block (8 lines) in apps/web-blissful/src/components/AppShell.tsx:170", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/AppShell.tsx:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c78f59985bf37f8f", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/PlayerControlIcons.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/PlayerControlIcons.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f240a124cc6e8e3a", "name": "Commented-code block (7 lines) in apps/web-blissful/src/components/PartyInviteListener.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/PartyInviteListener.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f6c6c5998c05bfd", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/StreamUnavailableModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/StreamUnavailableModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dd6354a6e37bd0a", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c0a20cf92faf7583", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/NativeMpvPlayer.tsx:843", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/NativeMpvPlayer.tsx:843"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c17fa552669ea15d", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/PlayerBufferingScreen.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/PlayerBufferingScreen.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4fb501c5960b04c", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Tabs.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Tabs.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d37dd6751a374ea0", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Spinner.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Spinner.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6f3ded19080d941", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Button.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Button.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e077b4290b958cd0", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Dropdown.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Dropdown.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d643ee3b6ba598c0", "name": "Commented-code block (7 lines) in apps/web-blissful/src/components/base/Avatar.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/base/Avatar.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8150d84770761c3", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfbbc3e08803902b", "name": "Commented-code block (11 lines) in apps/web-blissful/src/components/base/BlissTooltip.tsx:42", "shortDescription": {"text": "Commented-code block (11 lines) in apps/web-blissful/src/components/base/BlissTooltip.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de01849791551163", "name": "Commented-code block (10 lines) in apps/web-blissful/src/components/base/Modal.tsx:5", "shortDescription": {"text": "Commented-code block (10 lines) in apps/web-blissful/src/components/base/Modal.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c49eb01a846ad742", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Switch.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Switch.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6f8c66d4989fa9a", "name": "Commented-code block (9 lines) in apps/web-blissful/src/components/base/Card.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/components/base/Card.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c789a5210d0b7dec", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Accordion.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Accordion.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4be534ddd942781", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/SideNav/useFooterAccordionHeights.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/SideNav/useFooterAccordionHeights.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20c44d9d4a783874", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/NavItem.tsx:30", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/NavItem.tsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5766fdeac62d54c4", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/FriendsDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/FriendsDrawer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bd5ef94295589ba", "name": "Commented-code block (7 lines) in apps/web-blissful/src/components/SideNav/DesktopNav.tsx:73", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/SideNav/DesktopNav.tsx:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-490d3220dbdf8ae3", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopover.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopover.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1637b35e03d0e20", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:291", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:291"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18bedd495d19e9f0", "name": "Commented-code block (20 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useChapterSkip.ts:4", "shortDescription": {"text": "Commented-code block (20 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useChapterSkip.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7bba7002bb74e54", "name": "Commented-code block (10 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useSkipSegments.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useSkipSegments.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aba3f0b83f5659f7", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodeThumbnail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodeThumbnail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44002d33b8852fe1", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/ScrubBar.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/ScrubBar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-617bc7ffe18dafe6", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SkipChapterButton.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SkipChapterButton.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b3ade1aff63e490", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b625529c63c00973", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/playbackClock.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/playbackClock.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-433e685e9c0261a6", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/UpNextOverlay.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/UpNextOverlay.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1853ada2d11d493f", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/BottomControls.tsx:106", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/BottomControls.tsx:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a89c762bfeb6aa10", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodesDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodesDrawer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da9c99fb7e265521", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19131836ed6c1f53", "name": "Commented-code block (8 lines) in apps/web-blissful/src/components/NativeMpvPlayer/PlayerControlsBar.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/NativeMpvPlayer/PlayerControlsBar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a6702693bdc16a7", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/EmojiPicker.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/EmojiPicker.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ef55c807535b5c0", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyShareConsent.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyShareConsent.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c17a8c1cce0447e", "name": "Commented-code block (9 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyJoinModal.tsx:3", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyJoinModal.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab46a6a33cfad151", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyNamePrompt.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyNamePrompt.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-700669c9fec7cb05", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43c3cbd9ff5f9696", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96597286341a46ba", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyButton.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyButton.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d911a83721179742", "name": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72a18094af22ad9e", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02162f28efadc16c", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodeThumbnail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodeThumbnail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13c6f53d7b8bfa84", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/SkipChapterButton.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/SkipChapterButton.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9d6eaafffdb8186", "name": "Commented-code block (13 lines) in apps/web-blissful/src/components/BlissfulPlayer/index.tsx:479", "shortDescription": {"text": "Commented-code block (13 lines) in apps/web-blissful/src/components/BlissfulPlayer/index.tsx:479"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab7842b94ad6cf15", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce2410199d750516", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/UpNextOverlay.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/UpNextOverlay.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83ed73386748dd21", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/BottomControls.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/BottomControls.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df654e188411685f", "name": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/PauseOverlay.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/PauseOverlay.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-663a476f115b5b21", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodesDrawer.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodesDrawer.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-007403f8cc3620a6", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fd2476d012d7350", "name": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/BufferingOverlay.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/BufferingOverlay.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c650f8f5035ccec8", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendAvatar.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendAvatar.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2de87ce2b3fc56dc", "name": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendRow.tsx:75", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendRow.tsx:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2a66b117400222a", "name": "Commented-code block (16 lines) in apps/web-blissful/src/components/Friends/FriendsAccordion.tsx:240", "shortDescription": {"text": "Commented-code block (16 lines) in apps/web-blissful/src/components/Friends/FriendsAccordion.tsx:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8766d9e6608ec530", "name": "Commented-code block (6 lines) in apps/web-blissful/src/lib/watchParty.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/watchParty.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c99389847d95f4e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/watchParty.ts:442", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/watchParty.ts:442"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b2fb146743711f72", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/colorUtils.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/colorUtils.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20bbceb70797e3bc", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioAddon.ts:390", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioAddon.ts:390"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9ed5019ce21fc49", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioAddon.ts:246", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioAddon.ts:246"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35e9e0ecbafb717a", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/stremioAddon.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/stremioAddon.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d7d9a314f8c78e1", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/desktop.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/desktop.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c21898f4f579d3e4", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/mediaTypes.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/mediaTypes.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f3aabda27fe3fca", "name": "Commented-code block (6 lines) in apps/web-blissful/src/lib/streamHistory.ts:57", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/streamHistory.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25d09069d1939417", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/subtitleUtils.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/subtitleUtils.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82e7e68cb03c72a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/subtitleUtils.ts:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/subtitleUtils.ts:52"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d419455db0db724a", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/imageProxy.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/imageProxy.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67b8cb155e4831a9", "name": "Commented-code block (6 lines) in apps/web-blissful/src/lib/profileAvatars.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/profileAvatars.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ff389bfe1588eef", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/introdb.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/introdb.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c947edc7fb6bddcc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/introdb.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/introdb.ts:64"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a8fd5ba4c878d3f", "name": "Commented-code block (9 lines) in apps/web-blissful/src/lib/bananaRelevance.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/lib/bananaRelevance.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a58fba63f52cfca", "name": "Commented-code block (8 lines) in apps/web-blissful/src/lib/playerServers.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/playerServers.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-730f7a5889812752", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioFacebook.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioFacebook.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af546eec9bcef435", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioFacebook.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioFacebook.ts:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f526752667e2e444", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/blissfulAuthApi.ts:302", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/blissfulAuthApi.ts:302"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f90744d3b1c468b5", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerAudioTracks.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerAudioTracks.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3cf5f5663de8db8", "name": "Commented-code block (8 lines) in apps/web-blissful/src/lib/storageApi.ts:21", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/storageApi.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c18a5490bf83cf2a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/storageApi.ts:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/storageApi.ts:51"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0702298c2b9c0fd9", "name": "Commented-code block (9 lines) in apps/web-blissful/src/lib/watchPartySource.ts:7", "shortDescription": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/lib/watchPartySource.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c93c5d6b6096a40", "name": "Commented-code block (6 lines) in apps/web-blissful/src/lib/useWatchParty.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/useWatchParty.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc5f40d44aa6f0ca", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioLinkApi.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioLinkApi.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5982f53e63c512c", "name": "Commented-code block (8 lines) in apps/web-blissful/src/lib/aniskip.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/aniskip.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23b1e49feaa06f6b", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/useWatchPartyMpv.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/useWatchPartyMpv.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1bc77ae16c91c5d", "name": "Commented-code block (6 lines) in apps/web-blissful/src/lib/fallbackReleases.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/fallbackReleases.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87632fa14bb1f9ad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/fallbackReleases.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/fallbackReleases.ts:111"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98e105c2a5dfe9f0", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/tmdb.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/tmdb.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-874b7498c9f2cc9d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/tmdb.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/tmdb.ts:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3243bcfee7ddaa2b", "name": "Commented-code block (8 lines) in apps/web-blissful/src/lib/transitionPoster.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/transitionPoster.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa25a92da1b977ea", "name": "Commented-code block (7 lines) in apps/web-blissful/src/lib/storageBaseUrl.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/storageBaseUrl.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb33e9d855e83d76", "name": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerEnv.ts:105", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerEnv.ts:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31bdf74b309ed558", "name": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerSpikePage.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerSpikePage.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2df0b35cfebc28c", "name": "Commented-code block (6 lines) in apps/web-blissful/src/pages/ProfilePage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/ProfilePage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90af0dc7bf0d247b", "name": "Commented-code block (6 lines) in apps/web-blissful/src/pages/PlayerPage.tsx:110", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/PlayerPage.tsx:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c128f98a857d835f", "name": "Commented-code block (8 lines) in apps/web-blissful/src/pages/StremioLinkPopupPage.tsx:14", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/pages/StremioLinkPopupPage.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d18adcb4d3cffa6a", "name": "Commented-code block (5 lines) in apps/web-blissful/src/pages/SettingsPage.tsx:180", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/SettingsPage.tsx:180"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-767027c61538a70a", "name": "Commented-code block (7 lines) in apps/web-blissful/src/pages/VidkingPlayerPage.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/pages/VidkingPlayerPage.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f601b189f0c1af00", "name": "Commented-code block (6 lines) in apps/web-blissful/src/pages/DetailPage.tsx:49", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/DetailPage.tsx:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73d6b1983fb6cfef", "name": "Legacy-named symbol `failed_infringement_v2` in apps/web-blissful/src/pages/PlayerPageWeb.tsx:70", "shortDescription": {"text": "Legacy-named symbol `failed_infringement_v2` in apps/web-blissful/src/pages/PlayerPageWeb.tsx:70"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e803c46ccd4bcb1", "name": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerPageWeb.tsx:84", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerPageWeb.tsx:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89f207cae18f6bd9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:92"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a171e75f423732cd", "name": "Commented-code block (7 lines) in apps/web-blissful/src/hooks/useDesktopUpdater.ts:11", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/hooks/useDesktopUpdater.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3a284088e4a60e3", "name": "Commented-code block (6 lines) in apps/web-blissful/src/context/StorageProvider.tsx:149", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/StorageProvider.tsx:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ebe19f5aeb30ad5", "name": "Commented-code block (7 lines) in apps/web-blissful/src/context/MiniPlayerProvider.tsx:17", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/context/MiniPlayerProvider.tsx:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6b79a36e17bbb67", "name": "Commented-code block (6 lines) in apps/web-blissful/src/context/ActivePartiesProvider.tsx:122", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/ActivePartiesProvider.tsx:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca86fb1d572cc1ad", "name": "Commented-code block (6 lines) in apps/web-blissful/src/context/HomeCatalogProvider.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/HomeCatalogProvider.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d3c6669c38617d7", "name": "Commented-code block (7 lines) in apps/web-blissful/src/context/ModalsProvider.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/context/ModalsProvider.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95a9fa7f0c858053", "name": "Commented-code block (13 lines) in apps/web-blissful/src/context/AuthProvider.tsx:6", "shortDescription": {"text": "Commented-code block (13 lines) in apps/web-blissful/src/context/AuthProvider.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18a4086c3e2b209e", "name": "Commented-code block (6 lines) in apps/web-blissful/src/context/ContinueWatchingProvider.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/ContinueWatchingProvider.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c196931947ea0274", "name": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/streams.ts:157", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/streams.ts:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-769ba7fcd12a9deb", "name": "Commented-code block (8 lines) in apps/web-blissful/src/features/detail/components/EpisodePanel.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/features/detail/components/EpisodePanel.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8e5fbb4fdd9f024", "name": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/hooks/useEpisodeSelection.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/hooks/useEpisodeSelection.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d068e8e46619f90", "name": "Commented-code block (6 lines) in apps/web-blissful/src/features/discover/hooks/useDiscoverCatalogData.ts:71", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/features/discover/hooks/useDiscoverCatalogData.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fedc99e696689e3a", "name": "Commented-code block (8 lines) in apps/web-blissful/src/features/home/components/NowPopular.tsx:43", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/features/home/components/NowPopular.tsx:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-778477c1fecf8895", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/features/home/hooks/useAddonRows.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/features/home/hooks/useAddonRows.ts:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a98aa5fab6913577", "name": "Commented-code block (6 lines) in scripts/dev.cjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/dev.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-027786d87666f4c7", "name": "Commented-code block (6 lines) in scripts/run-cargo.cjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/run-cargo.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19385e6c78b48e4b", "name": "Commented-code block (6 lines) in scripts/dev-android.cjs:9", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/dev-android.cjs:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2143d0e4579561b3", "name": "Commented-code block (5 lines) in scripts/dev-launcher/test/dep-wait-smoke.cjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/dep-wait-smoke.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bc8cad7ce6abcf8", "name": "Commented-code block (5 lines) in scripts/dev-launcher/test/lifecycle-smoke.cjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/lifecycle-smoke.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69cf02143e431dac", "name": "Commented-code block (5 lines) in scripts/dev-launcher/test/android-smoke.cjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/android-smoke.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4127db64fb63774c", "name": "Commented-code block (6 lines) in scripts/dev-launcher/test/desktop-smoke.cjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/dev-launcher/test/desktop-smoke.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ba57eb756983edb", "name": "Commented-code block (5 lines) in scripts/dev-launcher/test/killtree-smoke.cjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/killtree-smoke.cjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cf475262559eeca", "name": "Commented-code block (5 lines) in scripts/dev-launcher/lib/manager.cjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/lib/manager.cjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11af456c4af7d3d6", "name": "Commented-code block (6 lines) in scripts/e2e/verify-software-transcode.mjs:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/e2e/verify-software-transcode.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91195d54594839e9", "name": "Commented-code block (5 lines) in scripts/e2e/watchparty.mjs:9", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/e2e/watchparty.mjs:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aebe61a0909e9e5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty.mjs:397", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty.mjs:397"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-360c353fbce5cdef", "name": "Commented-code block (7 lines) in scripts/e2e/watchparty-v2.mjs:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/e2e/watchparty-v2.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3472ce5efa7018a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty-v2.mjs:332", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty-v2.mjs:332"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fdc6e495e834c366", "name": "Commented-code block (10 lines) in scripts/e2e/episode-change-share.mjs:6", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/e2e/episode-change-share.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f94fc558d0e8d6de", "name": "Commented-code block (8 lines) in scripts/e2e/verify-leftover-replace.mjs:6", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/e2e/verify-leftover-replace.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c412b2480493bc4", "name": "Commented-code block (5 lines) in scripts/e2e/host-relay.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/e2e/host-relay.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ddea76ad789bafc", "name": "Commented-code block (5 lines) in infra/scripts/blissful-transcoder.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in infra/scripts/blissful-transcoder.py:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-005f887df0d2f576", "name": "Commented-code block (6 lines) in infra/scripts/videasy-resolver.py:131", "shortDescription": {"text": "Commented-code block (6 lines) in infra/scripts/videasy-resolver.py:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf5979a86c7159a4", "name": "Commented-code block (5 lines) in e2e/run.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/run.mjs:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07a8a44aaf46f7e8", "name": "Commented-code block (5 lines) in e2e/suites/social-ws.protocol.spec.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/social-ws.protocol.spec.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a0bec8eb5a53201", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/social-ws.protocol.spec.ts:199", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/social-ws.protocol.spec.ts:199"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f644c280e8cd8b30", "name": "Commented-code block (5 lines) in e2e/suites/shell-leftover.desktop.spec.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/shell-leftover.desktop.spec.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8530d56fac102e6", "name": "Commented-code block (5 lines) in e2e/suites/smoke.android.spec.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/smoke.android.spec.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c497d5021592702", "name": "Commented-code block (5 lines) in e2e/suites/watch-party.host-relay.desktop.spec.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/watch-party.host-relay.desktop.spec.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdd14bc0c8ac9270", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.sync.desktop.spec.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.sync.desktop.spec.ts:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5c6d9edbfdd1b36", "name": "Commented-code block (5 lines) in e2e/suites/social.web.spec.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/social.web.spec.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5867f3a21c334bf8", "name": "Commented-code block (5 lines) in e2e/suites/watch-party.protocol.spec.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/suites/watch-party.protocol.spec.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6919b752a54298c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.guest-controls.web.spec.ts:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.guest-controls.web.spec.ts:14"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d1969671819f300", "name": "Commented-code block (6 lines) in e2e/fixtures/desktop.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/fixtures/desktop.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3f86863645c8466", "name": "Frontend route `/player-spike` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `/player-spike` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91dc9afc5dfd2ed7", "name": "Frontend route `/*` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `/*` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-12d49b79559640d2", "name": "Frontend route `invite/:code` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `invite/:code` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1cd983d79bab027", "name": "Frontend route `link-stremio` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `link-stremio` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-260451bf15c22b35", "name": "Frontend route `discover` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `discover` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c123ea9c3883152", "name": "Frontend route `discover/:transportUrl/:type/:catalogId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `discover/:transportUrl/:type/:catalogId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e7d483e0c417cffc", "name": "Frontend route `library` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `library` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9181821e240d5626", "name": "Frontend route `detail/:type/:id` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `detail/:type/:id` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c062750fdf2d771", "name": "Frontend route `vidking/:type/:tmdbId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `vidking/:type/:tmdbId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-654f4cb43d36edfa", "name": "Frontend route `vidking/:type/:tmdbId/:seasonId/:episodeId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `vidking/:type/:tmdbId/:seasonId/:episodeId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-728dd394abd18aeb", "name": "Frontend route `player` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `player` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fc758fcc516a07b", "name": "Frontend route `search` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `search` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f491b4276f67fc2", "name": "Frontend route `addons` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `addons` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1c4b070d69d8f6d", "name": "Frontend route `accounts` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `accounts` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ed3cdbe46ac0e7d", "name": "Frontend route `settings` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df9f7d99f89b34c9", "name": "Frontend route `profile/:userId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx", "shortDescription": {"text": "Frontend route `profile/:userId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-961775eb597c2352", "name": "Dangling fetch: POST /storage/watch-party (scripts/e2e/watchparty.mjs:397)", "shortDescription": {"text": "Dangling fetch: POST /storage/watch-party (scripts/e2e/watchparty.mjs:397)"}, "fullDescription": {"text": "`scripts/e2e/watchparty.mjs:397` calls `POST /storage/watch-party` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/storage/watch-party`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-13dd8e59426afe28", "name": "Dangling fetch: GET https://torrentio.strem.fun/stream/movie/${imdbId}.json (scripts/e2e/watchparty-v2.mjs:385)", "shortDescription": {"text": "Dangling fetch: GET https://torrentio.strem.fun/stream/movie/${imdbId}.json (scripts/e2e/watchparty-v2.mjs:385)"}, "fullDescription": {"text": "`scripts/e2e/watchparty-v2.mjs:385` calls `GET https://torrentio.strem.fun/stream/movie/${imdbId}.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/torrentio.strem.fun/stream/movie/<p>.json`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e7164fe5fc64fe7", "name": "Dangling fetch: GET https://api.themoviedb.org/3/find/${imdbId}?api_key=${encodeURIComponent(key)}&external_source=imdb_", "shortDescription": {"text": "Dangling fetch: GET https://api.themoviedb.org/3/find/${imdbId}?api_key=${encodeURIComponent(key)}&external_source=imdb_id (apps/android-blissful/src/lib/tmdbArt.ts:79)"}, "fullDescription": {"text": "`apps/android-blissful/src/lib/tmdbArt.ts:79` calls `GET https://api.themoviedb.org/3/find/${imdbId}?api_key=${encodeURIComponent(key)}&external_source=imdb_id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.themoviedb.org/<p>/find/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90c8f37fe80804bb", "name": "Dangling fetch: GET /rd-by-hash?infoHash=${encodeURIComponent(ih)} (apps/web-blissful/src/components/BananasPicker.tsx:2", "shortDescription": {"text": "Dangling fetch: GET /rd-by-hash?infoHash=${encodeURIComponent(ih)} (apps/web-blissful/src/components/BananasPicker.tsx:229)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BananasPicker.tsx:229` calls `GET /rd-by-hash?infoHash=${encodeURIComponent(ih)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rd-by-hash`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-26dc0972ce73dc79", "name": "Dangling fetch: GET /tmdb-season-info?tmdbId=${props.tmdbId}&season=${season} (apps/web-blissful/src/components/Blissful", "shortDescription": {"text": "Dangling fetch: GET /tmdb-season-info?tmdbId=${props.tmdbId}&season=${season} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431` calls `GET /tmdb-season-info?tmdbId=${props.tmdbId}&season=${season}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tmdb-season-info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8ac8c95a909bad7", "name": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(props.url)} (apps/web-blissful/src/components/BlissfulPlayer/i", "shortDescription": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(props.url)} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1612)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1612` calls `GET /resolve-url?url=${encodeURIComponent(props.url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/resolve-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bf4f2f18d1ddddb", "name": "Dangling fetch: GET /skip-times?${params.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1686)", "shortDescription": {"text": "Dangling fetch: GET /skip-times?${params.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1686)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1686` calls `GET /skip-times?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/skip-times`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-258169adaf74d1c1", "name": "Dangling fetch: GET /opensubs?${osQs.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2004)", "shortDescription": {"text": "Dangling fetch: GET /opensubs?${osQs.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2004)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2004` calls `GET /opensubs?${osQs.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/opensubs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b4e7f4c038abf17", "name": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(probeTarget)} (apps/web-blissful/src/components/BlissfulPlay", "shortDescription": {"text": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(probeTarget)} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2113)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2113` calls `GET /probe-streams?url=${encodeURIComponent(probeTarget)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/probe-streams`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3532b24b7804129", "name": "Dangling fetch: POST /player-log (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:3076)", "shortDescription": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:3076)"}, "fullDescription": {"text": "`apps/web-blissful/src/components/BlissfulPlayer/index.tsx:3076` calls `POST /player-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/player-log`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b0d08544a4dd197", "name": "Dangling fetch: GET /imdb-rating?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/useImdbRating.ts:36)", "shortDescription": {"text": "Dangling fetch: GET /imdb-rating?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/useImdbRating.ts:36)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/useImdbRating.ts:36` calls `GET /imdb-rating?imdbId=${encodeURIComponent(imdbId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/imdb-rating`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12d9eca8b7090a18", "name": "Dangling fetch: GET /stremio/login-fb-get-acc/${state} (apps/web-blissful/src/lib/stremioFacebook.ts:50)", "shortDescription": {"text": "Dangling fetch: GET /stremio/login-fb-get-acc/${state} (apps/web-blissful/src/lib/stremioFacebook.ts:50)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/stremioFacebook.ts:50` calls `GET /stremio/login-fb-get-acc/${state}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/stremio/login-fb-get-acc/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c79c43a71edbec2", "name": "Dangling fetch: GET /rd-by-hash?${qs.toString()} (apps/web-blissful/src/lib/watchPartySource.ts:169)", "shortDescription": {"text": "Dangling fetch: GET /rd-by-hash?${qs.toString()} (apps/web-blissful/src/lib/watchPartySource.ts:169)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/watchPartySource.ts:169` calls `GET /rd-by-hash?${qs.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rd-by-hash`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3b05a0acb8c1a776", "name": "Dangling fetch: GET https://api.ani.zip/mappings?${param}=${encodeURIComponent(value)} (apps/web-blissful/src/lib/aniski", "shortDescription": {"text": "Dangling fetch: GET https://api.ani.zip/mappings?${param}=${encodeURIComponent(value)} (apps/web-blissful/src/lib/aniskip.ts:69)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/aniskip.ts:69` calls `GET https://api.ani.zip/mappings?${param}=${encodeURIComponent(value)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.ani.zip/mappings`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-68c39eec765020f6", "name": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(id)} (apps/web-blissful/src/lib/fallbackReleases.t", "shortDescription": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(id)} (apps/web-blissful/src/lib/fallbackReleases.ts:111)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/fallbackReleases.ts:111` calls `GET /rd-fallback?type=${type}&id=${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rd-fallback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e8f04123fe6eba5", "name": "Dangling fetch: GET /addon-proxy?url=${encodeURIComponent(url)} (apps/web-blissful/src/lib/tmdb.ts:44)", "shortDescription": {"text": "Dangling fetch: GET /addon-proxy?url=${encodeURIComponent(url)} (apps/web-blissful/src/lib/tmdb.ts:44)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/tmdb.ts:44` calls `GET /addon-proxy?url=${encodeURIComponent(url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/addon-proxy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0d88f1244ccb82c", "name": "Dangling fetch: GET /tmdb-find?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/tmdb.ts:58)", "shortDescription": {"text": "Dangling fetch: GET /tmdb-find?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/tmdb.ts:58)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/tmdb.ts:58` calls `GET /tmdb-find?imdbId=${encodeURIComponent(imdbId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tmdb-find`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d2f31e2b0987e4c", "name": "Dangling fetch: POST /player-log (apps/web-blissful/src/lib/playerEnv.ts:115)", "shortDescription": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/lib/playerEnv.ts:115)"}, "fullDescription": {"text": "`apps/web-blissful/src/lib/playerEnv.ts:115` calls `POST /player-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/player-log`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62128c07363351b5", "name": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPage", "shortDescription": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPage.tsx:271)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPage.tsx:271` calls `GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rd-fallback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-27004e61f712c9d9", "name": "Dangling fetch: GET /tmdb-season-info?tmdbId=${tid}&season=${n} (apps/web-blissful/src/pages/DetailPage.tsx:396)", "shortDescription": {"text": "Dangling fetch: GET /tmdb-season-info?tmdbId=${tid}&season=${n} (apps/web-blissful/src/pages/DetailPage.tsx:396)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/DetailPage.tsx:396` calls `GET /tmdb-season-info?tmdbId=${tid}&season=${n}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tmdb-season-info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-53c9af8a423cf598", "name": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(s.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:92)", "shortDescription": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(s.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:92)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:92` calls `GET /resolve-url?url=${encodeURIComponent(s.url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/resolve-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7543ce5d8ee7dcd", "name": "Dangling fetch: POST /player-log (apps/web-blissful/src/pages/PlayerPageWeb.tsx:284)", "shortDescription": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/pages/PlayerPageWeb.tsx:284)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:284` calls `POST /player-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/player-log`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44f413609a866f05", "name": "Dangling fetch: GET /tmdb-episode-rating?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:656)", "shortDescription": {"text": "Dangling fetch: GET /tmdb-episode-rating?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:656)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:656` calls `GET /tmdb-episode-rating?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tmdb-episode-rating`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa2fd14a8ae994dc", "name": "Dangling fetch: GET /videasy-sources?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:774)", "shortDescription": {"text": "Dangling fetch: GET /videasy-sources?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:774)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:774` calls `GET /videasy-sources?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/videasy-sources`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-795b7d43f2a213bf", "name": "Dangling fetch: GET /transcode-audio?url=${encodeURIComponent(transcodeAudioSrc)} (apps/web-blissful/src/pages/PlayerPag", "shortDescription": {"text": "Dangling fetch: GET /transcode-audio?url=${encodeURIComponent(transcodeAudioSrc)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:918)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:918` calls `GET /transcode-audio?url=${encodeURIComponent(transcodeAudioSrc)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/transcode-audio`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b282d1714ff7bc7", "name": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPage", "shortDescription": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1032)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:1032` calls `GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/rd-fallback`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5bfff1fa4c83798", "name": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(c.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.ts", "shortDescription": {"text": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(c.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1175)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:1175` calls `GET /probe-streams?url=${encodeURIComponent(c.stream.url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/probe-streams`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb082300c435745b", "name": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(cand.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.t", "shortDescription": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(cand.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1207)"}, "fullDescription": {"text": "`apps/web-blissful/src/pages/PlayerPageWeb.tsx:1207` calls `GET /resolve-url?url=${encodeURIComponent(cand.stream.url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/resolve-url`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-24127e99f5c184fb", "name": "Unused endpoint: GET /state", "shortDescription": {"text": "Unused endpoint: GET /state"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /state` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-512ccb0fd0b230ba", "name": "Unused endpoint: GET /settings", "shortDescription": {"text": "Unused endpoint: GET /settings"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /settings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ed0fe929c38b9a74", "name": "Unused endpoint: GET /home", "shortDescription": {"text": "Unused endpoint: GET /home"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /home` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3675637c06b42c32", "name": "Unused endpoint: POST /state", "shortDescription": {"text": "Unused endpoint: POST /state"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /state` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9fbbfd361e91f1e", "name": "Unused endpoint: POST /settings", "shortDescription": {"text": "Unused endpoint: POST /settings"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /settings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42cc70b3229e94fa", "name": "Unused endpoint: POST /home", "shortDescription": {"text": "Unused endpoint: POST /home"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /home` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c09f28f5d9b5bab", "name": "Unused endpoint: POST /watch-party", "shortDescription": {"text": "Unused endpoint: POST /watch-party"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /watch-party` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ceae2102a68cc6c0", "name": "Unused endpoint: GET /watch-party/:code", "shortDescription": {"text": "Unused endpoint: GET /watch-party/:code"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /watch-party/:code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c48f330b5c0305e", "name": "Unused endpoint: POST /watch-party/:code/verify", "shortDescription": {"text": "Unused endpoint: POST /watch-party/:code/verify"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /watch-party/:code/verify` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2cba748387e62e47", "name": "Unused endpoint: POST /library/import", "shortDescription": {"text": "Unused endpoint: POST /library/import"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /library/import` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-38fe93bb5678675e", "name": "Unused endpoint: PUT /library/:id", "shortDescription": {"text": "Unused endpoint: PUT /library/:id"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `PUT /library/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbfed2754f2ab0b9", "name": "Unused endpoint: DELETE /library/:id", "shortDescription": {"text": "Unused endpoint: DELETE /library/:id"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `DELETE /library/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-292f5f87961dc0e5", "name": "Unused endpoint: POST /stremio/link-token", "shortDescription": {"text": "Unused endpoint: POST /stremio/link-token"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /stremio/link-token` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e48feb82e3c33c9e", "name": "Unused endpoint: POST /stremio/unlink", "shortDescription": {"text": "Unused endpoint: POST /stremio/unlink"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /stremio/unlink` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b63d82e03cc37d34", "name": "Unused endpoint: GET /stremio/status", "shortDescription": {"text": "Unused endpoint: GET /stremio/status"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /stremio/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b6c6fdf29bc59762", "name": "Unused endpoint: POST /stremio/sync", "shortDescription": {"text": "Unused endpoint: POST /stremio/sync"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /stremio/sync` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2fb9fecae0eb896", "name": "Unused endpoint: POST /stremio/sync-item", "shortDescription": {"text": "Unused endpoint: POST /stremio/sync-item"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /stremio/sync-item` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-23e3d9e36a39d0e6", "name": "Unused endpoint: GET /dms/:userId", "shortDescription": {"text": "Unused endpoint: GET /dms/:userId"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /dms/:userId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15b80dd3ce48c181", "name": "Unused endpoint: POST /dms/:userId", "shortDescription": {"text": "Unused endpoint: POST /dms/:userId"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /dms/:userId` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74fdc9e8b588c8b1", "name": "Unused endpoint: GET /dms/search", "shortDescription": {"text": "Unused endpoint: GET /dms/search"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /dms/search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae08a6c1ef7306ef", "name": "Unused endpoint: GET /users/search", "shortDescription": {"text": "Unused endpoint: GET /users/search"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /users/search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cd1c70fddde9384", "name": "Unused endpoint: GET /friends", "shortDescription": {"text": "Unused endpoint: GET /friends"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `GET /friends` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1452305cdc80d5d8", "name": "Unused endpoint: POST /friends/request", "shortDescription": {"text": "Unused endpoint: POST /friends/request"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /friends/request` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29c1b9894df24d10", "name": "Unused endpoint: POST /friends/:id/accept", "shortDescription": {"text": "Unused endpoint: POST /friends/:id/accept"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `POST /friends/:id/accept` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-66edafd121508ecf", "name": "Unused endpoint: PATCH /friends/:id/nickname", "shortDescription": {"text": "Unused endpoint: PATCH /friends/:id/nickname"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `PATCH /friends/:id/nickname` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d630737ab577e68", "name": "Unused endpoint: DELETE /friends/:id", "shortDescription": {"text": "Unused endpoint: DELETE /friends/:id"}, "fullDescription": {"text": "`apps/shared/blissful-storage/server.js` declares `DELETE /friends/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-468e11ebe1cba5d5", "name": "Unused endpoint: USE /addon-proxy", "shortDescription": {"text": "Unused endpoint: USE /addon-proxy"}, "fullDescription": {"text": "`apps/web-blissful/vite.config.ts` declares `USE /addon-proxy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19639"}, "properties": {"repository": "SilentGTX/Blissful", "repoUrl": "https://github.com/SilentGTX/Blissful", "branch": "main"}, "results": [{"ruleId": "scanner-23be38f8489e3ba8", "level": "note", "message": {"text": "Possibly dead Python function: prune_cache_loop"}, "properties": {"repobilityId": "8e620b095b925cce", "scanner": "scanner-primary", "fingerprint": "23be38f8489e3ba8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/blissful-transcoder.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-793f7e265c7b8b49", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "793f7e265c7b8b49", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/blissful-transcoder.py:163"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2025e359479c8be6", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "2025e359479c8be6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/blissful-transcoder.py:166"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-370a4cd55fc461f8", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "370a4cd55fc461f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/videasy-resolver.py:305"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bb054f7cb4b5cd38", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "bb054f7cb4b5cd38", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/videasy-resolver.py:316"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f0392a024f40bd18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/android-blissful/scripts/link-core.js:32"}, "properties": {"repobilityId": "334f4d3f5d020669", "scanner": "scanner-primary", "fingerprint": "f0392a024f40bd18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4a08b665a161953", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/shared/blissful-storage/server.js:322"}, "properties": {"repobilityId": "93d8747a2dbd1a81", "scanner": "scanner-primary", "fingerprint": "f4a08b665a161953", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d2e982cfd85b9d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/shared/addon-proxy/server.js:962"}, "properties": {"repobilityId": "f18baf9d248db75b", "scanner": "scanner-primary", "fingerprint": "3d2e982cfd85b9d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a603935c6d25082f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/AccountModal.tsx:88"}, "properties": {"repobilityId": "f89669e8f36f87d4", "scanner": "scanner-primary", "fingerprint": "a603935c6d25082f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c4771993e32ddfd8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/app-shell/components/HomeSettingsModal.tsx:56"}, "properties": {"repobilityId": "a916e5da471c9f34", "scanner": "scanner-primary", "fingerprint": "c4771993e32ddfd8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-309f04c33dcca2f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/web-blissful/src/layout/app-shell/hooks/useStoredStateSync.ts:63"}, "properties": {"repobilityId": "84e7608852812aa6", "scanner": "scanner-primary", "fingerprint": "309f04c33dcca2f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7f8c363eb48e018", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/netflix/NetflixTopBar.tsx:169"}, "properties": {"repobilityId": "a0915b21881079de", "scanner": "scanner-primary", "fingerprint": "c7f8c363eb48e018", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e853416ad2aedd49", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/layout/top-nav/TopNav.tsx:313"}, "properties": {"repobilityId": "dc334d766b76c2b3", "scanner": "scanner-primary", "fingerprint": "e853416ad2aedd49", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7468ad7db9524837", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/ResumeOrStartOverModal.tsx:93"}, "properties": {"repobilityId": "48f6c844b16d3127", "scanner": "scanner-primary", "fingerprint": "7468ad7db9524837", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-61347072d02de64a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BananasPicker.tsx:326"}, "properties": {"repobilityId": "6fe08a321ce2540b", "scanner": "scanner-primary", "fingerprint": "61347072d02de64a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-32e1726331d9c364", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WhatToDoDrawer.tsx:61"}, "properties": {"repobilityId": "5cc956145510021a", "scanner": "scanner-primary", "fingerprint": "32e1726331d9c364", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-877b6b743b26bdaf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/MediaCard.tsx:300"}, "properties": {"repobilityId": "5f83e6c819d6d60a", "scanner": "scanner-primary", "fingerprint": "877b6b743b26bdaf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-74012ac71bf10699", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SettingsStremioPanel.tsx:247"}, "properties": {"repobilityId": "1e246cfd2cc00f87", "scanner": "scanner-primary", "fingerprint": "74012ac71bf10699", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f8ea529df11bf93e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PartyInviteListener.tsx:112"}, "properties": {"repobilityId": "33e7a62c62169f4d", "scanner": "scanner-primary", "fingerprint": "f8ea529df11bf93e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ffe0ecbc12802291", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/PlayerBufferingScreen.tsx:43"}, "properties": {"repobilityId": "3711561da0735b1b", "scanner": "scanner-primary", "fingerprint": "ffe0ecbc12802291", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75b8a0e1dae83a32", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/MobileNav.tsx:140"}, "properties": {"repobilityId": "3c0394b246d6e30f", "scanner": "scanner-primary", "fingerprint": "75b8a0e1dae83a32", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-081a05beacc0c2d2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/SideNav/DesktopNav.tsx:202"}, "properties": {"repobilityId": "877bd59f081dc114", "scanner": "scanner-primary", "fingerprint": "081a05beacc0c2d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-997d883edbb28307", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopover.tsx:137"}, "properties": {"repobilityId": "d769201264db523e", "scanner": "scanner-primary", "fingerprint": "997d883edbb28307", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3ce8cb3c113ba06", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:239"}, "properties": {"repobilityId": "b1e3302350881411", "scanner": "scanner-primary", "fingerprint": "e3ce8cb3c113ba06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac8ead4034ebede4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.tsx:52"}, "properties": {"repobilityId": "537d9133510ffa23", "scanner": "scanner-primary", "fingerprint": "ac8ead4034ebede4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-169dc00567342f94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:49"}, "properties": {"repobilityId": "cc61b51bc55629fe", "scanner": "scanner-primary", "fingerprint": "169dc00567342f94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-925d133f1910b8c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast.tsx:162"}, "properties": {"repobilityId": "fccc44013a5ed5dd", "scanner": "scanner-primary", "fingerprint": "925d133f1910b8c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f14b142745d0be45", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:704"}, "properties": {"repobilityId": "d3a12b25dd0b9dd3", "scanner": "scanner-primary", "fingerprint": "f14b142745d0be45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-29e6792c3c5d9e48", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:366"}, "properties": {"repobilityId": "288c783fde4b6917", "scanner": "scanner-primary", "fingerprint": "29e6792c3c5d9e48", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fe154471e1fffcd2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:83"}, "properties": {"repobilityId": "51359c4322c20659", "scanner": "scanner-primary", "fingerprint": "fe154471e1fffcd2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fde1bbd963eb33d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:69"}, "properties": {"repobilityId": "90a3358f3d9c0690", "scanner": "scanner-primary", "fingerprint": "fde1bbd963eb33d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7818c4d4835c6409", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/FriendRow.tsx:51"}, "properties": {"repobilityId": "9c97c3d6ef0e42c6", "scanner": "scanner-primary", "fingerprint": "7818c4d4835c6409", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-62706da2165fea82", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/components/Friends/PersonActionsRow.tsx:116"}, "properties": {"repobilityId": "7ae41bcc15db3dc8", "scanner": "scanner-primary", "fingerprint": "62706da2165fea82", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-15acb19e0d820b22", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/ProfilePage.tsx:141"}, "properties": {"repobilityId": "182f1f2606e13a64", "scanner": "scanner-primary", "fingerprint": "15acb19e0d820b22", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-54145a50078d5e70", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/AccountsPage.tsx:95"}, "properties": {"repobilityId": "b0a947f341055b30", "scanner": "scanner-primary", "fingerprint": "54145a50078d5e70", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-386965b7648b68f0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:178"}, "properties": {"repobilityId": "6cf0ccd8df21ce64", "scanner": "scanner-primary", "fingerprint": "386965b7648b68f0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0b417808d8353ba1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 apps/web-blissful/src/features/detail/components/SeasonHeader.tsx:64"}, "properties": {"repobilityId": "fe2a4f6c13aa9453", "scanner": "scanner-primary", "fingerprint": "0b417808d8353ba1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-09dc6ea39004ea72", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 apps/web-blissful/src/features/home/components/ModernHeroPanel.tsx:100"}, "properties": {"repobilityId": "44b03de79e8efb1c", "scanner": "scanner-primary", "fingerprint": "09dc6ea39004ea72", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ef53017f78cf3f32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dev-launcher/main.js:35"}, "properties": {"repobilityId": "4d5b44e057dfaf16", "scanner": "scanner-primary", "fingerprint": "ef53017f78cf3f32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-1c4d477bbd9acdce", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in apps/shared/addon-proxy/videasy-decrypt.js:72"}, "properties": {"repobilityId": "13c67a186cbf56e3", "scanner": "scanner-primary", "fingerprint": "1c4d477bbd9acdce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/shared/addon-proxy/videasy-decrypt.js"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-6e7855928cdbd4fe", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/shared/addon-proxy/server.js:7"}, "properties": {"repobilityId": "f27c294a46ac00f9", "scanner": "scanner-primary", "fingerprint": "6e7855928cdbd4fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/shared/addon-proxy/server.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-c97d5cc12c30ccb6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in apps/shared/addon-proxy/server.js:720"}, "properties": {"repobilityId": "1496a6d8d6b0f93f", "scanner": "scanner-primary", "fingerprint": "c97d5cc12c30ccb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/shared/addon-proxy/server.js"}, "region": {"startLine": 720}}}]}, {"ruleId": "scanner-3cc29da6d8e5ab98", "level": "error", "message": {"text": "Possible secret in apps/desktop-blissful/installer/README.md"}, "properties": {"repobilityId": "f70931f5e35242ac", "scanner": "scanner-primary", "fingerprint": "3cc29da6d8e5ab98", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/desktop-blissful/installer/README.md"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-cef2cbb7345cbc00", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev.cjs:15"}, "properties": {"repobilityId": "e73c1d60630f2612", "scanner": "scanner-primary", "fingerprint": "cef2cbb7345cbc00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev.cjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1fde352303b38dca", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/run-cargo.cjs:11"}, "properties": {"repobilityId": "8657f4a7883c8828", "scanner": "scanner-primary", "fingerprint": "1fde352303b38dca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/run-cargo.cjs"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-eb66a30fb6b75dae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-android.cjs:21"}, "properties": {"repobilityId": "a98de29c2afd6be0", "scanner": "scanner-primary", "fingerprint": "eb66a30fb6b75dae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-android.cjs"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-71206df7fde5898a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/dev-launcher/renderer/renderer.js:42"}, "properties": {"repobilityId": "836b8187a0be3141", "scanner": "scanner-primary", "fingerprint": "71206df7fde5898a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-launcher/renderer/renderer.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-b8f41a02f3181ff3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/dev-launcher/lib/manager.cjs:13"}, "properties": {"repobilityId": "fb8a109eb513c21f", "scanner": "scanner-primary", "fingerprint": "b8f41a02f3181ff3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/dev-launcher/lib/manager.cjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-64b67fb372bb1407", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-software-transcode.mjs:14"}, "properties": {"repobilityId": "ad5d953beb1e9e08", "scanner": "scanner-primary", "fingerprint": "64b67fb372bb1407", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/verify-software-transcode.mjs"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-b45bce21b94a3648", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-renderer-recovery.mjs:9"}, "properties": {"repobilityId": "b5759b823ec80b41", "scanner": "scanner-primary", "fingerprint": "b45bce21b94a3648", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/verify-renderer-recovery.mjs"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-135561ba8f354fe6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty.mjs:29"}, "properties": {"repobilityId": "cea39d2542480218", "scanner": "scanner-primary", "fingerprint": "135561ba8f354fe6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/watchparty.mjs"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-b348f1caad1227b7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in scripts/e2e/watchparty.mjs:203"}, "properties": {"repobilityId": "7af1a39900736772", "scanner": "scanner-primary", "fingerprint": "b348f1caad1227b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/watchparty.mjs"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-255cb296c690023b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/watchparty-v2.mjs:26"}, "properties": {"repobilityId": "d48c7f3707f55fe0", "scanner": "scanner-primary", "fingerprint": "255cb296c690023b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/watchparty-v2.mjs"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-fa2153091188437a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/relay-crash-repro.mjs:16"}, "properties": {"repobilityId": "336c4ffe80ecc2a6", "scanner": "scanner-primary", "fingerprint": "fa2153091188437a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/relay-crash-repro.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-78b023fe396d5081", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/episode-change-share.mjs:20"}, "properties": {"repobilityId": "35946cc5ae92e259", "scanner": "scanner-primary", "fingerprint": "78b023fe396d5081", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/episode-change-share.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-82c299eef188514a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/verify-leftover-replace.mjs:17"}, "properties": {"repobilityId": "cefcb5d016c09ce5", "scanner": "scanner-primary", "fingerprint": "82c299eef188514a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/verify-leftover-replace.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-de3a9a46c75fa87a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e/host-relay.mjs:18"}, "properties": {"repobilityId": "b5805ac8c026cc1d", "scanner": "scanner-primary", "fingerprint": "de3a9a46c75fa87a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e/host-relay.mjs"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-20aeca371791ce57", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/scripts/blissful-transcoder.py:248"}, "properties": {"repobilityId": "7b5bebebc85411e1", "scanner": "scanner-primary", "fingerprint": "20aeca371791ce57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/scripts/blissful-transcoder.py"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-b88644ded2b44f3b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/run.mjs:14"}, "properties": {"repobilityId": "f316048c8bf963f0", "scanner": "scanner-primary", "fingerprint": "b88644ded2b44f3b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/run.mjs"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-587107bb1c75f49d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/suites/shell-transcode.desktop.spec.ts:4"}, "properties": {"repobilityId": "bc2ea2e2ed2d07bd", "scanner": "scanner-primary", "fingerprint": "587107bb1c75f49d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/suites/shell-transcode.desktop.spec.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-e96d49277ab2e2a2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/suites/shell-leftover.desktop.spec.ts:2"}, "properties": {"repobilityId": "d07304fb26973c59", "scanner": "scanner-primary", "fingerprint": "e96d49277ab2e2a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/suites/shell-leftover.desktop.spec.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-faf7cb6428680a4d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/suites/smoke.android.spec.ts:2"}, "properties": {"repobilityId": "5fd09d904f849533", "scanner": "scanner-primary", "fingerprint": "faf7cb6428680a4d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/suites/smoke.android.spec.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e54fac6c290138e", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a0f3bb36d11e757e", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eeb76410cc935c30", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f8a0cd314b2533d7", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "6ebe2c71f442b873", "scanner": "scanner-primary", "fingerprint": "f8a0cd314b2533d7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/android-blissful/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e754276b9fd1cf17", "level": "note", "message": {"text": "Very large file: apps/android-blissful/src/screens/PlayerScreen.tsx (1083 lines)"}, "properties": {"repobilityId": "be6be4d52feaaa81", "scanner": "scanner-primary", "fingerprint": "e754276b9fd1cf17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ccc7778a21596c46", "level": "note", "message": {"text": "Very large file: apps/shared/blissful-storage/server.js (3002 lines)"}, "properties": {"repobilityId": "c0cfdfcddd770961", "scanner": "scanner-primary", "fingerprint": "ccc7778a21596c46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f0d3309631e997c2", "level": "note", "message": {"text": "Very large file: apps/shared/addon-proxy/server.js (2592 lines)"}, "properties": {"repobilityId": "87faef52a4d1cce0", "scanner": "scanner-primary", "fingerprint": "f0d3309631e997c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77612d4ca1d1d975", "level": "note", "message": {"text": "Very large file: apps/web-blissful/src/components/NativeMpvPlayer.tsx (3643 lines)"}, "properties": {"repobilityId": "75792a5fa269ce8a", "scanner": "scanner-primary", "fingerprint": "77612d4ca1d1d975", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2e3101eb998704b", "level": "note", "message": {"text": "Very large file: apps/web-blissful/src/components/BlissfulPlayer/index.tsx (4041 lines)"}, "properties": {"repobilityId": "4f7bb58d5dedf8da", "scanner": "scanner-primary", "fingerprint": "d2e3101eb998704b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2036e084f99df957", "level": "note", "message": {"text": "Very large file: apps/web-blissful/src/pages/PlayerPageWeb.tsx (1561 lines)"}, "properties": {"repobilityId": "e6c65047b1259125", "scanner": "scanner-primary", "fingerprint": "2036e084f99df957", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5b437871921217af", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "183d2f476b834a31", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "84b84593f65d9c84", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "a5955678e5b60d2d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "e65ee8c62ad9b70d", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "e284c1b4e2c57516", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-93a66d876ea1f55b", "level": "none", "message": {"text": "Commented-code block (5 lines) in playwright.config.ts:5"}, "properties": {"repobilityId": "11b31f0f3761839a", "scanner": "scanner-primary", "fingerprint": "93a66d876ea1f55b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6ea15e156aa46c6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/metro.config.js:14"}, "properties": {"repobilityId": "d247a201bfb9b4bb", "scanner": "scanner-primary", "fingerprint": "a6ea15e156aa46c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-984f446d09508210", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/android-blissful/scripts/link-core.js:3"}, "properties": {"repobilityId": "19ca075f5954a8e4", "scanner": "scanner-primary", "fingerprint": "984f446d09508210", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d24bf585708551c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/LibraryScreen.tsx:27"}, "properties": {"repobilityId": "6a00ff8dad33db2f", "scanner": "scanner-primary", "fingerprint": "d24bf585708551c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97f7e591dda8c759", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/DetailScreen.tsx:231"}, "properties": {"repobilityId": "ae2aa98fb1d2f3f0", "scanner": "scanner-primary", "fingerprint": "97f7e591dda8c759", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-185112b0f7362b80", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/SettingsScreen.tsx:116"}, "properties": {"repobilityId": "5dcfec1af39c7c8d", "scanner": "scanner-primary", "fingerprint": "185112b0f7362b80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3aa459128be2094a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/HomeScreen.tsx:112"}, "properties": {"repobilityId": "f68148cf50c7a6f3", "scanner": "scanner-primary", "fingerprint": "3aa459128be2094a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22f8e2859f1cfc53", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/screens/PlayerScreen.tsx:39"}, "properties": {"repobilityId": "dd1beadb1b652dc9", "scanner": "scanner-primary", "fingerprint": "22f8e2859f1cfc53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-faadde86d16f3e44", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/screens/DiscoverScreen.tsx:34"}, "properties": {"repobilityId": "98b031b5a48cf92e", "scanner": "scanner-primary", "fingerprint": "faadde86d16f3e44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-114a1ee994b47b6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/Img.tsx:5"}, "properties": {"repobilityId": "6de057e442bed3c9", "scanner": "scanner-primary", "fingerprint": "114a1ee994b47b6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04cc629d22c65c72", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/NavRail.tsx:132"}, "properties": {"repobilityId": "97a8a2db0c2c1967", "scanner": "scanner-primary", "fingerprint": "04cc629d22c65c72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b96470e96fa130d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/Rating.tsx:8"}, "properties": {"repobilityId": "3d2d8a89e1dc6727", "scanner": "scanner-primary", "fingerprint": "9b96470e96fa130d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d42cfe77edd54f36", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/components/PartyInviteListener.tsx:1"}, "properties": {"repobilityId": "9e439e213b8db36a", "scanner": "scanner-primary", "fingerprint": "d42cfe77edd54f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cd74fb30a76d270", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/FocusTrap.tsx:5"}, "properties": {"repobilityId": "3c014653e60702d5", "scanner": "scanner-primary", "fingerprint": "5cd74fb30a76d270", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5718ba0419cf7423", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/LibraryActionOverlay.tsx:10"}, "properties": {"repobilityId": "f715e1f8a1b49198", "scanner": "scanner-primary", "fingerprint": "5718ba0419cf7423", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a12e992886d9ac4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/LoginModal.tsx:1"}, "properties": {"repobilityId": "20c7917d27f490d3", "scanner": "scanner-primary", "fingerprint": "7a12e992886d9ac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59f0948da71dbaa4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/ProfileMenu.tsx:127"}, "properties": {"repobilityId": "79232c7e51cfbb50", "scanner": "scanner-primary", "fingerprint": "59f0948da71dbaa4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f909847e641a0c9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsStremioPanel.tsx:21"}, "properties": {"repobilityId": "fce74a69e6dbd5e1", "scanner": "scanner-primary", "fingerprint": "f909847e641a0c9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0420eff14545573", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/TvTextField.tsx:11"}, "properties": {"repobilityId": "a8b124886a1f44b5", "scanner": "scanner-primary", "fingerprint": "c0420eff14545573", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f7d177f11fd0b27", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/settings/SettingsTraktPanel.tsx:21"}, "properties": {"repobilityId": "3616700dd660500d", "scanner": "scanner-primary", "fingerprint": "0f7d177f11fd0b27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02698ad7a5b710e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/SubtitleMenu.tsx:1"}, "properties": {"repobilityId": "6428b4b4731dc727", "scanner": "scanner-primary", "fingerprint": "02698ad7a5b710e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-172005a5039cd540", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/SubtitleOverlay.tsx:8"}, "properties": {"repobilityId": "4708817e41e75f01", "scanner": "scanner-primary", "fingerprint": "172005a5039cd540", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0267135b9022a513", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PlayerControls.tsx:11"}, "properties": {"repobilityId": "36b3d64862c80b09", "scanner": "scanner-primary", "fingerprint": "0267135b9022a513", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-107ede07825f4647", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/player/PauseOverlay.tsx:8"}, "properties": {"repobilityId": "50984c3e6ee1ccf5", "scanner": "scanner-primary", "fingerprint": "107ede07825f4647", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e7d20f7bee634bd", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/android-blissful/src/components/player/SettingsDrawer.tsx:9"}, "properties": {"repobilityId": "7b5247a9f8dee17c", "scanner": "scanner-primary", "fingerprint": "2e7d20f7bee634bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-782e26e82ba17c9e", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/android-blissful/src/components/player/EpisodesDrawer.tsx:1"}, "properties": {"repobilityId": "59c342d4fd0005bb", "scanner": "scanner-primary", "fingerprint": "782e26e82ba17c9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2492c2055bf4537e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/player/WatchPartyDrawer.tsx:1"}, "properties": {"repobilityId": "0d2c1d8f8c6efac9", "scanner": "scanner-primary", "fingerprint": "2492c2055bf4537e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-942c56a89811a9b4", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/android-blissful/src/components/ui/Button.tsx:7"}, "properties": {"repobilityId": "6658c56f12fc18a9", "scanner": "scanner-primary", "fingerprint": "942c56a89811a9b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36898290d7d28a82", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/components/ui/MenuActionButton.tsx:7"}, "properties": {"repobilityId": "9c1b9fde38d60f6f", "scanner": "scanner-primary", "fingerprint": "36898290d7d28a82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c778ac928c09019", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/components/ui/Chip.tsx:7"}, "properties": {"repobilityId": "2fa87036a4c23022", "scanner": "scanner-primary", "fingerprint": "5c778ac928c09019", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b86a3c7722f1f1ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/HomeActionOverlay.tsx:11"}, "properties": {"repobilityId": "eed796da61ada53b", "scanner": "scanner-primary", "fingerprint": "b86a3c7722f1f1ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fa73db3d35828f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/CustomizeHomeModal.tsx:1"}, "properties": {"repobilityId": "15754b4acd56050f", "scanner": "scanner-primary", "fingerprint": "8fa73db3d35828f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ae04ecd4e57ee19", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/components/home/useAddonRows.ts:6"}, "properties": {"repobilityId": "284198d9b23645bc", "scanner": "scanner-primary", "fingerprint": "0ae04ecd4e57ee19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-368fd2a25cdcf2e0", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/android-blissful/src/components/home/useFocusedMeta.ts:14"}, "properties": {"repobilityId": "e4f31d0579356217", "scanner": "scanner-primary", "fingerprint": "368fd2a25cdcf2e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e70394c41e468c16", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/theme/colors.ts:1"}, "properties": {"repobilityId": "572f00b49c62bb5e", "scanner": "scanner-primary", "fingerprint": "e70394c41e468c16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da86155643630440", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/theme/metrics.ts:4"}, "properties": {"repobilityId": "678242ac3e397d2d", "scanner": "scanner-primary", "fingerprint": "da86155643630440", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32332b93e5c9552d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/watchParty.ts:1"}, "properties": {"repobilityId": "aca61064fba3f23b", "scanner": "scanner-primary", "fingerprint": "32332b93e5c9552d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b429ded094eedeed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/watchParty.ts:150"}, "properties": {"repobilityId": "6a9f3a1f4605ff6e", "scanner": "scanner-primary", "fingerprint": "b429ded094eedeed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-82f10fd1ac24fc21", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/settingsLeftTarget.ts:3"}, "properties": {"repobilityId": "2286f1abc84927bc", "scanner": "scanner-primary", "fingerprint": "82f10fd1ac24fc21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24a575ef52f0ce5b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/subtitles.ts:8"}, "properties": {"repobilityId": "3527f2f767664bab", "scanner": "scanner-primary", "fingerprint": "24a575ef52f0ce5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fcc43ba248b4f54a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktApi.ts:6"}, "properties": {"repobilityId": "8c33306cc0e92946", "scanner": "scanner-primary", "fingerprint": "fcc43ba248b4f54a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7d0d1876d434d07", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/useImdbRating.ts:43"}, "properties": {"repobilityId": "8bc0c9a2dcafd863", "scanner": "scanner-primary", "fingerprint": "a7d0d1876d434d07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9301a116f699b975", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/addons.ts:5"}, "properties": {"repobilityId": "8237b641cf35eb09", "scanner": "scanner-primary", "fingerprint": "9301a116f699b975", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53e3425edfbc85fa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/android-blissful/src/lib/addons.ts:56"}, "properties": {"repobilityId": "7e5c86fbdcf5c953", "scanner": "scanner-primary", "fingerprint": "53e3425edfbc85fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9924b5c904c17222", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/appInfo.ts:3"}, "properties": {"repobilityId": "4b2b99957eae1d90", "scanner": "scanner-primary", "fingerprint": "9924b5c904c17222", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-455472af430680ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/joinWatchParty.ts:1"}, "properties": {"repobilityId": "2a7f65e4778b88da", "scanner": "scanner-primary", "fingerprint": "455472af430680ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc7348ac37bffdb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/images.ts:26"}, "properties": {"repobilityId": "68895bb0c9205197", "scanner": "scanner-primary", "fingerprint": "bc7348ac37bffdb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-befe5fe34c008fa0", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/android-blissful/src/lib/useTvFocusable.ts:11"}, "properties": {"repobilityId": "7db053a7b20268c9", "scanner": "scanner-primary", "fingerprint": "befe5fe34c008fa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96968ed6d87588d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/useWatchPartyRoom.ts:1"}, "properties": {"repobilityId": "eb8ed619265d78de", "scanner": "scanner-primary", "fingerprint": "96968ed6d87588d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0e2d17addfa6c9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/presence.ts:1"}, "properties": {"repobilityId": "1ab8d3e67ddfee3e", "scanner": "scanner-primary", "fingerprint": "e0e2d17addfa6c9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1913d4372616990f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/railStore.ts:3"}, "properties": {"repobilityId": "d65a5c0a2691235b", "scanner": "scanner-primary", "fingerprint": "1913d4372616990f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19654bbc780d8e4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/streamPicker.ts:208"}, "properties": {"repobilityId": "86422532990b80ce", "scanner": "scanner-primary", "fingerprint": "19654bbc780d8e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27468270dad306bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/overlayStore.ts:1"}, "properties": {"repobilityId": "f87394e521561126", "scanner": "scanner-primary", "fingerprint": "27468270dad306bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1903d5fd5391e10a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/lib/metaResolver.ts:1"}, "properties": {"repobilityId": "096651114c97e1cb", "scanner": "scanner-primary", "fingerprint": "1903d5fd5391e10a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49f4d92d9fbf5b10", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/android-blissful/src/lib/subtitleCues.ts:3"}, "properties": {"repobilityId": "e15f7292753e1d3b", "scanner": "scanner-primary", "fingerprint": "49f4d92d9fbf5b10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ffff1ccefdc1241", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/stremioLink.ts:1"}, "properties": {"repobilityId": "84e314dbe1d3b722", "scanner": "scanner-primary", "fingerprint": "3ffff1ccefdc1241", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e73c9b006adb70fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/focusBus.ts:6"}, "properties": {"repobilityId": "ccda8ed14df9aacb", "scanner": "scanner-primary", "fingerprint": "e73c9b006adb70fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2c2adf7366db3cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/traktConfig.ts:3"}, "properties": {"repobilityId": "3ecf0ddd6e910969", "scanner": "scanner-primary", "fingerprint": "f2c2adf7366db3cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0eff4f3e0bd159a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/tmdbArt.ts:3"}, "properties": {"repobilityId": "b7928b9ad7dc62ff", "scanner": "scanner-primary", "fingerprint": "0eff4f3e0bd159a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20c870247e41118c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/useSelfTag.ts:4"}, "properties": {"repobilityId": "dca1510e0494be2a", "scanner": "scanner-primary", "fingerprint": "20c870247e41118c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16ae05c0bff55162", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/loginStore.ts:3"}, "properties": {"repobilityId": "deedf46f500c0bf5", "scanner": "scanner-primary", "fingerprint": "16ae05c0bff55162", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6b862e6c08c0ea0", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/android-blissful/src/lib/tvSettings.ts:3"}, "properties": {"repobilityId": "7d0293e4670c7cfb", "scanner": "scanner-primary", "fingerprint": "b6b862e6c08c0ea0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3be806a3c4b73469", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/android-blissful/src/lib/contentFocus.ts:4"}, "properties": {"repobilityId": "a043a2a34beb87f1", "scanner": "scanner-primary", "fingerprint": "3be806a3c4b73469", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b31c42b3e63f861", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/activeParties.ts:3"}, "properties": {"repobilityId": "5de13469d8b14dd6", "scanner": "scanner-primary", "fingerprint": "3b31c42b3e63f861", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb1196d6f7e25bb6", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/android-blissful/src/lib/streamRelevance.ts:4"}, "properties": {"repobilityId": "f21846bb2a9798b9", "scanner": "scanner-primary", "fingerprint": "cb1196d6f7e25bb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b67cf8906d0be0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/lib/homeRows.ts:27"}, "properties": {"repobilityId": "eb1de6e1b74b0eb5", "scanner": "scanner-primary", "fingerprint": "5b67cf8906d0be0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e542f82372ae1488", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/android-blissful/src/icons/StremioLogo.tsx:4"}, "properties": {"repobilityId": "8a44832acedafeb4", "scanner": "scanner-primary", "fingerprint": "e542f82372ae1488", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b0f948426f39836", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/stremioAddon.ts:208"}, "properties": {"repobilityId": "3dd72be7980511e7", "scanner": "scanner-primary", "fingerprint": "4b0f948426f39836", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7116055555345868", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/shared/blissful-core/src/adapters.ts:3"}, "properties": {"repobilityId": "2724ee31e47c97b3", "scanner": "scanner-primary", "fingerprint": "7116055555345868", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e27d8210009ae73d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/adapters.ts:15"}, "properties": {"repobilityId": "e59036a1361bb3b0", "scanner": "scanner-primary", "fingerprint": "e27d8210009ae73d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3612d1d58e995d56", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/shared/blissful-core/src/mediaTypes.ts:1"}, "properties": {"repobilityId": "2fa3f7ce84d23816", "scanner": "scanner-primary", "fingerprint": "3612d1d58e995d56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-968a9848ee62b21e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/shared/blissful-core/src/blissfulAuthApi.ts:299"}, "properties": {"repobilityId": "b30944d6b8733259", "scanner": "scanner-primary", "fingerprint": "968a9848ee62b21e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5776602203074910", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-core/src/blissfulStorageApi.ts:28"}, "properties": {"repobilityId": "5d75c74e0fc7b77b", "scanner": "scanner-primary", "fingerprint": "5776602203074910", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db9ded08422a4c2c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/shared/blissful-storage/server.js:71"}, "properties": {"repobilityId": "ddb0c7b5f15adbdd", "scanner": "scanner-primary", "fingerprint": "db9ded08422a4c2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f6be5ab78cf86b4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/blissful-storage/server.js:1364"}, "properties": {"repobilityId": "4eec5e65dc41e79f", "scanner": "scanner-primary", "fingerprint": "6f6be5ab78cf86b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-235310f021d33f92", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/shared/addon-proxy/videasy-decrypt.js:3"}, "properties": {"repobilityId": "a2989d17c704214f", "scanner": "scanner-primary", "fingerprint": "235310f021d33f92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e01c75ab19a90cb7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/shared/addon-proxy/server.js:10"}, "properties": {"repobilityId": "f90550260686f61e", "scanner": "scanner-primary", "fingerprint": "e01c75ab19a90cb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a21cc8d39b90e24", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/shared/addon-proxy/server.js:1114"}, "properties": {"repobilityId": "64faf44c66460973", "scanner": "scanner-primary", "fingerprint": "2a21cc8d39b90e24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d0d47081190f3f4", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/vite.config.ts:6"}, "properties": {"repobilityId": "3014150e98181961", "scanner": "scanner-primary", "fingerprint": "6d0d47081190f3f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa95d52bf264fe03", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/vite.config.ts:187"}, "properties": {"repobilityId": "c6154280d0fa4fd1", "scanner": "scanner-primary", "fingerprint": "aa95d52bf264fe03", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a9153a1bb77e2bb4", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/web-blissful/src/main.tsx:12"}, "properties": {"repobilityId": "485340758387d3b2", "scanner": "scanner-primary", "fingerprint": "a9153a1bb77e2bb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-351b00838a1692ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/constants.ts:39"}, "properties": {"repobilityId": "57621d384ed79efa", "scanner": "scanner-primary", "fingerprint": "351b00838a1692ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de42298450eb2b1d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/WhoWatchingModal.tsx:1"}, "properties": {"repobilityId": "af2a46ce9e93329c", "scanner": "scanner-primary", "fingerprint": "de42298450eb2b1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4299455bf6d77b93", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/components/LoginModal.tsx:1"}, "properties": {"repobilityId": "92a5816e9a6adc2c", "scanner": "scanner-primary", "fingerprint": "4299455bf6d77b93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f23903c7315c0ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatchingActions.ts:47"}, "properties": {"repobilityId": "76f617e016894280", "scanner": "scanner-primary", "fingerprint": "2f23903c7315c0ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e58cd3115e3345", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/layout/app-shell/hooks/useGradientBackdrop.ts:1"}, "properties": {"repobilityId": "2688afa3f36cd3e8", "scanner": "scanner-primary", "fingerprint": "e4e58cd3115e3345", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34a91a3b9ab5af87", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useAddonsManager.ts:52"}, "properties": {"repobilityId": "c54f67da5953461b", "scanner": "scanner-primary", "fingerprint": "34a91a3b9ab5af87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-baee11e188cb0897", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/layout/app-shell/hooks/useContinueWatching.ts:21"}, "properties": {"repobilityId": "c8e25fb4fa4f31ea", "scanner": "scanner-primary", "fingerprint": "baee11e188cb0897", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e26b6bd39e6a8c0c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/layout/app-shell/hooks/useHomeCatalog.ts:1"}, "properties": {"repobilityId": "2b9910c236ab104a", "scanner": "scanner-primary", "fingerprint": "e26b6bd39e6a8c0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05975ee150c959d8", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/layout/top-nav/TopNav.tsx:96"}, "properties": {"repobilityId": "527da9bb7ab96e5b", "scanner": "scanner-primary", "fingerprint": "05975ee150c959d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00e53b007dc9e88a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BananasPicker.tsx:45"}, "properties": {"repobilityId": "5af7ccceaf4c57fb", "scanner": "scanner-primary", "fingerprint": "00e53b007dc9e88a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17c6147031f22013", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/TruncatedText.tsx:19"}, "properties": {"repobilityId": "f7345ef08bffaa34", "scanner": "scanner-primary", "fingerprint": "17c6147031f22013", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2420425585c73b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/PersistentPlayerHost.tsx:6"}, "properties": {"repobilityId": "c0601d364ba4a846", "scanner": "scanner-primary", "fingerprint": "d2420425585c73b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-567ef7c92765cc4e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/MiniPlayerWindow.tsx:3"}, "properties": {"repobilityId": "58aa847a2f066726", "scanner": "scanner-primary", "fingerprint": "567ef7c92765cc4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e70bf1e30831e6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/UnreleasedEpisodeModal.tsx:1"}, "properties": {"repobilityId": "42007b040103d3b2", "scanner": "scanner-primary", "fingerprint": "9e70bf1e30831e6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecad312973d77b7c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/Rating.tsx:31"}, "properties": {"repobilityId": "1a0f72b731b4e45d", "scanner": "scanner-primary", "fingerprint": "ecad312973d77b7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80eb04f46085e7cb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/Rating.tsx:32"}, "properties": {"repobilityId": "46c81d2f64acd7e4", "scanner": "scanner-primary", "fingerprint": "80eb04f46085e7cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-821241d0c689ef6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/useChapterSkipWeb.ts:1"}, "properties": {"repobilityId": "8b29baf00a4f21cb", "scanner": "scanner-primary", "fingerprint": "821241d0c689ef6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6a9e1ec1b4f89b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/MediaCard.tsx:57"}, "properties": {"repobilityId": "579d6ec1d405b59d", "scanner": "scanner-primary", "fingerprint": "c6a9e1ec1b4f89b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65d84c7dae7b0758", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/RouteTransition.tsx:4"}, "properties": {"repobilityId": "8ebf1e0cec80ad29", "scanner": "scanner-primary", "fingerprint": "65d84c7dae7b0758", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5587130f7234895", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/SettingsStremioPanel.tsx:15"}, "properties": {"repobilityId": "d8942edfbbd5b5d8", "scanner": "scanner-primary", "fingerprint": "e5587130f7234895", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22f4dda935bf02af", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/web-blissful/src/components/BlissTooltip.tsx:42"}, "properties": {"repobilityId": "e02360713728475a", "scanner": "scanner-primary", "fingerprint": "22f4dda935bf02af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8090e9c514268511", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/AppShell.tsx:170"}, "properties": {"repobilityId": "492b05c4f0b4084c", "scanner": "scanner-primary", "fingerprint": "8090e9c514268511", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c78f59985bf37f8f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/PlayerControlIcons.tsx:1"}, "properties": {"repobilityId": "327b35ee56e4d3ab", "scanner": "scanner-primary", "fingerprint": "c78f59985bf37f8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f240a124cc6e8e3a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/PartyInviteListener.tsx:3"}, "properties": {"repobilityId": "e6089b8cfeb67ca8", "scanner": "scanner-primary", "fingerprint": "f240a124cc6e8e3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f6c6c5998c05bfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/StreamUnavailableModal.tsx:1"}, "properties": {"repobilityId": "9b719deb275a7a00", "scanner": "scanner-primary", "fingerprint": "4f6c6c5998c05bfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dd6354a6e37bd0a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer.tsx:5"}, "properties": {"repobilityId": "00f3639c25644b08", "scanner": "scanner-primary", "fingerprint": "2dd6354a6e37bd0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0a20cf92faf7583", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/NativeMpvPlayer.tsx:843"}, "properties": {"repobilityId": "96cf3cde9ea3d8bd", "scanner": "scanner-primary", "fingerprint": "c0a20cf92faf7583", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c17fa552669ea15d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/PlayerBufferingScreen.tsx:4"}, "properties": {"repobilityId": "f8727753a2b4e67e", "scanner": "scanner-primary", "fingerprint": "c17fa552669ea15d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4fb501c5960b04c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Tabs.tsx:5"}, "properties": {"repobilityId": "5b4fae430fb816bf", "scanner": "scanner-primary", "fingerprint": "e4fb501c5960b04c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d37dd6751a374ea0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Spinner.tsx:5"}, "properties": {"repobilityId": "b724e7810732ca0e", "scanner": "scanner-primary", "fingerprint": "d37dd6751a374ea0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6f3ded19080d941", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Button.tsx:5"}, "properties": {"repobilityId": "fe458c03ccfb481d", "scanner": "scanner-primary", "fingerprint": "a6f3ded19080d941", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e077b4290b958cd0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/Dropdown.tsx:5"}, "properties": {"repobilityId": "c6e2c77394415335", "scanner": "scanner-primary", "fingerprint": "e077b4290b958cd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d643ee3b6ba598c0", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/base/Avatar.tsx:5"}, "properties": {"repobilityId": "eee101a86980234c", "scanner": "scanner-primary", "fingerprint": "d643ee3b6ba598c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8150d84770761c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/base/index.ts:1"}, "properties": {"repobilityId": "2cc4c5ea5f4be2ec", "scanner": "scanner-primary", "fingerprint": "e8150d84770761c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfbbc3e08803902b", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/web-blissful/src/components/base/BlissTooltip.tsx:42"}, "properties": {"repobilityId": "8794e201d8c99cc7", "scanner": "scanner-primary", "fingerprint": "cfbbc3e08803902b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de01849791551163", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/web-blissful/src/components/base/Modal.tsx:5"}, "properties": {"repobilityId": "69e13eca53c13047", "scanner": "scanner-primary", "fingerprint": "de01849791551163", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c49eb01a846ad742", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Switch.tsx:10"}, "properties": {"repobilityId": "c882d7497e007f03", "scanner": "scanner-primary", "fingerprint": "c49eb01a846ad742", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6f8c66d4989fa9a", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/components/base/Card.tsx:5"}, "properties": {"repobilityId": "c8a6311a95fa61a7", "scanner": "scanner-primary", "fingerprint": "b6f8c66d4989fa9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c789a5210d0b7dec", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/base/Accordion.tsx:5"}, "properties": {"repobilityId": "bf2701d9a316292d", "scanner": "scanner-primary", "fingerprint": "c789a5210d0b7dec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4be534ddd942781", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/SideNav/useFooterAccordionHeights.ts:9"}, "properties": {"repobilityId": "e73910e64215d7eb", "scanner": "scanner-primary", "fingerprint": "a4be534ddd942781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20c44d9d4a783874", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/NavItem.tsx:30"}, "properties": {"repobilityId": "702eef85edec4df5", "scanner": "scanner-primary", "fingerprint": "20c44d9d4a783874", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5766fdeac62d54c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/SideNav/FriendsDrawer.tsx:1"}, "properties": {"repobilityId": "40a07a3ba9bd4823", "scanner": "scanner-primary", "fingerprint": "5766fdeac62d54c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bd5ef94295589ba", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/components/SideNav/DesktopNav.tsx:73"}, "properties": {"repobilityId": "090589a28291ac61", "scanner": "scanner-primary", "fingerprint": "3bd5ef94295589ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-490d3220dbdf8ae3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SubtitleMenuPopover.tsx:1"}, "properties": {"repobilityId": "5c1855e68c50860a", "scanner": "scanner-primary", "fingerprint": "490d3220dbdf8ae3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1637b35e03d0e20", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SettingsPanel.tsx:291"}, "properties": {"repobilityId": "973922009828b0e3", "scanner": "scanner-primary", "fingerprint": "e1637b35e03d0e20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18bedd495d19e9f0", "level": "none", "message": {"text": "Commented-code block (20 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useChapterSkip.ts:4"}, "properties": {"repobilityId": "490af996cc2d9ca2", "scanner": "scanner-primary", "fingerprint": "18bedd495d19e9f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7bba7002bb74e54", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/web-blissful/src/components/NativeMpvPlayer/useSkipSegments.ts:4"}, "properties": {"repobilityId": "d25708e8014a429a", "scanner": "scanner-primary", "fingerprint": "a7bba7002bb74e54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aba3f0b83f5659f7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodeThumbnail.tsx:1"}, "properties": {"repobilityId": "5de1ff4c543c3928", "scanner": "scanner-primary", "fingerprint": "aba3f0b83f5659f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44002d33b8852fe1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/ScrubBar.tsx:1"}, "properties": {"repobilityId": "935d51040f935ca4", "scanner": "scanner-primary", "fingerprint": "44002d33b8852fe1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-617bc7ffe18dafe6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/SkipChapterButton.tsx:5"}, "properties": {"repobilityId": "d7fc53a922e740bd", "scanner": "scanner-primary", "fingerprint": "617bc7ffe18dafe6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b3ade1aff63e490", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/AudioMenuPopover.tsx:1"}, "properties": {"repobilityId": "8edf71516502bc57", "scanner": "scanner-primary", "fingerprint": "3b3ade1aff63e490", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b625529c63c00973", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/NativeMpvPlayer/playbackClock.ts:1"}, "properties": {"repobilityId": "9ab4b328e067ad52", "scanner": "scanner-primary", "fingerprint": "b625529c63c00973", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-433e685e9c0261a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/UpNextOverlay.tsx:1"}, "properties": {"repobilityId": "c19385cc70a97151", "scanner": "scanner-primary", "fingerprint": "433e685e9c0261a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1853ada2d11d493f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/BottomControls.tsx:106"}, "properties": {"repobilityId": "e59f78dbff9f9718", "scanner": "scanner-primary", "fingerprint": "1853ada2d11d493f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a89c762bfeb6aa10", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/EpisodesDrawer.tsx:1"}, "properties": {"repobilityId": "87dc36bc39154cbe", "scanner": "scanner-primary", "fingerprint": "a89c762bfeb6aa10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da9c99fb7e265521", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/NativeMpvPlayer/TopOverlay.tsx:1"}, "properties": {"repobilityId": "110b7a146708baba", "scanner": "scanner-primary", "fingerprint": "da9c99fb7e265521", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19131836ed6c1f53", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/NativeMpvPlayer/PlayerControlsBar.tsx:1"}, "properties": {"repobilityId": "b0d8966e51656837", "scanner": "scanner-primary", "fingerprint": "19131836ed6c1f53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a6702693bdc16a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/EmojiPicker.tsx:1"}, "properties": {"repobilityId": "a2a8b13649585bca", "scanner": "scanner-primary", "fingerprint": "7a6702693bdc16a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ef55c807535b5c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyShareConsent.tsx:1"}, "properties": {"repobilityId": "055fbc236007aeaa", "scanner": "scanner-primary", "fingerprint": "8ef55c807535b5c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c17a8c1cce0447e", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyJoinModal.tsx:3"}, "properties": {"repobilityId": "d6b5e24d5bd495f8", "scanner": "scanner-primary", "fingerprint": "9c17a8c1cce0447e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab46a6a33cfad151", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyNamePrompt.tsx:1"}, "properties": {"repobilityId": "8376b6aa2481fb4f", "scanner": "scanner-primary", "fingerprint": "ab46a6a33cfad151", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-700669c9fec7cb05", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyActivityToast.tsx:1"}, "properties": {"repobilityId": "1fee4b9c0a6df61b", "scanner": "scanner-primary", "fingerprint": "700669c9fec7cb05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43c3cbd9ff5f9696", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyDrawer.tsx:4"}, "properties": {"repobilityId": "b299c3abc2834a71", "scanner": "scanner-primary", "fingerprint": "43c3cbd9ff5f9696", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96597286341a46ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/WatchParty/WatchPartyButton.tsx:1"}, "properties": {"repobilityId": "6b2f496238fd5bc0", "scanner": "scanner-primary", "fingerprint": "96597286341a46ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d911a83721179742", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/SettingsPanel.tsx:1"}, "properties": {"repobilityId": "145957ef267c8680", "scanner": "scanner-primary", "fingerprint": "d911a83721179742", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72a18094af22ad9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/MiniControls.tsx:5"}, "properties": {"repobilityId": "daedc01740b8d27c", "scanner": "scanner-primary", "fingerprint": "72a18094af22ad9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02162f28efadc16c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodeThumbnail.tsx:1"}, "properties": {"repobilityId": "0ce54b592a9bc95f", "scanner": "scanner-primary", "fingerprint": "02162f28efadc16c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13c6f53d7b8bfa84", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/SkipChapterButton.tsx:5"}, "properties": {"repobilityId": "03ecf2849350236c", "scanner": "scanner-primary", "fingerprint": "13c6f53d7b8bfa84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9d6eaafffdb8186", "level": "none", "message": {"text": "Commented-code block (13 lines) in apps/web-blissful/src/components/BlissfulPlayer/index.tsx:479"}, "properties": {"repobilityId": "0453644e12645d7c", "scanner": "scanner-primary", "fingerprint": "c9d6eaafffdb8186", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab7842b94ad6cf15", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431"}, "properties": {"repobilityId": "2bbbea54f275c7d0", "scanner": "scanner-primary", "fingerprint": "ab7842b94ad6cf15", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce2410199d750516", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/UpNextOverlay.tsx:1"}, "properties": {"repobilityId": "daae63c960f61228", "scanner": "scanner-primary", "fingerprint": "ce2410199d750516", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83ed73386748dd21", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/BottomControls.tsx:8"}, "properties": {"repobilityId": "9b666d4131760482", "scanner": "scanner-primary", "fingerprint": "83ed73386748dd21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df654e188411685f", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/components/BlissfulPlayer/PauseOverlay.tsx:6"}, "properties": {"repobilityId": "584e1ae303976559", "scanner": "scanner-primary", "fingerprint": "df654e188411685f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-663a476f115b5b21", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/EpisodesDrawer.tsx:1"}, "properties": {"repobilityId": "54ea8babeb0e2e2b", "scanner": "scanner-primary", "fingerprint": "663a476f115b5b21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-007403f8cc3620a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/BlissfulPlayer/TopOverlay.tsx:6"}, "properties": {"repobilityId": "a0349cc68f628cff", "scanner": "scanner-primary", "fingerprint": "007403f8cc3620a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fd2476d012d7350", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/components/BlissfulPlayer/BufferingOverlay.tsx:1"}, "properties": {"repobilityId": "781ae9b5eba5ee6e", "scanner": "scanner-primary", "fingerprint": "6fd2476d012d7350", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c650f8f5035ccec8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendAvatar.tsx:4"}, "properties": {"repobilityId": "e879a7a8e62d0dcd", "scanner": "scanner-primary", "fingerprint": "c650f8f5035ccec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2de87ce2b3fc56dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/components/Friends/FriendRow.tsx:75"}, "properties": {"repobilityId": "8cf4193c79dc2521", "scanner": "scanner-primary", "fingerprint": "2de87ce2b3fc56dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2a66b117400222a", "level": "none", "message": {"text": "Commented-code block (16 lines) in apps/web-blissful/src/components/Friends/FriendsAccordion.tsx:240"}, "properties": {"repobilityId": "18f1e56082871efc", "scanner": "scanner-primary", "fingerprint": "e2a66b117400222a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8766d9e6608ec530", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/watchParty.ts:6"}, "properties": {"repobilityId": "9facceee2ddd0d5d", "scanner": "scanner-primary", "fingerprint": "8766d9e6608ec530", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c99389847d95f4e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/watchParty.ts:442"}, "properties": {"repobilityId": "0dbef22c9af48fbd", "scanner": "scanner-primary", "fingerprint": "c99389847d95f4e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b2fb146743711f72", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/colorUtils.ts:49"}, "properties": {"repobilityId": "dd5bcdac8801c25d", "scanner": "scanner-primary", "fingerprint": "b2fb146743711f72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20bbceb70797e3bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioAddon.ts:390"}, "properties": {"repobilityId": "b872286b3fb776ba", "scanner": "scanner-primary", "fingerprint": "20bbceb70797e3bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9ed5019ce21fc49", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioAddon.ts:246"}, "properties": {"repobilityId": "18c86d90d406ebfd", "scanner": "scanner-primary", "fingerprint": "e9ed5019ce21fc49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35e9e0ecbafb717a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/stremioAddon.test.ts:1"}, "properties": {"repobilityId": "86bd67f5aeee3166", "scanner": "scanner-primary", "fingerprint": "35e9e0ecbafb717a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d7d9a314f8c78e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/desktop.ts:1"}, "properties": {"repobilityId": "7803f9d61c041ce6", "scanner": "scanner-primary", "fingerprint": "7d7d9a314f8c78e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c21898f4f579d3e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/mediaTypes.ts:1"}, "properties": {"repobilityId": "c1d67ca93a1d77b0", "scanner": "scanner-primary", "fingerprint": "c21898f4f579d3e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3aabda27fe3fca", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/streamHistory.ts:57"}, "properties": {"repobilityId": "246720043f27a636", "scanner": "scanner-primary", "fingerprint": "3f3aabda27fe3fca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25d09069d1939417", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/subtitleUtils.ts:1"}, "properties": {"repobilityId": "f4ec3fad5c1b984a", "scanner": "scanner-primary", "fingerprint": "25d09069d1939417", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82e7e68cb03c72a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/subtitleUtils.ts:52"}, "properties": {"repobilityId": "b50c2c588a8b526e", "scanner": "scanner-primary", "fingerprint": "82e7e68cb03c72a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d419455db0db724a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/imageProxy.ts:11"}, "properties": {"repobilityId": "828a57f4c35c2146", "scanner": "scanner-primary", "fingerprint": "d419455db0db724a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67b8cb155e4831a9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/profileAvatars.ts:22"}, "properties": {"repobilityId": "57ff0e108e2de82f", "scanner": "scanner-primary", "fingerprint": "67b8cb155e4831a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ff389bfe1588eef", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/introdb.ts:1"}, "properties": {"repobilityId": "94be5331b7793320", "scanner": "scanner-primary", "fingerprint": "9ff389bfe1588eef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c947edc7fb6bddcc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/introdb.ts:64"}, "properties": {"repobilityId": "a47d1287432e1ac7", "scanner": "scanner-primary", "fingerprint": "c947edc7fb6bddcc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6a8fd5ba4c878d3f", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/lib/bananaRelevance.ts:3"}, "properties": {"repobilityId": "4793fbe28552fa7e", "scanner": "scanner-primary", "fingerprint": "6a8fd5ba4c878d3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a58fba63f52cfca", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/playerServers.ts:1"}, "properties": {"repobilityId": "9a8e9f1fd3d4e994", "scanner": "scanner-primary", "fingerprint": "6a58fba63f52cfca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-730f7a5889812752", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioFacebook.ts:3"}, "properties": {"repobilityId": "afbb20d9944ed53b", "scanner": "scanner-primary", "fingerprint": "730f7a5889812752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af546eec9bcef435", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/stremioFacebook.ts:50"}, "properties": {"repobilityId": "a057f7a4c94cb9a1", "scanner": "scanner-primary", "fingerprint": "af546eec9bcef435", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f526752667e2e444", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/blissfulAuthApi.ts:302"}, "properties": {"repobilityId": "c8eca5ceaa25a791", "scanner": "scanner-primary", "fingerprint": "f526752667e2e444", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f90744d3b1c468b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerAudioTracks.ts:1"}, "properties": {"repobilityId": "6fbe0ef44a97cb3b", "scanner": "scanner-primary", "fingerprint": "f90744d3b1c468b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3cf5f5663de8db8", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/storageApi.ts:21"}, "properties": {"repobilityId": "5ffedcabef85e259", "scanner": "scanner-primary", "fingerprint": "c3cf5f5663de8db8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c18a5490bf83cf2a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/storageApi.ts:51"}, "properties": {"repobilityId": "fdbab87ed128c5f9", "scanner": "scanner-primary", "fingerprint": "c18a5490bf83cf2a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0702298c2b9c0fd9", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/web-blissful/src/lib/watchPartySource.ts:7"}, "properties": {"repobilityId": "cb15285f465f391f", "scanner": "scanner-primary", "fingerprint": "0702298c2b9c0fd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c93c5d6b6096a40", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/useWatchParty.ts:5"}, "properties": {"repobilityId": "6f4f2fb41c44c58e", "scanner": "scanner-primary", "fingerprint": "3c93c5d6b6096a40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc5f40d44aa6f0ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/stremioLinkApi.ts:1"}, "properties": {"repobilityId": "1cdf6c57ef6225db", "scanner": "scanner-primary", "fingerprint": "bc5f40d44aa6f0ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5982f53e63c512c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/aniskip.ts:6"}, "properties": {"repobilityId": "b0db3e2807d7eae8", "scanner": "scanner-primary", "fingerprint": "a5982f53e63c512c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23b1e49feaa06f6b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/useWatchPartyMpv.ts:5"}, "properties": {"repobilityId": "dc1d4c5493af9af5", "scanner": "scanner-primary", "fingerprint": "23b1e49feaa06f6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1bc77ae16c91c5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/lib/fallbackReleases.ts:1"}, "properties": {"repobilityId": "d9b8ff5cfd9ce010", "scanner": "scanner-primary", "fingerprint": "e1bc77ae16c91c5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87632fa14bb1f9ad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/fallbackReleases.ts:111"}, "properties": {"repobilityId": "9d9b586c02d0abac", "scanner": "scanner-primary", "fingerprint": "87632fa14bb1f9ad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-98e105c2a5dfe9f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/tmdb.ts:1"}, "properties": {"repobilityId": "337195f261c48331", "scanner": "scanner-primary", "fingerprint": "98e105c2a5dfe9f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-874b7498c9f2cc9d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/lib/tmdb.ts:44"}, "properties": {"repobilityId": "e77fa2a701564de9", "scanner": "scanner-primary", "fingerprint": "874b7498c9f2cc9d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3243bcfee7ddaa2b", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/lib/transitionPoster.ts:6"}, "properties": {"repobilityId": "c64bc963dfee8278", "scanner": "scanner-primary", "fingerprint": "3243bcfee7ddaa2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa25a92da1b977ea", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/lib/storageBaseUrl.ts:12"}, "properties": {"repobilityId": "e7ff83aae717a5fe", "scanner": "scanner-primary", "fingerprint": "fa25a92da1b977ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb33e9d855e83d76", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/lib/playerEnv.ts:105"}, "properties": {"repobilityId": "8e377195ea4f2c37", "scanner": "scanner-primary", "fingerprint": "eb33e9d855e83d76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31bdf74b309ed558", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerSpikePage.tsx:5"}, "properties": {"repobilityId": "443e5291dca4882b", "scanner": "scanner-primary", "fingerprint": "31bdf74b309ed558", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2df0b35cfebc28c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/ProfilePage.tsx:1"}, "properties": {"repobilityId": "b8d0d8667b8b56da", "scanner": "scanner-primary", "fingerprint": "b2df0b35cfebc28c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90af0dc7bf0d247b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/PlayerPage.tsx:110"}, "properties": {"repobilityId": "67aa55c8873fd0e6", "scanner": "scanner-primary", "fingerprint": "90af0dc7bf0d247b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c128f98a857d835f", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/pages/StremioLinkPopupPage.tsx:14"}, "properties": {"repobilityId": "4abd9ce150e971ca", "scanner": "scanner-primary", "fingerprint": "c128f98a857d835f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d18adcb4d3cffa6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/SettingsPage.tsx:180"}, "properties": {"repobilityId": "832e572281ed4fe5", "scanner": "scanner-primary", "fingerprint": "d18adcb4d3cffa6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-767027c61538a70a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/pages/VidkingPlayerPage.tsx:1"}, "properties": {"repobilityId": "a3f2fd04d3f9acea", "scanner": "scanner-primary", "fingerprint": "767027c61538a70a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f601b189f0c1af00", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/pages/DetailPage.tsx:49"}, "properties": {"repobilityId": "598b72a311774547", "scanner": "scanner-primary", "fingerprint": "f601b189f0c1af00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73d6b1983fb6cfef", "level": "note", "message": {"text": "Legacy-named symbol `failed_infringement_v2` in apps/web-blissful/src/pages/PlayerPageWeb.tsx:70"}, "properties": {"repobilityId": "6943cbaba50203aa", "scanner": "scanner-primary", "fingerprint": "73d6b1983fb6cfef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e803c46ccd4bcb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/pages/PlayerPageWeb.tsx:84"}, "properties": {"repobilityId": "da9f33fdbb8d0daa", "scanner": "scanner-primary", "fingerprint": "1e803c46ccd4bcb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89f207cae18f6bd9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/pages/PlayerPageWeb.tsx:92"}, "properties": {"repobilityId": "939fe57691b4ad2f", "scanner": "scanner-primary", "fingerprint": "89f207cae18f6bd9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a171e75f423732cd", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/hooks/useDesktopUpdater.ts:11"}, "properties": {"repobilityId": "393c5c64c83f5831", "scanner": "scanner-primary", "fingerprint": "a171e75f423732cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3a284088e4a60e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/StorageProvider.tsx:149"}, "properties": {"repobilityId": "fd551a8c3e74fc6c", "scanner": "scanner-primary", "fingerprint": "e3a284088e4a60e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ebe19f5aeb30ad5", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/context/MiniPlayerProvider.tsx:17"}, "properties": {"repobilityId": "fdd78e7a9934bb8a", "scanner": "scanner-primary", "fingerprint": "5ebe19f5aeb30ad5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6b79a36e17bbb67", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/ActivePartiesProvider.tsx:122"}, "properties": {"repobilityId": "49401930ea57836e", "scanner": "scanner-primary", "fingerprint": "e6b79a36e17bbb67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca86fb1d572cc1ad", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/HomeCatalogProvider.tsx:7"}, "properties": {"repobilityId": "8dc4fa176cd1bd39", "scanner": "scanner-primary", "fingerprint": "ca86fb1d572cc1ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d3c6669c38617d7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/web-blissful/src/context/ModalsProvider.tsx:1"}, "properties": {"repobilityId": "c72d34270159b9a4", "scanner": "scanner-primary", "fingerprint": "9d3c6669c38617d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95a9fa7f0c858053", "level": "none", "message": {"text": "Commented-code block (13 lines) in apps/web-blissful/src/context/AuthProvider.tsx:6"}, "properties": {"repobilityId": "4fd8da1a8365f506", "scanner": "scanner-primary", "fingerprint": "95a9fa7f0c858053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18a4086c3e2b209e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/context/ContinueWatchingProvider.tsx:3"}, "properties": {"repobilityId": "b7ffffefeff95813", "scanner": "scanner-primary", "fingerprint": "18a4086c3e2b209e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c196931947ea0274", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/streams.ts:157"}, "properties": {"repobilityId": "396ae0424c68105a", "scanner": "scanner-primary", "fingerprint": "c196931947ea0274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-769ba7fcd12a9deb", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/features/detail/components/EpisodePanel.tsx:6"}, "properties": {"repobilityId": "6c9d24f03947bff2", "scanner": "scanner-primary", "fingerprint": "769ba7fcd12a9deb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8e5fbb4fdd9f024", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web-blissful/src/features/detail/hooks/useEpisodeSelection.ts:57"}, "properties": {"repobilityId": "bd0c9c04947c6159", "scanner": "scanner-primary", "fingerprint": "f8e5fbb4fdd9f024", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d068e8e46619f90", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web-blissful/src/features/discover/hooks/useDiscoverCatalogData.ts:71"}, "properties": {"repobilityId": "7562cb6a1c02beb7", "scanner": "scanner-primary", "fingerprint": "6d068e8e46619f90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fedc99e696689e3a", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web-blissful/src/features/home/components/NowPopular.tsx:43"}, "properties": {"repobilityId": "2fdc46c45a2c0bde", "scanner": "scanner-primary", "fingerprint": "fedc99e696689e3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-778477c1fecf8895", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web-blissful/src/features/home/hooks/useAddonRows.ts:44"}, "properties": {"repobilityId": "da7f610474b1cfd4", "scanner": "scanner-primary", "fingerprint": "778477c1fecf8895", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a98aa5fab6913577", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/dev.cjs:1"}, "properties": {"repobilityId": "c53d406c804ea3e7", "scanner": "scanner-primary", "fingerprint": "a98aa5fab6913577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-027786d87666f4c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/run-cargo.cjs:1"}, "properties": {"repobilityId": "d882c964ba67f8ab", "scanner": "scanner-primary", "fingerprint": "027786d87666f4c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19385e6c78b48e4b", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/dev-android.cjs:9"}, "properties": {"repobilityId": "04c95d7c65d4c136", "scanner": "scanner-primary", "fingerprint": "19385e6c78b48e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2143d0e4579561b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/dep-wait-smoke.cjs:1"}, "properties": {"repobilityId": "ae08b99e650719ac", "scanner": "scanner-primary", "fingerprint": "2143d0e4579561b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bc8cad7ce6abcf8", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/lifecycle-smoke.cjs:1"}, "properties": {"repobilityId": "0a3f8bc446730e10", "scanner": "scanner-primary", "fingerprint": "7bc8cad7ce6abcf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69cf02143e431dac", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/android-smoke.cjs:1"}, "properties": {"repobilityId": "3e761b9fc15db124", "scanner": "scanner-primary", "fingerprint": "69cf02143e431dac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4127db64fb63774c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/dev-launcher/test/desktop-smoke.cjs:1"}, "properties": {"repobilityId": "322a9d5b66831ede", "scanner": "scanner-primary", "fingerprint": "4127db64fb63774c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ba57eb756983edb", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/test/killtree-smoke.cjs:1"}, "properties": {"repobilityId": "1383da2335ddafa3", "scanner": "scanner-primary", "fingerprint": "7ba57eb756983edb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cf475262559eeca", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/dev-launcher/lib/manager.cjs:4"}, "properties": {"repobilityId": "9bfb0b7a15ef1d9e", "scanner": "scanner-primary", "fingerprint": "7cf475262559eeca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11af456c4af7d3d6", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/e2e/verify-software-transcode.mjs:5"}, "properties": {"repobilityId": "1bb010957c3b811a", "scanner": "scanner-primary", "fingerprint": "11af456c4af7d3d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91195d54594839e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/e2e/watchparty.mjs:9"}, "properties": {"repobilityId": "1d64d798f9081098", "scanner": "scanner-primary", "fingerprint": "91195d54594839e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aebe61a0909e9e5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty.mjs:397"}, "properties": {"repobilityId": "3dfd84a95d7ca938", "scanner": "scanner-primary", "fingerprint": "aebe61a0909e9e5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-360c353fbce5cdef", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/e2e/watchparty-v2.mjs:3"}, "properties": {"repobilityId": "10be29452915c4d2", "scanner": "scanner-primary", "fingerprint": "360c353fbce5cdef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3472ce5efa7018a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e/watchparty-v2.mjs:332"}, "properties": {"repobilityId": "0b8c8c0fcd1b8a9a", "scanner": "scanner-primary", "fingerprint": "b3472ce5efa7018a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fdc6e495e834c366", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/e2e/episode-change-share.mjs:6"}, "properties": {"repobilityId": "be1ff05f33eabc94", "scanner": "scanner-primary", "fingerprint": "fdc6e495e834c366", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f94fc558d0e8d6de", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/e2e/verify-leftover-replace.mjs:6"}, "properties": {"repobilityId": "dd67f983bf04b24b", "scanner": "scanner-primary", "fingerprint": "f94fc558d0e8d6de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c412b2480493bc4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/e2e/host-relay.mjs:3"}, "properties": {"repobilityId": "64667d48830f5cd0", "scanner": "scanner-primary", "fingerprint": "4c412b2480493bc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ddea76ad789bafc", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/scripts/blissful-transcoder.py:40"}, "properties": {"repobilityId": "fb26fe153b9a15c9", "scanner": "scanner-primary", "fingerprint": "7ddea76ad789bafc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-005f887df0d2f576", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/scripts/videasy-resolver.py:131"}, "properties": {"repobilityId": "9dc39a787d3fe297", "scanner": "scanner-primary", "fingerprint": "005f887df0d2f576", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf5979a86c7159a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/run.mjs:4"}, "properties": {"repobilityId": "1f92d0b7850c39ac", "scanner": "scanner-primary", "fingerprint": "bf5979a86c7159a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07a8a44aaf46f7e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/social-ws.protocol.spec.ts:7"}, "properties": {"repobilityId": "54f565b9fc55c27a", "scanner": "scanner-primary", "fingerprint": "07a8a44aaf46f7e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a0bec8eb5a53201", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/social-ws.protocol.spec.ts:199"}, "properties": {"repobilityId": "0daf763c287da7d4", "scanner": "scanner-primary", "fingerprint": "2a0bec8eb5a53201", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f644c280e8cd8b30", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/shell-leftover.desktop.spec.ts:7"}, "properties": {"repobilityId": "5d278d62e5bb4a17", "scanner": "scanner-primary", "fingerprint": "f644c280e8cd8b30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8530d56fac102e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/smoke.android.spec.ts:5"}, "properties": {"repobilityId": "350e3cdc39be2108", "scanner": "scanner-primary", "fingerprint": "b8530d56fac102e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c497d5021592702", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/watch-party.host-relay.desktop.spec.ts:4"}, "properties": {"repobilityId": "7a3484882bd05792", "scanner": "scanner-primary", "fingerprint": "2c497d5021592702", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdd14bc0c8ac9270", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.sync.desktop.spec.ts:20"}, "properties": {"repobilityId": "c059f31d35bb78b6", "scanner": "scanner-primary", "fingerprint": "bdd14bc0c8ac9270", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e5c6d9edbfdd1b36", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/social.web.spec.ts:3"}, "properties": {"repobilityId": "38ca46cf7328dcf1", "scanner": "scanner-primary", "fingerprint": "e5c6d9edbfdd1b36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5867f3a21c334bf8", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/suites/watch-party.protocol.spec.ts:4"}, "properties": {"repobilityId": "a1d989712d794cf5", "scanner": "scanner-primary", "fingerprint": "5867f3a21c334bf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6919b752a54298c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/suites/watch-party.guest-controls.web.spec.ts:14"}, "properties": {"repobilityId": "549e425c92e747eb", "scanner": "scanner-primary", "fingerprint": "a6919b752a54298c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d1969671819f300", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/fixtures/desktop.ts:15"}, "properties": {"repobilityId": "4a444b2ac7294332", "scanner": "scanner-primary", "fingerprint": "1d1969671819f300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3f86863645c8466", "level": "warning", "message": {"text": "Frontend route `/player-spike` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "cb50abfdc09a6ddb", "scanner": "scanner-primary", "fingerprint": "f3f86863645c8466", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-91dc9afc5dfd2ed7", "level": "warning", "message": {"text": "Frontend route `/*` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "ae3ecf238e8d4408", "scanner": "scanner-primary", "fingerprint": "91dc9afc5dfd2ed7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-12d49b79559640d2", "level": "warning", "message": {"text": "Frontend route `invite/:code` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "973a72b40b46808d", "scanner": "scanner-primary", "fingerprint": "12d49b79559640d2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f1cd983d79bab027", "level": "warning", "message": {"text": "Frontend route `link-stremio` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "6e3b481e5c65d631", "scanner": "scanner-primary", "fingerprint": "f1cd983d79bab027", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-260451bf15c22b35", "level": "warning", "message": {"text": "Frontend route `discover` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "42262758378a3d9e", "scanner": "scanner-primary", "fingerprint": "260451bf15c22b35", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4c123ea9c3883152", "level": "warning", "message": {"text": "Frontend route `discover/:transportUrl/:type/:catalogId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "abec42bb763a3e15", "scanner": "scanner-primary", "fingerprint": "4c123ea9c3883152", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e7d483e0c417cffc", "level": "warning", "message": {"text": "Frontend route `library` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "70db2d6c4a16749a", "scanner": "scanner-primary", "fingerprint": "e7d483e0c417cffc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9181821e240d5626", "level": "warning", "message": {"text": "Frontend route `detail/:type/:id` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "2d1eb2f79b1bd5c8", "scanner": "scanner-primary", "fingerprint": "9181821e240d5626", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1c062750fdf2d771", "level": "warning", "message": {"text": "Frontend route `vidking/:type/:tmdbId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "5d51b9f5ee7dbab5", "scanner": "scanner-primary", "fingerprint": "1c062750fdf2d771", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-654f4cb43d36edfa", "level": "warning", "message": {"text": "Frontend route `vidking/:type/:tmdbId/:seasonId/:episodeId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "c09ed0f5b1ad8c2d", "scanner": "scanner-primary", "fingerprint": "654f4cb43d36edfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-728dd394abd18aeb", "level": "warning", "message": {"text": "Frontend route `player` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "fb77c8e584f7f7e1", "scanner": "scanner-primary", "fingerprint": "728dd394abd18aeb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1fc758fcc516a07b", "level": "warning", "message": {"text": "Frontend route `search` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "c6613ad751857cea", "scanner": "scanner-primary", "fingerprint": "1fc758fcc516a07b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1f491b4276f67fc2", "level": "warning", "message": {"text": "Frontend route `addons` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "c5e3026199c91e01", "scanner": "scanner-primary", "fingerprint": "1f491b4276f67fc2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b1c4b070d69d8f6d", "level": "warning", "message": {"text": "Frontend route `accounts` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "767c0252f1cf552f", "scanner": "scanner-primary", "fingerprint": "b1c4b070d69d8f6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1ed3cdbe46ac0e7d", "level": "warning", "message": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "8ea1a97124601cb3", "scanner": "scanner-primary", "fingerprint": "1ed3cdbe46ac0e7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-df9f7d99f89b34c9", "level": "warning", "message": {"text": "Frontend route `profile/:userId` has no Link/navigate to it \u2014 apps/web-blissful/src/App.tsx"}, "properties": {"repobilityId": "25d33563d510da49", "scanner": "scanner-primary", "fingerprint": "df9f7d99f89b34c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-961775eb597c2352", "level": "error", "message": {"text": "Dangling fetch: POST /storage/watch-party (scripts/e2e/watchparty.mjs:397)"}, "properties": {"repobilityId": "849d6460ce8590ca", "scanner": "scanner-primary", "fingerprint": "961775eb597c2352", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13dd8e59426afe28", "level": "error", "message": {"text": "Dangling fetch: GET https://torrentio.strem.fun/stream/movie/${imdbId}.json (scripts/e2e/watchparty-v2.mjs:385)"}, "properties": {"repobilityId": "1fdcf53e8442f0ff", "scanner": "scanner-primary", "fingerprint": "13dd8e59426afe28", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7e7164fe5fc64fe7", "level": "error", "message": {"text": "Dangling fetch: GET https://api.themoviedb.org/3/find/${imdbId}?api_key=${encodeURIComponent(key)}&external_source=imdb_id (apps/android-blissful/src/lib/tmdbArt.ts:79)"}, "properties": {"repobilityId": "fb6ed4a3935571fb", "scanner": "scanner-primary", "fingerprint": "7e7164fe5fc64fe7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90c8f37fe80804bb", "level": "error", "message": {"text": "Dangling fetch: GET /rd-by-hash?infoHash=${encodeURIComponent(ih)} (apps/web-blissful/src/components/BananasPicker.tsx:229)"}, "properties": {"repobilityId": "21cb451c06ac983b", "scanner": "scanner-primary", "fingerprint": "90c8f37fe80804bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-26dc0972ce73dc79", "level": "error", "message": {"text": "Dangling fetch: GET /tmdb-season-info?tmdbId=${props.tmdbId}&season=${season} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1431)"}, "properties": {"repobilityId": "a9e3a208f3947757", "scanner": "scanner-primary", "fingerprint": "26dc0972ce73dc79", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8ac8c95a909bad7", "level": "error", "message": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(props.url)} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1612)"}, "properties": {"repobilityId": "03ccd9de68c21e1a", "scanner": "scanner-primary", "fingerprint": "c8ac8c95a909bad7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6bf4f2f18d1ddddb", "level": "error", "message": {"text": "Dangling fetch: GET /skip-times?${params.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:1686)"}, "properties": {"repobilityId": "f7588f9051aaefb8", "scanner": "scanner-primary", "fingerprint": "6bf4f2f18d1ddddb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-258169adaf74d1c1", "level": "error", "message": {"text": "Dangling fetch: GET /opensubs?${osQs.toString()} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2004)"}, "properties": {"repobilityId": "815594e252e284e7", "scanner": "scanner-primary", "fingerprint": "258169adaf74d1c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b4e7f4c038abf17", "level": "error", "message": {"text": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(probeTarget)} (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:2113)"}, "properties": {"repobilityId": "b87278d6ef133125", "scanner": "scanner-primary", "fingerprint": "2b4e7f4c038abf17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a3532b24b7804129", "level": "error", "message": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/components/BlissfulPlayer/index.tsx:3076)"}, "properties": {"repobilityId": "b804c344bdee1d3c", "scanner": "scanner-primary", "fingerprint": "a3532b24b7804129", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0b0d08544a4dd197", "level": "error", "message": {"text": "Dangling fetch: GET /imdb-rating?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/useImdbRating.ts:36)"}, "properties": {"repobilityId": "8bcbaba5177d3fb9", "scanner": "scanner-primary", "fingerprint": "0b0d08544a4dd197", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12d9eca8b7090a18", "level": "error", "message": {"text": "Dangling fetch: GET /stremio/login-fb-get-acc/${state} (apps/web-blissful/src/lib/stremioFacebook.ts:50)"}, "properties": {"repobilityId": "d8d1e4be1ba23fa9", "scanner": "scanner-primary", "fingerprint": "12d9eca8b7090a18", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7c79c43a71edbec2", "level": "error", "message": {"text": "Dangling fetch: GET /rd-by-hash?${qs.toString()} (apps/web-blissful/src/lib/watchPartySource.ts:169)"}, "properties": {"repobilityId": "19192807234e5d3b", "scanner": "scanner-primary", "fingerprint": "7c79c43a71edbec2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3b05a0acb8c1a776", "level": "error", "message": {"text": "Dangling fetch: GET https://api.ani.zip/mappings?${param}=${encodeURIComponent(value)} (apps/web-blissful/src/lib/aniskip.ts:69)"}, "properties": {"repobilityId": "484bffa7a23ad9b3", "scanner": "scanner-primary", "fingerprint": "3b05a0acb8c1a776", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-68c39eec765020f6", "level": "error", "message": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(id)} (apps/web-blissful/src/lib/fallbackReleases.ts:111)"}, "properties": {"repobilityId": "6617db5da4afaea1", "scanner": "scanner-primary", "fingerprint": "68c39eec765020f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e8f04123fe6eba5", "level": "error", "message": {"text": "Dangling fetch: GET /addon-proxy?url=${encodeURIComponent(url)} (apps/web-blissful/src/lib/tmdb.ts:44)"}, "properties": {"repobilityId": "c5cbade32a73bfbb", "scanner": "scanner-primary", "fingerprint": "3e8f04123fe6eba5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a0d88f1244ccb82c", "level": "error", "message": {"text": "Dangling fetch: GET /tmdb-find?imdbId=${encodeURIComponent(imdbId)} (apps/web-blissful/src/lib/tmdb.ts:58)"}, "properties": {"repobilityId": "810d756f5284b3f2", "scanner": "scanner-primary", "fingerprint": "a0d88f1244ccb82c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d2f31e2b0987e4c", "level": "error", "message": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/lib/playerEnv.ts:115)"}, "properties": {"repobilityId": "63a8ece53c1fb849", "scanner": "scanner-primary", "fingerprint": "9d2f31e2b0987e4c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-62128c07363351b5", "level": "error", "message": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPage.tsx:271)"}, "properties": {"repobilityId": "c872c3773c26f26a", "scanner": "scanner-primary", "fingerprint": "62128c07363351b5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-27004e61f712c9d9", "level": "error", "message": {"text": "Dangling fetch: GET /tmdb-season-info?tmdbId=${tid}&season=${n} (apps/web-blissful/src/pages/DetailPage.tsx:396)"}, "properties": {"repobilityId": "a4d94f4098028d4b", "scanner": "scanner-primary", "fingerprint": "27004e61f712c9d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-53c9af8a423cf598", "level": "error", "message": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(s.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:92)"}, "properties": {"repobilityId": "01331b9f718071d7", "scanner": "scanner-primary", "fingerprint": "53c9af8a423cf598", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7543ce5d8ee7dcd", "level": "error", "message": {"text": "Dangling fetch: POST /player-log (apps/web-blissful/src/pages/PlayerPageWeb.tsx:284)"}, "properties": {"repobilityId": "9b87c34c6240a84f", "scanner": "scanner-primary", "fingerprint": "f7543ce5d8ee7dcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44f413609a866f05", "level": "error", "message": {"text": "Dangling fetch: GET /tmdb-episode-rating?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:656)"}, "properties": {"repobilityId": "ff4cf2761bc5fe94", "scanner": "scanner-primary", "fingerprint": "44f413609a866f05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa2fd14a8ae994dc", "level": "error", "message": {"text": "Dangling fetch: GET /videasy-sources?${params.toString()} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:774)"}, "properties": {"repobilityId": "bfc4d2e7260cc4d1", "scanner": "scanner-primary", "fingerprint": "fa2fd14a8ae994dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-795b7d43f2a213bf", "level": "error", "message": {"text": "Dangling fetch: GET /transcode-audio?url=${encodeURIComponent(transcodeAudioSrc)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:918)"}, "properties": {"repobilityId": "9f01af943e443855", "scanner": "scanner-primary", "fingerprint": "795b7d43f2a213bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b282d1714ff7bc7", "level": "error", "message": {"text": "Dangling fetch: GET /rd-fallback?type=${type}&id=${encodeURIComponent(streamId)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1032)"}, "properties": {"repobilityId": "112a882e1c3f7402", "scanner": "scanner-primary", "fingerprint": "7b282d1714ff7bc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c5bfff1fa4c83798", "level": "error", "message": {"text": "Dangling fetch: GET /probe-streams?url=${encodeURIComponent(c.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1175)"}, "properties": {"repobilityId": "71ee85a9b0db2c59", "scanner": "scanner-primary", "fingerprint": "c5bfff1fa4c83798", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb082300c435745b", "level": "error", "message": {"text": "Dangling fetch: GET /resolve-url?url=${encodeURIComponent(cand.stream.url)} (apps/web-blissful/src/pages/PlayerPageWeb.tsx:1207)"}, "properties": {"repobilityId": "9bdd482a568bb136", "scanner": "scanner-primary", "fingerprint": "eb082300c435745b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-24127e99f5c184fb", "level": "note", "message": {"text": "Unused endpoint: GET /state"}, "properties": {"repobilityId": "8e8794ea139e7cf7", "scanner": "scanner-primary", "fingerprint": "24127e99f5c184fb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-512ccb0fd0b230ba", "level": "note", "message": {"text": "Unused endpoint: GET /settings"}, "properties": {"repobilityId": "49e52886ae260e0a", "scanner": "scanner-primary", "fingerprint": "512ccb0fd0b230ba", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed0fe929c38b9a74", "level": "note", "message": {"text": "Unused endpoint: GET /home"}, "properties": {"repobilityId": "f66c611ded365f4b", "scanner": "scanner-primary", "fingerprint": "ed0fe929c38b9a74", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3675637c06b42c32", "level": "note", "message": {"text": "Unused endpoint: POST /state"}, "properties": {"repobilityId": "83e0af71fd1a7795", "scanner": "scanner-primary", "fingerprint": "3675637c06b42c32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9fbbfd361e91f1e", "level": "note", "message": {"text": "Unused endpoint: POST /settings"}, "properties": {"repobilityId": "009b1e6c86903911", "scanner": "scanner-primary", "fingerprint": "d9fbbfd361e91f1e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-42cc70b3229e94fa", "level": "note", "message": {"text": "Unused endpoint: POST /home"}, "properties": {"repobilityId": "994297718a981291", "scanner": "scanner-primary", "fingerprint": "42cc70b3229e94fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2c09f28f5d9b5bab", "level": "note", "message": {"text": "Unused endpoint: POST /watch-party"}, "properties": {"repobilityId": "76e8a181229839b2", "scanner": "scanner-primary", "fingerprint": "2c09f28f5d9b5bab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ceae2102a68cc6c0", "level": "note", "message": {"text": "Unused endpoint: GET /watch-party/:code"}, "properties": {"repobilityId": "00b747f4758d78ed", "scanner": "scanner-primary", "fingerprint": "ceae2102a68cc6c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c48f330b5c0305e", "level": "note", "message": {"text": "Unused endpoint: POST /watch-party/:code/verify"}, "properties": {"repobilityId": "8d656c66a983739c", "scanner": "scanner-primary", "fingerprint": "8c48f330b5c0305e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2cba748387e62e47", "level": "note", "message": {"text": "Unused endpoint: POST /library/import"}, "properties": {"repobilityId": "77ca240f08999e3f", "scanner": "scanner-primary", "fingerprint": "2cba748387e62e47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-38fe93bb5678675e", "level": "note", "message": {"text": "Unused endpoint: PUT /library/:id"}, "properties": {"repobilityId": "b179486bd3c9991b", "scanner": "scanner-primary", "fingerprint": "38fe93bb5678675e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bbfed2754f2ab0b9", "level": "note", "message": {"text": "Unused endpoint: DELETE /library/:id"}, "properties": {"repobilityId": "ca994b8859e22f91", "scanner": "scanner-primary", "fingerprint": "bbfed2754f2ab0b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-292f5f87961dc0e5", "level": "note", "message": {"text": "Unused endpoint: POST /stremio/link-token"}, "properties": {"repobilityId": "4b3a0a422a6317d6", "scanner": "scanner-primary", "fingerprint": "292f5f87961dc0e5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e48feb82e3c33c9e", "level": "note", "message": {"text": "Unused endpoint: POST /stremio/unlink"}, "properties": {"repobilityId": "03f1438d63948721", "scanner": "scanner-primary", "fingerprint": "e48feb82e3c33c9e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b63d82e03cc37d34", "level": "note", "message": {"text": "Unused endpoint: GET /stremio/status"}, "properties": {"repobilityId": "f0939cf1e0a59784", "scanner": "scanner-primary", "fingerprint": "b63d82e03cc37d34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b6c6fdf29bc59762", "level": "note", "message": {"text": "Unused endpoint: POST /stremio/sync"}, "properties": {"repobilityId": "120bbedac38b8522", "scanner": "scanner-primary", "fingerprint": "b6c6fdf29bc59762", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2fb9fecae0eb896", "level": "note", "message": {"text": "Unused endpoint: POST /stremio/sync-item"}, "properties": {"repobilityId": "9334e4c0b72bca6d", "scanner": "scanner-primary", "fingerprint": "d2fb9fecae0eb896", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-23e3d9e36a39d0e6", "level": "note", "message": {"text": "Unused endpoint: GET /dms/:userId"}, "properties": {"repobilityId": "931ebbd92e9882c0", "scanner": "scanner-primary", "fingerprint": "23e3d9e36a39d0e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15b80dd3ce48c181", "level": "note", "message": {"text": "Unused endpoint: POST /dms/:userId"}, "properties": {"repobilityId": "c8340fda6ce1578b", "scanner": "scanner-primary", "fingerprint": "15b80dd3ce48c181", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74fdc9e8b588c8b1", "level": "note", "message": {"text": "Unused endpoint: GET /dms/search"}, "properties": {"repobilityId": "c8678a4c83be6421", "scanner": "scanner-primary", "fingerprint": "74fdc9e8b588c8b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ae08a6c1ef7306ef", "level": "note", "message": {"text": "Unused endpoint: GET /users/search"}, "properties": {"repobilityId": "b5f6497573d89de3", "scanner": "scanner-primary", "fingerprint": "ae08a6c1ef7306ef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cd1c70fddde9384", "level": "note", "message": {"text": "Unused endpoint: GET /friends"}, "properties": {"repobilityId": "ff2561e222dd25c0", "scanner": "scanner-primary", "fingerprint": "0cd1c70fddde9384", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1452305cdc80d5d8", "level": "note", "message": {"text": "Unused endpoint: POST /friends/request"}, "properties": {"repobilityId": "048ca0b2889acf5b", "scanner": "scanner-primary", "fingerprint": "1452305cdc80d5d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-29c1b9894df24d10", "level": "note", "message": {"text": "Unused endpoint: POST /friends/:id/accept"}, "properties": {"repobilityId": "3e47fd28a8f41383", "scanner": "scanner-primary", "fingerprint": "29c1b9894df24d10", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-66edafd121508ecf", "level": "note", "message": {"text": "Unused endpoint: PATCH /friends/:id/nickname"}, "properties": {"repobilityId": "87513033c9de45e4", "scanner": "scanner-primary", "fingerprint": "66edafd121508ecf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d630737ab577e68", "level": "note", "message": {"text": "Unused endpoint: DELETE /friends/:id"}, "properties": {"repobilityId": "fd5bd089455fa4bb", "scanner": "scanner-primary", "fingerprint": "1d630737ab577e68", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-468e11ebe1cba5d5", "level": "note", "message": {"text": "Unused endpoint: USE /addon-proxy"}, "properties": {"repobilityId": "83d952c6d855e496", "scanner": "scanner-primary", "fingerprint": "468e11ebe1cba5d5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}