{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b97de1a91db2cdbf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:138", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:138"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78bc1f2f9bb662ec", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/install/page.tsx:273", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/install/page.tsx:273"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31ed3273b0184ffb", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/QueueCard.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/QueueCard.tsx:111"}, "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-133d8beec3565daf", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/RotationConfigurator.tsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/RotationConfigurator.tsx:224"}, "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-49f7ae6172fc3eed", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SportsBoard.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SportsBoard.tsx:167"}, "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-ba75e423e9a90326", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/LinkAccounts.tsx:435", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/LinkAccounts.tsx:435"}, "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-0c119c70f64e71f2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/AchievementUnlockToast.tsx:178", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AchievementUnlockToast.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-a3d419f435d5637e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/LiveNowRadar.tsx:137", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/LiveNowRadar.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-0d43982a8af993f8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/HangarView.tsx:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/HangarView.tsx:80"}, "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-a13e5f58afabbcf4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SiteSearch.tsx:150", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SiteSearch.tsx:150"}, "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-840998a59ac966de", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/PatronWall.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/PatronWall.tsx:167"}, "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-aaad908009b7749d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PlayClient.tsx:281", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PlayClient.tsx:281"}, "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-f60744482a6f4d3b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSettings.tsx:187", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSettings.tsx:187"}, "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-a2c4f7a7c89d8dcd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundEventsHub.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundEventsHub.tsx:163"}, "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-7967268b5caca44f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundHistory.tsx:212", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundHistory.tsx:212"}, "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-33a63ef6a7f9f650", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AchievementsWall.tsx:508", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AchievementsWall.tsx:508"}, "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-359c9143c5a65ce0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCommunityDecks.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCommunityDecks.tsx:128"}, "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-f2109fdebee6b1c1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckSelect.tsx:242", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckSelect.tsx:242"}, "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-9f0d674c9ae4e5ae", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/GameDropdown.tsx:155", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/GameDropdown.tsx:155"}, "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-b4e2790610358ac4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckStudio.tsx:547", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckStudio.tsx:547"}, "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-e5c26fed708492ef", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCrafting.tsx:213", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCrafting.tsx:213"}, "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-e03ceb578a4583fc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BetPlacement.tsx:429", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BetPlacement.tsx:429"}, "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-1846b5803db84e65", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSpire.tsx:467", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSpire.tsx:467"}, "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-3edef32de799a99a", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/ReplayView.tsx:545", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/ReplayView.tsx:545"}, "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-ad88f580d0921011", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundArenaDraft.tsx:173", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundArenaDraft.tsx:173"}, "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-453a5aaad1c7259c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundReplays.tsx:243", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundReplays.tsx:243"}, "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-90d4e1a6bd57f672", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PwaPlayPicker.tsx:129", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PwaPlayPicker.tsx:129"}, "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-4875e2ed35a93928", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AetherHud.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AetherHud.tsx:163"}, "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-d405cf864748a6ac", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/spire-map/SpireHud.tsx:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/spire-map/SpireHud.tsx:33"}, "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-39211ca61a923bff", "name": "Icon-only button without accessible name \u2014 src/components/play/spire-map/BottomSheet.tsx:91", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/play/spire-map/BottomSheet.tsx:91"}, "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-3d142ccee4eb7ed3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminTickets.tsx:347", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminTickets.tsx:347"}, "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-5e6d1fae8197adb6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/DeathCountManager.tsx:323", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/DeathCountManager.tsx:323"}, "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-7388be0b9c8f3655", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/ScratchOffManager.tsx:287", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/ScratchOffManager.tsx:287"}, "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-cceef697ca058a16", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/admin/ScratchOffManager.tsx:57", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/admin/ScratchOffManager.tsx:57"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08ad185fecb5a7f0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/GamesEditor.tsx:289", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/GamesEditor.tsx:289"}, "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-712b6640814244db", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/ShareProfileCard.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/ShareProfileCard.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-cb8e9b7d1c6f432c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/PublicProfileCard.tsx:317", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/PublicProfileCard.tsx:317"}, "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-a361ef9336a05c06", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/CheckinCardCustomizer.tsx:511", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/CheckinCardCustomizer.tsx:511"}, "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-c32eb3780fef7365", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/StreamCheckinCustomizer.tsx:464", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/StreamCheckinCustomizer.tsx:464"}, "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-238aff5a069343a4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendRequests.tsx:76", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendRequests.tsx:76"}, "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-be91a7f408715418", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendsList.tsx:225", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendsList.tsx:225"}, "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-05551ca9b2dfd404", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendSearchAdd.tsx:93", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendSearchAdd.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-daa391cc1f6ff298", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LatestTikTokCard.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LatestTikTokCard.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-62f49db7def28e51", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/HomeScheduleStrip.tsx:244", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/HomeScheduleStrip.tsx:244"}, "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-d6fb9ad9f00f887f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/BattlePassCard.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/BattlePassCard.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-93d15878a2320ca9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LiveSnapshot.tsx:143", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LiveSnapshot.tsx:143"}, "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-a53034c21668db5c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/DiscordChat.tsx:1259", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/DiscordChat.tsx:1259"}, "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-9bb2d8ae2b1e0989", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/StarboardWall.tsx:135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/StarboardWall.tsx:135"}, "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-aa405e7d7cb209da", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/WeeklyChallenge.tsx:267", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/WeeklyChallenge.tsx:267"}, "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-65898bd30d6d0088", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/PatronOfTheMonth.tsx:142", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/PatronOfTheMonth.tsx:142"}, "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-bc3ba9da459fd5c8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityVoice.tsx:153", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityVoice.tsx:153"}, "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-b54aa7e4093b04b6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityActivityTicker.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityActivityTicker.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-990453351075f81c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityLiveStreamers.tsx:191", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityLiveStreamers.tsx:191"}, "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-57b9cbae07ef158c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dev/SocialPreviewHarness.tsx:274", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dev/SocialPreviewHarness.tsx:274"}, "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-713979b6cf29bc8c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/schedule/VoteCastPanel.tsx:185", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/schedule/VoteCastPanel.tsx:185"}, "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-39470211717ccdcd", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 public/dock/crowdplay/main.js:458", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 public/dock/crowdplay/main.js:458"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65af28a5d419bded", "name": "Icon-only button without accessible name \u2014 public/partyup/dock/dock.js:152", "shortDescription": {"text": "Icon-only button without accessible name \u2014 public/partyup/dock/dock.js:152"}, "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-35d4d9cd6887b8cb", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/bb-mobile-shot.mjs:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/bb-mobile-shot.mjs:53"}, "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-fb2e5f5d795c2b4f", "name": "Insecure pattern 'node_child_process' in scripts/audio-pipeline.mjs:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/audio-pipeline.mjs:28"}, "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-48f0aa29dc48dbf5", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:138", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:138"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-813ea81dc58e9d53", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/install/page.tsx:273", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/install/page.tsx:273"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf9640f1fc43b7fb", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/admin/ScratchOffManager.tsx:57", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/admin/ScratchOffManager.tsx:57"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f368e6695f44e793", "name": "Insecure pattern 'cors_wildcard' in functions/api/changelog.js:104", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/changelog.js:104"}, "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-282b2f67de9090dc", "name": "Insecure pattern 'cors_wildcard' in functions/api/feed.js:14", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/feed.js:14"}, "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-5f7ed3e76c4ac634", "name": "Insecure pattern 'cors_wildcard' in functions/api/twitch/login.js:42", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/twitch/login.js:42"}, "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-2949c5184e372b0b", "name": "Insecure pattern 'cors_wildcard' in functions/api/twitch/live.js:122", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/twitch/live.js:122"}, "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-ebaf2c88cc38f608", "name": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/backgrounds.js:33", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/backgrounds.js:33"}, "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-d118c89b957aca87", "name": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/user-background.js:81", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/user-background.js:81"}, "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-7d95dcea957ab24e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-icons.js:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-icons.js:92"}, "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-256658b6282ac5f5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-bridge.js:169", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-bridge.js:169"}, "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-cf230a3a1fd1cfe2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/index.html:328", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/index.html:328"}, "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-f6c756a0b6bd779b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/chat/index.html:1420", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/chat/index.html:1420"}, "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-9e82d0320bb9ae89", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/chat/index.html:1316", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/chat/index.html:1316"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-140068726c4ee6db", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/vertical/index.html:756", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/vertical/index.html:756"}, "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-7a5c567eb06cc00b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/alerts/index.html:543", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/alerts/index.html:543"}, "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-d7d9d71f421851a8", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/alerts/index.html:537", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/alerts/index.html:537"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-658e9576bccc3ed8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/ticker/index.html:322", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/ticker/index.html:322"}, "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-f121c4c0fb737a6e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/shoutout/index.html:392", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/shoutout/index.html:392"}, "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-673246eb489c5909", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/customize/customize.js:525", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/customize/customize.js:525"}, "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-cce212c23b7e8da5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/support/index.html:100", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/support/index.html:100"}, "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-70c1b69d3975dae8", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/overlay/overlay.js:376", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/overlay/overlay.js:376"}, "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-b703f91a39094b88", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/customize/customize.js:275", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/customize/customize.js:275"}, "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-c75b013d020a3eb6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/dock/dock.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/dock/dock.js:82"}, "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-9f3b7cfd873c7533", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamfusion-chat/index.html:1076", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamfusion-chat/index.html:1076"}, "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-fe3e1171a5f3af81", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamkey/index.html:279", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamkey/index.html:279"}, "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-0ef82fab036614e2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/crowdplay/main.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/crowdplay/main.js:115"}, "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-2528abe4618b22a7", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/overlay.js:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/overlay.js:59"}, "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-dfe3cc1af0f1d42b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/pc-card.js:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/pc-card.js:43"}, "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-9527b17e58c39d96", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/customize/customize.js:264", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/customize/customize.js:264"}, "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-1dbc077005ff1e3f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/card/card-editor.js:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/card/card-editor.js:88"}, "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-0286b0aa9fd96b93", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/leaderboard/index.html:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/leaderboard/index.html:97"}, "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-4012adbf47c87658", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/twitch-panel/panel.js:345", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/twitch-panel/panel.js:345"}, "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-c7e5466bce49cc2a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/overlay/overlay.js:154", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/overlay/overlay.js:154"}, "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-07c6acd26f24a5cd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/live/index.html:128", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/live/index.html:128"}, "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-e20de2ec1783e0fe", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/customize/customize.js:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/customize/customize.js:87"}, "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-cb0e7a8cdfc4c7e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/dock/dock.js:142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/dock/dock.js:142"}, "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-0a7b2e2e88e04ce1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/banner.html:389", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/banner.html:389"}, "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-540a7582a6fe9f57", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/overlay.html:945", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/overlay.html:945"}, "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-adf2c349a2d271af", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/index.html:2887", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/index.html:2887"}, "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-59ebf0c55bbf1158", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/sf-demo/index.html:9937", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf-demo/index.html:9937"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee7b0163358d062f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-minecraft/index.html:286", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-minecraft/index.html:286"}, "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-ed7de430ea600f41", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/loadout-activity/index.html:333", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/loadout-activity/index.html:333"}, "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-ead394eaa24082e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/scratch-hit/index.html:248", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/scratch-hit/index.html:248"}, "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-753059d42c57f027", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow/index.html:449", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow/index.html:449"}, "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-bcaa8e1bdbd1231e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-hangar/index.html:81", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-hangar/index.html:81"}, "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-505c8ef8169d1110", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/stream-checkin/index.html:288", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/stream-checkin/index.html:288"}, "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-16bd53e85e67102d", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/watchtower/index.html:377", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/watchtower/index.html:377"}, "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-d769a21b16693d8b", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-gwyf/index.html:296", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-gwyf/index.html:296"}, "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-76b92a2a459df444", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/event-feed/index.html:206", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/event-feed/index.html:206"}, "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-c85eaca4be137b5e", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/death-counter/index.html:498", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/death-counter/index.html:498"}, "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-de3ea73f924501ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-drop/index.html:183", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-drop/index.html:183"}, "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-a26ca3fa6744b1a5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/pvp-battle/index.html:585", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/pvp-battle/index.html:585"}, "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-1e70ac3e8514e241", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/workshop/workshop.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/workshop/workshop.js:53"}, "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-71ca8d8177345d86", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/workshop/workshop.js:59", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/workshop/workshop.js:59"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-79a7dd7bfa8db0ed", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/overlay/overlay.js:461", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/overlay/overlay.js:461"}, "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-01909f2ad687601f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/customize/customize.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/customize/customize.js:107"}, "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-1d7a2365fbb50701", "name": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/customize/customize.js:232", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/customize/customize.js:232"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ccdbe50c0bfa4d77", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/dock/dock.js:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/dock/dock.js:75"}, "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-d54791edc20e1268", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/test-listener.js:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/test-listener.js:156"}, "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-28c4a04bd807da0c", "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-1989d273193ed852", "name": "Very large file: src/components/play/PlayBoltbound.tsx (1595 lines)", "shortDescription": {"text": "Very large file: src/components/play/PlayBoltbound.tsx (1595 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-2285203eee80d1d9", "name": "Very large file: src/components/play/PackOpener.tsx (1582 lines)", "shortDescription": {"text": "Very large file: src/components/play/PackOpener.tsx (1582 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-de1b8554db9ae6c2", "name": "Very large file: src/components/play/BoltboundMatch.tsx (3609 lines)", "shortDescription": {"text": "Very large file: src/components/play/BoltboundMatch.tsx (3609 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-7c4f18355bf14aa9", "name": "Very large file: src/components/community/DiscordChat.tsx (2555 lines)", "shortDescription": {"text": "Very large file: src/components/community/DiscordChat.tsx (2555 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-a0059ddc410d636f", "name": "Very large file: src/components/icons/AquiloIcons.tsx (1297 lines)", "shortDescription": {"text": "Very large file: src/components/icons/AquiloIcons.tsx (1297 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-a29214c66868e2f6", "name": "Very large file: src/lib/boltbound-catalogue.ts (41568 lines)", "shortDescription": {"text": "Very large file: src/lib/boltbound-catalogue.ts (41568 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-47093fcbe1b83cc4", "name": "Very large file: public/sf/customize/customize.js (1324 lines)", "shortDescription": {"text": "Very large file: public/sf/customize/customize.js (1324 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-2500445872f76f9d", "name": "Very large file: public/scratchdrop/customize/customize.js (1132 lines)", "shortDescription": {"text": "Very large file: public/scratchdrop/customize/customize.js (1132 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-26617e7b8e01a46f", "name": "Very large file: public/twitch-panel/panel.js (6658 lines)", "shortDescription": {"text": "Very large file: public/twitch-panel/panel.js (6658 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": "16 test file(s) for 636 source file(s) (ratio 0.03). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "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 118 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 225 placeholder/mock markers across 89 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-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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d5973019189bcd6", "name": "Commented-code block (13 lines) in scripts/sd-selftest.mjs:4", "shortDescription": {"text": "Commented-code block (13 lines) in scripts/sd-selftest.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-c8ff71a2852ba8d1", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arena-bg.py:96", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arena-bg.py:96"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ad0bcab65500a0b", "name": "Commented-code block (12 lines) in scripts/pu-selftest.mjs:7", "shortDescription": {"text": "Commented-code block (12 lines) in scripts/pu-selftest.mjs: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-74135836296b90fb", "name": "Commented-code block (12 lines) in scripts/pd-selftest.mjs:7", "shortDescription": {"text": "Commented-code block (12 lines) in scripts/pd-selftest.mjs: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-4c47ac49026a902b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/audio-pipeline.mjs:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/audio-pipeline.mjs:122"}, "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-ab5ebf7b44a8ade6", "name": "Commented-code block (5 lines) in scripts/gen-checkin-backgrounds.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-checkin-backgrounds.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-8e8d1bd6fd1f1334", "name": "Commented-code block (7 lines) in scripts/bb-hover-selftest.mjs:9", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/bb-hover-selftest.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-0d2e41982be335e3", "name": "Commented-code block (9 lines) in scripts/bb-procedural-art-selftest.mjs:4", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/bb-procedural-art-selftest.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-8c34fc87559f09e5", "name": "Commented-code block (7 lines) in scripts/tool-preview-shots.mjs:3", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/tool-preview-shots.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-25c9bc7db94fc6e8", "name": "Commented-code block (6 lines) in scripts/seed-cvn-games.mjs:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/seed-cvn-games.mjs:2"}, "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-c977bd56b3554d58", "name": "Commented-code block (9 lines) in scripts/gen-pwa-icons.mjs:6", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/gen-pwa-icons.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-e53fc5596e3c88d1", "name": "Commented-code block (5 lines) in scripts/gen-checkin-default-card.mjs:7", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/gen-checkin-default-card.mjs: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-3211bc2ba7370a69", "name": "Commented-code block (11 lines) in scripts/gen-pwa-splash.mjs:7", "shortDescription": {"text": "Commented-code block (11 lines) in scripts/gen-pwa-splash.mjs: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-ca93a5ed7c75e8cf", "name": "Commented-code block (6 lines) in scripts/render-bb-pack.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/render-bb-pack.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-4480df23f9a779e6", "name": "Commented-code block (11 lines) in scripts/gen-clash-topdown-terrain.mjs:9", "shortDescription": {"text": "Commented-code block (11 lines) in scripts/gen-clash-topdown-terrain.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-5fc525e3afdb8fbb", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arenas.py:116", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arenas.py:116"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3f529d364516925", "name": "Commented-code block (15 lines) in scripts/pc-selftest.mjs:4", "shortDescription": {"text": "Commented-code block (15 lines) in scripts/pc-selftest.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-90605132b2b4c673", "name": "Commented-code block (6 lines) in scripts/bb-fullscreen-touch-selftest.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/bb-fullscreen-touch-selftest.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-8b67506beaa0e8af", "name": "Commented-code block (6 lines) in scripts/sprites/generate.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/sprites/generate.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-fdbe8c68718d6401", "name": "Commented-code block (6 lines) in src/app/layout.tsx:42", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/layout.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-3b5766a82c2edee1", "name": "Commented-code block (13 lines) in src/app/sitemap.ts:4", "shortDescription": {"text": "Commented-code block (13 lines) in src/app/sitemap.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-29057784d4b7fd7f", "name": "Commented-code block (6 lines) in src/app/community/page.tsx:27", "shortDescription": {"text": "Commented-code block (6 lines) in src/app/community/page.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-5c6764dcf1f5d0b2", "name": "Commented-code block (10 lines) in src/app/p/page.tsx:8", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/p/page.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-fd5cfdc3ce594601", "name": "Commented-code block (9 lines) in src/components/ServiceWorkerRegister.tsx:130", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/ServiceWorkerRegister.tsx:130"}, "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-34e0db5f8026cd45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EditMode.tsx:149", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EditMode.tsx:149"}, "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-5a368d4f6cf9523d", "name": "Commented-code block (8 lines) in src/components/AdminPanel.tsx:41", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/AdminPanel.tsx:41"}, "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-f22f1a2b87649b92", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/AdminPanel.tsx:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/AdminPanel.tsx:144"}, "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-0789020115ce70d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PushSubscribeButton.tsx:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PushSubscribeButton.tsx: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-eba0045d876adf17", "name": "Commented-code block (7 lines) in src/components/RotationConfigurator.tsx:88", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/RotationConfigurator.tsx:88"}, "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-6167c37b190f39e1", "name": "Commented-code block (6 lines) in src/components/LinkAccounts.tsx:70", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/LinkAccounts.tsx:70"}, "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-f5fcf31ec8c98a35", "name": "Commented-code block (14 lines) in src/components/hero-reels.tsx:143", "shortDescription": {"text": "Commented-code block (14 lines) in src/components/hero-reels.tsx:143"}, "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-4040f0146a2fd2de", "name": "Commented-code block (9 lines) in src/components/CommunityGate.tsx:45", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/CommunityGate.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-cb5e76ee66b128ad", "name": "Commented-code block (7 lines) in src/components/IosSplashLinks.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/IosSplashLinks.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-449c9eac5a18d6ea", "name": "Commented-code block (6 lines) in src/components/StreamSchedule.tsx:158", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/StreamSchedule.tsx:158"}, "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-c1a407ae45419977", "name": "Commented-code block (5 lines) in src/components/DailyCheckinPrompt.tsx:129", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/DailyCheckinPrompt.tsx:129"}, "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-b9051489eda14b64", "name": "Commented-code block (6 lines) in src/components/HeroCarousel.tsx:235", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/HeroCarousel.tsx:235"}, "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-4c7027b7a0dbbb9f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/NotificationPrefs.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/NotificationPrefs.tsx:88"}, "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-cdad5e60e2cb00ef", "name": "Commented-code block (7 lines) in src/components/Nav.tsx:20", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/Nav.tsx:20"}, "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-b8f497c5f1ba325b", "name": "Commented-code block (6 lines) in src/components/PwaShell.tsx:100", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/PwaShell.tsx:100"}, "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-6fbef27157b1e781", "name": "Commented-code block (5 lines) in src/components/FunnelTracker.tsx:73", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/FunnelTracker.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-f0d8f122d3056eb0", "name": "Commented-code block (5 lines) in src/components/play/PlayClient.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/PlayClient.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-087078967748978e", "name": "Commented-code block (9 lines) in src/components/play/PlayBoltbound.tsx:102", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/play/PlayBoltbound.tsx:102"}, "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-0aeff8e497a361e0", "name": "Commented-code block (5 lines) in src/components/play/AchievementsWall.tsx:100", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/AchievementsWall.tsx:100"}, "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-971adc13d5331442", "name": "Commented-code block (7 lines) in src/components/play/BoltboundDemoBattle.tsx:287", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/play/BoltboundDemoBattle.tsx:287"}, "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-24f451f2be188ef7", "name": "Commented-code block (6 lines) in src/components/play/CheckinAvatarPicker.tsx:110", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/play/CheckinAvatarPicker.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-c3a18049239ae227", "name": "Commented-code block (7 lines) in src/components/play/GameDropdown.tsx:60", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/play/GameDropdown.tsx:60"}, "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-18afc041adba29a8", "name": "Commented-code block (6 lines) in src/components/play/PackOpener.tsx:57", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/play/PackOpener.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-13d3de17f604f5f2", "name": "Commented-code block (5 lines) in src/components/play/BoltboundCardBack.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundCardBack.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-9a5a67752a603482", "name": "Commented-code block (6 lines) in src/components/play/BoltboundSetsPage.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/play/BoltboundSetsPage.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-556a9692361bddbe", "name": "Commented-code block (7 lines) in src/components/play/PlayDaily.tsx:73", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/play/PlayDaily.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-2491b32a8a219629", "name": "Commented-code block (5 lines) in src/components/play/BoltboundMatch.tsx:135", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundMatch.tsx:135"}, "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-cd692d018d3e7110", "name": "Commented-code block (5 lines) in src/components/play/BoltboundCard.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundCard.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-accd406fd166cf1d", "name": "Commented-code block (7 lines) in src/components/play/boltboundArena.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/play/boltboundArena.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-d3b773a2f9eba7e7", "name": "Commented-code block (11 lines) in src/components/play/FirstTimeTour.tsx:103", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/play/FirstTimeTour.tsx:103"}, "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-637be62dfde96c00", "name": "Commented-code block (7 lines) in src/components/play/premium/premiumTokens.mjs:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/play/premium/premiumTokens.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-2f76e9f58f445301", "name": "Commented-code block (5 lines) in src/components/play/premium/PremiumFrame.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/premium/PremiumFrame.tsx:44"}, "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-02973b9ffd79a251", "name": "Commented-code block (6 lines) in src/components/play/premium/premiumTokens.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/play/premium/premiumTokens.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-aa528553eb66ab6c", "name": "Commented-code block (5 lines) in src/components/play/glossy/cardArtCore.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/play/glossy/cardArtCore.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-dadee1bedbed5ac9", "name": "Commented-code block (8 lines) in src/components/studio/EmoteRemix.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/studio/EmoteRemix.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-b6128883ec2c98d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteRemix.tsx:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteRemix.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-9ff65924f20a6ac1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteWizard.tsx:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteWizard.tsx:89"}, "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-8f981baaced80b22", "name": "Commented-code block (8 lines) in src/components/pixel/PixelCoin.tsx:24", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/pixel/PixelCoin.tsx:24"}, "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-6620ce11b493825c", "name": "Commented-code block (5 lines) in src/components/game/GameShell.tsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/game/GameShell.tsx:50"}, "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-fdd6b0c848d2a678", "name": "Commented-code block (5 lines) in src/components/admin/ScheduledMessages.tsx:65", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/admin/ScheduledMessages.tsx:65"}, "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-00ed4e4edfbfc05c", "name": "Commented-code block (5 lines) in src/components/admin/BindingsEditor.tsx:120", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/admin/BindingsEditor.tsx:120"}, "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-dec9f2d770245039", "name": "Commented-code block (6 lines) in src/components/admin/RotationSelector.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/admin/RotationSelector.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-b4298b14c209b1ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/admin/QueueAdmin.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/admin/QueueAdmin.tsx:53"}, "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-97a2743d4d279096", "name": "Commented-code block (8 lines) in src/components/profile/UsernameCard.tsx:46", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/profile/UsernameCard.tsx:46"}, "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-1ec48f4de3daac40", "name": "Commented-code block (8 lines) in src/components/profile/GamertagsCard.tsx:39", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/profile/GamertagsCard.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-e77d8b0abdcb4820", "name": "Commented-code block (5 lines) in src/components/profile/PublicProfileCard.tsx:55", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/profile/PublicProfileCard.tsx:55"}, "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-c1d180254c007586", "name": "Commented-code block (8 lines) in src/components/profile/CheckinCardCustomizer.tsx:208", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/profile/CheckinCardCustomizer.tsx: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-8fc26c6e79869b61", "name": "Commented-code block (6 lines) in src/components/profile/ProfileCompletionMeter.tsx:140", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/profile/ProfileCompletionMeter.tsx:140"}, "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-feec64a01e8e34b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/profile/ProfileCompletionMeter.tsx:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/profile/ProfileCompletionMeter.tsx:82"}, "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-9f7f74787940402a", "name": "Commented-code block (5 lines) in src/components/friends/FriendsHub.tsx:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/friends/FriendsHub.tsx:70"}, "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-13f24409b8fc5ef8", "name": "Commented-code block (6 lines) in src/components/home/HomeScheduleStrip.tsx:13", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/home/HomeScheduleStrip.tsx:13"}, "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-cf49d970c8cddea4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/LatestYouTubeCard.tsx:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/LatestYouTubeCard.tsx:59"}, "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-7a3456839cbcae3f", "name": "Commented-code block (5 lines) in src/components/community/DiscordChat.tsx:177", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/community/DiscordChat.tsx:177"}, "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-6b9ff550bc867fb2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/DiscordChat.tsx:470", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/DiscordChat.tsx:470"}, "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-e58099a13663da69", "name": "Commented-code block (7 lines) in src/components/community/StarboardWall.tsx:29", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/community/StarboardWall.tsx:29"}, "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-c050a8f856903db5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/WeeklyChallenge.tsx:106", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/WeeklyChallenge.tsx:106"}, "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-84141ebc4fb6a57b", "name": "Commented-code block (8 lines) in src/components/funnel/OnboardingQuest.tsx:79", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/funnel/OnboardingQuest.tsx:79"}, "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-c8300ea178aaf1cc", "name": "Commented-code block (8 lines) in src/components/funnel/ReferralCard.tsx:28", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/funnel/ReferralCard.tsx:28"}, "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-242aad43fce1c5c4", "name": "Commented-code block (8 lines) in src/components/schedule/VoteCastPanel.tsx:13", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/schedule/VoteCastPanel.tsx:13"}, "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-bc4a985bcee97c9c", "name": "Commented-code block (5 lines) in src/components/icons/AquiloIcons.tsx:82", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/icons/AquiloIcons.tsx:82"}, "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-6e0311a22b1fcddc", "name": "Commented-code block (6 lines) in src/lib/boltbound.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/boltbound.ts:16"}, "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-cf80411185e39c18", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/boltbound.ts:3", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/boltbound.ts:3"}, "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-0d2d29fd59e50c42", "name": "Commented-code block (5 lines) in src/lib/og.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/og.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-344eb50849da99f5", "name": "Commented-code block (5 lines) in src/lib/checkinBackgrounds.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/checkinBackgrounds.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-65814a8a0f7cb59b", "name": "Commented-code block (6 lines) in src/lib/boltboundSpire.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/boltboundSpire.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-640b6e40d870bf60", "name": "Commented-code block (7 lines) in src/lib/season.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/season.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-30cd91295a41d38a", "name": "Commented-code block (6 lines) in src/lib/products.ts:142", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/products.ts:142"}, "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-00deb4eadabcf2d5", "name": "Commented-code block (7 lines) in src/lib/progression.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/progression.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-ee30b44af18e75b5", "name": "Commented-code block (6 lines) in src/lib/scheduleMsg.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/scheduleMsg.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-db0bb3f0159237b0", "name": "Commented-code block (5 lines) in src/lib/pixelArt.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/pixelArt.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-c426954ca3092c0a", "name": "Commented-code block (8 lines) in src/lib/boltboundDecks.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/boltboundDecks.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-14cbe6da2c0876d9", "name": "Commented-code block (5 lines) in src/lib/audioManifest.ts:272", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audioManifest.ts:272"}, "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-f05b7ccd44291b7e", "name": "Commented-code block (6 lines) in src/lib/publicProfile.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/publicProfile.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-e1e232ccf88e6bb8", "name": "Commented-code block (5 lines) in src/lib/funnel.ts:212", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/funnel.ts:212"}, "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-627e85ee116ce0aa", "name": "Commented-code block (7 lines) in src/lib/achievementPins.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/achievementPins.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-94bdcd1dca5d9d4e", "name": "Commented-code block (9 lines) in src/lib/boltboundCollectionPrefs.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/boltboundCollectionPrefs.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-1c370f8af12fcac6", "name": "Commented-code block (5 lines) in src/lib/usePlaySession.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/usePlaySession.ts:38"}, "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-068169ccf181cf6b", "name": "Commented-code block (5 lines) in src/lib/boltboundSpireMap.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/boltboundSpireMap.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-8f2bddf2cd1dc53a", "name": "Commented-code block (5 lines) in src/lib/useFullscreen.ts:98", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/useFullscreen.ts:98"}, "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-e8e9f52140737499", "name": "Commented-code block (6 lines) in src/lib/streamCheckin.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/streamCheckin.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-7f3e30b80c82723e", "name": "Commented-code block (7 lines) in src/lib/boltboundSkins.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/boltboundSkins.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-37edefb3c7b773e0", "name": "Commented-code block (12 lines) in src/lib/discordMarkdown.ts:5", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/discordMarkdown.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-4a265c126cbc8b85", "name": "Commented-code block (5 lines) in src/lib/schedule.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/schedule.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-ecccd2e52575d3d0", "name": "Commented-code block (5 lines) in src/lib/achievementUnlock.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/achievementUnlock.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-e7756679e71a4d5e", "name": "Commented-code block (5 lines) in src/lib/boltboundLore.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/boltboundLore.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-0415a4063a81f5b1", "name": "Commented-code block (10 lines) in src/lib/usePwaMode.ts:41", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/usePwaMode.ts:41"}, "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-34afe400ea8b69d5", "name": "Commented-code block (5 lines) in src/lib/pixel-art.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/pixel-art.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-2b11ecce2ab0f8a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useVotePublic.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useVotePublic.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-79e60bca161e6e6e", "name": "Commented-code block (6 lines) in src/lib/boltbound/heroPowers.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/boltbound/heroPowers.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-474e6edec50cf0cc", "name": "Commented-code block (5 lines) in functions/api/schedule.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/schedule.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-d6cc79b8f51df5d6", "name": "Commented-code block (7 lines) in functions/api/changelog.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in functions/api/changelog.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-521bd665c8e77dcb", "name": "Commented-code block (6 lines) in functions/api/youtube/latest.js:54", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/youtube/latest.js:54"}, "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-d7ee69d23928c676", "name": "Commented-code block (5 lines) in functions/api/studio/me.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/studio/me.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-0874d81f893c6ea5", "name": "Commented-code block (6 lines) in functions/api/studio/generate/[[route]].js:10", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/studio/generate/[[route]].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-d48560df370b1c82", "name": "Commented-code block (5 lines) in functions/api/studio/admin/usage.js:11", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/studio/admin/usage.js: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-0b7ce27697fbcc82", "name": "Commented-code block (5 lines) in functions/api/clash/sync/[[route]].js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/clash/sync/[[route]].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-5e723bc1adfcbf9e", "name": "Commented-code block (5 lines) in functions/api/admin/schedule.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/admin/schedule.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-e213dc052c55127d", "name": "Commented-code block (7 lines) in functions/api/admin/polls/[[route]].js:1", "shortDescription": {"text": "Commented-code block (7 lines) in functions/api/admin/polls/[[route]].js: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-f78a2b97a048b805", "name": "Commented-code block (6 lines) in functions/api/admin/boltbound/expansion/[[route]].js:7", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/admin/boltbound/expansion/[[route]].js: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-1b928bea6dc5945b", "name": "Commented-code block (5 lines) in functions/api/admin/games/[[route]].js:109", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/admin/games/[[route]].js:109"}, "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-6a702a6bbd639761", "name": "Commented-code block (8 lines) in functions/api/admin/tickets/[[route]].js:5", "shortDescription": {"text": "Commented-code block (8 lines) in functions/api/admin/tickets/[[route]].js: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-c217c655de6dc61a", "name": "Commented-code block (8 lines) in functions/api/admin/stats/community.js:7", "shortDescription": {"text": "Commented-code block (8 lines) in functions/api/admin/stats/community.js: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-5efb93699e4b0dd0", "name": "Commented-code block (10 lines) in functions/api/community/challenge.js:10", "shortDescription": {"text": "Commented-code block (10 lines) in functions/api/community/challenge.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-e4e6b6b66b5723a3", "name": "Commented-code block (8 lines) in functions/api/community/friends.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in functions/api/community/friends.js: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-0fbcf03ee4cbae99", "name": "Commented-code block (9 lines) in functions/api/community/voice.js:11", "shortDescription": {"text": "Commented-code block (9 lines) in functions/api/community/voice.js: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-e393bcf4423d9c30", "name": "Commented-code block (5 lines) in functions/api/community/chat.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/community/chat.js: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-8a663a03681b37df", "name": "Commented-code block (13 lines) in functions/api/community/content.js:23", "shortDescription": {"text": "Commented-code block (13 lines) in functions/api/community/content.js:23"}, "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-df264622bc2692a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/community/content.js:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/community/content.js:70"}, "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-fc54be3d91b3b601", "name": "Commented-code block (5 lines) in functions/api/community/patron-of-the-month.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/community/patron-of-the-month.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-4dd3c11ec5c64ca5", "name": "Commented-code block (8 lines) in functions/api/community/schedule-public.js:11", "shortDescription": {"text": "Commented-code block (8 lines) in functions/api/community/schedule-public.js: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-47e68a90e7ede19b", "name": "Commented-code block (6 lines) in functions/api/community/live.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/community/live.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-70b0ee893f6d56d1", "name": "Commented-code block (9 lines) in functions/api/community/profile/[userId].js:3", "shortDescription": {"text": "Commented-code block (9 lines) in functions/api/community/profile/[userId].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-6f342caf1f6835ac", "name": "Commented-code block (6 lines) in functions/api/builds/[[route]].js:3", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/builds/[[route]].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-5c0157ca4101455d", "name": "Commented-code block (5 lines) in functions/api/twitch/login.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/twitch/login.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-132a317e942f3afc", "name": "Commented-code block (9 lines) in functions/api/twitch/live.js:10", "shortDescription": {"text": "Commented-code block (9 lines) in functions/api/twitch/live.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-641a1fb1093a5f44", "name": "Commented-code block (5 lines) in functions/api/link/[[route]].js:12", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/link/[[route]].js: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-81b1440c3384a249", "name": "Commented-code block (8 lines) in functions/api/push/[[route]].js:3", "shortDescription": {"text": "Commented-code block (8 lines) in functions/api/push/[[route]].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-339432f25f82802e", "name": "Commented-code block (5 lines) in functions/api/push/external.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/push/external.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-2bf59f0fa3698b88", "name": "Commented-code block (7 lines) in functions/api/web/season/[[route]].js:6", "shortDescription": {"text": "Commented-code block (7 lines) in functions/api/web/season/[[route]].js: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-568fb6ba74521a2f", "name": "Commented-code block (5 lines) in functions/api/web/play/[[route]].js:33", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/web/play/[[route]].js:33"}, "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-20e353512b8104a7", "name": "Commented-code block (6 lines) in functions/api/web/boltbound/[[route]].js:30", "shortDescription": {"text": "Commented-code block (6 lines) in functions/api/web/boltbound/[[route]].js: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-8f741a5cb333caef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/web/boltbound/[[route]].js:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/web/boltbound/[[route]].js:180"}, "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-021e66570529b4e4", "name": "Commented-code block (5 lines) in functions/api/web/checkin/background.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/background.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-ad798b958ea3692d", "name": "Commented-code block (5 lines) in functions/api/web/checkin/backgrounds.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/backgrounds.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-a3b8540a6b08e470", "name": "Commented-code block (7 lines) in functions/api/web/checkin/[[route]].js:6", "shortDescription": {"text": "Commented-code block (7 lines) in functions/api/web/checkin/[[route]].js: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-ab235425cd1a21a4", "name": "Commented-code block (5 lines) in functions/api/web/checkin/user-background.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/user-background.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-828e96766ee5221b", "name": "Commented-code block (16 lines) in functions/api/web/chat/[[route]].js:6", "shortDescription": {"text": "Commented-code block (16 lines) in functions/api/web/chat/[[route]].js: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-be20895e5a49ae20", "name": "Commented-code block (5 lines) in functions/api/web/tournaments/signup.js:11", "shortDescription": {"text": "Commented-code block (5 lines) in functions/api/web/tournaments/signup.js: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-0343767f00417608", "name": "Commented-code block (8 lines) in functions/p/[userId].js:3", "shortDescription": {"text": "Commented-code block (8 lines) in functions/p/[userId].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-52a3e0db39ee2c7b", "name": "Commented-code block (5 lines) in functions/_lib/schedule.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in functions/_lib/schedule.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-bda71ffdcb6b72dd", "name": "Commented-code block (10 lines) in functions/_lib/checkin-backgrounds.js:6", "shortDescription": {"text": "Commented-code block (10 lines) in functions/_lib/checkin-backgrounds.js: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-71350f5ba8509722", "name": "Commented-code block (7 lines) in functions/_lib/web-play.js:72", "shortDescription": {"text": "Commented-code block (7 lines) in functions/_lib/web-play.js:72"}, "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-6c13463e70d7b793", "name": "Commented-code block (5 lines) in functions/_lib/vault-bridge.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in functions/_lib/vault-bridge.js: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-b9a4a005ed901e3d", "name": "Commented-code block (6 lines) in functions/_lib/push.js:15", "shortDescription": {"text": "Commented-code block (6 lines) in functions/_lib/push.js: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-05e41cc9f5745923", "name": "Commented-code block (7 lines) in functions/_lib/studio.js:17", "shortDescription": {"text": "Commented-code block (7 lines) in functions/_lib/studio.js: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-79c9f35e850a68e1", "name": "Commented-code block (31 lines) in public/sw.js:63", "shortDescription": {"text": "Commented-code block (31 lines) in public/sw.js:63"}, "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-ffbb6bfb2f084241", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:310", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:310"}, "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-188dfc31e8b34ee0", "name": "Commented-code block (5 lines) in public/sf/overlay/sf-badges.js:63", "shortDescription": {"text": "Commented-code block (5 lines) in public/sf/overlay/sf-badges.js:63"}, "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-16d4adf0adf6c338", "name": "Commented-code block (7 lines) in public/sf/overlay/sf-emotes.js:111", "shortDescription": {"text": "Commented-code block (7 lines) in public/sf/overlay/sf-emotes.js:111"}, "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-32ab4760219cd0e0", "name": "Commented-code block (6 lines) in public/sf/overlay/sf-direct.js:32", "shortDescription": {"text": "Commented-code block (6 lines) in public/sf/overlay/sf-direct.js:32"}, "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-a055d5535815b6fd", "name": "Commented-code block (8 lines) in public/sf/overlay/sf-bridge.js:110", "shortDescription": {"text": "Commented-code block (8 lines) in public/sf/overlay/sf-bridge.js: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-50dfb60d09d24d65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/overlay/sf-bridge.js:276", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/overlay/sf-bridge.js:276"}, "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-3ad47868bb4124c0", "name": "Commented-code block (5 lines) in public/sf/customize/customize.js:30", "shortDescription": {"text": "Commented-code block (5 lines) in public/sf/customize/customize.js: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-e914847512cd3685", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/customize/customize.js:730", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/customize/customize.js:730"}, "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-6e5d0286f8713fa4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/overlay/sd-watch.js:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/overlay/sd-watch.js:26"}, "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-1d76a37e0cface78", "name": "Commented-code block (5 lines) in public/scratchdrop/overlay/overlay.js:267", "shortDescription": {"text": "Commented-code block (5 lines) in public/scratchdrop/overlay/overlay.js:267"}, "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-f1d33e7a7de27c2b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/customize.js:1017", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/customize.js:1017"}, "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-2364e15f6306e668", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/sd-emotes.js:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/sd-emotes.js:17"}, "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-656ee678bfd1f26c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/pc-connect.js:177", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/pc-connect.js:177"}, "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-6a5fd7a368ed6a44", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/overlay.js:235", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/overlay.js:235"}, "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-bab52fecca934658", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/customize/customize.js:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/customize/customize.js:114"}, "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-0bb2aec83afdbc9d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/card/card-editor.js:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/card/card-editor.js:53"}, "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-36a60401f6c028ab", "name": "Commented-code block (5 lines) in public/twitch-panel/panel-sprites.js:1023", "shortDescription": {"text": "Commented-code block (5 lines) in public/twitch-panel/panel-sprites.js:1023"}, "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-5dc422fee989906c", "name": "Commented-code block (7 lines) in public/twitch-panel/panel.js:52", "shortDescription": {"text": "Commented-code block (7 lines) in public/twitch-panel/panel.js: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-e189ec0bcac5bda1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/twitch-panel/panel.js:633", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/twitch-panel/panel.js:633"}, "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-d957df7f29fdb4e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/overlay/overlay.js:102", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/overlay/overlay.js:102"}, "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-6f759d1b00c46b27", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/dock/dock.js:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/dock/dock.js:86"}, "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-9a180b326b33602e", "name": "Commented-code block (5 lines) in public/sf-demo/web-demo-bootstrap.js:36", "shortDescription": {"text": "Commented-code block (5 lines) in public/sf-demo/web-demo-bootstrap.js:36"}, "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-d36f261452f272b9", "name": "Commented-code block (6 lines) in public/personal-overlays/follow/themes/_generic.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in public/personal-overlays/follow/themes/_generic.js: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-94beec93b78ff459", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/workshop/workshop.js:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/workshop/workshop.js:88"}, "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-6631498aff2bac5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/overlay/pd-watch.js:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/overlay/pd-watch.js:26"}, "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-6cd73c9b138d8ae1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/customize/customize.js:239", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/customize/customize.js:239"}, "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-c39ba0775df47e51", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/test-send.js:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/test-send.js:46"}, "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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/gen-boltbound-arena-bg.py:create, scripts/gen-boltbound-arenas.py:create\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24280"}, "properties": {"repository": "aquiloplays/aquilo-site", "repoUrl": "https://github.com/aquiloplays/aquilo-site", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-b97de1a91db2cdbf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/layout.tsx:138"}, "properties": {"repobilityId": "0d72350965068f5b", "scanner": "scanner-primary", "fingerprint": "b97de1a91db2cdbf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-78bc1f2f9bb662ec", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/install/page.tsx:273"}, "properties": {"repobilityId": "843353acb2a722e6", "scanner": "scanner-primary", "fingerprint": "78bc1f2f9bb662ec", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-31ed3273b0184ffb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/QueueCard.tsx:111"}, "properties": {"repobilityId": "5d12aac10c4d30de", "scanner": "scanner-primary", "fingerprint": "31ed3273b0184ffb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-133d8beec3565daf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/RotationConfigurator.tsx:224"}, "properties": {"repobilityId": "b6c198f0ef171524", "scanner": "scanner-primary", "fingerprint": "133d8beec3565daf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-49f7ae6172fc3eed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SportsBoard.tsx:167"}, "properties": {"repobilityId": "376521cf454f4ae5", "scanner": "scanner-primary", "fingerprint": "49f7ae6172fc3eed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ba75e423e9a90326", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/LinkAccounts.tsx:435"}, "properties": {"repobilityId": "9b42d89521e65d35", "scanner": "scanner-primary", "fingerprint": "ba75e423e9a90326", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0c119c70f64e71f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/AchievementUnlockToast.tsx:178"}, "properties": {"repobilityId": "192c487b7bc9aec3", "scanner": "scanner-primary", "fingerprint": "0c119c70f64e71f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a3d419f435d5637e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/LiveNowRadar.tsx:137"}, "properties": {"repobilityId": "cbec5676caad69c6", "scanner": "scanner-primary", "fingerprint": "a3d419f435d5637e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0d43982a8af993f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/HangarView.tsx:80"}, "properties": {"repobilityId": "81673645c3c69869", "scanner": "scanner-primary", "fingerprint": "0d43982a8af993f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a13e5f58afabbcf4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SiteSearch.tsx:150"}, "properties": {"repobilityId": "a58d60c1a5a79962", "scanner": "scanner-primary", "fingerprint": "a13e5f58afabbcf4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-840998a59ac966de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/PatronWall.tsx:167"}, "properties": {"repobilityId": "5265d746bac91728", "scanner": "scanner-primary", "fingerprint": "840998a59ac966de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aaad908009b7749d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PlayClient.tsx:281"}, "properties": {"repobilityId": "06d8146338c80d62", "scanner": "scanner-primary", "fingerprint": "aaad908009b7749d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f60744482a6f4d3b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSettings.tsx:187"}, "properties": {"repobilityId": "d235b4f61a6632fb", "scanner": "scanner-primary", "fingerprint": "f60744482a6f4d3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2c4f7a7c89d8dcd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundEventsHub.tsx:163"}, "properties": {"repobilityId": "0e429300a435e8af", "scanner": "scanner-primary", "fingerprint": "a2c4f7a7c89d8dcd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7967268b5caca44f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundHistory.tsx:212"}, "properties": {"repobilityId": "b7c4ee24c4f9e648", "scanner": "scanner-primary", "fingerprint": "7967268b5caca44f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-33a63ef6a7f9f650", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AchievementsWall.tsx:508"}, "properties": {"repobilityId": "aae1da2514e8dbdb", "scanner": "scanner-primary", "fingerprint": "33a63ef6a7f9f650", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-359c9143c5a65ce0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCommunityDecks.tsx:128"}, "properties": {"repobilityId": "0325db4e55306525", "scanner": "scanner-primary", "fingerprint": "359c9143c5a65ce0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f2109fdebee6b1c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckSelect.tsx:242"}, "properties": {"repobilityId": "30f255d6e7b93b9e", "scanner": "scanner-primary", "fingerprint": "f2109fdebee6b1c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f0d674c9ae4e5ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/GameDropdown.tsx:155"}, "properties": {"repobilityId": "152be9932b211f57", "scanner": "scanner-primary", "fingerprint": "9f0d674c9ae4e5ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4e2790610358ac4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundDeckStudio.tsx:547"}, "properties": {"repobilityId": "64afc15fbbde91a5", "scanner": "scanner-primary", "fingerprint": "b4e2790610358ac4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e5c26fed708492ef", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundCrafting.tsx:213"}, "properties": {"repobilityId": "445bab7fc145f6d3", "scanner": "scanner-primary", "fingerprint": "e5c26fed708492ef", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e03ceb578a4583fc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BetPlacement.tsx:429"}, "properties": {"repobilityId": "838f8e72a4e425f3", "scanner": "scanner-primary", "fingerprint": "e03ceb578a4583fc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1846b5803db84e65", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundSpire.tsx:467"}, "properties": {"repobilityId": "0f758677c4f9f6e0", "scanner": "scanner-primary", "fingerprint": "1846b5803db84e65", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3edef32de799a99a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/ReplayView.tsx:545"}, "properties": {"repobilityId": "13693e195cb64776", "scanner": "scanner-primary", "fingerprint": "3edef32de799a99a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad88f580d0921011", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundArenaDraft.tsx:173"}, "properties": {"repobilityId": "0064b8f94483aa38", "scanner": "scanner-primary", "fingerprint": "ad88f580d0921011", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-453a5aaad1c7259c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/BoltboundReplays.tsx:243"}, "properties": {"repobilityId": "90f36b7743ed6d30", "scanner": "scanner-primary", "fingerprint": "453a5aaad1c7259c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-90d4e1a6bd57f672", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/PwaPlayPicker.tsx:129"}, "properties": {"repobilityId": "7863008e801d7d56", "scanner": "scanner-primary", "fingerprint": "90d4e1a6bd57f672", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4875e2ed35a93928", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/AetherHud.tsx:163"}, "properties": {"repobilityId": "78b54df658e007e3", "scanner": "scanner-primary", "fingerprint": "4875e2ed35a93928", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d405cf864748a6ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/play/spire-map/SpireHud.tsx:33"}, "properties": {"repobilityId": "7c85ddea5b58be01", "scanner": "scanner-primary", "fingerprint": "d405cf864748a6ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39211ca61a923bff", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/play/spire-map/BottomSheet.tsx:91"}, "properties": {"repobilityId": "6c4078c375cea721", "scanner": "scanner-primary", "fingerprint": "39211ca61a923bff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3d142ccee4eb7ed3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/AdminTickets.tsx:347"}, "properties": {"repobilityId": "81c68f296ea8bdb4", "scanner": "scanner-primary", "fingerprint": "3d142ccee4eb7ed3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e6d1fae8197adb6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/DeathCountManager.tsx:323"}, "properties": {"repobilityId": "a8804df97404d8c9", "scanner": "scanner-primary", "fingerprint": "5e6d1fae8197adb6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7388be0b9c8f3655", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/ScratchOffManager.tsx:287"}, "properties": {"repobilityId": "ca3fc260926c1ea6", "scanner": "scanner-primary", "fingerprint": "7388be0b9c8f3655", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cceef697ca058a16", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/admin/ScratchOffManager.tsx:57"}, "properties": {"repobilityId": "03c03ae1a2d5482d", "scanner": "scanner-primary", "fingerprint": "cceef697ca058a16", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-08ad185fecb5a7f0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/admin/GamesEditor.tsx:289"}, "properties": {"repobilityId": "ff1e2eaae97029cc", "scanner": "scanner-primary", "fingerprint": "08ad185fecb5a7f0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-712b6640814244db", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/ShareProfileCard.tsx:64"}, "properties": {"repobilityId": "3b178d9dc9e37f6e", "scanner": "scanner-primary", "fingerprint": "712b6640814244db", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cb8e9b7d1c6f432c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/PublicProfileCard.tsx:317"}, "properties": {"repobilityId": "6a87dfebf4ae51b6", "scanner": "scanner-primary", "fingerprint": "cb8e9b7d1c6f432c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a361ef9336a05c06", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/CheckinCardCustomizer.tsx:511"}, "properties": {"repobilityId": "70c3c1360096c737", "scanner": "scanner-primary", "fingerprint": "a361ef9336a05c06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c32eb3780fef7365", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/profile/StreamCheckinCustomizer.tsx:464"}, "properties": {"repobilityId": "b294f8ff38cedf46", "scanner": "scanner-primary", "fingerprint": "c32eb3780fef7365", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-238aff5a069343a4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendRequests.tsx:76"}, "properties": {"repobilityId": "4fee14dfd010ba2c", "scanner": "scanner-primary", "fingerprint": "238aff5a069343a4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be91a7f408715418", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendsList.tsx:225"}, "properties": {"repobilityId": "cf51859b51ce55ab", "scanner": "scanner-primary", "fingerprint": "be91a7f408715418", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05551ca9b2dfd404", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/friends/FriendSearchAdd.tsx:93"}, "properties": {"repobilityId": "68605d96f4326ed5", "scanner": "scanner-primary", "fingerprint": "05551ca9b2dfd404", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-daa391cc1f6ff298", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LatestTikTokCard.tsx:49"}, "properties": {"repobilityId": "c2b1f49b929d50ea", "scanner": "scanner-primary", "fingerprint": "daa391cc1f6ff298", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-62f49db7def28e51", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/HomeScheduleStrip.tsx:244"}, "properties": {"repobilityId": "9c85c666702a44e9", "scanner": "scanner-primary", "fingerprint": "62f49db7def28e51", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d6fb9ad9f00f887f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/BattlePassCard.tsx:64"}, "properties": {"repobilityId": "22f85576c1fe9d87", "scanner": "scanner-primary", "fingerprint": "d6fb9ad9f00f887f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-93d15878a2320ca9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/home/LiveSnapshot.tsx:143"}, "properties": {"repobilityId": "2b37aa859031aaa6", "scanner": "scanner-primary", "fingerprint": "93d15878a2320ca9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a53034c21668db5c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/DiscordChat.tsx:1259"}, "properties": {"repobilityId": "5192f876a37538e9", "scanner": "scanner-primary", "fingerprint": "a53034c21668db5c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9bb2d8ae2b1e0989", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/StarboardWall.tsx:135"}, "properties": {"repobilityId": "8374de2f60338377", "scanner": "scanner-primary", "fingerprint": "9bb2d8ae2b1e0989", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aa405e7d7cb209da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/WeeklyChallenge.tsx:267"}, "properties": {"repobilityId": "f3b91e23d9b5aec3", "scanner": "scanner-primary", "fingerprint": "aa405e7d7cb209da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-65898bd30d6d0088", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/PatronOfTheMonth.tsx:142"}, "properties": {"repobilityId": "b8b795b71c079019", "scanner": "scanner-primary", "fingerprint": "65898bd30d6d0088", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc3ba9da459fd5c8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityVoice.tsx:153"}, "properties": {"repobilityId": "c0c40ca398cf8dd9", "scanner": "scanner-primary", "fingerprint": "bc3ba9da459fd5c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b54aa7e4093b04b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityActivityTicker.tsx:95"}, "properties": {"repobilityId": "b266fdccef255a87", "scanner": "scanner-primary", "fingerprint": "b54aa7e4093b04b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-990453351075f81c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/community/CommunityLiveStreamers.tsx:191"}, "properties": {"repobilityId": "cbd76103fae43121", "scanner": "scanner-primary", "fingerprint": "990453351075f81c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57b9cbae07ef158c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dev/SocialPreviewHarness.tsx:274"}, "properties": {"repobilityId": "b3ed7fdd8a892f1d", "scanner": "scanner-primary", "fingerprint": "57b9cbae07ef158c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-713979b6cf29bc8c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/schedule/VoteCastPanel.tsx:185"}, "properties": {"repobilityId": "46fbac138cca3ad2", "scanner": "scanner-primary", "fingerprint": "713979b6cf29bc8c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39470211717ccdcd", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 public/dock/crowdplay/main.js:458"}, "properties": {"repobilityId": "ba9a1031d78f3fc8", "scanner": "scanner-primary", "fingerprint": "39470211717ccdcd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-65af28a5d419bded", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 public/partyup/dock/dock.js:152"}, "properties": {"repobilityId": "15ed291bec2a9539", "scanner": "scanner-primary", "fingerprint": "65af28a5d419bded", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-35d4d9cd6887b8cb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/bb-mobile-shot.mjs:53"}, "properties": {"repobilityId": "561fbde96fb6eada", "scanner": "scanner-primary", "fingerprint": "35d4d9cd6887b8cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bb-mobile-shot.mjs"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-fb2e5f5d795c2b4f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/audio-pipeline.mjs:28"}, "properties": {"repobilityId": "b7748f3480759466", "scanner": "scanner-primary", "fingerprint": "fb2e5f5d795c2b4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/audio-pipeline.mjs"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-48f0aa29dc48dbf5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:138"}, "properties": {"repobilityId": "0bca654fa2052eb0", "scanner": "scanner-primary", "fingerprint": "48f0aa29dc48dbf5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/layout.tsx"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-813ea81dc58e9d53", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/install/page.tsx:273"}, "properties": {"repobilityId": "438e00680e41cb3b", "scanner": "scanner-primary", "fingerprint": "813ea81dc58e9d53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/install/page.tsx"}, "region": {"startLine": 273}}}]}, {"ruleId": "scanner-bf9640f1fc43b7fb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/admin/ScratchOffManager.tsx:57"}, "properties": {"repobilityId": "7fb3243c5f056343", "scanner": "scanner-primary", "fingerprint": "bf9640f1fc43b7fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/admin/ScratchOffManager.tsx"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-f368e6695f44e793", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/changelog.js:104"}, "properties": {"repobilityId": "0e102b3f97212493", "scanner": "scanner-primary", "fingerprint": "f368e6695f44e793", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/changelog.js"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-282b2f67de9090dc", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/feed.js:14"}, "properties": {"repobilityId": "89ca5932e4d97f23", "scanner": "scanner-primary", "fingerprint": "282b2f67de9090dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/feed.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-5f7ed3e76c4ac634", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/twitch/login.js:42"}, "properties": {"repobilityId": "8d84c8f621704452", "scanner": "scanner-primary", "fingerprint": "5f7ed3e76c4ac634", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/twitch/login.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-2949c5184e372b0b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/twitch/live.js:122"}, "properties": {"repobilityId": "f343fda84fa8c435", "scanner": "scanner-primary", "fingerprint": "2949c5184e372b0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/twitch/live.js"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-ebaf2c88cc38f608", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/backgrounds.js:33"}, "properties": {"repobilityId": "4c13c23b2cdcfc7a", "scanner": "scanner-primary", "fingerprint": "ebaf2c88cc38f608", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/web/checkin/backgrounds.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-d118c89b957aca87", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/web/checkin/user-background.js:81"}, "properties": {"repobilityId": "ee733b0635177d9f", "scanner": "scanner-primary", "fingerprint": "d118c89b957aca87", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/web/checkin/user-background.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-7d95dcea957ab24e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-icons.js:92"}, "properties": {"repobilityId": "7ca3111cfd213f9c", "scanner": "scanner-primary", "fingerprint": "7d95dcea957ab24e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/sf-icons.js"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-256658b6282ac5f5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/sf-bridge.js:169"}, "properties": {"repobilityId": "1a071f322b714435", "scanner": "scanner-primary", "fingerprint": "256658b6282ac5f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/sf-bridge.js"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-cf230a3a1fd1cfe2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/index.html:328"}, "properties": {"repobilityId": "5b4ab067c138c61c", "scanner": "scanner-primary", "fingerprint": "cf230a3a1fd1cfe2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/index.html"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-f6c756a0b6bd779b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/chat/index.html:1420"}, "properties": {"repobilityId": "c6a6bc1f1ce85daa", "scanner": "scanner-primary", "fingerprint": "f6c756a0b6bd779b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/chat/index.html"}, "region": {"startLine": 1420}}}]}, {"ruleId": "scanner-9e82d0320bb9ae89", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/chat/index.html:1316"}, "properties": {"repobilityId": "1f5a69d0bbce8ae4", "scanner": "scanner-primary", "fingerprint": "9e82d0320bb9ae89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/chat/index.html"}, "region": {"startLine": 1316}}}]}, {"ruleId": "scanner-140068726c4ee6db", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/vertical/index.html:756"}, "properties": {"repobilityId": "1415325183765e57", "scanner": "scanner-primary", "fingerprint": "140068726c4ee6db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/vertical/index.html"}, "region": {"startLine": 756}}}]}, {"ruleId": "scanner-7a5c567eb06cc00b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/alerts/index.html:543"}, "properties": {"repobilityId": "76eed62e3584f415", "scanner": "scanner-primary", "fingerprint": "7a5c567eb06cc00b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/alerts/index.html"}, "region": {"startLine": 543}}}]}, {"ruleId": "scanner-d7d9d71f421851a8", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf/overlay/alerts/index.html:537"}, "properties": {"repobilityId": "bb9d3fb17b7ba79b", "scanner": "scanner-primary", "fingerprint": "d7d9d71f421851a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/alerts/index.html"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-658e9576bccc3ed8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/ticker/index.html:322"}, "properties": {"repobilityId": "b8a42fdb1dd5f741", "scanner": "scanner-primary", "fingerprint": "658e9576bccc3ed8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/ticker/index.html"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-f121c4c0fb737a6e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/overlay/shoutout/index.html:392"}, "properties": {"repobilityId": "adb2e5c633f8d4c5", "scanner": "scanner-primary", "fingerprint": "f121c4c0fb737a6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/overlay/shoutout/index.html"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-673246eb489c5909", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf/customize/customize.js:525"}, "properties": {"repobilityId": "ef16a2073e833dd2", "scanner": "scanner-primary", "fingerprint": "673246eb489c5909", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf/customize/customize.js"}, "region": {"startLine": 525}}}]}, {"ruleId": "scanner-cce212c23b7e8da5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/support/index.html:100"}, "properties": {"repobilityId": "a743ee92a58ea0af", "scanner": "scanner-primary", "fingerprint": "cce212c23b7e8da5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/support/index.html"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-70c1b69d3975dae8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/overlay/overlay.js:376"}, "properties": {"repobilityId": "e638252e4609edb8", "scanner": "scanner-primary", "fingerprint": "70c1b69d3975dae8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/scratchdrop/overlay/overlay.js"}, "region": {"startLine": 376}}}]}, {"ruleId": "scanner-b703f91a39094b88", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/customize/customize.js:275"}, "properties": {"repobilityId": "e317a6aaf0d560b7", "scanner": "scanner-primary", "fingerprint": "b703f91a39094b88", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/scratchdrop/customize/customize.js"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-c75b013d020a3eb6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/scratchdrop/dock/dock.js:82"}, "properties": {"repobilityId": "d8b1fa80757d9309", "scanner": "scanner-primary", "fingerprint": "c75b013d020a3eb6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/scratchdrop/dock/dock.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-9f3b7cfd873c7533", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamfusion-chat/index.html:1076"}, "properties": {"repobilityId": "50e4a02494a4a0f8", "scanner": "scanner-primary", "fingerprint": "9f3b7cfd873c7533", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/dock/streamfusion-chat/index.html"}, "region": {"startLine": 1076}}}]}, {"ruleId": "scanner-fe3e1171a5f3af81", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/streamkey/index.html:279"}, "properties": {"repobilityId": "9ebd3696baa93d77", "scanner": "scanner-primary", "fingerprint": "fe3e1171a5f3af81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/dock/streamkey/index.html"}, "region": {"startLine": 279}}}]}, {"ruleId": "scanner-0ef82fab036614e2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/dock/crowdplay/main.js:115"}, "properties": {"repobilityId": "2babf62babe83f32", "scanner": "scanner-primary", "fingerprint": "0ef82fab036614e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/dock/crowdplay/main.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-2528abe4618b22a7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/overlay.js:59"}, "properties": {"repobilityId": "914e92c42a8212b0", "scanner": "scanner-primary", "fingerprint": "2528abe4618b22a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/punchcard/overlay/overlay.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-dfe3cc1af0f1d42b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/overlay/pc-card.js:43"}, "properties": {"repobilityId": "245ab02e97e3481a", "scanner": "scanner-primary", "fingerprint": "dfe3cc1af0f1d42b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/punchcard/overlay/pc-card.js"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-9527b17e58c39d96", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/customize/customize.js:264"}, "properties": {"repobilityId": "6e9dedede4dd4580", "scanner": "scanner-primary", "fingerprint": "9527b17e58c39d96", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/punchcard/customize/customize.js"}, "region": {"startLine": 264}}}]}, {"ruleId": "scanner-1dbc077005ff1e3f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/card/card-editor.js:88"}, "properties": {"repobilityId": "9c482955e69441e3", "scanner": "scanner-primary", "fingerprint": "1dbc077005ff1e3f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/punchcard/card/card-editor.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-0286b0aa9fd96b93", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/punchcard/leaderboard/index.html:97"}, "properties": {"repobilityId": "6ed8d11445f5bbe8", "scanner": "scanner-primary", "fingerprint": "0286b0aa9fd96b93", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/punchcard/leaderboard/index.html"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-4012adbf47c87658", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/twitch-panel/panel.js:345"}, "properties": {"repobilityId": "33c5bcc6a508c07a", "scanner": "scanner-primary", "fingerprint": "4012adbf47c87658", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/twitch-panel/panel.js"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-c7e5466bce49cc2a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/overlay/overlay.js:154"}, "properties": {"repobilityId": "c5398fc67ecc32a8", "scanner": "scanner-primary", "fingerprint": "c7e5466bce49cc2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/partyup/overlay/overlay.js"}, "region": {"startLine": 154}}}]}, {"ruleId": "scanner-07c6acd26f24a5cd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/live/index.html:128"}, "properties": {"repobilityId": "323f4ced4ba7310f", "scanner": "scanner-primary", "fingerprint": "07c6acd26f24a5cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/partyup/live/index.html"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-e20de2ec1783e0fe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/customize/customize.js:87"}, "properties": {"repobilityId": "6118ecdca7335492", "scanner": "scanner-primary", "fingerprint": "e20de2ec1783e0fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/partyup/customize/customize.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-cb0e7a8cdfc4c7e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/partyup/dock/dock.js:142"}, "properties": {"repobilityId": "86f926b801b9def0", "scanner": "scanner-primary", "fingerprint": "cb0e7a8cdfc4c7e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/partyup/dock/dock.js"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-0a7b2e2e88e04ce1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/banner.html:389"}, "properties": {"repobilityId": "86be3db20fe4042f", "scanner": "scanner-primary", "fingerprint": "0a7b2e2e88e04ce1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf-demo/banner.html"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-540a7582a6fe9f57", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/overlay.html:945"}, "properties": {"repobilityId": "986bf813cfc1003a", "scanner": "scanner-primary", "fingerprint": "540a7582a6fe9f57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf-demo/overlay.html"}, "region": {"startLine": 945}}}]}, {"ruleId": "scanner-adf2c349a2d271af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sf-demo/index.html:2887"}, "properties": {"repobilityId": "de44dcfee02010da", "scanner": "scanner-primary", "fingerprint": "adf2c349a2d271af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf-demo/index.html"}, "region": {"startLine": 2887}}}]}, {"ruleId": "scanner-59ebf0c55bbf1158", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/sf-demo/index.html:9937"}, "properties": {"repobilityId": "68b1699c77cfac44", "scanner": "scanner-primary", "fingerprint": "59ebf0c55bbf1158", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sf-demo/index.html"}, "region": {"startLine": 9937}}}]}, {"ruleId": "scanner-ee7b0163358d062f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-minecraft/index.html:286"}, "properties": {"repobilityId": "7152dc907f70cbfa", "scanner": "scanner-primary", "fingerprint": "ee7b0163358d062f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/follow-minecraft/index.html"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-ed7de430ea600f41", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/loadout-activity/index.html:333"}, "properties": {"repobilityId": "36628ac0fb42462d", "scanner": "scanner-primary", "fingerprint": "ed7de430ea600f41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/loadout-activity/index.html"}, "region": {"startLine": 333}}}]}, {"ruleId": "scanner-ead394eaa24082e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/scratch-hit/index.html:248"}, "properties": {"repobilityId": "08f95349b5dea248", "scanner": "scanner-primary", "fingerprint": "ead394eaa24082e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/scratch-hit/index.html"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-753059d42c57f027", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow/index.html:449"}, "properties": {"repobilityId": "e6f7425c04b2b792", "scanner": "scanner-primary", "fingerprint": "753059d42c57f027", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/follow/index.html"}, "region": {"startLine": 449}}}]}, {"ruleId": "scanner-bcaa8e1bdbd1231e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-hangar/index.html:81"}, "properties": {"repobilityId": "19a602f1afd86b1d", "scanner": "scanner-primary", "fingerprint": "bcaa8e1bdbd1231e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/power-armor-hangar/index.html"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-505c8ef8169d1110", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/stream-checkin/index.html:288"}, "properties": {"repobilityId": "1fcaede9da4fb77d", "scanner": "scanner-primary", "fingerprint": "505c8ef8169d1110", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/stream-checkin/index.html"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-16bd53e85e67102d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/watchtower/index.html:377"}, "properties": {"repobilityId": "45bb9476a9c1ee28", "scanner": "scanner-primary", "fingerprint": "16bd53e85e67102d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/watchtower/index.html"}, "region": {"startLine": 377}}}]}, {"ruleId": "scanner-d769a21b16693d8b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/follow-gwyf/index.html:296"}, "properties": {"repobilityId": "f4bf1a9914bbda20", "scanner": "scanner-primary", "fingerprint": "d769a21b16693d8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/follow-gwyf/index.html"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-76b92a2a459df444", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/event-feed/index.html:206"}, "properties": {"repobilityId": "aefab86cb6e9a24f", "scanner": "scanner-primary", "fingerprint": "76b92a2a459df444", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/event-feed/index.html"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-c85eaca4be137b5e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/death-counter/index.html:498"}, "properties": {"repobilityId": "a483ad3101e6b2b0", "scanner": "scanner-primary", "fingerprint": "c85eaca4be137b5e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/death-counter/index.html"}, "region": {"startLine": 498}}}]}, {"ruleId": "scanner-de3ea73f924501ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/power-armor-drop/index.html:183"}, "properties": {"repobilityId": "cd246df8837a9867", "scanner": "scanner-primary", "fingerprint": "de3ea73f924501ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/power-armor-drop/index.html"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-a26ca3fa6744b1a5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/personal-overlays/pvp-battle/index.html:585"}, "properties": {"repobilityId": "bcdd4c0b41a0a080", "scanner": "scanner-primary", "fingerprint": "a26ca3fa6744b1a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/personal-overlays/pvp-battle/index.html"}, "region": {"startLine": 585}}}]}, {"ruleId": "scanner-1e70ac3e8514e241", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/workshop/workshop.js:53"}, "properties": {"repobilityId": "db5054d8dbf62313", "scanner": "scanner-primary", "fingerprint": "1e70ac3e8514e241", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/workshop/workshop.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-71ca8d8177345d86", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/workshop/workshop.js:59"}, "properties": {"repobilityId": "62f3729b87ec2a01", "scanner": "scanner-primary", "fingerprint": "71ca8d8177345d86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/workshop/workshop.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-79a7dd7bfa8db0ed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/overlay/overlay.js:461"}, "properties": {"repobilityId": "e04df44a42e3f22d", "scanner": "scanner-primary", "fingerprint": "79a7dd7bfa8db0ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/overlay/overlay.js"}, "region": {"startLine": 461}}}]}, {"ruleId": "scanner-01909f2ad687601f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/customize/customize.js:107"}, "properties": {"repobilityId": "7c4e0aae3270d4e5", "scanner": "scanner-primary", "fingerprint": "01909f2ad687601f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/customize/customize.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-1d7a2365fbb50701", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in public/powerdeck/customize/customize.js:232"}, "properties": {"repobilityId": "3efc763311cb1a5e", "scanner": "scanner-primary", "fingerprint": "1d7a2365fbb50701", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/customize/customize.js"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-ccdbe50c0bfa4d77", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/powerdeck/dock/dock.js:75"}, "properties": {"repobilityId": "9d5086d11e4bf698", "scanner": "scanner-primary", "fingerprint": "ccdbe50c0bfa4d77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/powerdeck/dock/dock.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-d54791edc20e1268", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/assets/test-listener.js:156"}, "properties": {"repobilityId": "304a94b904430abd", "scanner": "scanner-primary", "fingerprint": "d54791edc20e1268", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/assets/test-listener.js"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "09a60410de7f2c23", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-1989d273193ed852", "level": "note", "message": {"text": "Very large file: src/components/play/PlayBoltbound.tsx (1595 lines)"}, "properties": {"repobilityId": "53bfa6c832221152", "scanner": "scanner-primary", "fingerprint": "1989d273193ed852", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2285203eee80d1d9", "level": "note", "message": {"text": "Very large file: src/components/play/PackOpener.tsx (1582 lines)"}, "properties": {"repobilityId": "0861b552e50c8bc9", "scanner": "scanner-primary", "fingerprint": "2285203eee80d1d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-de1b8554db9ae6c2", "level": "note", "message": {"text": "Very large file: src/components/play/BoltboundMatch.tsx (3609 lines)"}, "properties": {"repobilityId": "f17605804116cda7", "scanner": "scanner-primary", "fingerprint": "de1b8554db9ae6c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7c4f18355bf14aa9", "level": "note", "message": {"text": "Very large file: src/components/community/DiscordChat.tsx (2555 lines)"}, "properties": {"repobilityId": "6ff3c4b2a42aeb5a", "scanner": "scanner-primary", "fingerprint": "7c4f18355bf14aa9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0059ddc410d636f", "level": "note", "message": {"text": "Very large file: src/components/icons/AquiloIcons.tsx (1297 lines)"}, "properties": {"repobilityId": "234185fb9007dbf7", "scanner": "scanner-primary", "fingerprint": "a0059ddc410d636f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a29214c66868e2f6", "level": "note", "message": {"text": "Very large file: src/lib/boltbound-catalogue.ts (41568 lines)"}, "properties": {"repobilityId": "c9f700581c865e76", "scanner": "scanner-primary", "fingerprint": "a29214c66868e2f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47093fcbe1b83cc4", "level": "note", "message": {"text": "Very large file: public/sf/customize/customize.js (1324 lines)"}, "properties": {"repobilityId": "c090bfa9bd13aed8", "scanner": "scanner-primary", "fingerprint": "47093fcbe1b83cc4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2500445872f76f9d", "level": "note", "message": {"text": "Very large file: public/scratchdrop/customize/customize.js (1132 lines)"}, "properties": {"repobilityId": "ab7d17938e5d03b1", "scanner": "scanner-primary", "fingerprint": "2500445872f76f9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26617e7b8e01a46f", "level": "note", "message": {"text": "Very large file: public/twitch-panel/panel.js (6658 lines)"}, "properties": {"repobilityId": "80f62ccf81d43ee6", "scanner": "scanner-primary", "fingerprint": "26617e7b8e01a46f", "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-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5dbec5fb590991a9", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "30a87f9891a078c9", "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": "bd874942f00d92eb", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "628a9343d51f6cfd", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "c8190c7c4dd19c53", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "12eca2dd335eda4a", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "6a6fdb58d52de3f2", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-8d5973019189bcd6", "level": "none", "message": {"text": "Commented-code block (13 lines) in scripts/sd-selftest.mjs:4"}, "properties": {"repobilityId": "7a0152d322507c02", "scanner": "scanner-primary", "fingerprint": "8d5973019189bcd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8ff71a2852ba8d1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arena-bg.py:96"}, "properties": {"repobilityId": "9c94c0ed122d4547", "scanner": "scanner-primary", "fingerprint": "c8ff71a2852ba8d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ad0bcab65500a0b", "level": "none", "message": {"text": "Commented-code block (12 lines) in scripts/pu-selftest.mjs:7"}, "properties": {"repobilityId": "ba89899887838199", "scanner": "scanner-primary", "fingerprint": "3ad0bcab65500a0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74135836296b90fb", "level": "none", "message": {"text": "Commented-code block (12 lines) in scripts/pd-selftest.mjs:7"}, "properties": {"repobilityId": "ed90e3313e711036", "scanner": "scanner-primary", "fingerprint": "74135836296b90fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c47ac49026a902b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/audio-pipeline.mjs:122"}, "properties": {"repobilityId": "7dbb20b719bca529", "scanner": "scanner-primary", "fingerprint": "4c47ac49026a902b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab5ebf7b44a8ade6", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-checkin-backgrounds.mjs:3"}, "properties": {"repobilityId": "b8ad444edff6e8f6", "scanner": "scanner-primary", "fingerprint": "ab5ebf7b44a8ade6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e8d1bd6fd1f1334", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/bb-hover-selftest.mjs:9"}, "properties": {"repobilityId": "a6ced66624df9e3b", "scanner": "scanner-primary", "fingerprint": "8e8d1bd6fd1f1334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d2e41982be335e3", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/bb-procedural-art-selftest.mjs:4"}, "properties": {"repobilityId": "6b4cd8090594833d", "scanner": "scanner-primary", "fingerprint": "0d2e41982be335e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c34fc87559f09e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/tool-preview-shots.mjs:3"}, "properties": {"repobilityId": "2f38294ca5522156", "scanner": "scanner-primary", "fingerprint": "8c34fc87559f09e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25c9bc7db94fc6e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/seed-cvn-games.mjs:2"}, "properties": {"repobilityId": "d3d0fe941f49cb06", "scanner": "scanner-primary", "fingerprint": "25c9bc7db94fc6e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c977bd56b3554d58", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/gen-pwa-icons.mjs:6"}, "properties": {"repobilityId": "3c14bcc94d495b2c", "scanner": "scanner-primary", "fingerprint": "c977bd56b3554d58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53fc5596e3c88d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/gen-checkin-default-card.mjs:7"}, "properties": {"repobilityId": "3ea42d34784b8b1c", "scanner": "scanner-primary", "fingerprint": "e53fc5596e3c88d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3211bc2ba7370a69", "level": "none", "message": {"text": "Commented-code block (11 lines) in scripts/gen-pwa-splash.mjs:7"}, "properties": {"repobilityId": "9a5f2234fb6d78a1", "scanner": "scanner-primary", "fingerprint": "3211bc2ba7370a69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca93a5ed7c75e8cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/render-bb-pack.mjs:3"}, "properties": {"repobilityId": "98653c0ad8e39588", "scanner": "scanner-primary", "fingerprint": "ca93a5ed7c75e8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4480df23f9a779e6", "level": "none", "message": {"text": "Commented-code block (11 lines) in scripts/gen-clash-topdown-terrain.mjs:9"}, "properties": {"repobilityId": "be6490ec9b324a32", "scanner": "scanner-primary", "fingerprint": "4480df23f9a779e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fc525e3afdb8fbb", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/gen-boltbound-arenas.py:116"}, "properties": {"repobilityId": "210bff90a720d371", "scanner": "scanner-primary", "fingerprint": "5fc525e3afdb8fbb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b3f529d364516925", "level": "none", "message": {"text": "Commented-code block (15 lines) in scripts/pc-selftest.mjs:4"}, "properties": {"repobilityId": "97f54ccb26ba0e77", "scanner": "scanner-primary", "fingerprint": "b3f529d364516925", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90605132b2b4c673", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/bb-fullscreen-touch-selftest.mjs:4"}, "properties": {"repobilityId": "9454c5c21aaaf256", "scanner": "scanner-primary", "fingerprint": "90605132b2b4c673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b67506beaa0e8af", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/sprites/generate.mjs:3"}, "properties": {"repobilityId": "2f5068dc2cea9427", "scanner": "scanner-primary", "fingerprint": "8b67506beaa0e8af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdbe8c68718d6401", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/layout.tsx:42"}, "properties": {"repobilityId": "b77ae3107305485b", "scanner": "scanner-primary", "fingerprint": "fdbe8c68718d6401", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b5766a82c2edee1", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/app/sitemap.ts:4"}, "properties": {"repobilityId": "582386e91ccabc3e", "scanner": "scanner-primary", "fingerprint": "3b5766a82c2edee1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29057784d4b7fd7f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app/community/page.tsx:27"}, "properties": {"repobilityId": "f132bd2f7fef6ef1", "scanner": "scanner-primary", "fingerprint": "29057784d4b7fd7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c6764dcf1f5d0b2", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/p/page.tsx:8"}, "properties": {"repobilityId": "f4f1e59d889e116c", "scanner": "scanner-primary", "fingerprint": "5c6764dcf1f5d0b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd5cfdc3ce594601", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/ServiceWorkerRegister.tsx:130"}, "properties": {"repobilityId": "38f0a68691b609ff", "scanner": "scanner-primary", "fingerprint": "fd5cfdc3ce594601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34e0db5f8026cd45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EditMode.tsx:149"}, "properties": {"repobilityId": "ac04190d3db7b910", "scanner": "scanner-primary", "fingerprint": "34e0db5f8026cd45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a368d4f6cf9523d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/AdminPanel.tsx:41"}, "properties": {"repobilityId": "f9ca6ad6de9e8ce1", "scanner": "scanner-primary", "fingerprint": "5a368d4f6cf9523d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f22f1a2b87649b92", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/AdminPanel.tsx:144"}, "properties": {"repobilityId": "dc32801a7e24aae9", "scanner": "scanner-primary", "fingerprint": "f22f1a2b87649b92", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0789020115ce70d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PushSubscribeButton.tsx:111"}, "properties": {"repobilityId": "098ba8c5eb1ad93a", "scanner": "scanner-primary", "fingerprint": "0789020115ce70d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eba0045d876adf17", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/RotationConfigurator.tsx:88"}, "properties": {"repobilityId": "8c599040f1c3417c", "scanner": "scanner-primary", "fingerprint": "eba0045d876adf17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6167c37b190f39e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/LinkAccounts.tsx:70"}, "properties": {"repobilityId": "94d22c2288a3ed49", "scanner": "scanner-primary", "fingerprint": "6167c37b190f39e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5fcf31ec8c98a35", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/components/hero-reels.tsx:143"}, "properties": {"repobilityId": "d0c2c673569d630d", "scanner": "scanner-primary", "fingerprint": "f5fcf31ec8c98a35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4040f0146a2fd2de", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/CommunityGate.tsx:45"}, "properties": {"repobilityId": "383e0dc9e2e068f3", "scanner": "scanner-primary", "fingerprint": "4040f0146a2fd2de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb5e76ee66b128ad", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/IosSplashLinks.tsx:1"}, "properties": {"repobilityId": "a8a6bf2a63aefa69", "scanner": "scanner-primary", "fingerprint": "cb5e76ee66b128ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-449c9eac5a18d6ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/StreamSchedule.tsx:158"}, "properties": {"repobilityId": "fb5f4779b8b052e7", "scanner": "scanner-primary", "fingerprint": "449c9eac5a18d6ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1a407ae45419977", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/DailyCheckinPrompt.tsx:129"}, "properties": {"repobilityId": "9a9e8332b3db50a8", "scanner": "scanner-primary", "fingerprint": "c1a407ae45419977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9051489eda14b64", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/HeroCarousel.tsx:235"}, "properties": {"repobilityId": "cd487b98ce369e24", "scanner": "scanner-primary", "fingerprint": "b9051489eda14b64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c7027b7a0dbbb9f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/NotificationPrefs.tsx:88"}, "properties": {"repobilityId": "a926575f0248d8eb", "scanner": "scanner-primary", "fingerprint": "4c7027b7a0dbbb9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cdad5e60e2cb00ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/Nav.tsx:20"}, "properties": {"repobilityId": "6108112de53658e6", "scanner": "scanner-primary", "fingerprint": "cdad5e60e2cb00ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8f497c5f1ba325b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/PwaShell.tsx:100"}, "properties": {"repobilityId": "09980b17f412c59f", "scanner": "scanner-primary", "fingerprint": "b8f497c5f1ba325b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fbef27157b1e781", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/FunnelTracker.tsx:73"}, "properties": {"repobilityId": "7716becb48b8f823", "scanner": "scanner-primary", "fingerprint": "6fbef27157b1e781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0d8f122d3056eb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/PlayClient.tsx:57"}, "properties": {"repobilityId": "9df275d3e3b14891", "scanner": "scanner-primary", "fingerprint": "f0d8f122d3056eb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-087078967748978e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/play/PlayBoltbound.tsx:102"}, "properties": {"repobilityId": "e250f309e66b0bb3", "scanner": "scanner-primary", "fingerprint": "087078967748978e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0aeff8e497a361e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/AchievementsWall.tsx:100"}, "properties": {"repobilityId": "124f5b293d00a7d0", "scanner": "scanner-primary", "fingerprint": "0aeff8e497a361e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-971adc13d5331442", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/play/BoltboundDemoBattle.tsx:287"}, "properties": {"repobilityId": "2fe5a9b49160329e", "scanner": "scanner-primary", "fingerprint": "971adc13d5331442", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f451f2be188ef7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/play/CheckinAvatarPicker.tsx:110"}, "properties": {"repobilityId": "b28fb9fbdabed564", "scanner": "scanner-primary", "fingerprint": "24f451f2be188ef7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3a18049239ae227", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/play/GameDropdown.tsx:60"}, "properties": {"repobilityId": "5d49d8fb82637167", "scanner": "scanner-primary", "fingerprint": "c3a18049239ae227", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18afc041adba29a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/play/PackOpener.tsx:57"}, "properties": {"repobilityId": "af96deb2b279aed8", "scanner": "scanner-primary", "fingerprint": "18afc041adba29a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13d3de17f604f5f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundCardBack.tsx:4"}, "properties": {"repobilityId": "c8ea340baf04004f", "scanner": "scanner-primary", "fingerprint": "13d3de17f604f5f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a5a67752a603482", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/play/BoltboundSetsPage.tsx:10"}, "properties": {"repobilityId": "aa6e1e28aab8b612", "scanner": "scanner-primary", "fingerprint": "9a5a67752a603482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-556a9692361bddbe", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/play/PlayDaily.tsx:73"}, "properties": {"repobilityId": "92e272fa2cd7f6ef", "scanner": "scanner-primary", "fingerprint": "556a9692361bddbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2491b32a8a219629", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundMatch.tsx:135"}, "properties": {"repobilityId": "9e2d078f52d0ebfb", "scanner": "scanner-primary", "fingerprint": "2491b32a8a219629", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd692d018d3e7110", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/BoltboundCard.tsx:8"}, "properties": {"repobilityId": "13057be6767a3779", "scanner": "scanner-primary", "fingerprint": "cd692d018d3e7110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-accd406fd166cf1d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/play/boltboundArena.ts:3"}, "properties": {"repobilityId": "9dbe1cc80b6c17d9", "scanner": "scanner-primary", "fingerprint": "accd406fd166cf1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3b773a2f9eba7e7", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/play/FirstTimeTour.tsx:103"}, "properties": {"repobilityId": "51b733aa9417c7d0", "scanner": "scanner-primary", "fingerprint": "d3b773a2f9eba7e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-637be62dfde96c00", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/play/premium/premiumTokens.mjs:3"}, "properties": {"repobilityId": "1b90c43be424008f", "scanner": "scanner-primary", "fingerprint": "637be62dfde96c00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f76e9f58f445301", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/premium/PremiumFrame.tsx:44"}, "properties": {"repobilityId": "e68dfab25b0b7cc2", "scanner": "scanner-primary", "fingerprint": "2f76e9f58f445301", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02973b9ffd79a251", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/play/premium/premiumTokens.ts:3"}, "properties": {"repobilityId": "9ba0572698e3f85e", "scanner": "scanner-primary", "fingerprint": "02973b9ffd79a251", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa528553eb66ab6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/play/glossy/cardArtCore.ts:1"}, "properties": {"repobilityId": "ed312b4ad3946b08", "scanner": "scanner-primary", "fingerprint": "aa528553eb66ab6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dadee1bedbed5ac9", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/studio/EmoteRemix.tsx:3"}, "properties": {"repobilityId": "0fe538d3b3e2105e", "scanner": "scanner-primary", "fingerprint": "dadee1bedbed5ac9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6128883ec2c98d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteRemix.tsx:92"}, "properties": {"repobilityId": "3db2774fde6cdc17", "scanner": "scanner-primary", "fingerprint": "b6128883ec2c98d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ff65924f20a6ac1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/studio/EmoteWizard.tsx:89"}, "properties": {"repobilityId": "cb4c896262539d2a", "scanner": "scanner-primary", "fingerprint": "9ff65924f20a6ac1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f981baaced80b22", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/pixel/PixelCoin.tsx:24"}, "properties": {"repobilityId": "d3387f2bb60b0b60", "scanner": "scanner-primary", "fingerprint": "8f981baaced80b22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6620ce11b493825c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/game/GameShell.tsx:50"}, "properties": {"repobilityId": "6052ea40040ee330", "scanner": "scanner-primary", "fingerprint": "6620ce11b493825c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdd6b0c848d2a678", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/admin/ScheduledMessages.tsx:65"}, "properties": {"repobilityId": "2dfe5ab4d98a1590", "scanner": "scanner-primary", "fingerprint": "fdd6b0c848d2a678", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00ed4e4edfbfc05c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/admin/BindingsEditor.tsx:120"}, "properties": {"repobilityId": "36cafb70c4eca096", "scanner": "scanner-primary", "fingerprint": "00ed4e4edfbfc05c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dec9f2d770245039", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/admin/RotationSelector.tsx:6"}, "properties": {"repobilityId": "d2e56aeded9b81c4", "scanner": "scanner-primary", "fingerprint": "dec9f2d770245039", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4298b14c209b1ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/admin/QueueAdmin.tsx:53"}, "properties": {"repobilityId": "3fc942cf80f9200e", "scanner": "scanner-primary", "fingerprint": "b4298b14c209b1ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97a2743d4d279096", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/profile/UsernameCard.tsx:46"}, "properties": {"repobilityId": "2002c926c11809ef", "scanner": "scanner-primary", "fingerprint": "97a2743d4d279096", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ec48f4de3daac40", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/profile/GamertagsCard.tsx:39"}, "properties": {"repobilityId": "690e67946d08de34", "scanner": "scanner-primary", "fingerprint": "1ec48f4de3daac40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e77d8b0abdcb4820", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/profile/PublicProfileCard.tsx:55"}, "properties": {"repobilityId": "280b141d7ae3b211", "scanner": "scanner-primary", "fingerprint": "e77d8b0abdcb4820", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1d180254c007586", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/profile/CheckinCardCustomizer.tsx:208"}, "properties": {"repobilityId": "b3ec90f44048d414", "scanner": "scanner-primary", "fingerprint": "c1d180254c007586", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fc26c6e79869b61", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/profile/ProfileCompletionMeter.tsx:140"}, "properties": {"repobilityId": "d4de19a27bef8830", "scanner": "scanner-primary", "fingerprint": "8fc26c6e79869b61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-feec64a01e8e34b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/profile/ProfileCompletionMeter.tsx:82"}, "properties": {"repobilityId": "4321c23777cf9d28", "scanner": "scanner-primary", "fingerprint": "feec64a01e8e34b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f7f74787940402a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/friends/FriendsHub.tsx:70"}, "properties": {"repobilityId": "3852ee5466357ebe", "scanner": "scanner-primary", "fingerprint": "9f7f74787940402a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13f24409b8fc5ef8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/home/HomeScheduleStrip.tsx:13"}, "properties": {"repobilityId": "c50d763bc701ac00", "scanner": "scanner-primary", "fingerprint": "13f24409b8fc5ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf49d970c8cddea4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/home/LatestYouTubeCard.tsx:59"}, "properties": {"repobilityId": "75434f4923d61f77", "scanner": "scanner-primary", "fingerprint": "cf49d970c8cddea4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7a3456839cbcae3f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/community/DiscordChat.tsx:177"}, "properties": {"repobilityId": "36a1a02ff88daf11", "scanner": "scanner-primary", "fingerprint": "7a3456839cbcae3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b9ff550bc867fb2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/DiscordChat.tsx:470"}, "properties": {"repobilityId": "9b1a566e7f9e6ce1", "scanner": "scanner-primary", "fingerprint": "6b9ff550bc867fb2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e58099a13663da69", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/community/StarboardWall.tsx:29"}, "properties": {"repobilityId": "78614b1f5a74df1b", "scanner": "scanner-primary", "fingerprint": "e58099a13663da69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c050a8f856903db5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/community/WeeklyChallenge.tsx:106"}, "properties": {"repobilityId": "1cd8a0a8bd2e190d", "scanner": "scanner-primary", "fingerprint": "c050a8f856903db5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-84141ebc4fb6a57b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/funnel/OnboardingQuest.tsx:79"}, "properties": {"repobilityId": "9f603c51f7a9ef3b", "scanner": "scanner-primary", "fingerprint": "84141ebc4fb6a57b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8300ea178aaf1cc", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/funnel/ReferralCard.tsx:28"}, "properties": {"repobilityId": "9af1ea78f57ff30d", "scanner": "scanner-primary", "fingerprint": "c8300ea178aaf1cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-242aad43fce1c5c4", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/schedule/VoteCastPanel.tsx:13"}, "properties": {"repobilityId": "9ab1672e84702db0", "scanner": "scanner-primary", "fingerprint": "242aad43fce1c5c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc4a985bcee97c9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/icons/AquiloIcons.tsx:82"}, "properties": {"repobilityId": "74a7cad984fd9fe8", "scanner": "scanner-primary", "fingerprint": "bc4a985bcee97c9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e0311a22b1fcddc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/boltbound.ts:16"}, "properties": {"repobilityId": "683204bee115a4ba", "scanner": "scanner-primary", "fingerprint": "6e0311a22b1fcddc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf80411185e39c18", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/boltbound.ts:3"}, "properties": {"repobilityId": "6f0a7e2427702e02", "scanner": "scanner-primary", "fingerprint": "cf80411185e39c18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d2d29fd59e50c42", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/og.tsx:1"}, "properties": {"repobilityId": "0dd777702653ce9c", "scanner": "scanner-primary", "fingerprint": "0d2d29fd59e50c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-344eb50849da99f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/checkinBackgrounds.ts:7"}, "properties": {"repobilityId": "cb9809fc099f1288", "scanner": "scanner-primary", "fingerprint": "344eb50849da99f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65814a8a0f7cb59b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/boltboundSpire.ts:3"}, "properties": {"repobilityId": "cc578b202aa3b5ad", "scanner": "scanner-primary", "fingerprint": "65814a8a0f7cb59b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-640b6e40d870bf60", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/season.ts:6"}, "properties": {"repobilityId": "5816de90e535c476", "scanner": "scanner-primary", "fingerprint": "640b6e40d870bf60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30cd91295a41d38a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/products.ts:142"}, "properties": {"repobilityId": "ad7c667413e08767", "scanner": "scanner-primary", "fingerprint": "30cd91295a41d38a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00deb4eadabcf2d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/progression.ts:3"}, "properties": {"repobilityId": "72684d5a5b83cf03", "scanner": "scanner-primary", "fingerprint": "00deb4eadabcf2d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee30b44af18e75b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/scheduleMsg.ts:3"}, "properties": {"repobilityId": "0517ef469f0102cb", "scanner": "scanner-primary", "fingerprint": "ee30b44af18e75b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db0bb3f0159237b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/pixelArt.ts:1"}, "properties": {"repobilityId": "6fdd29894579426d", "scanner": "scanner-primary", "fingerprint": "db0bb3f0159237b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c426954ca3092c0a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/boltboundDecks.ts:4"}, "properties": {"repobilityId": "f7a0f64b819fdf75", "scanner": "scanner-primary", "fingerprint": "c426954ca3092c0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14cbe6da2c0876d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audioManifest.ts:272"}, "properties": {"repobilityId": "af3044ccd7aeec59", "scanner": "scanner-primary", "fingerprint": "14cbe6da2c0876d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f05b7ccd44291b7e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/publicProfile.ts:3"}, "properties": {"repobilityId": "4b9ed0b63fca8923", "scanner": "scanner-primary", "fingerprint": "f05b7ccd44291b7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1e232ccf88e6bb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/funnel.ts:212"}, "properties": {"repobilityId": "abbd7f51f8842ec4", "scanner": "scanner-primary", "fingerprint": "e1e232ccf88e6bb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-627e85ee116ce0aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/achievementPins.ts:8"}, "properties": {"repobilityId": "85a63d1a792d8146", "scanner": "scanner-primary", "fingerprint": "627e85ee116ce0aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94bdcd1dca5d9d4e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/boltboundCollectionPrefs.ts:4"}, "properties": {"repobilityId": "27d624786a27a58d", "scanner": "scanner-primary", "fingerprint": "94bdcd1dca5d9d4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c370f8af12fcac6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/usePlaySession.ts:38"}, "properties": {"repobilityId": "3dad56189f94e1e6", "scanner": "scanner-primary", "fingerprint": "1c370f8af12fcac6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-068169ccf181cf6b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/boltboundSpireMap.ts:3"}, "properties": {"repobilityId": "0b3488185ce6cd47", "scanner": "scanner-primary", "fingerprint": "068169ccf181cf6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f2bddf2cd1dc53a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/useFullscreen.ts:98"}, "properties": {"repobilityId": "acdde2b7db75bcae", "scanner": "scanner-primary", "fingerprint": "8f2bddf2cd1dc53a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8e9f52140737499", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/streamCheckin.ts:4"}, "properties": {"repobilityId": "e0a395f604221a4f", "scanner": "scanner-primary", "fingerprint": "e8e9f52140737499", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f3e30b80c82723e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/boltboundSkins.ts:3"}, "properties": {"repobilityId": "8f68bebd0cf38234", "scanner": "scanner-primary", "fingerprint": "7f3e30b80c82723e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37edefb3c7b773e0", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/discordMarkdown.ts:5"}, "properties": {"repobilityId": "14b1bcfe64a4f0c7", "scanner": "scanner-primary", "fingerprint": "37edefb3c7b773e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a265c126cbc8b85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/schedule.ts:1"}, "properties": {"repobilityId": "6b861b6329d514b7", "scanner": "scanner-primary", "fingerprint": "4a265c126cbc8b85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecccd2e52575d3d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/achievementUnlock.ts:3"}, "properties": {"repobilityId": "4e939d63ff501436", "scanner": "scanner-primary", "fingerprint": "ecccd2e52575d3d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7756679e71a4d5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/boltboundLore.ts:1"}, "properties": {"repobilityId": "8b503379dfeb09b0", "scanner": "scanner-primary", "fingerprint": "e7756679e71a4d5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0415a4063a81f5b1", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/usePwaMode.ts:41"}, "properties": {"repobilityId": "6bf213533ca0a193", "scanner": "scanner-primary", "fingerprint": "0415a4063a81f5b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34afe400ea8b69d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/pixel-art.ts:3"}, "properties": {"repobilityId": "8fe3c0cdb4d58192", "scanner": "scanner-primary", "fingerprint": "34afe400ea8b69d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b11ecce2ab0f8a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useVotePublic.ts:43"}, "properties": {"repobilityId": "8ba7cc54b712b2c5", "scanner": "scanner-primary", "fingerprint": "2b11ecce2ab0f8a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79e60bca161e6e6e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/boltbound/heroPowers.ts:4"}, "properties": {"repobilityId": "2ef522c8ce9966e2", "scanner": "scanner-primary", "fingerprint": "79e60bca161e6e6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-474e6edec50cf0cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/schedule.js:3"}, "properties": {"repobilityId": "8b08cae973b7fd53", "scanner": "scanner-primary", "fingerprint": "474e6edec50cf0cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6cc79b8f51df5d6", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/api/changelog.js:3"}, "properties": {"repobilityId": "28ff04c4d1fa7fec", "scanner": "scanner-primary", "fingerprint": "d6cc79b8f51df5d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-521bd665c8e77dcb", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/youtube/latest.js:54"}, "properties": {"repobilityId": "0c4aa96b83fd90f7", "scanner": "scanner-primary", "fingerprint": "521bd665c8e77dcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7ee69d23928c676", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/studio/me.js:3"}, "properties": {"repobilityId": "6c07be87e9d15fcd", "scanner": "scanner-primary", "fingerprint": "d7ee69d23928c676", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0874d81f893c6ea5", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/studio/generate/[[route]].js:10"}, "properties": {"repobilityId": "7e0ffe4ab1e6e88d", "scanner": "scanner-primary", "fingerprint": "0874d81f893c6ea5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d48560df370b1c82", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/studio/admin/usage.js:11"}, "properties": {"repobilityId": "1beb94cbce6924ee", "scanner": "scanner-primary", "fingerprint": "d48560df370b1c82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b7ce27697fbcc82", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/clash/sync/[[route]].js:3"}, "properties": {"repobilityId": "3f00b66f4348e58f", "scanner": "scanner-primary", "fingerprint": "0b7ce27697fbcc82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e723bc1adfcbf9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/admin/schedule.js:3"}, "properties": {"repobilityId": "e937b25128b8e4db", "scanner": "scanner-primary", "fingerprint": "5e723bc1adfcbf9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e213dc052c55127d", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/api/admin/polls/[[route]].js:1"}, "properties": {"repobilityId": "5f3632a989cd2f67", "scanner": "scanner-primary", "fingerprint": "e213dc052c55127d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f78a2b97a048b805", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/admin/boltbound/expansion/[[route]].js:7"}, "properties": {"repobilityId": "8213f96a80596ae8", "scanner": "scanner-primary", "fingerprint": "f78a2b97a048b805", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b928bea6dc5945b", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/admin/games/[[route]].js:109"}, "properties": {"repobilityId": "6a529484d5f087d3", "scanner": "scanner-primary", "fingerprint": "1b928bea6dc5945b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a702a6bbd639761", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/api/admin/tickets/[[route]].js:5"}, "properties": {"repobilityId": "866c47068ac7c0f2", "scanner": "scanner-primary", "fingerprint": "6a702a6bbd639761", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c217c655de6dc61a", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/api/admin/stats/community.js:7"}, "properties": {"repobilityId": "a25ee788f1f302f9", "scanner": "scanner-primary", "fingerprint": "c217c655de6dc61a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5efb93699e4b0dd0", "level": "none", "message": {"text": "Commented-code block (10 lines) in functions/api/community/challenge.js:10"}, "properties": {"repobilityId": "3d962eaf92602162", "scanner": "scanner-primary", "fingerprint": "5efb93699e4b0dd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e6b6b66b5723a3", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/api/community/friends.js:4"}, "properties": {"repobilityId": "9fa259ee01a3360c", "scanner": "scanner-primary", "fingerprint": "e4e6b6b66b5723a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fbcf03ee4cbae99", "level": "none", "message": {"text": "Commented-code block (9 lines) in functions/api/community/voice.js:11"}, "properties": {"repobilityId": "0e93936df559fdc3", "scanner": "scanner-primary", "fingerprint": "0fbcf03ee4cbae99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e393bcf4423d9c30", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/community/chat.js:8"}, "properties": {"repobilityId": "57cd2ce1387c3910", "scanner": "scanner-primary", "fingerprint": "e393bcf4423d9c30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a663a03681b37df", "level": "none", "message": {"text": "Commented-code block (13 lines) in functions/api/community/content.js:23"}, "properties": {"repobilityId": "6e96b426bd84b351", "scanner": "scanner-primary", "fingerprint": "8a663a03681b37df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df264622bc2692a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/community/content.js:70"}, "properties": {"repobilityId": "ddd230e716de230c", "scanner": "scanner-primary", "fingerprint": "df264622bc2692a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc54be3d91b3b601", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/community/patron-of-the-month.js:3"}, "properties": {"repobilityId": "df529afc0f8719f4", "scanner": "scanner-primary", "fingerprint": "fc54be3d91b3b601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dd3c11ec5c64ca5", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/api/community/schedule-public.js:11"}, "properties": {"repobilityId": "ba08a2198b1b57fe", "scanner": "scanner-primary", "fingerprint": "4dd3c11ec5c64ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47e68a90e7ede19b", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/community/live.js:3"}, "properties": {"repobilityId": "f9dcc009e9e125d4", "scanner": "scanner-primary", "fingerprint": "47e68a90e7ede19b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70b0ee893f6d56d1", "level": "none", "message": {"text": "Commented-code block (9 lines) in functions/api/community/profile/[userId].js:3"}, "properties": {"repobilityId": "ac91eba282889c87", "scanner": "scanner-primary", "fingerprint": "70b0ee893f6d56d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f342caf1f6835ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/builds/[[route]].js:3"}, "properties": {"repobilityId": "2667e13cf5bd24d0", "scanner": "scanner-primary", "fingerprint": "6f342caf1f6835ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c0157ca4101455d", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/twitch/login.js:3"}, "properties": {"repobilityId": "4ea857337efab971", "scanner": "scanner-primary", "fingerprint": "5c0157ca4101455d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-132a317e942f3afc", "level": "none", "message": {"text": "Commented-code block (9 lines) in functions/api/twitch/live.js:10"}, "properties": {"repobilityId": "cb632f9fe351076a", "scanner": "scanner-primary", "fingerprint": "132a317e942f3afc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-641a1fb1093a5f44", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/link/[[route]].js:12"}, "properties": {"repobilityId": "3af9275fe8dc2acb", "scanner": "scanner-primary", "fingerprint": "641a1fb1093a5f44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81b1440c3384a249", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/api/push/[[route]].js:3"}, "properties": {"repobilityId": "b09b0c86f30fcf02", "scanner": "scanner-primary", "fingerprint": "81b1440c3384a249", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-339432f25f82802e", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/push/external.js:3"}, "properties": {"repobilityId": "c4f88696364b784b", "scanner": "scanner-primary", "fingerprint": "339432f25f82802e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bf59f0fa3698b88", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/api/web/season/[[route]].js:6"}, "properties": {"repobilityId": "462c8d46b123265e", "scanner": "scanner-primary", "fingerprint": "2bf59f0fa3698b88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-568fb6ba74521a2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/web/play/[[route]].js:33"}, "properties": {"repobilityId": "74dd1e8fa89f19e7", "scanner": "scanner-primary", "fingerprint": "568fb6ba74521a2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20e353512b8104a7", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/api/web/boltbound/[[route]].js:30"}, "properties": {"repobilityId": "cb5d690ea04c37a1", "scanner": "scanner-primary", "fingerprint": "20e353512b8104a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f741a5cb333caef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/web/boltbound/[[route]].js:180"}, "properties": {"repobilityId": "78c04840980c2f5b", "scanner": "scanner-primary", "fingerprint": "8f741a5cb333caef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-021e66570529b4e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/background.js:3"}, "properties": {"repobilityId": "1494371e653a6908", "scanner": "scanner-primary", "fingerprint": "021e66570529b4e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad798b958ea3692d", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/backgrounds.js:3"}, "properties": {"repobilityId": "d09d425c0c70f19e", "scanner": "scanner-primary", "fingerprint": "ad798b958ea3692d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3b8540a6b08e470", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/api/web/checkin/[[route]].js:6"}, "properties": {"repobilityId": "8966dd2c9c5a5a4f", "scanner": "scanner-primary", "fingerprint": "a3b8540a6b08e470", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab235425cd1a21a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/web/checkin/user-background.js:3"}, "properties": {"repobilityId": "d0687f49d7a20fa7", "scanner": "scanner-primary", "fingerprint": "ab235425cd1a21a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-828e96766ee5221b", "level": "none", "message": {"text": "Commented-code block (16 lines) in functions/api/web/chat/[[route]].js:6"}, "properties": {"repobilityId": "4134636aca167152", "scanner": "scanner-primary", "fingerprint": "828e96766ee5221b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be20895e5a49ae20", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/api/web/tournaments/signup.js:11"}, "properties": {"repobilityId": "1048c9831564f9a8", "scanner": "scanner-primary", "fingerprint": "be20895e5a49ae20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0343767f00417608", "level": "none", "message": {"text": "Commented-code block (8 lines) in functions/p/[userId].js:3"}, "properties": {"repobilityId": "5531ecc50f89485c", "scanner": "scanner-primary", "fingerprint": "0343767f00417608", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52a3e0db39ee2c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/_lib/schedule.js:3"}, "properties": {"repobilityId": "4e02c3aaaae51e86", "scanner": "scanner-primary", "fingerprint": "52a3e0db39ee2c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bda71ffdcb6b72dd", "level": "none", "message": {"text": "Commented-code block (10 lines) in functions/_lib/checkin-backgrounds.js:6"}, "properties": {"repobilityId": "1cf683c08de10ed2", "scanner": "scanner-primary", "fingerprint": "bda71ffdcb6b72dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71350f5ba8509722", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/_lib/web-play.js:72"}, "properties": {"repobilityId": "8744f031176065e4", "scanner": "scanner-primary", "fingerprint": "71350f5ba8509722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c13463e70d7b793", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/_lib/vault-bridge.js:4"}, "properties": {"repobilityId": "449da3aa360519e4", "scanner": "scanner-primary", "fingerprint": "6c13463e70d7b793", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9a4a005ed901e3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in functions/_lib/push.js:15"}, "properties": {"repobilityId": "37425283b245609d", "scanner": "scanner-primary", "fingerprint": "b9a4a005ed901e3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05e41cc9f5745923", "level": "none", "message": {"text": "Commented-code block (7 lines) in functions/_lib/studio.js:17"}, "properties": {"repobilityId": "ad1191fe9bc4d931", "scanner": "scanner-primary", "fingerprint": "05e41cc9f5745923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79c9f35e850a68e1", "level": "none", "message": {"text": "Commented-code block (31 lines) in public/sw.js:63"}, "properties": {"repobilityId": "2fb98fde4ba2f5f4", "scanner": "scanner-primary", "fingerprint": "79c9f35e850a68e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffbb6bfb2f084241", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:310"}, "properties": {"repobilityId": "4a57e66988eb01c2", "scanner": "scanner-primary", "fingerprint": "ffbb6bfb2f084241", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-188dfc31e8b34ee0", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/sf/overlay/sf-badges.js:63"}, "properties": {"repobilityId": "f0c2b653a7b6e90b", "scanner": "scanner-primary", "fingerprint": "188dfc31e8b34ee0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16d4adf0adf6c338", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/sf/overlay/sf-emotes.js:111"}, "properties": {"repobilityId": "2347898fee5dac6a", "scanner": "scanner-primary", "fingerprint": "16d4adf0adf6c338", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32ab4760219cd0e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/sf/overlay/sf-direct.js:32"}, "properties": {"repobilityId": "2e5fab9733cd3163", "scanner": "scanner-primary", "fingerprint": "32ab4760219cd0e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a055d5535815b6fd", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/sf/overlay/sf-bridge.js:110"}, "properties": {"repobilityId": "ef227f6d5bcef233", "scanner": "scanner-primary", "fingerprint": "a055d5535815b6fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50dfb60d09d24d65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/overlay/sf-bridge.js:276"}, "properties": {"repobilityId": "d5fcfa10e5b0b806", "scanner": "scanner-primary", "fingerprint": "50dfb60d09d24d65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ad47868bb4124c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/sf/customize/customize.js:30"}, "properties": {"repobilityId": "95a646e00cfdfa64", "scanner": "scanner-primary", "fingerprint": "3ad47868bb4124c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e914847512cd3685", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sf/customize/customize.js:730"}, "properties": {"repobilityId": "4fc1ee7dbab5631c", "scanner": "scanner-primary", "fingerprint": "e914847512cd3685", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e5d0286f8713fa4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/overlay/sd-watch.js:26"}, "properties": {"repobilityId": "811b2889fb5e1c5e", "scanner": "scanner-primary", "fingerprint": "6e5d0286f8713fa4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1d76a37e0cface78", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/scratchdrop/overlay/overlay.js:267"}, "properties": {"repobilityId": "801775d74ac1e7ed", "scanner": "scanner-primary", "fingerprint": "1d76a37e0cface78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1d33e7a7de27c2b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/customize.js:1017"}, "properties": {"repobilityId": "44155850143f77f7", "scanner": "scanner-primary", "fingerprint": "f1d33e7a7de27c2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2364e15f6306e668", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/scratchdrop/customize/sd-emotes.js:17"}, "properties": {"repobilityId": "e4fb58b3f133dc81", "scanner": "scanner-primary", "fingerprint": "2364e15f6306e668", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-656ee678bfd1f26c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/pc-connect.js:177"}, "properties": {"repobilityId": "b18cbcd7621d02d3", "scanner": "scanner-primary", "fingerprint": "656ee678bfd1f26c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6a5fd7a368ed6a44", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/overlay/overlay.js:235"}, "properties": {"repobilityId": "47698ae41b7478a6", "scanner": "scanner-primary", "fingerprint": "6a5fd7a368ed6a44", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bab52fecca934658", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/customize/customize.js:114"}, "properties": {"repobilityId": "c38593a44919f7cc", "scanner": "scanner-primary", "fingerprint": "bab52fecca934658", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0bb2aec83afdbc9d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/punchcard/card/card-editor.js:53"}, "properties": {"repobilityId": "6d1df5ad19196dad", "scanner": "scanner-primary", "fingerprint": "0bb2aec83afdbc9d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-36a60401f6c028ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/twitch-panel/panel-sprites.js:1023"}, "properties": {"repobilityId": "6461bcdac52ec735", "scanner": "scanner-primary", "fingerprint": "36a60401f6c028ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dc422fee989906c", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/twitch-panel/panel.js:52"}, "properties": {"repobilityId": "f150d9f44747ced4", "scanner": "scanner-primary", "fingerprint": "5dc422fee989906c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e189ec0bcac5bda1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/twitch-panel/panel.js:633"}, "properties": {"repobilityId": "9736b78c4d4c71dd", "scanner": "scanner-primary", "fingerprint": "e189ec0bcac5bda1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d957df7f29fdb4e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/overlay/overlay.js:102"}, "properties": {"repobilityId": "693bf3953f3c2199", "scanner": "scanner-primary", "fingerprint": "d957df7f29fdb4e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f759d1b00c46b27", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/partyup/dock/dock.js:86"}, "properties": {"repobilityId": "96f726b01f00f504", "scanner": "scanner-primary", "fingerprint": "6f759d1b00c46b27", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9a180b326b33602e", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/sf-demo/web-demo-bootstrap.js:36"}, "properties": {"repobilityId": "5b6be24b74dc4fd2", "scanner": "scanner-primary", "fingerprint": "9a180b326b33602e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d36f261452f272b9", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/personal-overlays/follow/themes/_generic.js:1"}, "properties": {"repobilityId": "0ec240075a871854", "scanner": "scanner-primary", "fingerprint": "d36f261452f272b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94beec93b78ff459", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/workshop/workshop.js:88"}, "properties": {"repobilityId": "da54cf8d058def08", "scanner": "scanner-primary", "fingerprint": "94beec93b78ff459", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6631498aff2bac5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/overlay/pd-watch.js:26"}, "properties": {"repobilityId": "e506603b76af77df", "scanner": "scanner-primary", "fingerprint": "6631498aff2bac5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cd73c9b138d8ae1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/powerdeck/customize/customize.js:239"}, "properties": {"repobilityId": "aeea3b84f9ee848e", "scanner": "scanner-primary", "fingerprint": "6cd73c9b138d8ae1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c39ba0775df47e51", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/assets/test-send.js:46"}, "properties": {"repobilityId": "2128312fb98653c5", "scanner": "scanner-primary", "fingerprint": "c39ba0775df47e51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f4dc789ecd75a10b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "874bdd4f183106e1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}