{"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-e305d90a0ee661c9", "name": "Possibly dead Python function: commit_push", "shortDescription": {"text": "Possibly dead Python function: commit_push"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03265687ebc0b0ef", "name": "Possibly dead Python function: driver_hero_body", "shortDescription": {"text": "Possibly dead Python function: driver_hero_body"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8829fe4cbb8343c5", "name": "Possibly dead Python function: composite", "shortDescription": {"text": "Possibly dead Python function: composite"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7431461bcb6a2c1d", "name": "Possibly dead Python function: head_mask", "shortDescription": {"text": "Possibly dead Python function: head_mask"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3203ed7414b955f", "name": "Possibly dead Python function: chest_mask", "shortDescription": {"text": "Possibly dead Python function: chest_mask"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef512d358dcb0b89", "name": "Possibly dead Python function: weapon_mask", "shortDescription": {"text": "Possibly dead Python function: weapon_mask"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bef401b5267ddc56", "name": "Possibly dead Python function: render_one", "shortDescription": {"text": "Possibly dead Python function: render_one"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c19df129eed0d565", "name": "Possibly dead Python function: phase_heroes", "shortDescription": {"text": "Possibly dead Python function: phase_heroes"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-650b662e30536906", "name": "Possibly dead Python function: phase_gear", "shortDescription": {"text": "Possibly dead Python function: phase_gear"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-228d9577101c6bf2", "name": "Possibly dead Python function: phase_clash", "shortDescription": {"text": "Possibly dead Python function: phase_clash"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e4b6281855b3c70", "name": "Possibly dead Python function: phase_pets", "shortDescription": {"text": "Possibly dead Python function: phase_pets"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0771191b0498cf15", "name": "Possibly dead Python function: now_ms", "shortDescription": {"text": "Possibly dead Python function: now_ms"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b9cdfebcf9e178e", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e099102db6429d0", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-383594bad247caf5", "name": "Possibly dead Python function: logout", "shortDescription": {"text": "Possibly dead Python function: logout"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a1dfac7f4d6b647", "name": "Possibly dead Python function: serve", "shortDescription": {"text": "Possibly dead Python function: serve"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d03ca10f96769e54", "name": "Stray `console.log` in TS/JS \u2014 discord-bot/register-commands.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/register-commands.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b427053e7553acb", "name": "Stray `console.log` in TS/JS \u2014 discord-bot/worker.js:1296", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/worker.js:1296"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75883be09993eaa4", "name": "Stray `console.log` in TS/JS \u2014 discord-bot/twitch-eventsub.js:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/twitch-eventsub.js:177"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa2284c9b75cd700", "name": "Stray `console.log` in TS/JS \u2014 discord-bot/aquilo/trivia.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/aquilo/trivia.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34e3fbca1cfec03c", "name": "Insecure pattern 'cors_wildcard' in discord-bot/ext.js:54", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext.js:54"}, "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-e4f85cda4dc513cd", "name": "Insecure pattern 'cors_wildcard' in discord-bot/schedule.js:297", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/schedule.js:297"}, "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-8cb64803167d9f86", "name": "Insecure pattern 'cors_wildcard' in discord-bot/scratch-off.js:336", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/scratch-off.js:336"}, "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-bf221de218ebca3a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/death-counter.js:184", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/death-counter.js:184"}, "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-cd78b2eb021c0033", "name": "Insecure pattern 'cors_wildcard' in discord-bot/community.js:20", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/community.js:20"}, "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-6e2e802f40047f41", "name": "Insecure pattern 'cors_wildcard' in discord-bot/friends.js:25", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/friends.js:25"}, "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-edb8218517c46bc9", "name": "Insecure pattern 'cors_wildcard' in discord-bot/activity-feed.js:179", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/activity-feed.js:179"}, "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-89115cc0efbb73d0", "name": "Insecure pattern 'cors_wildcard' in discord-bot/partyup.js:24", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/partyup.js:24"}, "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-4e6aef6bf1a540ba", "name": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-emotes.js:153", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-emotes.js:153"}, "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-8767d1c89e4ed42a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/spire-map.js:633", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/spire-map.js:633"}, "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-75a1dd8773dfba7a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/ext-quick.js:47", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-quick.js:47"}, "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-7f9f974cd9f79f85", "name": "Insecure pattern 'cors_wildcard' in discord-bot/ext-shared.js:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-shared.js:5"}, "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-8bc340993cc6b40a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/cards-web.js:186", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/cards-web.js:186"}, "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-02ffaa0d1efcaa1a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-replays-rx.js:198", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-replays-rx.js:198"}, "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-e502425a4a93ddab", "name": "Insecure pattern 'cors_wildcard' in discord-bot/powerdeck.js:26", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/powerdeck.js:26"}, "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-78151cc99eb9c4ef", "name": "Insecure pattern 'cors_wildcard' in discord-bot/challenges.js:392", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/challenges.js:392"}, "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-eacc8fb34a10e60a", "name": "Insecure pattern 'cors_wildcard' in discord-bot/character.js:214", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/character.js:214"}, "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-15fd31c1405af5bf", "name": "Insecure pattern 'cors_wildcard' in discord-bot/worker.js:767", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/worker.js:767"}, "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-87389cccba82b803", "name": "Insecure pattern 'cors_wildcard' in discord-bot/lfg.js:229", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/lfg.js:229"}, "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-67ec8158aa9331d6", "name": "Insecure pattern 'cors_wildcard' in discord-bot/ext-bets.js:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-bets.js:23"}, "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-196e10bcd7795b9f", "name": "Insecure pattern 'cors_wildcard' in discord-bot/activity-do.js:73", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/activity-do.js:73"}, "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-cffd399e660c3912", "name": "Insecure pattern 'cors_wildcard' in discord-bot/punchcard.js:41", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/punchcard.js:41"}, "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-3737c828869ea685", "name": "Insecure pattern 'cors_wildcard' in discord-bot/sf-community.js:464", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/sf-community.js:464"}, "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-74d31abcab45f58b", "name": "Insecure pattern 'cors_wildcard' in discord-bot/sfdock.js:16", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/sfdock.js:16"}, "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-d2f786c82b7e4c4b", "name": "Insecure pattern 'cors_wildcard' in discord-bot/daily-quests.js:489", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/daily-quests.js:489"}, "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-c74ce5fa8733b819", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-arena-polish-fx.py:33", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-arena-polish-fx.py:33"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed33514d3897cf79", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/rembg-pipeline.py:158", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/rembg-pipeline.py:158"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b76d5b14987ac0d", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/fix-card-brand-A.py:30", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/fix-card-brand-A.py:30"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-362ae0df25eba9e8", "name": "Insecure pattern 'node_child_process' in discord-bot/tools/post-schedule-poll.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-schedule-poll.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e52b0d8ea8d3eeb", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gear-worn-overlay-pipeline.py:253", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gear-worn-overlay-pipeline.py:253"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc5c7c758510f218", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/overhaul-upload.py:84", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/overhaul-upload.py:84"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d7f21d2aab6f160", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-pixel-art-v9.py:96", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-pixel-art-v9.py:96"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ed15dd601c95b82", "name": "Insecure pattern 'node_child_process' in discord-bot/tools/post-cvn-poll.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-cvn-poll.mjs:10"}, "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-2724fc0f678bfe24", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/bulk-regen-cards.py:73", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/bulk-regen-cards.py:73"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec9bf2b5075ea84c", "name": "Insecure pattern 'node_child_process' in discord-bot/tools/repoint-global-art-cachebust.mjs:30", "shortDescription": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/repoint-global-art-cachebust.mjs:30"}, "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-e48b298dac47d6f0", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gen-expansion-art.py:97", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gen-expansion-art.py:97"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1d1cd33703481e81", "name": "Insecure pattern 'node_child_process' in discord-bot/tools/xp-checkin-reset.mjs:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/xp-checkin-reset.mjs:22"}, "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-e01105d801e937e8", "name": "Insecure pattern 'node_child_process' in discord-bot/tools/post-announcement.mjs:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-announcement.mjs:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d4d6541d061dd31", "name": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-damage-numbers.py:39", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-damage-numbers.py:39"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3dcdb493c80e5057", "name": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/worker.js:358", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/worker.js:358"}, "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-8c912fb53b1ade75", "name": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/today-game.js:107", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/today-game.js:107"}, "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-2a1cea8e2e45bd58", "name": "Insecure pattern 'cors_wildcard' in discord-bot/progression/http.js:29", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/progression/http.js:29"}, "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-0943f31de8d8eff6", "name": "Insecure pattern 'cors_wildcard' in aquilo-gg/worker/loadout-link-worker.js:48", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in aquilo-gg/worker/loadout-link-worker.js:48"}, "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-f0ac438a65e09fe8", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/link/main.js:140", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/link/main.js:140"}, "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-e2e4e725f95022ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/starting-soon/main.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/starting-soon/main.js:46"}, "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-43b41ae5cd56e03f", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/recap/main.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/recap/main.js:40"}, "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-017d300e0ca740d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/clash/main.js:144", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/clash/main.js:144"}, "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-db9a8ae7bcd742f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/follow-minecraft/index.html:286", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/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-30eb0364d85739db", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/tanks/main.js:131", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/tanks/main.js:131"}, "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-0542d783cf00eac2", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/minigames/main.js:62", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/minigames/main.js:62"}, "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-70c4ebabf8eb1c10", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/check-in/main.js:79", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/check-in/main.js:79"}, "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-19769f51a2604c9c", "name": "Insecure pattern 'new_function_used' in aquilo-gg/overlays/hangman/selftest.mjs:12", "shortDescription": {"text": "Insecure pattern 'new_function_used' in aquilo-gg/overlays/hangman/selftest.mjs:12"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e0f6a2daafc0d53c", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/hangman/main.js:216", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/hangman/main.js:216"}, "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-dbce86a8cc5d0b8f", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/commands/main.js:158", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/commands/main.js:158"}, "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-bb925090aea05ca3", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/viewer/main.js:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/viewer/main.js:95"}, "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-55cfe267afbda52c", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/gift-jar/main.js:719", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/gift-jar/main.js:719"}, "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-3df00d24d3612afb", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/counters/main.js:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/counters/main.js:60"}, "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-6d3fa616a031c72c", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/apex/main.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/apex/main.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11ee0dbd16cd5b8b", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/goals/main.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/goals/main.js:30"}, "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-1730d959eca53ed2", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/_shared/test-listener.js:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/_shared/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-dcbbcb323d133f7f", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/follow-gwyf/index.html:296", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/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-00a6795c65ad85b2", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/bolts/main.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/bolts/main.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-80a0c5895f18ca6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/compact/main.js:277", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/compact/main.js:277"}, "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-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ba9bfab5f283202", "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-c48b305478774801", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "softprops/action-gh-release@v2 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": "medium", "confidence": 1.0}}, {"id": "scanner-4444bd32c210ccfa", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b24f84d52ba6505", "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-9eb004c4dddc39d5", "name": "Very large file: discord-bot/scratch-off.js (1385 lines)", "shortDescription": {"text": "Very large file: discord-bot/scratch-off.js (1385 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-672244d31226da61", "name": "Very large file: discord-bot/stocks.js (1326 lines)", "shortDescription": {"text": "Very large file: discord-bot/stocks.js (1326 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-ea7e834bc00b8f30", "name": "Very large file: discord-bot/cards-web.js (1136 lines)", "shortDescription": {"text": "Very large file: discord-bot/cards-web.js (1136 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-b459073eb07890a9", "name": "Very large file: discord-bot/card-text-overrides.js (1105 lines)", "shortDescription": {"text": "Very large file: discord-bot/card-text-overrides.js (1105 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-fb2f51a05e858eec", "name": "Very large file: discord-bot/character.js (1335 lines)", "shortDescription": {"text": "Very large file: discord-bot/character.js (1335 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-32946eeed517be75", "name": "Very large file: discord-bot/worker.js (6794 lines)", "shortDescription": {"text": "Very large file: discord-bot/worker.js (6794 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-282163a32c912abb", "name": "Very large file: discord-bot/onboarding.js (1239 lines)", "shortDescription": {"text": "Very large file: discord-bot/onboarding.js (1239 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-2fa5bf4b05878f2b", "name": "Very large file: discord-bot/web.js (1863 lines)", "shortDescription": {"text": "Very large file: discord-bot/web.js (1863 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-7038e9058318d2a6", "name": "Very large file: discord-bot/punchcard.js (1120 lines)", "shortDescription": {"text": "Very large file: discord-bot/punchcard.js (1120 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-e35ff499d958248b", "name": "Very large file: tools/build-clash-unique-buildings.mjs (1059 lines)", "shortDescription": {"text": "Very large file: tools/build-clash-unique-buildings.mjs (1059 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-243ffa66b5d79fd0", "name": "Very large file: tools/build-gear-glossy.mjs (1079 lines)", "shortDescription": {"text": "Very large file: tools/build-gear-glossy.mjs (1079 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-9e5ede95391d5d56", "name": "Very large file: tools/build-character-glossy.mjs (1334 lines)", "shortDescription": {"text": "Very large file: tools/build-character-glossy.mjs (1334 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-b2e82c0c8c428228", "name": "Very large file: aquilo-gg/overlays/tanks/main.js (1576 lines)", "shortDescription": {"text": "Very large file: aquilo-gg/overlays/tanks/main.js (1576 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-1417782969a76e01", "name": "Very large file: aquilo-gg/overlays/gift-jar/main.js (2282 lines)", "shortDescription": {"text": "Very large file: aquilo-gg/overlays/gift-jar/main.js (2282 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "52 tests / 389 src (ratio 0.13)."}, "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 591 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 129 placeholder/mock markers across 53 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ff19924e4353f40", "name": "Commented-code block (5 lines) in discord-bot/quickgames-command.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/quickgames-command.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-2b2300331e16dd36", "name": "Commented-code block (6 lines) in discord-bot/boltbound-dust.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-dust.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-970af6691bf04705", "name": "Commented-code block (8 lines) in discord-bot/ext.js:8", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/ext.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-4302bb0c8797257e", "name": "Commented-code block (6 lines) in discord-bot/banner-wars.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/banner-wars.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-3d570f9aa12851d1", "name": "Commented-code block (5 lines) in discord-bot/cards-fragments.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-fragments.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-8c80331716d5a1ba", "name": "Commented-code block (5 lines) in discord-bot/cards.js:67", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards.js:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-879786c34f9143ec", "name": "Commented-code block (11 lines) in discord-bot/streak-freeze.js:3", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/streak-freeze.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-3dffc038c9e66cd3", "name": "Commented-code block (8 lines) in discord-bot/cards-decks.js:95", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/cards-decks.js:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b98c5bd9e324871e", "name": "Commented-code block (6 lines) in discord-bot/boltbound-stats.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-stats.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-55f43f447674db94", "name": "Commented-code block (10 lines) in discord-bot/cn-vote-hub.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/cn-vote-hub.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-fc8efd64ef6500d8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-vote-hub.js:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-vote-hub.js:81"}, "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-b888bb1352b62504", "name": "Commented-code block (5 lines) in discord-bot/schedule.js:66", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/schedule.js:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d1f70f96fd13225", "name": "Commented-code block (9 lines) in discord-bot/scratch-off.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/scratch-off.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-bc9861d9bedeeedc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scratch-off.js:1284", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scratch-off.js:1284"}, "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-c9e04e90a7166c92", "name": "Commented-code block (5 lines) in discord-bot/lfg-hub.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/lfg-hub.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-ceab179084ad9ef4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/lfg-hub.js:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/lfg-hub.js:134"}, "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-d24e98df3f0648d9", "name": "Commented-code block (10 lines) in discord-bot/quests.js:6", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/quests.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-5be90eb17daaf4d1", "name": "Commented-code block (5 lines) in discord-bot/queue.js:21", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/queue.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d96ae9fc1efc1e53", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/queue.js:461", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/queue.js:461"}, "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-7c4abe7df1b977e5", "name": "Commented-code block (8 lines) in discord-bot/death-counter.js:8", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/death-counter.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-7b93dda654816781", "name": "Commented-code block (5 lines) in discord-bot/community.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/community.js:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29f66965b0b78723", "name": "Commented-code block (6 lines) in discord-bot/boardgames-checkers.js:10", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boardgames-checkers.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-613cd6446c610d68", "name": "Commented-code block (6 lines) in discord-bot/card-effects-backfill.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/card-effects-backfill.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-e017a78ad32b6af6", "name": "Commented-code block (5 lines) in discord-bot/cards-state.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-state.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-974fa7cb0be21fc3", "name": "Commented-code block (5 lines) in discord-bot/live-status-embed.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/live-status-embed.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-10ef45adc4c50058", "name": "Commented-code block (5 lines) in discord-bot/boltbound-rooms.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-rooms.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-c6a3c42586b2611d", "name": "Commented-code block (5 lines) in discord-bot/boardgames-connect4.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-connect4.js: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-1fcc729265ac6a37", "name": "Commented-code block (5 lines) in discord-bot/boltbound-login.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-login.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-3029c98a4025c57d", "name": "Commented-code block (5 lines) in discord-bot/ext-tier1.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/ext-tier1.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-ce31772e39d9b85a", "name": "Commented-code block (28 lines) in discord-bot/loadout-menu.js:10", "shortDescription": {"text": "Commented-code block (28 lines) in discord-bot/loadout-menu.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-88fb669a079b6c57", "name": "Commented-code block (7 lines) in discord-bot/widget-presets.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/widget-presets.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-8cdc9b9fbf2d7408", "name": "Commented-code block (5 lines) in discord-bot/command-bindings.js:40", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/command-bindings.js:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c40e7f8d3f5e81c1", "name": "Commented-code block (5 lines) in discord-bot/ext-panelbridge.js:47", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/ext-panelbridge.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e271272fb154aee", "name": "Commented-code block (5 lines) in discord-bot/spire.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/spire.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-44c366261bc081fd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/spire.js:473", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/spire.js:473"}, "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-0c6a9f0241cfaa5f", "name": "Commented-code block (5 lines) in discord-bot/level-tier-roles.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/level-tier-roles.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-10632ccf66372c09", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/level-tier-roles.js:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/level-tier-roles.js:99"}, "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-86f181b005d8b24e", "name": "Commented-code block (22 lines) in discord-bot/hub-menu.js:4", "shortDescription": {"text": "Commented-code block (22 lines) in discord-bot/hub-menu.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-78585a05eea5ed39", "name": "Commented-code block (5 lines) in discord-bot/wallet.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/wallet.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-ce71adbda58c760e", "name": "Commented-code block (7 lines) in discord-bot/commands-spec.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/commands-spec.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-4289c77589267b01", "name": "Commented-code block (6 lines) in discord-bot/banners.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/banners.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-ff196958f0184367", "name": "Commented-code block (5 lines) in discord-bot/sf-release.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/sf-release.js: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-3510fb51ecc890db", "name": "Commented-code block (5 lines) in discord-bot/boardgames-ai.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-ai.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-f92b9a8e314f590e", "name": "Commented-code block (8 lines) in discord-bot/gifter-roles.js:8", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/gifter-roles.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-1f7be143ed516671", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/gifter-roles.js:331", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/gifter-roles.js:331"}, "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-463d41c6422276c0", "name": "Commented-code block (6 lines) in discord-bot/cards-dust.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/cards-dust.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-2111f38f73b9e06f", "name": "Commented-code block (6 lines) in discord-bot/stream-checkin.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/stream-checkin.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-646dea0f4119a863", "name": "Commented-code block (5 lines) in discord-bot/stream-events.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/stream-events.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-1596f6946caef56f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/stream-events.js:110", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/stream-events.js:110"}, "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-fb8483695b42f3b5", "name": "Commented-code block (6 lines) in discord-bot/punchcard-streak.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/punchcard-streak.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-48931b4e1f86001d", "name": "Commented-code block (10 lines) in discord-bot/admin-menu.js:17", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/admin-menu.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-a3e79b52b3752ee8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/admin-menu.js:491", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/admin-menu.js:491"}, "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-4a5a883fa5ae75f0", "name": "Commented-code block (6 lines) in discord-bot/friends.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/friends.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-e1f5f5a3d563943d", "name": "Commented-code block (11 lines) in discord-bot/twitch-rewards.js:9", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/twitch-rewards.js: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-5e0e179253359dc9", "name": "Commented-code block (7 lines) in discord-bot/boardgames-tanks.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/boardgames-tanks.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-a16a51e219884522", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/register-commands.js:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/register-commands.js:38"}, "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-836205b55b356cb1", "name": "Commented-code block (6 lines) in discord-bot/rotation.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/rotation.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-377f723093c48361", "name": "Commented-code block (5 lines) in discord-bot/activity-feed.js:49", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/activity-feed.js:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b109478b63d6fa07", "name": "Commented-code block (6 lines) in discord-bot/cards-expansion-bulk.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/cards-expansion-bulk.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-e4bd3215123c5ca2", "name": "Commented-code block (7 lines) in discord-bot/twitch-oauth.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/twitch-oauth.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-6f853597dfbbd5ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-oauth.js:147", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-oauth.js:147"}, "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-54fc2614eecaa949", "name": "Commented-code block (6 lines) in discord-bot/partyup.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/partyup.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-86a511f80503e3ec", "name": "Commented-code block (5 lines) in discord-bot/character-composite.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/character-composite.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-899a02c6f257c19e", "name": "Commented-code block (6 lines) in discord-bot/community-checkin.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/community-checkin.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-175ccd54ada44ade", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/community-checkin.js:369", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/community-checkin.js:369"}, "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-b9506e2150a20b04", "name": "Commented-code block (6 lines) in discord-bot/games.js:10", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/games.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-da35bbd38ff3d06e", "name": "Commented-code block (5 lines) in discord-bot/boltbound-emotes.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-emotes.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-5a8a0c95672af0be", "name": "Commented-code block (6 lines) in discord-bot/spire-map.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/spire-map.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-a1527a3a9c76b845", "name": "Commented-code block (5 lines) in discord-bot/cards-battle.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-battle.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-e3f9963a4f3ad9f8", "name": "Commented-code block (5 lines) in discord-bot/ext-quick.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/ext-quick.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-e4614ec278f07e01", "name": "Commented-code block (11 lines) in discord-bot/boardgames-web.js:3", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/boardgames-web.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-f7b6f0e0b5d505bc", "name": "Commented-code block (8 lines) in discord-bot/stream-bonus.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/stream-bonus.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-446b7d5228d17af3", "name": "Commented-code block (5 lines) in discord-bot/stocks.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/stocks.js: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-3e8ed909497adc5b", "name": "Commented-code block (5 lines) in discord-bot/cards-web.js:216", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-web.js:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15a90b0aa945d3d9", "name": "Commented-code block (5 lines) in discord-bot/boltbound-replays-rx.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-replays-rx.js: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-f85f6c9d55de052d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/vote-hub.js:334", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/vote-hub.js:334"}, "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-2ab0e53c9267f9e5", "name": "Commented-code block (6 lines) in discord-bot/bet.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/bet.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-0393440323331c02", "name": "Commented-code block (5 lines) in discord-bot/cards-expansion.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-expansion.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-a44a6c9a6ebcb483", "name": "Commented-code block (14 lines) in discord-bot/ext-mod.js:10", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/ext-mod.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-fc48d31aa0499bc5", "name": "Commented-code block (5 lines) in discord-bot/png-codec.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/png-codec.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-22f404031b7f6845", "name": "Commented-code block (6 lines) in discord-bot/monthly-cosmetic-grant.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/monthly-cosmetic-grant.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-f114152a08256280", "name": "Commented-code block (11 lines) in discord-bot/scheduled-messages.js:5", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/scheduled-messages.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-88f9f9b2d9581b00", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scheduled-messages.js:290", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scheduled-messages.js:290"}, "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-dfde832b3327d202", "name": "Commented-code block (10 lines) in discord-bot/game-art-finder.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/game-art-finder.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-b610b5b560402731", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/game-art-finder.js:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/game-art-finder.js:37"}, "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-55fa26d58dc3d134", "name": "Commented-code block (7 lines) in discord-bot/cards-packs.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/cards-packs.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-85a9b2a2781d99d4", "name": "Commented-code block (6 lines) in discord-bot/printerbot.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/printerbot.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-0ebcd00dc3e7666c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/printerbot.js:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/printerbot.js:33"}, "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-fbb5e04ff55fa33e", "name": "Commented-code block (6 lines) in discord-bot/overlay-test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/overlay-test.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-76d783162a519314", "name": "Commented-code block (5 lines) in discord-bot/card-art-backfill.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/card-art-backfill.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-85a6dce494be7307", "name": "Commented-code block (8 lines) in discord-bot/push-dm.js:10", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/push-dm.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-0dec611aa962e6e0", "name": "Commented-code block (6 lines) in discord-bot/aether.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aether.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-94a20fd101672709", "name": "Commented-code block (5 lines) in discord-bot/mc-whitelist.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/mc-whitelist.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-83c4633045e0e86d", "name": "Commented-code block (13 lines) in discord-bot/reset-user-data.js:5", "shortDescription": {"text": "Commented-code block (13 lines) in discord-bot/reset-user-data.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-cb2153cefe03e968", "name": "Commented-code block (13 lines) in discord-bot/support-tickets.js:3", "shortDescription": {"text": "Commented-code block (13 lines) in discord-bot/support-tickets.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-47def706072a184b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/support-tickets.js:1085", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/support-tickets.js:1085"}, "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-f3ba9c18739ed84b", "name": "Commented-code block (8 lines) in discord-bot/card-text-overrides.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/card-text-overrides.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-71d84e1387700aba", "name": "Commented-code block (5 lines) in discord-bot/weekly-recap.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/weekly-recap.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-19d76b5c79b547b1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/weekly-recap.js:184", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/weekly-recap.js:184"}, "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-68b0c16bfce4a01e", "name": "Commented-code block (8 lines) in discord-bot/pixel-art-maps.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/pixel-art-maps.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-a7ed7c06de32adf6", "name": "Commented-code block (15 lines) in discord-bot/twitch-events.js:3", "shortDescription": {"text": "Commented-code block (15 lines) in discord-bot/twitch-events.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-a32d3fa6ea55822a", "name": "Commented-code block (8 lines) in discord-bot/ext-lootbox.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/ext-lootbox.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-ec52351a4172e747", "name": "Commented-code block (5 lines) in discord-bot/embeds.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/embeds.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-6e4437eb2dd22cbf", "name": "Commented-code block (19 lines) in discord-bot/boardgames-engine.js:9", "shortDescription": {"text": "Commented-code block (19 lines) in discord-bot/boardgames-engine.js: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-ae5791fde4d2207d", "name": "Commented-code block (11 lines) in discord-bot/temp-vc.js:3", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/temp-vc.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-ac86282cded344d4", "name": "Commented-code block (6 lines) in discord-bot/commands.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/commands.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-b0094f100508631c", "name": "Commented-code block (8 lines) in discord-bot/panel-test.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/panel-test.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-b81ac13b4885489d", "name": "Commented-code block (10 lines) in discord-bot/patreon-link.js:10", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/patreon-link.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-a880980c0186ba89", "name": "Commented-code block (5 lines) in discord-bot/excluded.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/excluded.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-3d40a225b4ae69e3", "name": "Commented-code block (6 lines) in discord-bot/powerdeck.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/powerdeck.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-977730da4f36f033", "name": "Commented-code block (7 lines) in discord-bot/challenges.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/challenges.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-f3a2699a37117fe8", "name": "Commented-code block (8 lines) in discord-bot/welcome.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/welcome.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-3cbf5c375fb8bd11", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/welcome.js:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/welcome.js:61"}, "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-38c6e6d73cbb1a79", "name": "Commented-code block (7 lines) in discord-bot/bolts-feed.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/bolts-feed.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-57b92dbd13db497b", "name": "Commented-code block (5 lines) in discord-bot/character.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/character.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-7383681f7ffc57d4", "name": "Commented-code block (14 lines) in discord-bot/spire-seasons.js:8", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/spire-seasons.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-22621ce7794fdd8c", "name": "Commented-code block (10 lines) in discord-bot/setup-wizard.js:8", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/setup-wizard.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-2cb2c6e8bc6296ba", "name": "Commented-code block (6 lines) in discord-bot/boltbound-arena.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-arena.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-bd54d25907845f78", "name": "Commented-code block (8 lines) in discord-bot/site-games-sync.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/site-games-sync.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-8c956af8fcc71612", "name": "Commented-code block (8 lines) in discord-bot/bot-guard.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/bot-guard.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-db2a9144222537b6", "name": "Commented-code block (5 lines) in discord-bot/hero-powers.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/hero-powers.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-bc25daf13e6e2de5", "name": "Commented-code block (6 lines) in discord-bot/bobbleheads.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/bobbleheads.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-db0b2d3b0e1a6f10", "name": "Legacy-named symbol `handleVoteHubRetireLegacy` in discord-bot/worker.js:417", "shortDescription": {"text": "Legacy-named symbol `handleVoteHubRetireLegacy` in discord-bot/worker.js:417"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f53c150b0c123c22", "name": "Commented-code block (16 lines) in discord-bot/worker.js:7", "shortDescription": {"text": "Commented-code block (16 lines) in discord-bot/worker.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-5a5b0f6a5915c972", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/worker.js:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/worker.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-44de8c0e6d483e17", "name": "Legacy-named symbol `tooOld` in discord-bot/counting-purge.js:76", "shortDescription": {"text": "Legacy-named symbol `tooOld` in discord-bot/counting-purge.js:76"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-730beb7d740d8192", "name": "Commented-code block (8 lines) in discord-bot/counting-purge.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/counting-purge.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-d2438babcb6ae4f7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/counting-purge.js:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/counting-purge.js:30"}, "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-323443a91b38756d", "name": "Commented-code block (5 lines) in discord-bot/chat-relay.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/chat-relay.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-4cac7c9c93d0f825", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/chat-relay.js:136", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/chat-relay.js:136"}, "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-ca702286bfcdfb25", "name": "Commented-code block (5 lines) in discord-bot/boardgames-chess.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-chess.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-a89d367767233d57", "name": "Commented-code block (7 lines) in discord-bot/voice-temp.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/voice-temp.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-700828b85e998838", "name": "Commented-code block (6 lines) in discord-bot/daily-bonus-push.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/daily-bonus-push.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-658a5a3e55a7f0aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/daily-bonus-push.js:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/daily-bonus-push.js:52"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34157dca34ec6224", "name": "Commented-code block (8 lines) in discord-bot/sf-queue.js:19", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/sf-queue.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7c7d9a5e909f5d1", "name": "Commented-code block (6 lines) in discord-bot/cards-match.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/cards-match.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-3ded937e2fa88f73", "name": "Commented-code block (6 lines) in discord-bot/tickets.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/tickets.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-d007b8e6dc78854a", "name": "Commented-code block (5 lines) in discord-bot/tenants.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tenants.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-34b12f0e36e1f3b1", "name": "Commented-code block (6 lines) in discord-bot/admin-web.js:9", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/admin-web.js: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-b5d83ebc8d102c9d", "name": "Commented-code block (6 lines) in discord-bot/hero-state.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/hero-state.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-1f306a2037ff3924", "name": "Commented-code block (7 lines) in discord-bot/channel-hubs.js:275", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/channel-hubs.js:275"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccb1d09690fecef3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/channel-hubs.js:190", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/channel-hubs.js:190"}, "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-3929c61c94c25b90", "name": "Commented-code block (7 lines) in discord-bot/games-menu.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/games-menu.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-0d870edd4d8a1b6c", "name": "Commented-code block (7 lines) in discord-bot/boosters.js:7", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/boosters.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-296f591da4131042", "name": "Commented-code block (5 lines) in discord-bot/onboarding.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/onboarding.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-4595f48154a051bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/onboarding.js:200", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/onboarding.js:200"}, "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-3bf5f9a4e2f747fc", "name": "Commented-code block (5 lines) in discord-bot/gear-art-slugs.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/gear-art-slugs.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-99e7b3879f8a6e79", "name": "Commented-code block (5 lines) in discord-bot/character-backgrounds.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/character-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-e4984cf39b3485fb", "name": "Commented-code block (5 lines) in discord-bot/schedule-rotation.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/schedule-rotation.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-97d9f575a5b96d54", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/schedule-rotation.js:187", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/schedule-rotation.js:187"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6153c3da4ddbdcf9", "name": "Commented-code block (7 lines) in discord-bot/lfg.js:9", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/lfg.js: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-609f1085ecdb8102", "name": "Commented-code block (10 lines) in discord-bot/guild-features.js:12", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/guild-features.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-e14edcb0a979c19f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/guild-features.js:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/guild-features.js:72"}, "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-917db4a0c0dce801", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-list-hub.js:95", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-list-hub.js:95"}, "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-abe91ee1158119aa", "name": "Commented-code block (7 lines) in discord-bot/card-art-remix.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/card-art-remix.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-e758d15700c8d485", "name": "Commented-code block (5 lines) in discord-bot/scratch-challenges.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/scratch-challenges.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-d3808ceb6af4862b", "name": "Commented-code block (6 lines) in discord-bot/boltbound-decks-share.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-decks-share.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-9bb9e8feaff803e7", "name": "Commented-code block (8 lines) in discord-bot/cards-trade.js:7", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/cards-trade.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-ae8332824a3790fd", "name": "Commented-code block (14 lines) in discord-bot/twitch-live.js:1", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/twitch-live.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-79e51dabd4730432", "name": "Commented-code block (10 lines) in discord-bot/referrals.js:4", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/referrals.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-295b06b5b000e1ca", "name": "Commented-code block (6 lines) in discord-bot/patron-of-month.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/patron-of-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-c34d09750ddfcac6", "name": "Commented-code block (6 lines) in discord-bot/ext-bets.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/ext-bets.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-06485cdca2e1d6dc", "name": "Commented-code block (10 lines) in discord-bot/cn-games-roster.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/cn-games-roster.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-6d7a0f339d453c93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-roster.js:233", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-roster.js:233"}, "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-ebabf77f1a283c8a", "name": "Commented-code block (11 lines) in discord-bot/custom-polls.js:6", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/custom-polls.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-6d9a29aa3fc385af", "name": "Commented-code block (5 lines) in discord-bot/boltbound-sets.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-sets.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-241035eb6ec37de6", "name": "Commented-code block (6 lines) in discord-bot/activity-do.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/activity-do.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-931a51d562af5060", "name": "Commented-code block (5 lines) in discord-bot/branding.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/branding.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-1f0f9b9aa833d62a", "name": "Commented-code block (5 lines) in discord-bot/cards-art-override.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-art-override.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-b31687ae0bbf34dd", "name": "Commented-code block (7 lines) in discord-bot/actor-name.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/actor-name.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-51eed8b8cea9081f", "name": "Commented-code block (5 lines) in discord-bot/cards-global-art.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-global-art.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-dfbc4bd3075c8289", "name": "Commented-code block (11 lines) in discord-bot/spire-boss-mechanics.js:3", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/spire-boss-mechanics.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-b2488296b82d8f50", "name": "Commented-code block (5 lines) in discord-bot/twitch-helix.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/twitch-helix.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-7b3f7fa79947e8e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-helix.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-helix.js:71"}, "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-caed7248d7fa8060", "name": "Commented-code block (6 lines) in discord-bot/boltbound-ranked.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-ranked.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-f2b211451294c08b", "name": "Commented-code block (5 lines) in discord-bot/guild-builder.js:71", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/guild-builder.js:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43823ccefb6564d0", "name": "Commented-code block (6 lines) in discord-bot/channel-bindings.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/channel-bindings.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-e5adec3f43af5ede", "name": "Commented-code block (5 lines) in discord-bot/web.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/web.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-28fba1376f09cf19", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/web.js:1068", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/web.js:1068"}, "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-31d510609f0bb7b9", "name": "Commented-code block (5 lines) in discord-bot/push.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/push.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-e680b42420818291", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/push.js:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/push.js:39"}, "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-6394762167d85bf3", "name": "Commented-code block (5 lines) in discord-bot/cards-drops.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-drops.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-c93588e030309356", "name": "Commented-code block (14 lines) in discord-bot/punchcard.js:6", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/punchcard.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-04ac340d775c80e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/punchcard.js:251", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/punchcard.js:251"}, "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-ddf5e1cb75265d4b", "name": "Commented-code block (5 lines) in discord-bot/cards-content.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-content.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-b8f247a7dcf64b40", "name": "Commented-code block (7 lines) in discord-bot/discord-cleanup.js:12", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/discord-cleanup.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-3721fa0701ede0c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/discord-cleanup.js:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/discord-cleanup.js:73"}, "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-9d1d816287b7a6d1", "name": "Commented-code block (5 lines) in discord-bot/ext-loadout.js:45", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/ext-loadout.js: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-0e017008813390bc", "name": "Commented-code block (5 lines) in discord-bot/twitch-eventsub.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/twitch-eventsub.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-ac2b56167164cf09", "name": "Commented-code block (6 lines) in discord-bot/twitch-login-resolver.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/twitch-login-resolver.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-b4e39d4d23e28783", "name": "Commented-code block (7 lines) in discord-bot/tikfinity.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/tikfinity.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-802c11d3582bd1b5", "name": "Commented-code block (5 lines) in discord-bot/achievements-d1.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/achievements-d1.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-0c4eb0e164647db6", "name": "Commented-code block (14 lines) in discord-bot/economy-pace.js:11", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/economy-pace.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-03830826883998cb", "name": "Commented-code block (6 lines) in discord-bot/sf-community.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/sf-community.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-d1ec529c512af7e7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/sfdock.js:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/sfdock.js:39"}, "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-bbedc70897e5cbbb", "name": "Commented-code block (8 lines) in discord-bot/spire-deck.js:11", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/spire-deck.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-e3f5ab711e8a4daf", "name": "Commented-code block (5 lines) in discord-bot/daily-quests.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/daily-quests.js: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-ec09ad8d3102b547", "name": "Commented-code block (5 lines) in discord-bot/games-quick.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/games-quick.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-4f38d1bee7a7b30a", "name": "Commented-code block (10 lines) in discord-bot/ext-patreon-link.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/ext-patreon-link.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-5345a0f4522254ae", "name": "Commented-code block (6 lines) in discord-bot/auth.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/auth.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-a3d528c68f250335", "name": "Commented-code block (9 lines) in discord-bot/profiles.js:7", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/profiles.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-88d655aee749004f", "name": "Commented-code block (10 lines) in discord-bot/twitch-clips.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/twitch-clips.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-d3391b38b349a08d", "name": "Commented-code block (5 lines) in discord-bot/cards-voidborn.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/cards-voidborn.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-919c05a5c4a693cf", "name": "Commented-code block (9 lines) in discord-bot/spire/events/index.js:15", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/spire/events/index.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-34825e8612f74b2c", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-arena-polish-fx.py:33", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-arena-polish-fx.py:33"}, "fullDescription": {"text": "`subprocess.run(...)` 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-5b85b29b92115f58", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/rembg-pipeline.py:188", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/rembg-pipeline.py:188"}, "fullDescription": {"text": "`subprocess.run(...)` 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-05563ef9071ac70b", "name": "Commented-code block (8 lines) in discord-bot/tools/fix-card-brand-A.py:64", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/tools/fix-card-brand-A.py:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-573c6551587b55c8", "name": "Commented-code block (5 lines) in discord-bot/tools/post-schedule-poll.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/post-schedule-poll.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-951c77a90af28bf1", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-card-pipeline-v4.py:160", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-card-pipeline-v4.py:160"}, "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-079ecc0052ddb312", "name": "Commented-code block (6 lines) in discord-bot/tools/discord-cleanup-run.mjs:9", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/tools/discord-cleanup-run.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-94ba9e2a8b784986", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/arena-polish-fx-generator.py:214", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/arena-polish-fx-generator.py:214"}, "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-8583693599656bf3", "name": "Commented-code block (5 lines) in discord-bot/tools/gear-worn-overlay-pipeline.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/gear-worn-overlay-pipeline.py: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-f310b7826f84c121", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-overlay-pipeline.py:140", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-overlay-pipeline.py:140"}, "fullDescription": {"text": "`subprocess.run(...)` 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-2ce026b9ed1eb97a", "name": "Commented-code block (7 lines) in discord-bot/tools/discord-visibility-gate.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/tools/discord-visibility-gate.mjs: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-bffedece82122531", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/follow-overlay-contact-sheet.py:84", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/follow-overlay-contact-sheet.py:84"}, "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-7f034f5e0a4d5abf", "name": "Commented-code block (5 lines) in discord-bot/tools/overhaul-upload.py:79", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/overhaul-upload.py: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-407569703a6f7e2d", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-upload.py:84", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-upload.py:84"}, "fullDescription": {"text": "`subprocess.run(...)` 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-9639a908c8c52e53", "name": "Commented-code block (5 lines) in discord-bot/tools/upload-pixel-art-v9.py:52", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/upload-pixel-art-v9.py: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-d504c348e4ea123b", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-pixel-art-v9.py:66", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-pixel-art-v9.py:66"}, "fullDescription": {"text": "`subprocess.run(...)` 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-6b972b5fbfb73113", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator-v2.py:117", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator-v2.py:117"}, "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-4820b5a875424b73", "name": "Commented-code block (5 lines) in discord-bot/tools/replicate-card-samples.mjs:125", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/replicate-card-samples.mjs:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f3c0cbff57b4bc6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-samples.mjs:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-samples.mjs:58"}, "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-c17b08524829a0b1", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/minigames-pixel-art.py:115", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/minigames-pixel-art.py:115"}, "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-018617fba9965864", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-gwyf-overlay-assets.mjs:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-gwyf-overlay-assets.mjs:48"}, "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-86574fcd25cf4802", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-feasibility.py:70", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-feasibility.py:70"}, "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-d831dcef934128e3", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/bulk-regen-cards.py:145", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/bulk-regen-cards.py:145"}, "fullDescription": {"text": "`subprocess.run(...)` 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-bd9a3d1c64e4c62a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled.mjs:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled.mjs:54"}, "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-2d171ad999350152", "name": "Commented-code block (8 lines) in discord-bot/tools/repoint-global-art-cachebust.mjs:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/tools/repoint-global-art-cachebust.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-c147dc84b7ffac35", "name": "Commented-code block (7 lines) in discord-bot/tools/premium-card-pipeline.py:97", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/tools/premium-card-pipeline.py:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fa6bb7353add1ea", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/premium-card-pipeline.py:140", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/premium-card-pipeline.py:140"}, "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-e7299496a66a9523", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled-retry.mjs:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled-retry.mjs:35"}, "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-6685a893745bfd5d", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gen-expansion-art.py:135", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gen-expansion-art.py:135"}, "fullDescription": {"text": "`subprocess.run(...)` 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-21d4102f8556004b", "name": "Commented-code block (6 lines) in discord-bot/tools/gen-card-effects.mjs:7", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/tools/gen-card-effects.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-1ebe30ac906e4f19", "name": "Commented-code block (6 lines) in discord-bot/tools/overhaul-generate.py:334", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/tools/overhaul-generate.py:334"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9e7669842a37a4e", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-generate.py:69", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-generate.py:69"}, "fullDescription": {"text": "`subprocess.run(...)` 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-ceba03c9d032b4a4", "name": "Commented-code block (7 lines) in discord-bot/tools/xp-checkin-reset.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/tools/xp-checkin-reset.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-9ac8dbee3efda8fb", "name": "Commented-code block (5 lines) in discord-bot/tools/post-announcement.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/tools/post-announcement.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-623cf9b43d334592", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator.py:129", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator.py:129"}, "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-2795de27b848bbf1", "name": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-damage-numbers.py:39", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-damage-numbers.py:39"}, "fullDescription": {"text": "`subprocess.run(...)` 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-d146d5214e2626ca", "name": "Commented-code block (6 lines) in discord-bot/aquilo/rotation-poll.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/rotation-poll.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-8e67e4d98ef3d2fc", "name": "Commented-code block (5 lines) in discord-bot/aquilo/suggestions.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/suggestions.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-3af27522d59f94cc", "name": "Commented-code block (9 lines) in discord-bot/aquilo/checkin-slash.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/aquilo/checkin-slash.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-e73244604b0289a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/checkin-slash.js:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/checkin-slash.js:83"}, "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-8f0e9e5c73a2c81e", "name": "Commented-code block (5 lines) in discord-bot/aquilo/hub.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/hub.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-44e88d9a86122f59", "name": "Commented-code block (5 lines) in discord-bot/aquilo/util.js:214", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/util.js:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acef4dd2424e09b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/util.js:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/util.js:47"}, "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-8830ff13fdffe899", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/products.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/products.js:6"}, "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-cc28edecffc97865", "name": "Commented-code block (7 lines) in discord-bot/aquilo/streak.js:12", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/streak.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-53465ed35b9d6236", "name": "Commented-code block (5 lines) in discord-bot/aquilo/bootstrap.js:29", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/bootstrap.js: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-7833f11c89116425", "name": "Commented-code block (6 lines) in discord-bot/aquilo/community-chat.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/community-chat.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-ed3f5481e0a817d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/community-chat.js:287", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/community-chat.js:287"}, "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-56636df2da89f0bf", "name": "Commented-code block (7 lines) in discord-bot/aquilo/overlay-do.js:14", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/overlay-do.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ff2ae2cc500c62f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/overlay-do.js:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/overlay-do.js:39"}, "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-bf701beec9dbb601", "name": "Commented-code block (6 lines) in discord-bot/aquilo/checkin.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/checkin.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-8367bd8f7ddba8eb", "name": "Commented-code block (8 lines) in discord-bot/aquilo/idle-msgs.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/aquilo/idle-msgs.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-d78d78b98f9baf09", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/spotlight.js:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/spotlight.js:23"}, "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-122c2185cb7ca715", "name": "Commented-code block (5 lines) in discord-bot/aquilo/setup.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/setup.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-bd75b6a2185c0d34", "name": "Commented-code block (7 lines) in discord-bot/aquilo/achievements.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/achievements.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b60cbd5978e8f735", "name": "Commented-code block (14 lines) in discord-bot/aquilo/poll.js:5", "shortDescription": {"text": "Commented-code block (14 lines) in discord-bot/aquilo/poll.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-fc281f629f167aaa", "name": "Commented-code block (6 lines) in discord-bot/aquilo/shop.js:10", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/shop.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-057862b6bdc25ae5", "name": "Commented-code block (5 lines) in discord-bot/aquilo/recap.js:61", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/recap.js:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32dffdee5fb5c184", "name": "Commented-code block (7 lines) in discord-bot/aquilo/viewer-hub.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/viewer-hub.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-ca22a381e305090d", "name": "Commented-code block (6 lines) in discord-bot/aquilo/welcome.js:43", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/welcome.js:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-377d7efe1b3f7b66", "name": "Commented-code block (6 lines) in discord-bot/aquilo/self-roles.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/self-roles.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-16a48200b9899ad4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/self-roles.js:315", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/self-roles.js:315"}, "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-a2cc01158fff9cee", "name": "Commented-code block (5 lines) in discord-bot/aquilo/prompts.js:42", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/prompts.js: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-319d6fa9eebf1234", "name": "Commented-code block (5 lines) in discord-bot/aquilo/song-prequeue.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/song-prequeue.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-9a6264c79d693cc0", "name": "Commented-code block (5 lines) in discord-bot/aquilo/worker.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/worker.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-1ca8dab87ff2fa87", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/worker.js:151", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/worker.js:151"}, "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-107c338fc48cb62c", "name": "Commented-code block (6 lines) in discord-bot/aquilo/tickets.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/tickets.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-b073c80ffa22ecbf", "name": "Commented-code block (5 lines) in discord-bot/aquilo/aq-queue.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/aq-queue.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-036171c377dcfdf1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/notify.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/notify.js: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-d573e77a7cce160c", "name": "Commented-code block (5 lines) in discord-bot/aquilo/self-roles-hub.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/self-roles-hub.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-8a6a399e8ff143ca", "name": "Commented-code block (5 lines) in discord-bot/aquilo/today-game.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/today-game.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-939a998a100f0df7", "name": "Commented-code block (5 lines) in discord-bot/aquilo/countdown.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/countdown.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-ae0bca0bf0a9e7a5", "name": "Commented-code block (11 lines) in discord-bot/aquilo/aq-schedule.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/aquilo/aq-schedule.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-943e4f53ff28a6e2", "name": "Commented-code block (5 lines) in discord-bot/aquilo/counting.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/counting.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-5623930f3d73d3e3", "name": "Commented-code block (5 lines) in discord-bot/aquilo/trivia.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/trivia.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-3bd957f2070c308a", "name": "Commented-code block (9 lines) in discord-bot/aquilo/auth.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/aquilo/auth.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-4d7750ec697b6b3e", "name": "Commented-code block (13 lines) in discord-bot/test/test-scheduled-messages.mjs:3", "shortDescription": {"text": "Commented-code block (13 lines) in discord-bot/test/test-scheduled-messages.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-c4f47018e0e3418a", "name": "Commented-code block (9 lines) in discord-bot/test/test-boltbound-replays-rx.mjs:23", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/test/test-boltbound-replays-rx.mjs: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-5766c9e690eefe8c", "name": "Commented-code block (7 lines) in discord-bot/test/test-cards-skin.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/test/test-cards-skin.mjs: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-6a4270a87bce3547", "name": "Commented-code block (5 lines) in discord-bot/test/test-pvp-combat.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-pvp-combat.mjs: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-daa09ee6eb20934a", "name": "Commented-code block (6 lines) in discord-bot/test/test-scratch-flow.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/test/test-scratch-flow.mjs: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-d8b2d5655641b839", "name": "Commented-code block (5 lines) in discord-bot/test/test-character-avatar.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-character-avatar.mjs: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-14860305bac11fe7", "name": "Commented-code block (5 lines) in discord-bot/test/test-cards-trade.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-cards-trade.mjs: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-dadde171ca412b9a", "name": "Commented-code block (5 lines) in discord-bot/test/test-achievements-d1.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-achievements-d1.mjs: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-6a51325b93ce586b", "name": "Commented-code block (5 lines) in discord-bot/test/test-starter-deck.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-starter-deck.mjs: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-69bd7e9a39b6aad2", "name": "Commented-code block (6 lines) in discord-bot/test/test-pvp-flow.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/test/test-pvp-flow.mjs: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-8af77884c231844a", "name": "Legacy-named symbol `sixHoursOld` in discord-bot/test/test-character-pet.mjs:74", "shortDescription": {"text": "Legacy-named symbol `sixHoursOld` in discord-bot/test/test-character-pet.mjs:74"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18283c5f1f6101c3", "name": "Commented-code block (5 lines) in discord-bot/test/test-checkin-streak.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-checkin-streak.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-67eac49589ce0eb3", "name": "Commented-code block (10 lines) in discord-bot/test/test-hubs-and-schedule.mjs:3", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/test/test-hubs-and-schedule.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-5c4ab9d75a911a3d", "name": "Commented-code block (7 lines) in discord-bot/test/test-bet-settle.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/test/test-bet-settle.mjs: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-1fc1f65f22f9c6f7", "name": "Commented-code block (15 lines) in discord-bot/test/test-onboarding-admin.mjs:5", "shortDescription": {"text": "Commented-code block (15 lines) in discord-bot/test/test-onboarding-admin.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-631611df5dd32e2f", "name": "Commented-code block (13 lines) in discord-bot/test/test-twitch.mjs:4", "shortDescription": {"text": "Commented-code block (13 lines) in discord-bot/test/test-twitch.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-9b36c705b97c0222", "name": "Commented-code block (9 lines) in discord-bot/test/test-vote-hub.mjs:3", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/test/test-vote-hub.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-2ce96e1c29239681", "name": "Commented-code block (9 lines) in discord-bot/test/test-daily-quests.mjs:22", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/test/test-daily-quests.mjs:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00d7524dbf0de6ff", "name": "Commented-code block (11 lines) in discord-bot/test/test-channel-bindings.mjs:3", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/test/test-channel-bindings.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-b2245b6512f77e0b", "name": "Commented-code block (10 lines) in discord-bot/test/test-pet-leveling.mjs:5", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/test/test-pet-leveling.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc24fbbcb508719f", "name": "Commented-code block (8 lines) in discord-bot/test/test-level-tier-roles.mjs:3", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/test/test-level-tier-roles.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-3d9f474618f99073", "name": "Commented-code block (5 lines) in discord-bot/test/test-cards-battle-mechanics.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/test/test-cards-battle-mechanics.mjs: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-9177f11c9de0b0cb", "name": "Commented-code block (10 lines) in discord-bot/test/test-gifter-roles.mjs:4", "shortDescription": {"text": "Commented-code block (10 lines) in discord-bot/test/test-gifter-roles.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-96da0a7e79fe6dc1", "name": "Commented-code block (6 lines) in discord-bot/test/test-prelaunch-batch.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/test/test-prelaunch-batch.mjs: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-1505bee25bc6cf32", "name": "Commented-code block (11 lines) in discord-bot/test/test-hero-death.mjs:5", "shortDescription": {"text": "Commented-code block (11 lines) in discord-bot/test/test-hero-death.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2766162662482974", "name": "Commented-code block (16 lines) in discord-bot/test/test-onboarding.mjs:3", "shortDescription": {"text": "Commented-code block (16 lines) in discord-bot/test/test-onboarding.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-08a7150b81c7b60e", "name": "Commented-code block (7 lines) in discord-bot/test/test-checkin-embed.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/test/test-checkin-embed.mjs: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-1ea51b93e426fd1f", "name": "Commented-code block (5 lines) in discord-bot/progression/linking.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/progression/linking.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-e06854ea120137fb", "name": "Commented-code block (6 lines) in discord-bot/progression/profile.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in discord-bot/progression/profile.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-b529e61fce4a8dd3", "name": "Commented-code block (5 lines) in discord-bot/progression/event-bus.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/progression/event-bus.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-f2b791322d62663d", "name": "Commented-code block (5 lines) in discord-bot/progression/achievements.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/progression/achievements.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-6de43aa29a605756", "name": "Commented-code block (16 lines) in discord-bot/progression/achievements-catalog.js:7", "shortDescription": {"text": "Commented-code block (16 lines) in discord-bot/progression/achievements-catalog.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-10bc3e3c7b1e759a", "name": "Commented-code block (5 lines) in discord-bot/progression/badges-catalog.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/progression/badges-catalog.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-b444c3306f5756f2", "name": "Commented-code block (5 lines) in discord-bot/progression/xp.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in discord-bot/progression/xp.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-f342c777e5524df5", "name": "Commented-code block (8 lines) in discord-bot/progression/http.js:7", "shortDescription": {"text": "Commented-code block (8 lines) in discord-bot/progression/http.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-e59b0c1d505e74c2", "name": "Commented-code block (7 lines) in discord-bot/progression/abuse.js:7", "shortDescription": {"text": "Commented-code block (7 lines) in discord-bot/progression/abuse.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-d6db0dc9e7ea5963", "name": "Commented-code block (9 lines) in discord-bot/progression/oauth/_generic.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in discord-bot/progression/oauth/_generic.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-cb9821409101f777", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/_generic.js:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/_generic.js: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-ff02c30302e49026", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/battlenet.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/battlenet.js:13"}, "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-c14773c00b7a421e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/twitch.js:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/twitch.js:48"}, "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-f7fa0a3a5767c041", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/xbox.js:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/xbox.js:18"}, "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-b7772237ff908edc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/tiktok.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/tiktok.js:13"}, "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-e4b0984805229b3d", "name": "Commented-code block (12 lines) in discord-bot/progression/oauth/steam.js:3", "shortDescription": {"text": "Commented-code block (12 lines) in discord-bot/progression/oauth/steam.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-ef60a9729bb5cc9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/steam.js:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/steam.js:62"}, "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-7ee1a9bb28c65f56", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/youtube.js:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/youtube.js:14"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2ce1f5bb7bcc58a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/epic.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/epic.js:13"}, "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-63e5ab221996b0aa", "name": "Commented-code block (12 lines) in tools/render-test-heroes.mjs:10", "shortDescription": {"text": "Commented-code block (12 lines) in tools/render-test-heroes.mjs: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-99f52310977a28c4", "name": "Commented-code block (6 lines) in tools/build-clash-levels-glossy.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in tools/build-clash-levels-glossy.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-9f935873fafb00f8", "name": "Commented-code block (5 lines) in tools/build-gear-figure-glossy.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-gear-figure-glossy.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-624f76bf45486be9", "name": "Commented-code block (6 lines) in tools/build-card-apng.mjs:6", "shortDescription": {"text": "Commented-code block (6 lines) in tools/build-card-apng.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-d561410ecc21edbd", "name": "Commented-code block (5 lines) in tools/build-gear-fx-glossy.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-gear-fx-glossy.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-95b6d7e68b7aa015", "name": "Commented-code block (5 lines) in tools/build-welcome-card.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-welcome-card.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-4f858b2f14cdfccb", "name": "Commented-code block (5 lines) in tools/build-rules-header.mjs:7", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-rules-header.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-cdaeffc490e03aa8", "name": "Commented-code block (5 lines) in tools/build-clash-glossy-wave2.mjs:36", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-clash-glossy-wave2.mjs: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-2af94002bf84c143", "name": "Commented-code block (6 lines) in tools/build-clash-unique-buildings.mjs:9", "shortDescription": {"text": "Commented-code block (6 lines) in tools/build-clash-unique-buildings.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-db4a316c2da36d3d", "name": "Commented-code block (6 lines) in tools/build-gear-glossy.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in tools/build-gear-glossy.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-acb4e302cb7bc457", "name": "Commented-code block (5 lines) in tools/build-pet-glossy.mjs:46", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-pet-glossy.mjs: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-3d32c5fc9b6412e1", "name": "Commented-code block (5 lines) in tools/build-clash-glossy.mjs:8", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-clash-glossy.mjs: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-c450b2dad079675e", "name": "Commented-code block (6 lines) in tools/build-character-glossy.mjs:8", "shortDescription": {"text": "Commented-code block (6 lines) in tools/build-character-glossy.mjs: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-2c72f647ceced1e8", "name": "Commented-code block (7 lines) in tools/glossy-art-kit.mjs:68", "shortDescription": {"text": "Commented-code block (7 lines) in tools/glossy-art-kit.mjs:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64edca1655911370", "name": "Commented-code block (5 lines) in tools/build-clash-troops-glossy.mjs:8", "shortDescription": {"text": "Commented-code block (5 lines) in tools/build-clash-troops-glossy.mjs: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-4928df7a4ea0b5fe", "name": "Commented-code block (5 lines) in aquilo-gateway/aquilo_gateway.py:273", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gateway/aquilo_gateway.py:273"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e244dec9fff222fe", "name": "Commented-code block (11 lines) in companion-streamkey/build.py:22", "shortDescription": {"text": "Commented-code block (11 lines) in companion-streamkey/build.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc942642fabc4a02", "name": "Network/subprocess call without timeout or try/except \u2014 companion-streamkey/watchdog_task.py:63", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 companion-streamkey/watchdog_task.py:63"}, "fullDescription": {"text": "`subprocess.run(...)` 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-1eae80e7fa073f3e", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 companion-streamkey/token_retriever.py:186", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 companion-streamkey/token_retriever.py:186"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e1929dbe4cefaf1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/worker/loadout-link-worker.js:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/worker/loadout-link-worker.js:77"}, "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-5400d1ac86e88da5", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/starting-soon/main.js:59", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/starting-soon/main.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-782445df2a079ed2", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/tanks/main.js:1517", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/tanks/main.js:1517"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b95134e38f4412c5", "name": "Commented-code block (8 lines) in aquilo-gg/overlays/minigames/main.js:35", "shortDescription": {"text": "Commented-code block (8 lines) in aquilo-gg/overlays/minigames/main.js:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca944f4f526137d3", "name": "Commented-code block (6 lines) in aquilo-gg/overlays/check-in/main.js:98", "shortDescription": {"text": "Commented-code block (6 lines) in aquilo-gg/overlays/check-in/main.js: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-07fceee31c771dce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/hangman/main.js:190", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/hangman/main.js:190"}, "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-b2f9a8e8b863c32d", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/commands/main.js:84", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/commands/main.js:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a126528cd8a2390e", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/viewer/main.js:101", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/viewer/main.js:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-475ad1b3613f4a13", "name": "Commented-code block (10 lines) in aquilo-gg/overlays/gift-jar/main.js:208", "shortDescription": {"text": "Commented-code block (10 lines) in aquilo-gg/overlays/gift-jar/main.js: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-5a3aa4f9c7d90dad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/gift-jar/main.js:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/gift-jar/main.js:123"}, "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-2a3947ba67717bcb", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/counters/main.js:30", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/counters/main.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-b917125929da3907", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/vertical/main.js:181", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/vertical/main.js:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8029639cab1fdf50", "name": "Commented-code block (5 lines) in aquilo-gg/overlays/_shared/theme.js:85", "shortDescription": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/_shared/theme.js:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9491ca277aacba74", "name": "Commented-code block (7 lines) in aquilo-gg/overlays/hypetrain/main.js:30", "shortDescription": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/hypetrain/main.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-8e18dabf6502db85", "name": "Commented-code block (7 lines) in aquilo-gg/overlays/compact/main.js:25", "shortDescription": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/compact/main.js:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7dbbf351c5c989e", "name": "Commented-code block (7 lines) in aquilo-gg/overlays/promo/main.js:64", "shortDescription": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/promo/main.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "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:\ndiscord-bot/tools/rembg-pipeline.py:rembg, discord-bot/tools/follow-overlay-contact-sheet.py:rembg\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}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndiscord-bot/tools/pixel-card-pipeline-v4.py:load_cards, discord-bot/tools/pixel-card-pipeline-v9.py:load_cards, discord-bot/tools/mock-card-ui-v3.py:load_cards, discord-bot/tools/pixel-card-pipeline-v7.py:load_cards\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}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndiscord-bot/tools/pixel-card-pipeline-v4.py:main, discord-bot/tools/pixel-card-pipeline-v5.py:main, discord-bot/tools/pixel-card-pipeline.py:main\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}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndiscord-bot/tools/pixel-card-pipeline-v9.py:font, discord-bot/tools/mock-card-ui-v3.py:font, discord-bot/tools/mock-card-ui-v2.py:font, discord-bot/tools/mock-card-ui.py:font\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}}, {"id": "scanner-c2464ae8b75ed931", "name": "Flask mutation route `details` without `@login_required` \u2014 companion-streamkey/local_server.py:314", "shortDescription": {"text": "Flask mutation route `details` without `@login_required` \u2014 companion-streamkey/local_server.py:314"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39621127d71b77ad", "name": "Flask mutation route `start` without `@login_required` \u2014 companion-streamkey/local_server.py:321", "shortDescription": {"text": "Flask mutation route `start` without `@login_required` \u2014 companion-streamkey/local_server.py:321"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ad8a28e85fb6f39", "name": "Flask mutation route `end` without `@login_required` \u2014 companion-streamkey/local_server.py:343", "shortDescription": {"text": "Flask mutation route `end` without `@login_required` \u2014 companion-streamkey/local_server.py:343"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-349d628f285f8908", "name": "Flask mutation route `auth_start` without `@login_required` \u2014 companion-streamkey/local_server.py:353", "shortDescription": {"text": "Flask mutation route `auth_start` without `@login_required` \u2014 companion-streamkey/local_server.py:353"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f071f87b2c47154", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/cn-vote-hub.js:69)"}, "fullDescription": {"text": "`discord-bot/cn-vote-hub.js:69` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2a7669114046317", "name": "Dangling fetch: GET https://store.steampowered.com/api/appdetails?appids=${id}&filters=basic&cc=us (discord-bot/schedule", "shortDescription": {"text": "Dangling fetch: GET https://store.steampowered.com/api/appdetails?appids=${id}&filters=basic&cc=us (discord-bot/schedule.js:84)"}, "fullDescription": {"text": "`discord-bot/schedule.js:84` calls `GET https://store.steampowered.com/api/appdetails?appids=${id}&filters=basic&cc=us` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/store.steampowered.com/api/appdetails`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-059e15dc9ceb62ef", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/scratch-off.js:1284)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/scratch-off.js:1284)"}, "fullDescription": {"text": "`discord-bot/scratch-off.js:1284` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c9b322ca62a21419", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/lfg-hub.js:122)"}, "fullDescription": {"text": "`discord-bot/lfg-hub.js:122` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a77e51129daff6e6", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/lfg-hub.js:1", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/lfg-hub.js:166)"}, "fullDescription": {"text": "`discord-bot/lfg-hub.js:166` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6154f782cfd560d", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg-hub", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg-hub.js:463)"}, "fullDescription": {"text": "`discord-bot/lfg-hub.js:463` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fdc043179fdec38", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/community.js", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/community.js:207)"}, "fullDescription": {"text": "`discord-bot/community.js:207` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3d343201b340ae2", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/live-status-embed.js:88)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/live-status-embed.js:88)"}, "fullDescription": {"text": "`discord-bot/live-status-embed.js:88` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-311faaf9cc44027f", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${messageId} (discord-bot/live-status-e", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${messageId} (discord-bot/live-status-embed.js:101)"}, "fullDescription": {"text": "`discord-bot/live-status-embed.js:101` calls `PATCH https://discord.com/api/v10/channels/${channelId}/messages/${messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f2881e54c05b38aa", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/spire.js:387)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/spire.js:387)"}, "fullDescription": {"text": "`discord-bot/spire.js:387` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c1ea5351672494d", "name": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userI", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/level-tier-roles.js:99)"}, "fullDescription": {"text": "`discord-bot/level-tier-roles.js:99` calls `PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>/roles/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ff09319015d5c40", "name": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members?limit=1000&after=${after} ", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members?limit=1000&after=${after} (discord-bot/gifter-roles.js:331)"}, "fullDescription": {"text": "`discord-bot/gifter-roles.js:331` calls `PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members?limit=1000&after=${after}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4958ff184ac1401a", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.js", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.js:412)"}, "fullDescription": {"text": "`discord-bot/gifter-roles.js:412` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dc3b03e319927589", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.j", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.js:448)"}, "fullDescription": {"text": "`discord-bot/gifter-roles.js:448` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-caff43b47b508f13", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/stream-checkin.js:288)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/stream-checkin.js:288)"}, "fullDescription": {"text": "`discord-bot/stream-checkin.js:288` calls `GET https://discord.com/api/v10/guilds/${guildId}/members/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a13d5f370669c77", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${g}/scheduled-events (discord-bot/stream-events.js:110)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${g}/scheduled-events (discord-bot/stream-events.js:110)"}, "fullDescription": {"text": "`discord-bot/stream-events.js:110` calls `POST https://discord.com/api/v10/guilds/${g}/scheduled-events` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/scheduled-events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b305739a70cd361", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/stream-events.js:155)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/stream-events.js:155)"}, "fullDescription": {"text": "`discord-bot/stream-events.js:155` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3aef2e78b8e90a68", "name": "Dangling fetch: POST https://accounts.spotify.com/api/token (discord-bot/rotation.js:219)", "shortDescription": {"text": "Dangling fetch: POST https://accounts.spotify.com/api/token (discord-bot/rotation.js:219)"}, "fullDescription": {"text": "`discord-bot/rotation.js:219` calls `POST https://accounts.spotify.com/api/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/accounts.spotify.com/api/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-977e27a5608087ec", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/activity-feed.js:148)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/activity-feed.js:148)"}, "fullDescription": {"text": "`discord-bot/activity-feed.js:148` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e8e197d18bee8eb8", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-oauth.js:147)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-oauth.js:147)"}, "fullDescription": {"text": "`discord-bot/twitch-oauth.js:147` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8937a7d41c4534ba", "name": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-oauth.js:176)", "shortDescription": {"text": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-oauth.js:176)"}, "fullDescription": {"text": "`discord-bot/twitch-oauth.js:176` calls `GET https://id.twitch.tv/oauth2/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a87c7472b59035fc", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/community-checkin.js:22", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/community-checkin.js:227)"}, "fullDescription": {"text": "`discord-bot/community-checkin.js:227` calls `GET https://discord.com/api/v10/guilds/${guildId}/members/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d8c41cb7f8b057a", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/community-checkin.js:481)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/community-checkin.js:481)"}, "fullDescription": {"text": "`discord-bot/community-checkin.js:481` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3812adea631002a7", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${existing.channelId}/messages/${existing.messageId} (discord", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${existing.channelId}/messages/${existing.messageId} (discord-bot/community-checkin.js:990)"}, "fullDescription": {"text": "`discord-bot/community-checkin.js:990` calls `PATCH https://discord.com/api/v10/channels/${existing.channelId}/messages/${existing.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54c8dc6122f25a86", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${prior.messageId} (discord-bot/vote-hu", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:334)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:334` calls `PATCH https://discord.com/api/v10/channels/${channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6b943970d35ef5a", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:350)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:350` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d4148937ad70e86", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:354)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:354)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:354` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-407b33b75e987fbe", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:466)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:466)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:466` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6d7bfc25b5d4d06", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/pins/${prior.messageId} (discord-bot/vote", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/pins/${prior.messageId} (discord-bot/vote-hub.js:522)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:522` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/pins/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/pins/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67c267f4b1e8e219", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:524)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:524` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0fe0ba9a98eaaee8", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:528)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:528)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:528` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd2bbda365780b2a", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/pins/${j.id} (discord-bot/vote-hub.js:535)", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/pins/${j.id} (discord-bot/vote-hub.js:535)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:535` calls `PUT https://discord.com/api/v10/channels/${channelId}/pins/${j.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/pins/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9fedfc353f2733f", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:795)"}, "fullDescription": {"text": "`discord-bot/vote-hub.js:795` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b8221b6dbad588ae", "name": "Dangling fetch: GET https://site.api.espn.com/apis/site/v2/sports/${sport}/${league}/scoreboard (discord-bot/bet.js:54)", "shortDescription": {"text": "Dangling fetch: GET https://site.api.espn.com/apis/site/v2/sports/${sport}/${league}/scoreboard (discord-bot/bet.js:54)"}, "fullDescription": {"text": "`discord-bot/bet.js:54` calls `GET https://site.api.espn.com/apis/site/v2/sports/${sport}/${league}/scoreboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/site.api.espn.com/apis/site/v2/sports/<p>/<p>/scoreboard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2854c9b624810196", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printerb", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printerbot.js:33)"}, "fullDescription": {"text": "`discord-bot/printerbot.js:33` calls `GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/webhooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-898cbfa61786ce3f", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printer", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printerbot.js:65)"}, "fullDescription": {"text": "`discord-bot/printerbot.js:65` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/webhooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb250375dcdc634b", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${recapChannelId}/messages (discord-bot/weekly-recap.js:184)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${recapChannelId}/messages (discord-bot/weekly-recap.js:184)"}, "fullDescription": {"text": "`discord-bot/weekly-recap.js:184` calls `POST https://discord.com/api/v10/channels/${recapChannelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-722feb5ad533f3be", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/twitch-events.js:203)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/twitch-events.js:203)"}, "fullDescription": {"text": "`discord-bot/twitch-events.js:203` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9de9b647109941d9", "name": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/temp-vc.js:39)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/temp-vc.js:39)"}, "fullDescription": {"text": "`discord-bot/temp-vc.js:39` calls `GET https://discord.com/api/v10${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2abe2df1f60edf7f", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/challenges.js:291)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/challenges.js:291)"}, "fullDescription": {"text": "`discord-bot/challenges.js:291` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d867e60fbce8c63", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/preview (discord-bot/welcome.js:6", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/preview (discord-bot/welcome.js:61)"}, "fullDescription": {"text": "`discord-bot/welcome.js:61` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/preview` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/preview`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb1b2a3a63dd5804", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:1961)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:1961)"}, "fullDescription": {"text": "`discord-bot/worker.js:1961` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9419da950bc072ab", "name": "Dangling fetch: GET https://do/sse (discord-bot/worker.js:2516)", "shortDescription": {"text": "Dangling fetch: GET https://do/sse (discord-bot/worker.js:2516)"}, "fullDescription": {"text": "`discord-bot/worker.js:2516` calls `GET https://do/sse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/sse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-421dd6449f822b65", "name": "Dangling fetch: PUT https://discord.com/api/v10/applications/${appId}/guilds/${guildId}/commands (discord-bot/worker.js:", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/applications/${appId}/guilds/${guildId}/commands (discord-bot/worker.js:2795)"}, "fullDescription": {"text": "`discord-bot/worker.js:2795` calls `PUT https://discord.com/api/v10/applications/${appId}/guilds/${guildId}/commands` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/applications/<p>/guilds/<p>/commands`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40dcdfde7dc58893", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-b", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-bot/worker.js:2887)"}, "fullDescription": {"text": "`discord-bot/worker.js:2887` calls `PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4aa1aadeaa4b8170", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:2924)"}, "fullDescription": {"text": "`discord-bot/worker.js:2924` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b85c13808806a72e", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/pins/${encodeURIComponent(mess", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/pins/${encodeURIComponent(messageId)} (discord-bot/worker.js:2936)"}, "fullDescription": {"text": "`discord-bot/worker.js:2936` calls `PUT https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/pins/${encodeURIComponent(messageId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/pins/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d08dc03ff55254e6", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${existing} (discord-bot/worker.js:3090", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${existing} (discord-bot/worker.js:3090)"}, "fullDescription": {"text": "`discord-bot/worker.js:3090` calls `PATCH https://discord.com/api/v10/channels/${channelId}/messages/${existing}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2009830764d57e13", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:3110)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:3110)"}, "fullDescription": {"text": "`discord-bot/worker.js:3110` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5bc0a9e672741a33", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(liveChannelId)} (discord-bot/worker.js:333", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(liveChannelId)} (discord-bot/worker.js:3331)"}, "fullDescription": {"text": "`discord-bot/worker.js:3331` calls `GET https://discord.com/api/v10/channels/${encodeURIComponent(liveChannelId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d802da7d43f43939", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:3", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:3361)"}, "fullDescription": {"text": "`discord-bot/worker.js:3361` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aed33e20ea17b980", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${stamp.messageId}", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${stamp.messageId} (discord-bot/worker.js:4425)"}, "fullDescription": {"text": "`discord-bot/worker.js:4425` calls `DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${stamp.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90105dbb80d31c85", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-bot", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-bot/worker.js:4431)"}, "fullDescription": {"text": "`discord-bot/worker.js:4431` calls `GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-881077cfbed0b959", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${prior.id} (disco", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${prior.id} (discord-bot/worker.js:4445)"}, "fullDescription": {"text": "`discord-bot/worker.js:4445` calls `DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${prior.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5c9002570ed22862", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4467)"}, "fullDescription": {"text": "`discord-bot/worker.js:4467` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39388fc7c853108b", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:45", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:4514)"}, "fullDescription": {"text": "`discord-bot/worker.js:4514` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fa9ed42d03b180b3", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(gu", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(guildId)} (discord-bot/worker.js:4541)"}, "fullDescription": {"text": "`discord-bot/worker.js:4541` calls `PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(guildId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/permissions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d4e3636886483ae", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(ro", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(roleId)} (discord-bot/worker.js:4551)"}, "fullDescription": {"text": "`discord-bot/worker.js:4551` calls `PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(roleId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/permissions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f2837e63b97e6ba", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(prior.channelId)}/messages/${prior.mess", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(prior.channelId)}/messages/${prior.messageId} (discord-bot/worker.js:4610)"}, "fullDescription": {"text": "`discord-bot/worker.js:4610` calls `DELETE https://discord.com/api/v10/channels/${encodeURIComponent(prior.channelId)}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76aeb4aa003bee70", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4616)"}, "fullDescription": {"text": "`discord-bot/worker.js:4616` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-135df088af0b5435", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4692)"}, "fullDescription": {"text": "`discord-bot/worker.js:4692` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4d4ebf355d406c2", "name": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/worker.js:4809)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/worker.js:4809)"}, "fullDescription": {"text": "`discord-bot/worker.js:4809` calls `POST https://discord.com/api/v10/users/@me/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/users/@me/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7c88c86a61418acc", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4859)"}, "fullDescription": {"text": "`discord-bot/worker.js:4859` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee51559fe1b671b4", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5010)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5010)"}, "fullDescription": {"text": "`discord-bot/worker.js:5010` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-337a7f9d130fb6bb", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5017", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5017)"}, "fullDescription": {"text": "`discord-bot/worker.js:5017` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3babfe3fd8dfa81a", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:50", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5035)"}, "fullDescription": {"text": "`discord-bot/worker.js:5035` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-846791afc6d11814", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5048)"}, "fullDescription": {"text": "`discord-bot/worker.js:5048` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8127b07b5a4f5a33", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(category.id)}/permissions/${encodeURICompo", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(category.id)}/permissions/${encodeURIComponent(ov.id)} (discord-bot/worker.js:5064)"}, "fullDescription": {"text": "`discord-bot/worker.js:5064` calls `PUT https://discord.com/api/v10/channels/${encodeURIComponent(category.id)}/permissions/${encodeURIComponent(ov.id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/permissions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c45d4e85fdcf6e2b", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5076)"}, "fullDescription": {"text": "`discord-bot/worker.js:5076` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a59d50707687888", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)} (discord-bot/worker.js:5093", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)} (discord-bot/worker.js:5093)"}, "fullDescription": {"text": "`discord-bot/worker.js:5093` calls `PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b970296ab0e759b", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:51", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5142)"}, "fullDescription": {"text": "`discord-bot/worker.js:5142` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67f5fe932fbc35b7", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5155)"}, "fullDescription": {"text": "`discord-bot/worker.js:5155` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bd1187b6dd879721", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)}/permissions/${encodeURICompon", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)}/permissions/${encodeURIComponent(ov.id)} (discord-bot/worker.js:5172)"}, "fullDescription": {"text": "`discord-bot/worker.js:5172` calls `PUT https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)}/permissions/${encodeURIComponent(ov.id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/permissions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0665e14d84023825", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=${scanLimit} (d", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=${scanLimit} (discord-bot/worker.js:5367)"}, "fullDescription": {"text": "`discord-bot/worker.js:5367` calls `GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=${scanLimit}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-111e029500f1948f", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${oldBanner.id} (d", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${oldBanner.id} (discord-bot/worker.js:5392)"}, "fullDescription": {"text": "`discord-bot/worker.js:5392` calls `DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${oldBanner.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc2e01714ceb6db8", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:5416)"}, "fullDescription": {"text": "`discord-bot/worker.js:5416` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa71a36020009f84", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5604)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5604)"}, "fullDescription": {"text": "`discord-bot/worker.js:5604` calls `GET https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae93770664a7dccd", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5741)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5741)"}, "fullDescription": {"text": "`discord-bot/worker.js:5741` calls `GET https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cd0c29855cf7b42", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5765)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5765)"}, "fullDescription": {"text": "`discord-bot/worker.js:5765` calls `POST https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70516478a4dd45b9", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5871)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5871)"}, "fullDescription": {"text": "`discord-bot/worker.js:5871` calls `GET https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de24cfe1adc8ad52", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5881)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5881)"}, "fullDescription": {"text": "`discord-bot/worker.js:5881` calls `POST https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4e4e13f886c2bed", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${rulesCh.id}/messages?limit=50 (discord-bot/worker.js:5909)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${rulesCh.id}/messages?limit=50 (discord-bot/worker.js:5909)"}, "fullDescription": {"text": "`discord-bot/worker.js:5909` calls `GET https://discord.com/api/v10/channels/${rulesCh.id}/messages?limit=50` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c3424dae4070d4d", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${rulesCh.id}/messages/${oldVerify.id} (discord-bot/worker.j", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${rulesCh.id}/messages/${oldVerify.id} (discord-bot/worker.js:5919)"}, "fullDescription": {"text": "`discord-bot/worker.js:5919` calls `DELETE https://discord.com/api/v10/channels/${rulesCh.id}/messages/${oldVerify.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4240d3c2c27f62bf", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5950)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5950)"}, "fullDescription": {"text": "`discord-bot/worker.js:5950` calls `POST https://discord.com/api/v10/channels/${rulesCh.id}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e153f8f22721571d", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5973)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5973)"}, "fullDescription": {"text": "`discord-bot/worker.js:5973` calls `POST https://discord.com/api/v10/channels/${rulesCh.id}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-579f3f34ffbabb13", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:6101)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:6101)"}, "fullDescription": {"text": "`discord-bot/worker.js:6101` calls `GET https://discord.com/api/v10/guilds/${guildId}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d648b9985b1f8c5e", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId} (discord-bot/worker.js:6247)", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId} (discord-bot/worker.js:6247)"}, "fullDescription": {"text": "`discord-bot/worker.js:6247` calls `PATCH https://discord.com/api/v10/channels/${channelId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8176d80adee17113", "name": "Dangling fetch: GET https://discord.com/api/v10${p} (discord-bot/worker.js:6400)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${p} (discord-bot/worker.js:6400)"}, "fullDescription": {"text": "`discord-bot/worker.js:6400` calls `GET https://discord.com/api/v10${p}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-beaae899c0f77cce", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6586)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6586)"}, "fullDescription": {"text": "`discord-bot/worker.js:6586` calls `GET https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/auto-moderation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7d84c1927a40aa5", "name": "Dangling fetch: DELETE https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${r.id} (discord-bot/worker.j", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${r.id} (discord-bot/worker.js:6598)"}, "fullDescription": {"text": "`discord-bot/worker.js:6598` calls `DELETE https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${r.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/auto-moderation/rules/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fb6b2471cfbf758b", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6614)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6614)"}, "fullDescription": {"text": "`discord-bot/worker.js:6614` calls `POST https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/auto-moderation/rules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-783ea628af150303", "name": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${occupant.id} (discord-bot/wo", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${occupant.id} (discord-bot/worker.js:6639)"}, "fullDescription": {"text": "`discord-bot/worker.js:6639` calls `PATCH https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${occupant.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/auto-moderation/rules/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db32921c1fa35dac", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/chat-relay.js:110)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/chat-relay.js:110)"}, "fullDescription": {"text": "`discord-bot/chat-relay.js:110` calls `GET https://discord.com/api/v10/guilds/${guildId}/members/${userId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41c72d8576bf1408", "name": "Dangling fetch: GET https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:136)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:136)"}, "fullDescription": {"text": "`discord-bot/chat-relay.js:136` calls `GET https://discord.com/api/v10/channels/${channelId}/webhooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/webhooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e2e19ec7c9585d3", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:143)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:143)"}, "fullDescription": {"text": "`discord-bot/chat-relay.js:143` calls `POST https://discord.com/api/v10/channels/${channelId}/webhooks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/webhooks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34522ae678b5fd20", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/voice-temp.", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/voice-temp.js:58)"}, "fullDescription": {"text": "`discord-bot/voice-temp.js:58` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02be32ce4e666fba", "name": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(use", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)} (discord-bot/voice-temp.js:76)"}, "fullDescription": {"text": "`discord-bot/voice-temp.js:76` calls `PATCH https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6235ebcbdb0558d", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(chId)} (discord-bot/voice-temp.js:141)", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(chId)} (discord-bot/voice-temp.js:141)"}, "fullDescription": {"text": "`discord-bot/voice-temp.js:141` calls `DELETE https://discord.com/api/v10/channels/${encodeURIComponent(chId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1bb49ec52a43215e", "name": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/tickets.js:46)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/tickets.js:46)"}, "fullDescription": {"text": "`discord-bot/tickets.js:46` calls `GET https://discord.com/api/v10${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4269c637b888fcbd", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/channel-hubs.js:181)"}, "fullDescription": {"text": "`discord-bot/channel-hubs.js:181` calls `DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b780fe2fb05edb08", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/channel-hubs", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/channel-hubs.js:220)"}, "fullDescription": {"text": "`discord-bot/channel-hubs.js:220` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4fac4bfca32893db", "name": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userI", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/onboarding.js:692)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:692` calls `PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>/roles/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ab577494a1bce31b", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/onboarding", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/onboarding.js:705)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:705` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e70f60836b2ae75", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${priorRaw.channelId}/messages/${priorRaw.messageId} (discor", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${priorRaw.channelId}/messages/${priorRaw.messageId} (discord-bot/onboarding.js:787)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:787` calls `DELETE https://discord.com/api/v10/channels/${priorRaw.channelId}/messages/${priorRaw.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7177529d891cea4", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/onboarding.j", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/onboarding.js:1011)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1011` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f0b6b030cb24066a", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1106)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1106` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-110867be68c13526", "name": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1138)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1138` calls `POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd5a65413b0258b2", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1179)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1179` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9922d91bd9c5c8b0", "name": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/onboarding.js:1212)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/onboarding.js:1212)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1212` calls `POST https://discord.com/api/v10/users/@me/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/users/@me/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61e98911a880cba0", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${ch.id}/messages (discord-bot/onboarding.js:1224)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${ch.id}/messages (discord-bot/onboarding.js:1224)"}, "fullDescription": {"text": "`discord-bot/onboarding.js:1224` calls `POST https://discord.com/api/v10/channels/${ch.id}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ff58c401a4a31c4", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/schedule-rotation.js:187)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/schedule-rotation.js:187)"}, "fullDescription": {"text": "`discord-bot/schedule-rotation.js:187` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b639d554b21526f1", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg.js:", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg.js:90)"}, "fullDescription": {"text": "`discord-bot/lfg.js:90` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-45617b9287c72a55", "name": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(lfg.channelId)}/messages/${encodeURIComp", "shortDescription": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(lfg.channelId)}/messages/${encodeURIComponent(lfg.messageId)} (discord-bot/lfg.js:105)"}, "fullDescription": {"text": "`discord-bot/lfg.js:105` calls `PATCH https://discord.com/api/v10/channels/${encodeURIComponent(lfg.channelId)}/messages/${encodeURIComponent(lfg.messageId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b522b2ceaade4dcb", "name": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-features.js:72)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-features.js:72)"}, "fullDescription": {"text": "`discord-bot/guild-features.js:72` calls `GET https://discord.com/api/v10${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1ea0d980fabede82", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/cn-games-list-hub.js:95)", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/cn-games-list-hub.js:95)"}, "fullDescription": {"text": "`discord-bot/cn-games-list-hub.js:95` calls `POST https://discord.com/api/v10/channels/${channelId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-23b3a9a6524aae38", "name": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${m.channelId}/messages/${m.messageId} (discord-bot/cn-games", "shortDescription": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${m.channelId}/messages/${m.messageId} (discord-bot/cn-games-list-hub.js:118)"}, "fullDescription": {"text": "`discord-bot/cn-games-list-hub.js:118` calls `DELETE https://discord.com/api/v10/channels/${m.channelId}/messages/${m.messageId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aaf45d6935ef3fc2", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/cn-games-lis", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/cn-games-list-hub.js:174)"}, "fullDescription": {"text": "`discord-bot/cn-games-list-hub.js:174` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48e56a8a2d0c75ba", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${env.PATRON_OF_MONTH_CHANNEL_ID}/messages (discord-bot/patron", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${env.PATRON_OF_MONTH_CHANNEL_ID}/messages (discord-bot/patron-of-month.js:115)"}, "fullDescription": {"text": "`discord-bot/patron-of-month.js:115` calls `POST https://discord.com/api/v10/channels/${env.PATRON_OF_MONTH_CHANNEL_ID}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e35995a0e697ddb0", "name": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${env.AQUILO_VAULT_GUILD_ID}/members/${winner.userId}/roles/${env", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${env.AQUILO_VAULT_GUILD_ID}/members/${winner.userId}/roles/${env.PATRON_OF_MONTH_ROLE_ID} (discord-bot/patron-of-month.js:136)"}, "fullDescription": {"text": "`discord-bot/patron-of-month.js:136` calls `PUT https://discord.com/api/v10/guilds/${env.AQUILO_VAULT_GUILD_ID}/members/${winner.userId}/roles/${env.PATRON_OF_MONTH_ROLE_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>/roles/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e149f9fe8d1f5dd", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/cn-game", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/cn-games-roster.js:233)"}, "fullDescription": {"text": "`discord-bot/cn-games-roster.js:233` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76ed1f6f3c08e649", "name": "Dangling fetch: POST https://do/publish (discord-bot/activity-do.js:120)", "shortDescription": {"text": "Dangling fetch: POST https://do/publish (discord-bot/activity-do.js:120)"}, "fullDescription": {"text": "`discord-bot/activity-do.js:120` calls `POST https://do/publish` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/publish`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b90641a48ef4f020", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${discordId} (discord-bot/actor-name.js:45)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${discordId} (discord-bot/actor-name.js:45)"}, "fullDescription": {"text": "`discord-bot/actor-name.js:45` calls `GET https://discord.com/api/v10/guilds/${guildId}/members/${discordId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-52325c9795fd4764", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:71)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:71)"}, "fullDescription": {"text": "`discord-bot/twitch-helix.js:71` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9f86f3228fc55669", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:128)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:128)"}, "fullDescription": {"text": "`discord-bot/twitch-helix.js:128` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3288a8de8f29ce1", "name": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-helix.js:308)", "shortDescription": {"text": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-helix.js:308)"}, "fullDescription": {"text": "`discord-bot/twitch-helix.js:308` calls `GET https://id.twitch.tv/oauth2/validate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/validate`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07715cfcc2127926", "name": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-builder.js:23)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-builder.js:23)"}, "fullDescription": {"text": "`discord-bot/guild-builder.js:23` calls `GET https://discord.com/api/v10${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0147a24a71e08ea", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(disco", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(discordId)} (discord-bot/web.js:1068)"}, "fullDescription": {"text": "`discord-bot/web.js:1068` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(discordId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1cf7b9334f09b124", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/web.js:1069)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/web.js:1069)"}, "fullDescription": {"text": "`discord-bot/web.js:1069` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/roles`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfcbb12e64266e27", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/web.js:1070)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/web.js:1070)"}, "fullDescription": {"text": "`discord-bot/web.js:1070` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2c9830d27cabc6bb", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:251)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:251)"}, "fullDescription": {"text": "`discord-bot/punchcard.js:251` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49667af0676063b1", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:443)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:443)"}, "fullDescription": {"text": "`discord-bot/punchcard.js:443` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3e032defbc272a9", "name": "Dangling fetch: GET https://api.twitch.tv/helix/users (discord-bot/punchcard.js:459)", "shortDescription": {"text": "Dangling fetch: GET https://api.twitch.tv/helix/users (discord-bot/punchcard.js:459)"}, "fullDescription": {"text": "`discord-bot/punchcard.js:459` calls `GET https://api.twitch.tv/helix/users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.twitch.tv/helix/users`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1e5f5796a21225f2", "name": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/ext-loadout.js:26)", "shortDescription": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/ext-loadout.js:26)"}, "fullDescription": {"text": "`discord-bot/ext-loadout.js:26` calls `POST https://id.twitch.tv/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/id.twitch.tv/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-42ceafd046fd0fde", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/sfdock.js:39)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/sfdock.js:39)"}, "fullDescription": {"text": "`discord-bot/sfdock.js:39` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9ce426561c16866", "name": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/messages/${messageId}/reactions/${encodeURICompone", "shortDescription": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me (discord-bot/twitch-clips.js:79)"}, "fullDescription": {"text": "`discord-bot/twitch-clips.js:79` calls `PUT https://discord.com/api/v10/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages/<p>/reactions/<p>/@me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98d20d43c6765460", "name": "Dangling fetch: POST https://do/broadcast (discord-bot/aquilo/overlay-do.js:86)", "shortDescription": {"text": "Dangling fetch: POST https://do/broadcast (discord-bot/aquilo/overlay-do.js:86)"}, "fullDescription": {"text": "`discord-bot/aquilo/overlay-do.js:86` calls `POST https://do/broadcast` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/do/broadcast`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94935c8f1bf52ab3", "name": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userI", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/aquilo/self-roles.js:315)"}, "fullDescription": {"text": "`discord-bot/aquilo/self-roles.js:315` calls `GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/guilds/<p>/members/<p>/roles/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df02df6422e5ee02", "name": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/aquilo/sel", "shortDescription": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/aquilo/self-roles.js:328)"}, "fullDescription": {"text": "`discord-bot/aquilo/self-roles.js:328` calls `POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/channels/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8848abfa4b5c8c69", "name": "Dangling fetch: GET https://oauth.battle.net/userinfo (discord-bot/progression/oauth/battlenet.js:13)", "shortDescription": {"text": "Dangling fetch: GET https://oauth.battle.net/userinfo (discord-bot/progression/oauth/battlenet.js:13)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/battlenet.js:13` calls `GET https://oauth.battle.net/userinfo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth.battle.net/userinfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4820784c2b61a109", "name": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me (discord-bot/progression/oauth/xbox.js:18)", "shortDescription": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me (discord-bot/progression/oauth/xbox.js:18)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/xbox.js:18` calls `GET https://graph.microsoft.com/v1.0/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/graph.microsoft.com/v1.0/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbf78a6e549ad781", "name": "Dangling fetch: GET https://open.tiktokapis.com/v2/user/info/?fields=open_id,union_id,avatar_url,display_name,username (", "shortDescription": {"text": "Dangling fetch: GET https://open.tiktokapis.com/v2/user/info/?fields=open_id,union_id,avatar_url,display_name,username (discord-bot/progression/oauth/tiktok.js:13)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/tiktok.js:13` calls `GET https://open.tiktokapis.com/v2/user/info/?fields=open_id,union_id,avatar_url,display_name,username` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/open.tiktokapis.com/v2/user/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4631ab9adff52b2", "name": "Dangling fetch: GET https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${env.STEAM_API_KEY}&steamids=${s", "shortDescription": {"text": "Dangling fetch: GET https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${env.STEAM_API_KEY}&steamids=${steamId64} (discord-bot/progression/oauth/steam.js:80)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/steam.js:80` calls `GET https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${env.STEAM_API_KEY}&steamids=${steamId64}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.steampowered.com/isteamuser/getplayersummaries/v2`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6abb19d06f0672b9", "name": "Dangling fetch: GET https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true (discord-bot/progression/oauth", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true (discord-bot/progression/oauth/youtube.js:14)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/youtube.js:14` calls `GET https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/youtube/v3/channels`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6af87d5f8a3dfcda", "name": "Dangling fetch: GET https://api.epicgames.dev/epic/oauth/v2/userInfo (discord-bot/progression/oauth/epic.js:13)", "shortDescription": {"text": "Dangling fetch: GET https://api.epicgames.dev/epic/oauth/v2/userInfo (discord-bot/progression/oauth/epic.js:13)"}, "fullDescription": {"text": "`discord-bot/progression/oauth/epic.js:13` calls `GET https://api.epicgames.dev/epic/oauth/v2/userInfo` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.epicgames.dev/epic/oauth/v2/userinfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b00b72d76ad7918", "name": "Dangling fetch: POST https://www.patreon.com/api/oauth2/token (aquilo-gg/worker/loadout-link-worker.js:77)", "shortDescription": {"text": "Dangling fetch: POST https://www.patreon.com/api/oauth2/token (aquilo-gg/worker/loadout-link-worker.js:77)"}, "fullDescription": {"text": "`aquilo-gg/worker/loadout-link-worker.js:77` calls `POST https://www.patreon.com/api/oauth2/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.patreon.com/api/oauth2/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aeacd31de11ecac3", "name": "Dangling fetch: GET https://aquilo.gg/api/schedule (aquilo-gg/overlays/starting-soon/main.js:87)", "shortDescription": {"text": "Dangling fetch: GET https://aquilo.gg/api/schedule (aquilo-gg/overlays/starting-soon/main.js:87)"}, "fullDescription": {"text": "`aquilo-gg/overlays/starting-soon/main.js:87` calls `GET https://aquilo.gg/api/schedule` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/aquilo.gg/api/schedule`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b8b39fa459efcb0", "name": "Dangling fetch: GET https://aquilo.gg/api/community/supporter-wall (aquilo-gg/overlays/starting-soon/main.js:502)", "shortDescription": {"text": "Dangling fetch: GET https://aquilo.gg/api/community/supporter-wall (aquilo-gg/overlays/starting-soon/main.js:502)"}, "fullDescription": {"text": "`aquilo-gg/overlays/starting-soon/main.js:502` calls `GET https://aquilo.gg/api/community/supporter-wall` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/aquilo.gg/api/community/supporter-wall`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a84defdc6c88254", "name": "Unused endpoint: ANY /streamkey", "shortDescription": {"text": "Unused endpoint: ANY /streamkey"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /streamkey` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8340dec135e05a1", "name": "Unused endpoint: ANY /stream/status", "shortDescription": {"text": "Unused endpoint: ANY /stream/status"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /stream/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0f2b2fa1aec030b", "name": "Unused endpoint: ANY /categories", "shortDescription": {"text": "Unused endpoint: ANY /categories"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /categories` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fada365bbbd64fc", "name": "Unused endpoint: ANY /tiktok/access-status", "shortDescription": {"text": "Unused endpoint: ANY /tiktok/access-status"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /tiktok/access-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aba6036a0d871acb", "name": "Unused endpoint: ANY /stream/details", "shortDescription": {"text": "Unused endpoint: ANY /stream/details"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /stream/details` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5d009108efee6ae", "name": "Unused endpoint: ANY /stream/start", "shortDescription": {"text": "Unused endpoint: ANY /stream/start"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /stream/start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef3f2d602ded2b9d", "name": "Unused endpoint: ANY /stream/end", "shortDescription": {"text": "Unused endpoint: ANY /stream/end"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /stream/end` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfcb0223d3f713fe", "name": "Unused endpoint: ANY /auth/start", "shortDescription": {"text": "Unused endpoint: ANY /auth/start"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /auth/start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09db032564fceb70", "name": "Unused endpoint: ANY /debug/status", "shortDescription": {"text": "Unused endpoint: ANY /debug/status"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /debug/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fd359199937853e", "name": "Unused endpoint: ANY /debug/log", "shortDescription": {"text": "Unused endpoint: ANY /debug/log"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /debug/log` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2825fb43f04a1bec", "name": "Unused endpoint: ANY /debug/diag", "shortDescription": {"text": "Unused endpoint: ANY /debug/diag"}, "fullDescription": {"text": "`companion-streamkey/local_server.py` declares `ANY /debug/diag` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24281"}, "properties": {"repository": "aquiloplays/loadout", "repoUrl": "https://github.com/aquiloplays/loadout", "branch": "main"}, "results": [{"ruleId": "scanner-e305d90a0ee661c9", "level": "note", "message": {"text": "Possibly dead Python function: commit_push"}, "properties": {"repobilityId": "45355cb74a7bb785", "scanner": "scanner-primary", "fingerprint": "e305d90a0ee661c9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/rembg-pipeline.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-03265687ebc0b0ef", "level": "note", "message": {"text": "Possibly dead Python function: driver_hero_body"}, "properties": {"repobilityId": "e60e334a17c427cb", "scanner": "scanner-primary", "fingerprint": "03265687ebc0b0ef", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/rembg-pipeline.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8829fe4cbb8343c5", "level": "note", "message": {"text": "Possibly dead Python function: composite"}, "properties": {"repobilityId": "e35f93e647bd2dc1", "scanner": "scanner-primary", "fingerprint": "8829fe4cbb8343c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/pixel-card-pipeline.py:411"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7431461bcb6a2c1d", "level": "note", "message": {"text": "Possibly dead Python function: head_mask"}, "properties": {"repobilityId": "4f28286e330d052f", "scanner": "scanner-primary", "fingerprint": "7431461bcb6a2c1d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gear-worn-feasibility.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3203ed7414b955f", "level": "note", "message": {"text": "Possibly dead Python function: chest_mask"}, "properties": {"repobilityId": "8c7b80dbb6980b17", "scanner": "scanner-primary", "fingerprint": "d3203ed7414b955f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gear-worn-feasibility.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef512d358dcb0b89", "level": "note", "message": {"text": "Possibly dead Python function: weapon_mask"}, "properties": {"repobilityId": "5e6a40394478fad2", "scanner": "scanner-primary", "fingerprint": "ef512d358dcb0b89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gear-worn-feasibility.py:46"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bef401b5267ddc56", "level": "note", "message": {"text": "Possibly dead Python function: render_one"}, "properties": {"repobilityId": "538981dbcad9fc15", "scanner": "scanner-primary", "fingerprint": "bef401b5267ddc56", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gen-expansion-art.py:69"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c19df129eed0d565", "level": "note", "message": {"text": "Possibly dead Python function: phase_heroes"}, "properties": {"repobilityId": "9facb81b59e1161d", "scanner": "scanner-primary", "fingerprint": "c19df129eed0d565", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/overhaul-generate.py:212"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-650b662e30536906", "level": "note", "message": {"text": "Possibly dead Python function: phase_gear"}, "properties": {"repobilityId": "8f04a9811f59ca60", "scanner": "scanner-primary", "fingerprint": "650b662e30536906", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/overhaul-generate.py:221"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-228d9577101c6bf2", "level": "note", "message": {"text": "Possibly dead Python function: phase_clash"}, "properties": {"repobilityId": "494d38421e431c95", "scanner": "scanner-primary", "fingerprint": "228d9577101c6bf2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/overhaul-generate.py:236"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e4b6281855b3c70", "level": "note", "message": {"text": "Possibly dead Python function: phase_pets"}, "properties": {"repobilityId": "4bc3840e9e1f2c11", "scanner": "scanner-primary", "fingerprint": "0e4b6281855b3c70", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/overhaul-generate.py:254"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0771191b0498cf15", "level": "note", "message": {"text": "Possibly dead Python function: now_ms"}, "properties": {"repobilityId": "28a2d04bc00b253c", "scanner": "scanner-primary", "fingerprint": "0771191b0498cf15", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/streamkey_app.py:20"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b9cdfebcf9e178e", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "1b9cdfebcf9e178e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/token_retriever.py:169"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e099102db6429d0", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "3e099102db6429d0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/token_retriever.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-383594bad247caf5", "level": "note", "message": {"text": "Possibly dead Python function: logout"}, "properties": {"repobilityId": "8de76350e22b4132", "scanner": "scanner-primary", "fingerprint": "383594bad247caf5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a1dfac7f4d6b647", "level": "note", "message": {"text": "Possibly dead Python function: serve"}, "properties": {"repobilityId": "14ba9a32ffb07e31", "scanner": "scanner-primary", "fingerprint": "9a1dfac7f4d6b647", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py:375"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d03ca10f96769e54", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/register-commands.js:51"}, "properties": {"repobilityId": "8efa4a48ce9d2341", "scanner": "scanner-primary", "fingerprint": "d03ca10f96769e54", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b427053e7553acb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/worker.js:1296"}, "properties": {"repobilityId": "8f0e554d61964a9d", "scanner": "scanner-primary", "fingerprint": "6b427053e7553acb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75883be09993eaa4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/twitch-eventsub.js:177"}, "properties": {"repobilityId": "cc3e552e97f2b05d", "scanner": "scanner-primary", "fingerprint": "75883be09993eaa4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa2284c9b75cd700", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 discord-bot/aquilo/trivia.js:37"}, "properties": {"repobilityId": "ec0151292ce163f9", "scanner": "scanner-primary", "fingerprint": "aa2284c9b75cd700", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34e3fbca1cfec03c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext.js:54"}, "properties": {"repobilityId": "501e617c23f0070e", "scanner": "scanner-primary", "fingerprint": "34e3fbca1cfec03c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/ext.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-e4f85cda4dc513cd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/schedule.js:297"}, "properties": {"repobilityId": "7b569edac1e28142", "scanner": "scanner-primary", "fingerprint": "e4f85cda4dc513cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/schedule.js"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-8cb64803167d9f86", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/scratch-off.js:336"}, "properties": {"repobilityId": "43afd8367ed8b3bb", "scanner": "scanner-primary", "fingerprint": "8cb64803167d9f86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/scratch-off.js"}, "region": {"startLine": 336}}}]}, {"ruleId": "scanner-bf221de218ebca3a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/death-counter.js:184"}, "properties": {"repobilityId": "9621b926f47c5159", "scanner": "scanner-primary", "fingerprint": "bf221de218ebca3a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/death-counter.js"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-cd78b2eb021c0033", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/community.js:20"}, "properties": {"repobilityId": "51b70718922f415c", "scanner": "scanner-primary", "fingerprint": "cd78b2eb021c0033", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/community.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6e2e802f40047f41", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/friends.js:25"}, "properties": {"repobilityId": "431c2909e5e08dd6", "scanner": "scanner-primary", "fingerprint": "6e2e802f40047f41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/friends.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-edb8218517c46bc9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/activity-feed.js:179"}, "properties": {"repobilityId": "d590b56939068195", "scanner": "scanner-primary", "fingerprint": "edb8218517c46bc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/activity-feed.js"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-89115cc0efbb73d0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/partyup.js:24"}, "properties": {"repobilityId": "f0b73531901b2858", "scanner": "scanner-primary", "fingerprint": "89115cc0efbb73d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/partyup.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-4e6aef6bf1a540ba", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-emotes.js:153"}, "properties": {"repobilityId": "cc736f49fda2dcd1", "scanner": "scanner-primary", "fingerprint": "4e6aef6bf1a540ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/boltbound-emotes.js"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-8767d1c89e4ed42a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/spire-map.js:633"}, "properties": {"repobilityId": "96744bbc71e6fa3a", "scanner": "scanner-primary", "fingerprint": "8767d1c89e4ed42a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/spire-map.js"}, "region": {"startLine": 633}}}]}, {"ruleId": "scanner-75a1dd8773dfba7a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-quick.js:47"}, "properties": {"repobilityId": "01534a703b2d6c60", "scanner": "scanner-primary", "fingerprint": "75a1dd8773dfba7a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/ext-quick.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-7f9f974cd9f79f85", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-shared.js:5"}, "properties": {"repobilityId": "167313df8377356a", "scanner": "scanner-primary", "fingerprint": "7f9f974cd9f79f85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/ext-shared.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-8bc340993cc6b40a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/cards-web.js:186"}, "properties": {"repobilityId": "7b0a6f2f640df4df", "scanner": "scanner-primary", "fingerprint": "8bc340993cc6b40a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/cards-web.js"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-02ffaa0d1efcaa1a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/boltbound-replays-rx.js:198"}, "properties": {"repobilityId": "e34842ea83eeba34", "scanner": "scanner-primary", "fingerprint": "02ffaa0d1efcaa1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/boltbound-replays-rx.js"}, "region": {"startLine": 198}}}]}, {"ruleId": "scanner-e502425a4a93ddab", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/powerdeck.js:26"}, "properties": {"repobilityId": "e4cdbdbc868b97fc", "scanner": "scanner-primary", "fingerprint": "e502425a4a93ddab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/powerdeck.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-78151cc99eb9c4ef", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/challenges.js:392"}, "properties": {"repobilityId": "ee0bd7d59ac55341", "scanner": "scanner-primary", "fingerprint": "78151cc99eb9c4ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/challenges.js"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-eacc8fb34a10e60a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/character.js:214"}, "properties": {"repobilityId": "829e72d31145489e", "scanner": "scanner-primary", "fingerprint": "eacc8fb34a10e60a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/character.js"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-15fd31c1405af5bf", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/worker.js:767"}, "properties": {"repobilityId": "377108c794479e0e", "scanner": "scanner-primary", "fingerprint": "15fd31c1405af5bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/worker.js"}, "region": {"startLine": 767}}}]}, {"ruleId": "scanner-87389cccba82b803", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/lfg.js:229"}, "properties": {"repobilityId": "18389240c8494a08", "scanner": "scanner-primary", "fingerprint": "87389cccba82b803", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/lfg.js"}, "region": {"startLine": 229}}}]}, {"ruleId": "scanner-67ec8158aa9331d6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/ext-bets.js:23"}, "properties": {"repobilityId": "bdef982ef95846ef", "scanner": "scanner-primary", "fingerprint": "67ec8158aa9331d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/ext-bets.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-196e10bcd7795b9f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/activity-do.js:73"}, "properties": {"repobilityId": "ef696b177e5fdb71", "scanner": "scanner-primary", "fingerprint": "196e10bcd7795b9f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/activity-do.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-cffd399e660c3912", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/punchcard.js:41"}, "properties": {"repobilityId": "fb45e765062c4aac", "scanner": "scanner-primary", "fingerprint": "cffd399e660c3912", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/punchcard.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-3737c828869ea685", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/sf-community.js:464"}, "properties": {"repobilityId": "7349bdb3661879d0", "scanner": "scanner-primary", "fingerprint": "3737c828869ea685", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/sf-community.js"}, "region": {"startLine": 464}}}]}, {"ruleId": "scanner-74d31abcab45f58b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/sfdock.js:16"}, "properties": {"repobilityId": "2f28a5a49b012763", "scanner": "scanner-primary", "fingerprint": "74d31abcab45f58b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/sfdock.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-d2f786c82b7e4c4b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/daily-quests.js:489"}, "properties": {"repobilityId": "90538677575dc85c", "scanner": "scanner-primary", "fingerprint": "d2f786c82b7e4c4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/daily-quests.js"}, "region": {"startLine": 489}}}]}, {"ruleId": "scanner-c74ce5fa8733b819", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-arena-polish-fx.py:33"}, "properties": {"repobilityId": "00ac36689c69cc4a", "scanner": "scanner-primary", "fingerprint": "c74ce5fa8733b819", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/upload-arena-polish-fx.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-ed33514d3897cf79", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/rembg-pipeline.py:158"}, "properties": {"repobilityId": "d65f72acf98edddd", "scanner": "scanner-primary", "fingerprint": "ed33514d3897cf79", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/rembg-pipeline.py"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-4b76d5b14987ac0d", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/fix-card-brand-A.py:30"}, "properties": {"repobilityId": "773a3984d3928759", "scanner": "scanner-primary", "fingerprint": "4b76d5b14987ac0d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/fix-card-brand-A.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-362ae0df25eba9e8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-schedule-poll.mjs:15"}, "properties": {"repobilityId": "85d17240aa5fc833", "scanner": "scanner-primary", "fingerprint": "362ae0df25eba9e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/post-schedule-poll.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-0e52b0d8ea8d3eeb", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gear-worn-overlay-pipeline.py:253"}, "properties": {"repobilityId": "749b1d2c1f42da09", "scanner": "scanner-primary", "fingerprint": "0e52b0d8ea8d3eeb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gear-worn-overlay-pipeline.py"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-dc5c7c758510f218", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/overhaul-upload.py:84"}, "properties": {"repobilityId": "f8f2860967c66d2c", "scanner": "scanner-primary", "fingerprint": "dc5c7c758510f218", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/overhaul-upload.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-0d7f21d2aab6f160", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-pixel-art-v9.py:96"}, "properties": {"repobilityId": "53d7676b863c69d7", "scanner": "scanner-primary", "fingerprint": "0d7f21d2aab6f160", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/upload-pixel-art-v9.py"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-0ed15dd601c95b82", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-cvn-poll.mjs:10"}, "properties": {"repobilityId": "d4ef660c72aea4cc", "scanner": "scanner-primary", "fingerprint": "0ed15dd601c95b82", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/post-cvn-poll.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-2724fc0f678bfe24", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/bulk-regen-cards.py:73"}, "properties": {"repobilityId": "c110b564d46bbf8f", "scanner": "scanner-primary", "fingerprint": "2724fc0f678bfe24", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/bulk-regen-cards.py"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-ec9bf2b5075ea84c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/repoint-global-art-cachebust.mjs:30"}, "properties": {"repobilityId": "9ec14c37b7137fe8", "scanner": "scanner-primary", "fingerprint": "ec9bf2b5075ea84c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/repoint-global-art-cachebust.mjs"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-e48b298dac47d6f0", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/gen-expansion-art.py:97"}, "properties": {"repobilityId": "df5df4804cec5707", "scanner": "scanner-primary", "fingerprint": "e48b298dac47d6f0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/gen-expansion-art.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-1d1cd33703481e81", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/xp-checkin-reset.mjs:22"}, "properties": {"repobilityId": "e9cc9ad58f856c53", "scanner": "scanner-primary", "fingerprint": "1d1cd33703481e81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/xp-checkin-reset.mjs"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-e01105d801e937e8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in discord-bot/tools/post-announcement.mjs:11"}, "properties": {"repobilityId": "8f732ea5497c2215", "scanner": "scanner-primary", "fingerprint": "e01105d801e937e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/post-announcement.mjs"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-0d4d6541d061dd31", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in discord-bot/tools/upload-damage-numbers.py:39"}, "properties": {"repobilityId": "8d4f91234ecf9993", "scanner": "scanner-primary", "fingerprint": "0d4d6541d061dd31", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/tools/upload-damage-numbers.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-3dcdb493c80e5057", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/worker.js:358"}, "properties": {"repobilityId": "f92a503656872f5a", "scanner": "scanner-primary", "fingerprint": "3dcdb493c80e5057", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/aquilo/worker.js"}, "region": {"startLine": 358}}}]}, {"ruleId": "scanner-8c912fb53b1ade75", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/aquilo/today-game.js:107"}, "properties": {"repobilityId": "b184948698959ef3", "scanner": "scanner-primary", "fingerprint": "8c912fb53b1ade75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/aquilo/today-game.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-2a1cea8e2e45bd58", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in discord-bot/progression/http.js:29"}, "properties": {"repobilityId": "e8d6042b08e621f0", "scanner": "scanner-primary", "fingerprint": "2a1cea8e2e45bd58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "discord-bot/progression/http.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-0943f31de8d8eff6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in aquilo-gg/worker/loadout-link-worker.js:48"}, "properties": {"repobilityId": "9bb8da5a1cbd81c9", "scanner": "scanner-primary", "fingerprint": "0943f31de8d8eff6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/worker/loadout-link-worker.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-f0ac438a65e09fe8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/link/main.js:140"}, "properties": {"repobilityId": "5107ad44fad7a22f", "scanner": "scanner-primary", "fingerprint": "f0ac438a65e09fe8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/link/main.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-e2e4e725f95022ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/starting-soon/main.js:46"}, "properties": {"repobilityId": "894ab91be1417258", "scanner": "scanner-primary", "fingerprint": "e2e4e725f95022ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/starting-soon/main.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-43b41ae5cd56e03f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/recap/main.js:40"}, "properties": {"repobilityId": "d0a8c0b02072b810", "scanner": "scanner-primary", "fingerprint": "43b41ae5cd56e03f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/recap/main.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-017d300e0ca740d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/clash/main.js:144"}, "properties": {"repobilityId": "e7c96efd37bb373a", "scanner": "scanner-primary", "fingerprint": "017d300e0ca740d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/clash/main.js"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-db9a8ae7bcd742f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/follow-minecraft/index.html:286"}, "properties": {"repobilityId": "bdbfd99e1be4f7b6", "scanner": "scanner-primary", "fingerprint": "db9a8ae7bcd742f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/follow-minecraft/index.html"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-30eb0364d85739db", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/tanks/main.js:131"}, "properties": {"repobilityId": "987cde2ade9e4cb6", "scanner": "scanner-primary", "fingerprint": "30eb0364d85739db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/tanks/main.js"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-0542d783cf00eac2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/minigames/main.js:62"}, "properties": {"repobilityId": "37d3f90c3f3d8497", "scanner": "scanner-primary", "fingerprint": "0542d783cf00eac2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/minigames/main.js"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-70c4ebabf8eb1c10", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/check-in/main.js:79"}, "properties": {"repobilityId": "b0176394fcefb567", "scanner": "scanner-primary", "fingerprint": "70c4ebabf8eb1c10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/check-in/main.js"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-19769f51a2604c9c", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in aquilo-gg/overlays/hangman/selftest.mjs:12"}, "properties": {"repobilityId": "1cf1eedeb1de3c42", "scanner": "scanner-primary", "fingerprint": "19769f51a2604c9c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/hangman/selftest.mjs"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-e0f6a2daafc0d53c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/hangman/main.js:216"}, "properties": {"repobilityId": "695abc29c58972c9", "scanner": "scanner-primary", "fingerprint": "e0f6a2daafc0d53c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/hangman/main.js"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-dbce86a8cc5d0b8f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/commands/main.js:158"}, "properties": {"repobilityId": "4ef880d7c7c3c8f7", "scanner": "scanner-primary", "fingerprint": "dbce86a8cc5d0b8f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/commands/main.js"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-bb925090aea05ca3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/viewer/main.js:95"}, "properties": {"repobilityId": "2331315d9cf92033", "scanner": "scanner-primary", "fingerprint": "bb925090aea05ca3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/viewer/main.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-55cfe267afbda52c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/gift-jar/main.js:719"}, "properties": {"repobilityId": "4a56452a8f717989", "scanner": "scanner-primary", "fingerprint": "55cfe267afbda52c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/gift-jar/main.js"}, "region": {"startLine": 719}}}]}, {"ruleId": "scanner-3df00d24d3612afb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/counters/main.js:60"}, "properties": {"repobilityId": "56e45ce96409fd87", "scanner": "scanner-primary", "fingerprint": "3df00d24d3612afb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/counters/main.js"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-6d3fa616a031c72c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/apex/main.js:42"}, "properties": {"repobilityId": "6702d7feb3b78a80", "scanner": "scanner-primary", "fingerprint": "6d3fa616a031c72c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/apex/main.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-11ee0dbd16cd5b8b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/goals/main.js:30"}, "properties": {"repobilityId": "d602fc5e8bc7981c", "scanner": "scanner-primary", "fingerprint": "11ee0dbd16cd5b8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/goals/main.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-1730d959eca53ed2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/_shared/test-listener.js:156"}, "properties": {"repobilityId": "a2611917472f169c", "scanner": "scanner-primary", "fingerprint": "1730d959eca53ed2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/_shared/test-listener.js"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-dcbbcb323d133f7f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/follow-gwyf/index.html:296"}, "properties": {"repobilityId": "df73db3aaaab9150", "scanner": "scanner-primary", "fingerprint": "dcbbcb323d133f7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/follow-gwyf/index.html"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-00a6795c65ad85b2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/bolts/main.js:82"}, "properties": {"repobilityId": "bb98f87660b59f25", "scanner": "scanner-primary", "fingerprint": "00a6795c65ad85b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/bolts/main.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-80a0c5895f18ca6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in aquilo-gg/overlays/compact/main.js:277"}, "properties": {"repobilityId": "6cdfd9836ee8c699", "scanner": "scanner-primary", "fingerprint": "80a0c5895f18ca6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aquilo-gg/overlays/compact/main.js"}, "region": {"startLine": 277}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4c314402d29d2c2f", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0dc584a111ffc00", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1bf0fd1430c42e23", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e5cd688e731ca07e", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5a380bb21c7e59ac", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-c48b305478774801", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "53b80689edd7469d", "scanner": "scanner-primary", "fingerprint": "c48b305478774801", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/companion-streamkey-release.yml"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-4444bd32c210ccfa", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8fe03cf2b86d7f85", "scanner": "scanner-primary", "fingerprint": "4444bd32c210ccfa", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/companion-streamkey-release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b24f84d52ba6505", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8e807313d1f58a3c", "scanner": "scanner-primary", "fingerprint": "7b24f84d52ba6505", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/post-release-notes.yml"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-7b24f84d52ba6505", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9dac07cf12a4ebbe", "scanner": "scanner-primary", "fingerprint": "7b24f84d52ba6505", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/post-release-notes.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-9eb004c4dddc39d5", "level": "note", "message": {"text": "Very large file: discord-bot/scratch-off.js (1385 lines)"}, "properties": {"repobilityId": "7591c127f556db3a", "scanner": "scanner-primary", "fingerprint": "9eb004c4dddc39d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-672244d31226da61", "level": "note", "message": {"text": "Very large file: discord-bot/stocks.js (1326 lines)"}, "properties": {"repobilityId": "b5b6e9bb2b8550fd", "scanner": "scanner-primary", "fingerprint": "672244d31226da61", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea7e834bc00b8f30", "level": "note", "message": {"text": "Very large file: discord-bot/cards-web.js (1136 lines)"}, "properties": {"repobilityId": "0382f441bd51bdfe", "scanner": "scanner-primary", "fingerprint": "ea7e834bc00b8f30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b459073eb07890a9", "level": "note", "message": {"text": "Very large file: discord-bot/card-text-overrides.js (1105 lines)"}, "properties": {"repobilityId": "eafa141cd08f27e2", "scanner": "scanner-primary", "fingerprint": "b459073eb07890a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb2f51a05e858eec", "level": "note", "message": {"text": "Very large file: discord-bot/character.js (1335 lines)"}, "properties": {"repobilityId": "c84471fbf7f1797f", "scanner": "scanner-primary", "fingerprint": "fb2f51a05e858eec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-32946eeed517be75", "level": "note", "message": {"text": "Very large file: discord-bot/worker.js (6794 lines)"}, "properties": {"repobilityId": "8a243514ad10ac1d", "scanner": "scanner-primary", "fingerprint": "32946eeed517be75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-282163a32c912abb", "level": "note", "message": {"text": "Very large file: discord-bot/onboarding.js (1239 lines)"}, "properties": {"repobilityId": "5c13f32668bc11b0", "scanner": "scanner-primary", "fingerprint": "282163a32c912abb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2fa5bf4b05878f2b", "level": "note", "message": {"text": "Very large file: discord-bot/web.js (1863 lines)"}, "properties": {"repobilityId": "603379e47688dc43", "scanner": "scanner-primary", "fingerprint": "2fa5bf4b05878f2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7038e9058318d2a6", "level": "note", "message": {"text": "Very large file: discord-bot/punchcard.js (1120 lines)"}, "properties": {"repobilityId": "507a91c06e34ec66", "scanner": "scanner-primary", "fingerprint": "7038e9058318d2a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e35ff499d958248b", "level": "note", "message": {"text": "Very large file: tools/build-clash-unique-buildings.mjs (1059 lines)"}, "properties": {"repobilityId": "9f32c8391082dae5", "scanner": "scanner-primary", "fingerprint": "e35ff499d958248b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-243ffa66b5d79fd0", "level": "note", "message": {"text": "Very large file: tools/build-gear-glossy.mjs (1079 lines)"}, "properties": {"repobilityId": "2b6329f7b084a915", "scanner": "scanner-primary", "fingerprint": "243ffa66b5d79fd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e5ede95391d5d56", "level": "note", "message": {"text": "Very large file: tools/build-character-glossy.mjs (1334 lines)"}, "properties": {"repobilityId": "da95d86258af1985", "scanner": "scanner-primary", "fingerprint": "9e5ede95391d5d56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b2e82c0c8c428228", "level": "note", "message": {"text": "Very large file: aquilo-gg/overlays/tanks/main.js (1576 lines)"}, "properties": {"repobilityId": "b3303e0bd9c42a2a", "scanner": "scanner-primary", "fingerprint": "b2e82c0c8c428228", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1417782969a76e01", "level": "note", "message": {"text": "Very large file: aquilo-gg/overlays/gift-jar/main.js (2282 lines)"}, "properties": {"repobilityId": "b3b95ec48d4b7be5", "scanner": "scanner-primary", "fingerprint": "1417782969a76e01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "583a71adf9ed24b7", "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": "41e1eb455273ef0a", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "781d8fe0413c95df", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "adc1f62a10bf8392", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-8ff19924e4353f40", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/quickgames-command.js:6"}, "properties": {"repobilityId": "78e7d9245f80c05f", "scanner": "scanner-primary", "fingerprint": "8ff19924e4353f40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b2300331e16dd36", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-dust.js:3"}, "properties": {"repobilityId": "14f5512d0a902221", "scanner": "scanner-primary", "fingerprint": "2b2300331e16dd36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-970af6691bf04705", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/ext.js:8"}, "properties": {"repobilityId": "1af55eced0b9a228", "scanner": "scanner-primary", "fingerprint": "970af6691bf04705", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4302bb0c8797257e", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/banner-wars.js:3"}, "properties": {"repobilityId": "841356a3350618a6", "scanner": "scanner-primary", "fingerprint": "4302bb0c8797257e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d570f9aa12851d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-fragments.js:3"}, "properties": {"repobilityId": "0ca2dba78aa49e4d", "scanner": "scanner-primary", "fingerprint": "3d570f9aa12851d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c80331716d5a1ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards.js:67"}, "properties": {"repobilityId": "33d9e2a5fd9be5f8", "scanner": "scanner-primary", "fingerprint": "8c80331716d5a1ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-879786c34f9143ec", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/streak-freeze.js:3"}, "properties": {"repobilityId": "7114bf5b37e48b81", "scanner": "scanner-primary", "fingerprint": "879786c34f9143ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dffc038c9e66cd3", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/cards-decks.js:95"}, "properties": {"repobilityId": "8e4dc230a101c145", "scanner": "scanner-primary", "fingerprint": "3dffc038c9e66cd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b98c5bd9e324871e", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-stats.js:3"}, "properties": {"repobilityId": "c3f7a7f8df1cba6c", "scanner": "scanner-primary", "fingerprint": "b98c5bd9e324871e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55f43f447674db94", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/cn-vote-hub.js:5"}, "properties": {"repobilityId": "b20144e606f5b8f0", "scanner": "scanner-primary", "fingerprint": "55f43f447674db94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc8efd64ef6500d8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-vote-hub.js:81"}, "properties": {"repobilityId": "74db344184e773f4", "scanner": "scanner-primary", "fingerprint": "fc8efd64ef6500d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b888bb1352b62504", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/schedule.js:66"}, "properties": {"repobilityId": "813da840bbd58182", "scanner": "scanner-primary", "fingerprint": "b888bb1352b62504", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d1f70f96fd13225", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/scratch-off.js:3"}, "properties": {"repobilityId": "d090736334b2b373", "scanner": "scanner-primary", "fingerprint": "9d1f70f96fd13225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc9861d9bedeeedc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scratch-off.js:1284"}, "properties": {"repobilityId": "f1845b7e0e2bdade", "scanner": "scanner-primary", "fingerprint": "bc9861d9bedeeedc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c9e04e90a7166c92", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/lfg-hub.js:8"}, "properties": {"repobilityId": "523c6c86165197a3", "scanner": "scanner-primary", "fingerprint": "c9e04e90a7166c92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceab179084ad9ef4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/lfg-hub.js:134"}, "properties": {"repobilityId": "c137753438f5ac5a", "scanner": "scanner-primary", "fingerprint": "ceab179084ad9ef4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d24e98df3f0648d9", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/quests.js:6"}, "properties": {"repobilityId": "55158de5e3cfec87", "scanner": "scanner-primary", "fingerprint": "d24e98df3f0648d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5be90eb17daaf4d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/queue.js:21"}, "properties": {"repobilityId": "be29b11b28b7f03e", "scanner": "scanner-primary", "fingerprint": "5be90eb17daaf4d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d96ae9fc1efc1e53", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/queue.js:461"}, "properties": {"repobilityId": "bc6443881b48c054", "scanner": "scanner-primary", "fingerprint": "d96ae9fc1efc1e53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7c4abe7df1b977e5", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/death-counter.js:8"}, "properties": {"repobilityId": "0fb2f4cfd9f9eeea", "scanner": "scanner-primary", "fingerprint": "7c4abe7df1b977e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b93dda654816781", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/community.js:48"}, "properties": {"repobilityId": "e89bfa9d32c5a4cd", "scanner": "scanner-primary", "fingerprint": "7b93dda654816781", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29f66965b0b78723", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boardgames-checkers.js:10"}, "properties": {"repobilityId": "71cadde7f2209689", "scanner": "scanner-primary", "fingerprint": "29f66965b0b78723", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-613cd6446c610d68", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/card-effects-backfill.js:1"}, "properties": {"repobilityId": "af5932fcd30a02ea", "scanner": "scanner-primary", "fingerprint": "613cd6446c610d68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e017a78ad32b6af6", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-state.js:3"}, "properties": {"repobilityId": "e4c562952cdeba65", "scanner": "scanner-primary", "fingerprint": "e017a78ad32b6af6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-974fa7cb0be21fc3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/live-status-embed.js:3"}, "properties": {"repobilityId": "668b4cce3ee70163", "scanner": "scanner-primary", "fingerprint": "974fa7cb0be21fc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10ef45adc4c50058", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-rooms.js:3"}, "properties": {"repobilityId": "f3e20975471d3288", "scanner": "scanner-primary", "fingerprint": "10ef45adc4c50058", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6a3c42586b2611d", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-connect4.js:9"}, "properties": {"repobilityId": "82586f14915a7469", "scanner": "scanner-primary", "fingerprint": "c6a3c42586b2611d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fcc729265ac6a37", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-login.js:12"}, "properties": {"repobilityId": "1588c01a4a5c7fbf", "scanner": "scanner-primary", "fingerprint": "1fcc729265ac6a37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3029c98a4025c57d", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/ext-tier1.js:6"}, "properties": {"repobilityId": "cfc28792f760e682", "scanner": "scanner-primary", "fingerprint": "3029c98a4025c57d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce31772e39d9b85a", "level": "none", "message": {"text": "Commented-code block (28 lines) in discord-bot/loadout-menu.js:10"}, "properties": {"repobilityId": "e84dce52a0200154", "scanner": "scanner-primary", "fingerprint": "ce31772e39d9b85a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88fb669a079b6c57", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/widget-presets.js:1"}, "properties": {"repobilityId": "30efc8727903a515", "scanner": "scanner-primary", "fingerprint": "88fb669a079b6c57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cdc9b9fbf2d7408", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/command-bindings.js:40"}, "properties": {"repobilityId": "2c35c0ab6c55fcd6", "scanner": "scanner-primary", "fingerprint": "8cdc9b9fbf2d7408", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c40e7f8d3f5e81c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/ext-panelbridge.js:47"}, "properties": {"repobilityId": "0e5e1756ba0aaa3b", "scanner": "scanner-primary", "fingerprint": "c40e7f8d3f5e81c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e271272fb154aee", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/spire.js:12"}, "properties": {"repobilityId": "106e9f55ea895ed5", "scanner": "scanner-primary", "fingerprint": "5e271272fb154aee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44c366261bc081fd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/spire.js:473"}, "properties": {"repobilityId": "37d148496b76b1a5", "scanner": "scanner-primary", "fingerprint": "44c366261bc081fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c6a9f0241cfaa5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/level-tier-roles.js:10"}, "properties": {"repobilityId": "18add516d2a1d4f3", "scanner": "scanner-primary", "fingerprint": "0c6a9f0241cfaa5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10632ccf66372c09", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/level-tier-roles.js:99"}, "properties": {"repobilityId": "dc26c8bd005c6d6f", "scanner": "scanner-primary", "fingerprint": "10632ccf66372c09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86f181b005d8b24e", "level": "none", "message": {"text": "Commented-code block (22 lines) in discord-bot/hub-menu.js:4"}, "properties": {"repobilityId": "fddd9f82717dd0fb", "scanner": "scanner-primary", "fingerprint": "86f181b005d8b24e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78585a05eea5ed39", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/wallet.js:32"}, "properties": {"repobilityId": "9491a10dd429f393", "scanner": "scanner-primary", "fingerprint": "78585a05eea5ed39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce71adbda58c760e", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/commands-spec.js:5"}, "properties": {"repobilityId": "b2ebe895781511d3", "scanner": "scanner-primary", "fingerprint": "ce71adbda58c760e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4289c77589267b01", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/banners.js:4"}, "properties": {"repobilityId": "f5947dc7571b44ee", "scanner": "scanner-primary", "fingerprint": "4289c77589267b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff196958f0184367", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/sf-release.js:9"}, "properties": {"repobilityId": "3520d6ff201f4168", "scanner": "scanner-primary", "fingerprint": "ff196958f0184367", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3510fb51ecc890db", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-ai.js:1"}, "properties": {"repobilityId": "e1cff638db585d2b", "scanner": "scanner-primary", "fingerprint": "3510fb51ecc890db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f92b9a8e314f590e", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/gifter-roles.js:8"}, "properties": {"repobilityId": "c7221c698b684d61", "scanner": "scanner-primary", "fingerprint": "f92b9a8e314f590e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f7be143ed516671", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/gifter-roles.js:331"}, "properties": {"repobilityId": "4173b8720e5358a8", "scanner": "scanner-primary", "fingerprint": "1f7be143ed516671", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-463d41c6422276c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/cards-dust.js:3"}, "properties": {"repobilityId": "b0abace9fe5a3718", "scanner": "scanner-primary", "fingerprint": "463d41c6422276c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2111f38f73b9e06f", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/stream-checkin.js:3"}, "properties": {"repobilityId": "62b8e902a7ea5a2d", "scanner": "scanner-primary", "fingerprint": "2111f38f73b9e06f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-646dea0f4119a863", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/stream-events.js:3"}, "properties": {"repobilityId": "9eae02ccc2aa9d8f", "scanner": "scanner-primary", "fingerprint": "646dea0f4119a863", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1596f6946caef56f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/stream-events.js:110"}, "properties": {"repobilityId": "7ccda62d314046fb", "scanner": "scanner-primary", "fingerprint": "1596f6946caef56f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fb8483695b42f3b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/punchcard-streak.js:1"}, "properties": {"repobilityId": "5d37b24afff6630e", "scanner": "scanner-primary", "fingerprint": "fb8483695b42f3b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48931b4e1f86001d", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/admin-menu.js:17"}, "properties": {"repobilityId": "242e46e70e23229e", "scanner": "scanner-primary", "fingerprint": "48931b4e1f86001d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3e79b52b3752ee8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/admin-menu.js:491"}, "properties": {"repobilityId": "8c42529db5e2aede", "scanner": "scanner-primary", "fingerprint": "a3e79b52b3752ee8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a5a883fa5ae75f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/friends.js:3"}, "properties": {"repobilityId": "a752c86cccf0f999", "scanner": "scanner-primary", "fingerprint": "4a5a883fa5ae75f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1f5f5a3d563943d", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/twitch-rewards.js:9"}, "properties": {"repobilityId": "57b234a37419ef9f", "scanner": "scanner-primary", "fingerprint": "e1f5f5a3d563943d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e0e179253359dc9", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/boardgames-tanks.js:3"}, "properties": {"repobilityId": "4887bcb67f44bdb0", "scanner": "scanner-primary", "fingerprint": "5e0e179253359dc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a16a51e219884522", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/register-commands.js:38"}, "properties": {"repobilityId": "83fa27ac21f69e90", "scanner": "scanner-primary", "fingerprint": "a16a51e219884522", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-836205b55b356cb1", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/rotation.js:3"}, "properties": {"repobilityId": "254e9f35b8175f18", "scanner": "scanner-primary", "fingerprint": "836205b55b356cb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-377f723093c48361", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/activity-feed.js:49"}, "properties": {"repobilityId": "1176848ee130f8a5", "scanner": "scanner-primary", "fingerprint": "377f723093c48361", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b109478b63d6fa07", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/cards-expansion-bulk.js:3"}, "properties": {"repobilityId": "5742ef66ce8e8b68", "scanner": "scanner-primary", "fingerprint": "b109478b63d6fa07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4bd3215123c5ca2", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/twitch-oauth.js:1"}, "properties": {"repobilityId": "712b31765404208a", "scanner": "scanner-primary", "fingerprint": "e4bd3215123c5ca2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f853597dfbbd5ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-oauth.js:147"}, "properties": {"repobilityId": "869244d245f2dad1", "scanner": "scanner-primary", "fingerprint": "6f853597dfbbd5ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54fc2614eecaa949", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/partyup.js:1"}, "properties": {"repobilityId": "04bb0bed247747fa", "scanner": "scanner-primary", "fingerprint": "54fc2614eecaa949", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86a511f80503e3ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/character-composite.js:3"}, "properties": {"repobilityId": "e2c89e168d9500b0", "scanner": "scanner-primary", "fingerprint": "86a511f80503e3ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-899a02c6f257c19e", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/community-checkin.js:3"}, "properties": {"repobilityId": "6c9ce8d8fddfae8a", "scanner": "scanner-primary", "fingerprint": "899a02c6f257c19e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-175ccd54ada44ade", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/community-checkin.js:369"}, "properties": {"repobilityId": "b57c098990f6700b", "scanner": "scanner-primary", "fingerprint": "175ccd54ada44ade", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9506e2150a20b04", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/games.js:10"}, "properties": {"repobilityId": "e8b3abd2ca844f6c", "scanner": "scanner-primary", "fingerprint": "b9506e2150a20b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da35bbd38ff3d06e", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-emotes.js:3"}, "properties": {"repobilityId": "68c594761087a26f", "scanner": "scanner-primary", "fingerprint": "da35bbd38ff3d06e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a8a0c95672af0be", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/spire-map.js:3"}, "properties": {"repobilityId": "e11f63d8d1409d24", "scanner": "scanner-primary", "fingerprint": "5a8a0c95672af0be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1527a3a9c76b845", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-battle.js:3"}, "properties": {"repobilityId": "4482ae33ce965450", "scanner": "scanner-primary", "fingerprint": "a1527a3a9c76b845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3f9963a4f3ad9f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/ext-quick.js:4"}, "properties": {"repobilityId": "15fd220789793a88", "scanner": "scanner-primary", "fingerprint": "e3f9963a4f3ad9f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4614ec278f07e01", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/boardgames-web.js:3"}, "properties": {"repobilityId": "f7856488f936fb8b", "scanner": "scanner-primary", "fingerprint": "e4614ec278f07e01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7b6f0e0b5d505bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/stream-bonus.js:4"}, "properties": {"repobilityId": "8913a76468da9f5e", "scanner": "scanner-primary", "fingerprint": "f7b6f0e0b5d505bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-446b7d5228d17af3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/stocks.js:13"}, "properties": {"repobilityId": "a7de153f6ac0f0ce", "scanner": "scanner-primary", "fingerprint": "446b7d5228d17af3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e8ed909497adc5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-web.js:216"}, "properties": {"repobilityId": "7ccbb7c20bdfcb6d", "scanner": "scanner-primary", "fingerprint": "3e8ed909497adc5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15a90b0aa945d3d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-replays-rx.js:13"}, "properties": {"repobilityId": "f960623284dcc62f", "scanner": "scanner-primary", "fingerprint": "15a90b0aa945d3d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f85f6c9d55de052d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/vote-hub.js:334"}, "properties": {"repobilityId": "8326e94affceda6e", "scanner": "scanner-primary", "fingerprint": "f85f6c9d55de052d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ab0e53c9267f9e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/bet.js:8"}, "properties": {"repobilityId": "0b8561342560b777", "scanner": "scanner-primary", "fingerprint": "2ab0e53c9267f9e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0393440323331c02", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-expansion.js:3"}, "properties": {"repobilityId": "7feb71454ac290bb", "scanner": "scanner-primary", "fingerprint": "0393440323331c02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a44a6c9a6ebcb483", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/ext-mod.js:10"}, "properties": {"repobilityId": "bebe61434c1ccfc0", "scanner": "scanner-primary", "fingerprint": "a44a6c9a6ebcb483", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc48d31aa0499bc5", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/png-codec.js:3"}, "properties": {"repobilityId": "62a5673528f05684", "scanner": "scanner-primary", "fingerprint": "fc48d31aa0499bc5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22f404031b7f6845", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/monthly-cosmetic-grant.js:3"}, "properties": {"repobilityId": "c5b55b2719389d87", "scanner": "scanner-primary", "fingerprint": "22f404031b7f6845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f114152a08256280", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/scheduled-messages.js:5"}, "properties": {"repobilityId": "3331ea4c6369f599", "scanner": "scanner-primary", "fingerprint": "f114152a08256280", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88f9f9b2d9581b00", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/scheduled-messages.js:290"}, "properties": {"repobilityId": "72debaf58fbc4228", "scanner": "scanner-primary", "fingerprint": "88f9f9b2d9581b00", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dfde832b3327d202", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/game-art-finder.js:3"}, "properties": {"repobilityId": "51b701b99df54b1c", "scanner": "scanner-primary", "fingerprint": "dfde832b3327d202", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b610b5b560402731", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/game-art-finder.js:37"}, "properties": {"repobilityId": "713a18c2ef19d9ed", "scanner": "scanner-primary", "fingerprint": "b610b5b560402731", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-55fa26d58dc3d134", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/cards-packs.js:6"}, "properties": {"repobilityId": "e01b385ab5f715d6", "scanner": "scanner-primary", "fingerprint": "55fa26d58dc3d134", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85a9b2a2781d99d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/printerbot.js:3"}, "properties": {"repobilityId": "59be29f36fbec3d0", "scanner": "scanner-primary", "fingerprint": "85a9b2a2781d99d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ebcd00dc3e7666c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/printerbot.js:33"}, "properties": {"repobilityId": "7e2e6e6ae7462f60", "scanner": "scanner-primary", "fingerprint": "0ebcd00dc3e7666c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbb5e04ff55fa33e", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/overlay-test.js:1"}, "properties": {"repobilityId": "47930cd55f29a7d8", "scanner": "scanner-primary", "fingerprint": "fbb5e04ff55fa33e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76d783162a519314", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/card-art-backfill.js:3"}, "properties": {"repobilityId": "995d3d18821e8b5f", "scanner": "scanner-primary", "fingerprint": "76d783162a519314", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85a6dce494be7307", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/push-dm.js:10"}, "properties": {"repobilityId": "5d4ba537a9217234", "scanner": "scanner-primary", "fingerprint": "85a6dce494be7307", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dec611aa962e6e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aether.js:3"}, "properties": {"repobilityId": "e4b5fc2d4d1e51bc", "scanner": "scanner-primary", "fingerprint": "0dec611aa962e6e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94a20fd101672709", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/mc-whitelist.js:3"}, "properties": {"repobilityId": "77aec57a6bccb67b", "scanner": "scanner-primary", "fingerprint": "94a20fd101672709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83c4633045e0e86d", "level": "none", "message": {"text": "Commented-code block (13 lines) in discord-bot/reset-user-data.js:5"}, "properties": {"repobilityId": "c44372e3f3ff024f", "scanner": "scanner-primary", "fingerprint": "83c4633045e0e86d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb2153cefe03e968", "level": "none", "message": {"text": "Commented-code block (13 lines) in discord-bot/support-tickets.js:3"}, "properties": {"repobilityId": "ad0415d77000920c", "scanner": "scanner-primary", "fingerprint": "cb2153cefe03e968", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47def706072a184b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/support-tickets.js:1085"}, "properties": {"repobilityId": "ca81c0766884bd40", "scanner": "scanner-primary", "fingerprint": "47def706072a184b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f3ba9c18739ed84b", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/card-text-overrides.js:3"}, "properties": {"repobilityId": "7e8894c0296be3de", "scanner": "scanner-primary", "fingerprint": "f3ba9c18739ed84b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71d84e1387700aba", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/weekly-recap.js:4"}, "properties": {"repobilityId": "a30aa05ec62ff432", "scanner": "scanner-primary", "fingerprint": "71d84e1387700aba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19d76b5c79b547b1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/weekly-recap.js:184"}, "properties": {"repobilityId": "dac83aa1394d167c", "scanner": "scanner-primary", "fingerprint": "19d76b5c79b547b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-68b0c16bfce4a01e", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/pixel-art-maps.js:3"}, "properties": {"repobilityId": "f9b1c5a327094585", "scanner": "scanner-primary", "fingerprint": "68b0c16bfce4a01e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7ed7c06de32adf6", "level": "none", "message": {"text": "Commented-code block (15 lines) in discord-bot/twitch-events.js:3"}, "properties": {"repobilityId": "b4059593e37f9c44", "scanner": "scanner-primary", "fingerprint": "a7ed7c06de32adf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a32d3fa6ea55822a", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/ext-lootbox.js:3"}, "properties": {"repobilityId": "60630cf18cd1393c", "scanner": "scanner-primary", "fingerprint": "a32d3fa6ea55822a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec52351a4172e747", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/embeds.js:1"}, "properties": {"repobilityId": "13dca8968ff1cca5", "scanner": "scanner-primary", "fingerprint": "ec52351a4172e747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e4437eb2dd22cbf", "level": "none", "message": {"text": "Commented-code block (19 lines) in discord-bot/boardgames-engine.js:9"}, "properties": {"repobilityId": "3e93dfb66cd439ab", "scanner": "scanner-primary", "fingerprint": "6e4437eb2dd22cbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae5791fde4d2207d", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/temp-vc.js:3"}, "properties": {"repobilityId": "62703603ba16cc89", "scanner": "scanner-primary", "fingerprint": "ae5791fde4d2207d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac86282cded344d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/commands.js:8"}, "properties": {"repobilityId": "fffe7566d112cbc7", "scanner": "scanner-primary", "fingerprint": "ac86282cded344d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0094f100508631c", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/panel-test.js:3"}, "properties": {"repobilityId": "1452b46052fe72a6", "scanner": "scanner-primary", "fingerprint": "b0094f100508631c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b81ac13b4885489d", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/patreon-link.js:10"}, "properties": {"repobilityId": "156bb9963d46b1f1", "scanner": "scanner-primary", "fingerprint": "b81ac13b4885489d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a880980c0186ba89", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/excluded.js:3"}, "properties": {"repobilityId": "3d126cd706802903", "scanner": "scanner-primary", "fingerprint": "a880980c0186ba89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d40a225b4ae69e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/powerdeck.js:1"}, "properties": {"repobilityId": "bccbdc7cdfbae01a", "scanner": "scanner-primary", "fingerprint": "3d40a225b4ae69e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-977730da4f36f033", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/challenges.js:5"}, "properties": {"repobilityId": "c6cd9d9c70b2a765", "scanner": "scanner-primary", "fingerprint": "977730da4f36f033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3a2699a37117fe8", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/welcome.js:3"}, "properties": {"repobilityId": "51f005d8b1ec5415", "scanner": "scanner-primary", "fingerprint": "f3a2699a37117fe8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cbf5c375fb8bd11", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/welcome.js:61"}, "properties": {"repobilityId": "78267430dc8e3935", "scanner": "scanner-primary", "fingerprint": "3cbf5c375fb8bd11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-38c6e6d73cbb1a79", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/bolts-feed.js:3"}, "properties": {"repobilityId": "79cbfae92d1a07d4", "scanner": "scanner-primary", "fingerprint": "38c6e6d73cbb1a79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57b92dbd13db497b", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/character.js:8"}, "properties": {"repobilityId": "3e41f25d2ecaf1ca", "scanner": "scanner-primary", "fingerprint": "57b92dbd13db497b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7383681f7ffc57d4", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/spire-seasons.js:8"}, "properties": {"repobilityId": "51d28e0e5ebbe379", "scanner": "scanner-primary", "fingerprint": "7383681f7ffc57d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22621ce7794fdd8c", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/setup-wizard.js:8"}, "properties": {"repobilityId": "973585c4910d6082", "scanner": "scanner-primary", "fingerprint": "22621ce7794fdd8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cb2c6e8bc6296ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-arena.js:8"}, "properties": {"repobilityId": "da375fd799557e2d", "scanner": "scanner-primary", "fingerprint": "2cb2c6e8bc6296ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd54d25907845f78", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/site-games-sync.js:3"}, "properties": {"repobilityId": "2261555f96ec5f9e", "scanner": "scanner-primary", "fingerprint": "bd54d25907845f78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c956af8fcc71612", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/bot-guard.js:4"}, "properties": {"repobilityId": "616d5f9a543f21d1", "scanner": "scanner-primary", "fingerprint": "8c956af8fcc71612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db2a9144222537b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/hero-powers.js:3"}, "properties": {"repobilityId": "024c9d549ea2bfc8", "scanner": "scanner-primary", "fingerprint": "db2a9144222537b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc25daf13e6e2de5", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/bobbleheads.js:1"}, "properties": {"repobilityId": "8e6e9ee25d32e761", "scanner": "scanner-primary", "fingerprint": "bc25daf13e6e2de5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db0b2d3b0e1a6f10", "level": "note", "message": {"text": "Legacy-named symbol `handleVoteHubRetireLegacy` in discord-bot/worker.js:417"}, "properties": {"repobilityId": "893c173ae95a2414", "scanner": "scanner-primary", "fingerprint": "db0b2d3b0e1a6f10", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f53c150b0c123c22", "level": "none", "message": {"text": "Commented-code block (16 lines) in discord-bot/worker.js:7"}, "properties": {"repobilityId": "743bbb431925d575", "scanner": "scanner-primary", "fingerprint": "f53c150b0c123c22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a5b0f6a5915c972", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/worker.js:114"}, "properties": {"repobilityId": "64ef3aed2ca558b7", "scanner": "scanner-primary", "fingerprint": "5a5b0f6a5915c972", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44de8c0e6d483e17", "level": "note", "message": {"text": "Legacy-named symbol `tooOld` in discord-bot/counting-purge.js:76"}, "properties": {"repobilityId": "9adff92be86d50c5", "scanner": "scanner-primary", "fingerprint": "44de8c0e6d483e17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-730beb7d740d8192", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/counting-purge.js:4"}, "properties": {"repobilityId": "78655ac1f5d55608", "scanner": "scanner-primary", "fingerprint": "730beb7d740d8192", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2438babcb6ae4f7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/counting-purge.js:30"}, "properties": {"repobilityId": "e0f95b694850a7dc", "scanner": "scanner-primary", "fingerprint": "d2438babcb6ae4f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-323443a91b38756d", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/chat-relay.js:3"}, "properties": {"repobilityId": "2c7e6a7b6270cd13", "scanner": "scanner-primary", "fingerprint": "323443a91b38756d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cac7c9c93d0f825", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/chat-relay.js:136"}, "properties": {"repobilityId": "402a289108603fbd", "scanner": "scanner-primary", "fingerprint": "4cac7c9c93d0f825", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca702286bfcdfb25", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boardgames-chess.js:8"}, "properties": {"repobilityId": "7391bcb4989e250c", "scanner": "scanner-primary", "fingerprint": "ca702286bfcdfb25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a89d367767233d57", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/voice-temp.js:3"}, "properties": {"repobilityId": "ac7bb04492569292", "scanner": "scanner-primary", "fingerprint": "a89d367767233d57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-700828b85e998838", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/daily-bonus-push.js:3"}, "properties": {"repobilityId": "bddde621ed253d7b", "scanner": "scanner-primary", "fingerprint": "700828b85e998838", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-658a5a3e55a7f0aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/daily-bonus-push.js:52"}, "properties": {"repobilityId": "821bf00017f74512", "scanner": "scanner-primary", "fingerprint": "658a5a3e55a7f0aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-34157dca34ec6224", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/sf-queue.js:19"}, "properties": {"repobilityId": "0a993345d8f4e6a9", "scanner": "scanner-primary", "fingerprint": "34157dca34ec6224", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7c7d9a5e909f5d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/cards-match.js:3"}, "properties": {"repobilityId": "0df6e6462870aea9", "scanner": "scanner-primary", "fingerprint": "f7c7d9a5e909f5d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ded937e2fa88f73", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/tickets.js:7"}, "properties": {"repobilityId": "f299802cce6f195b", "scanner": "scanner-primary", "fingerprint": "3ded937e2fa88f73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d007b8e6dc78854a", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tenants.js:5"}, "properties": {"repobilityId": "6b0f61dcae2df406", "scanner": "scanner-primary", "fingerprint": "d007b8e6dc78854a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34b12f0e36e1f3b1", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/admin-web.js:9"}, "properties": {"repobilityId": "e148dbad9ccc30f1", "scanner": "scanner-primary", "fingerprint": "34b12f0e36e1f3b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5d83ebc8d102c9d", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/hero-state.js:1"}, "properties": {"repobilityId": "00d03594d075c660", "scanner": "scanner-primary", "fingerprint": "b5d83ebc8d102c9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f306a2037ff3924", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/channel-hubs.js:275"}, "properties": {"repobilityId": "384130700d8e55f6", "scanner": "scanner-primary", "fingerprint": "1f306a2037ff3924", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccb1d09690fecef3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/channel-hubs.js:190"}, "properties": {"repobilityId": "74b1e9516ec95fe4", "scanner": "scanner-primary", "fingerprint": "ccb1d09690fecef3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3929c61c94c25b90", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/games-menu.js:6"}, "properties": {"repobilityId": "c858b5877eb2ba9d", "scanner": "scanner-primary", "fingerprint": "3929c61c94c25b90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d870edd4d8a1b6c", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/boosters.js:7"}, "properties": {"repobilityId": "d08ee829c078b60d", "scanner": "scanner-primary", "fingerprint": "0d870edd4d8a1b6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-296f591da4131042", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/onboarding.js:4"}, "properties": {"repobilityId": "51d4d2f43bd39423", "scanner": "scanner-primary", "fingerprint": "296f591da4131042", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4595f48154a051bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/onboarding.js:200"}, "properties": {"repobilityId": "cda8b86375f57c1c", "scanner": "scanner-primary", "fingerprint": "4595f48154a051bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3bf5f9a4e2f747fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/gear-art-slugs.js:4"}, "properties": {"repobilityId": "3ca49af582752cec", "scanner": "scanner-primary", "fingerprint": "3bf5f9a4e2f747fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99e7b3879f8a6e79", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/character-backgrounds.js:3"}, "properties": {"repobilityId": "8d03e53dd8fc99c8", "scanner": "scanner-primary", "fingerprint": "99e7b3879f8a6e79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4984cf39b3485fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/schedule-rotation.js:1"}, "properties": {"repobilityId": "89e3b98c03cda02a", "scanner": "scanner-primary", "fingerprint": "e4984cf39b3485fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97d9f575a5b96d54", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/schedule-rotation.js:187"}, "properties": {"repobilityId": "1fcc5d7b1714417f", "scanner": "scanner-primary", "fingerprint": "97d9f575a5b96d54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6153c3da4ddbdcf9", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/lfg.js:9"}, "properties": {"repobilityId": "1807c6b313a2a025", "scanner": "scanner-primary", "fingerprint": "6153c3da4ddbdcf9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-609f1085ecdb8102", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/guild-features.js:12"}, "properties": {"repobilityId": "ef80879abc9d7145", "scanner": "scanner-primary", "fingerprint": "609f1085ecdb8102", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e14edcb0a979c19f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/guild-features.js:72"}, "properties": {"repobilityId": "048e4877dd641279", "scanner": "scanner-primary", "fingerprint": "e14edcb0a979c19f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-917db4a0c0dce801", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-list-hub.js:95"}, "properties": {"repobilityId": "23f8faf6b0c75901", "scanner": "scanner-primary", "fingerprint": "917db4a0c0dce801", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-abe91ee1158119aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/card-art-remix.js:3"}, "properties": {"repobilityId": "8492aefe16cb1c08", "scanner": "scanner-primary", "fingerprint": "abe91ee1158119aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e758d15700c8d485", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/scratch-challenges.js:3"}, "properties": {"repobilityId": "6a3897b9d950043a", "scanner": "scanner-primary", "fingerprint": "e758d15700c8d485", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3808ceb6af4862b", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-decks-share.js:3"}, "properties": {"repobilityId": "9a1ed474abda8d99", "scanner": "scanner-primary", "fingerprint": "d3808ceb6af4862b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bb9e8feaff803e7", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/cards-trade.js:7"}, "properties": {"repobilityId": "71cca06e36a0f4a1", "scanner": "scanner-primary", "fingerprint": "9bb9e8feaff803e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae8332824a3790fd", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/twitch-live.js:1"}, "properties": {"repobilityId": "ed164abb06543bf4", "scanner": "scanner-primary", "fingerprint": "ae8332824a3790fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79e51dabd4730432", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/referrals.js:4"}, "properties": {"repobilityId": "25e7be4d6cf2256a", "scanner": "scanner-primary", "fingerprint": "79e51dabd4730432", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-295b06b5b000e1ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/patron-of-month.js:3"}, "properties": {"repobilityId": "0eb10aab00e48e78", "scanner": "scanner-primary", "fingerprint": "295b06b5b000e1ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c34d09750ddfcac6", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/ext-bets.js:8"}, "properties": {"repobilityId": "04e5002d77c80ac1", "scanner": "scanner-primary", "fingerprint": "c34d09750ddfcac6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06485cdca2e1d6dc", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/cn-games-roster.js:5"}, "properties": {"repobilityId": "1e6f4fc19332436b", "scanner": "scanner-primary", "fingerprint": "06485cdca2e1d6dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d7a0f339d453c93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/cn-games-roster.js:233"}, "properties": {"repobilityId": "785e7e2f27364053", "scanner": "scanner-primary", "fingerprint": "6d7a0f339d453c93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ebabf77f1a283c8a", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/custom-polls.js:6"}, "properties": {"repobilityId": "5e632858da5cfd09", "scanner": "scanner-primary", "fingerprint": "ebabf77f1a283c8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d9a29aa3fc385af", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/boltbound-sets.js:3"}, "properties": {"repobilityId": "7710dbfa6a1012e8", "scanner": "scanner-primary", "fingerprint": "6d9a29aa3fc385af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-241035eb6ec37de6", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/activity-do.js:8"}, "properties": {"repobilityId": "9519c9b1decd5d3c", "scanner": "scanner-primary", "fingerprint": "241035eb6ec37de6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-931a51d562af5060", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/branding.js:3"}, "properties": {"repobilityId": "a57bdc36c8e8cb41", "scanner": "scanner-primary", "fingerprint": "931a51d562af5060", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f0f9b9aa833d62a", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-art-override.js:3"}, "properties": {"repobilityId": "15b95bbe1e229754", "scanner": "scanner-primary", "fingerprint": "1f0f9b9aa833d62a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b31687ae0bbf34dd", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/actor-name.js:6"}, "properties": {"repobilityId": "042f015134d2bcbe", "scanner": "scanner-primary", "fingerprint": "b31687ae0bbf34dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51eed8b8cea9081f", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-global-art.js:1"}, "properties": {"repobilityId": "c92dc7a212d46e96", "scanner": "scanner-primary", "fingerprint": "51eed8b8cea9081f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfbc4bd3075c8289", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/spire-boss-mechanics.js:3"}, "properties": {"repobilityId": "500810c6a299348f", "scanner": "scanner-primary", "fingerprint": "dfbc4bd3075c8289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2488296b82d8f50", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/twitch-helix.js:1"}, "properties": {"repobilityId": "3a2fe51ef65f1eb5", "scanner": "scanner-primary", "fingerprint": "b2488296b82d8f50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b3f7fa79947e8e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/twitch-helix.js:71"}, "properties": {"repobilityId": "93bd0a11013dd153", "scanner": "scanner-primary", "fingerprint": "7b3f7fa79947e8e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-caed7248d7fa8060", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/boltbound-ranked.js:3"}, "properties": {"repobilityId": "8bf154703619b4e2", "scanner": "scanner-primary", "fingerprint": "caed7248d7fa8060", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2b211451294c08b", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/guild-builder.js:71"}, "properties": {"repobilityId": "9b10814dbc59fef6", "scanner": "scanner-primary", "fingerprint": "f2b211451294c08b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43823ccefb6564d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/channel-bindings.js:5"}, "properties": {"repobilityId": "1b1e362079479452", "scanner": "scanner-primary", "fingerprint": "43823ccefb6564d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5adec3f43af5ede", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/web.js:3"}, "properties": {"repobilityId": "b02f2619f69dd483", "scanner": "scanner-primary", "fingerprint": "e5adec3f43af5ede", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28fba1376f09cf19", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/web.js:1068"}, "properties": {"repobilityId": "f45541b702bcdc58", "scanner": "scanner-primary", "fingerprint": "28fba1376f09cf19", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31d510609f0bb7b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/push.js:3"}, "properties": {"repobilityId": "6073a086f0d5328c", "scanner": "scanner-primary", "fingerprint": "31d510609f0bb7b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e680b42420818291", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/push.js:39"}, "properties": {"repobilityId": "77ca9f1261b5017d", "scanner": "scanner-primary", "fingerprint": "e680b42420818291", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6394762167d85bf3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-drops.js:3"}, "properties": {"repobilityId": "bf20f0e0b68cd3b8", "scanner": "scanner-primary", "fingerprint": "6394762167d85bf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c93588e030309356", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/punchcard.js:6"}, "properties": {"repobilityId": "c60f8598f3281ece", "scanner": "scanner-primary", "fingerprint": "c93588e030309356", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04ac340d775c80e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/punchcard.js:251"}, "properties": {"repobilityId": "5d265103dfebb97c", "scanner": "scanner-primary", "fingerprint": "04ac340d775c80e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ddf5e1cb75265d4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-content.js:12"}, "properties": {"repobilityId": "0e628cd7a960d5fb", "scanner": "scanner-primary", "fingerprint": "ddf5e1cb75265d4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8f247a7dcf64b40", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/discord-cleanup.js:12"}, "properties": {"repobilityId": "23d9f6dc7d446aa8", "scanner": "scanner-primary", "fingerprint": "b8f247a7dcf64b40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3721fa0701ede0c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/discord-cleanup.js:73"}, "properties": {"repobilityId": "cc3b2fb22ee5cbf7", "scanner": "scanner-primary", "fingerprint": "3721fa0701ede0c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d1d816287b7a6d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/ext-loadout.js:45"}, "properties": {"repobilityId": "ac3660916a86d786", "scanner": "scanner-primary", "fingerprint": "9d1d816287b7a6d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e017008813390bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/twitch-eventsub.js:10"}, "properties": {"repobilityId": "1b100f8c2eb67301", "scanner": "scanner-primary", "fingerprint": "0e017008813390bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac2b56167164cf09", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/twitch-login-resolver.js:3"}, "properties": {"repobilityId": "8aeb2b33f6879120", "scanner": "scanner-primary", "fingerprint": "ac2b56167164cf09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4e39d4d23e28783", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/tikfinity.js:3"}, "properties": {"repobilityId": "685d3c8b773f474d", "scanner": "scanner-primary", "fingerprint": "b4e39d4d23e28783", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-802c11d3582bd1b5", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/achievements-d1.js:3"}, "properties": {"repobilityId": "323303acb34458a2", "scanner": "scanner-primary", "fingerprint": "802c11d3582bd1b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c4eb0e164647db6", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/economy-pace.js:11"}, "properties": {"repobilityId": "79841b812fced549", "scanner": "scanner-primary", "fingerprint": "0c4eb0e164647db6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03830826883998cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/sf-community.js:5"}, "properties": {"repobilityId": "8e41bc8171ee0543", "scanner": "scanner-primary", "fingerprint": "03830826883998cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1ec529c512af7e7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/sfdock.js:39"}, "properties": {"repobilityId": "28537de2d93367ca", "scanner": "scanner-primary", "fingerprint": "d1ec529c512af7e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbedc70897e5cbbb", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/spire-deck.js:11"}, "properties": {"repobilityId": "616b9a4fa229754d", "scanner": "scanner-primary", "fingerprint": "bbedc70897e5cbbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3f5ab711e8a4daf", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/daily-quests.js:9"}, "properties": {"repobilityId": "cd53929173d37cc1", "scanner": "scanner-primary", "fingerprint": "e3f5ab711e8a4daf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec09ad8d3102b547", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/games-quick.js:1"}, "properties": {"repobilityId": "957f007249f1f738", "scanner": "scanner-primary", "fingerprint": "ec09ad8d3102b547", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f38d1bee7a7b30a", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/ext-patreon-link.js:3"}, "properties": {"repobilityId": "bf3e0e9ac6678e6f", "scanner": "scanner-primary", "fingerprint": "4f38d1bee7a7b30a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5345a0f4522254ae", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/auth.js:1"}, "properties": {"repobilityId": "2c5837e56de93bd5", "scanner": "scanner-primary", "fingerprint": "5345a0f4522254ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3d528c68f250335", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/profiles.js:7"}, "properties": {"repobilityId": "73a86fd1d50e9f91", "scanner": "scanner-primary", "fingerprint": "a3d528c68f250335", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88d655aee749004f", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/twitch-clips.js:3"}, "properties": {"repobilityId": "2420e75dcf308660", "scanner": "scanner-primary", "fingerprint": "88d655aee749004f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3391b38b349a08d", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/cards-voidborn.js:3"}, "properties": {"repobilityId": "83e0436b8f015ee0", "scanner": "scanner-primary", "fingerprint": "d3391b38b349a08d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919c05a5c4a693cf", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/spire/events/index.js:15"}, "properties": {"repobilityId": "5934412471110ad1", "scanner": "scanner-primary", "fingerprint": "919c05a5c4a693cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34825e8612f74b2c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-arena-polish-fx.py:33"}, "properties": {"repobilityId": "a57659cf77df1f36", "scanner": "scanner-primary", "fingerprint": "34825e8612f74b2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b85b29b92115f58", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/rembg-pipeline.py:188"}, "properties": {"repobilityId": "ef58c409c6e05add", "scanner": "scanner-primary", "fingerprint": "5b85b29b92115f58", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-05563ef9071ac70b", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/tools/fix-card-brand-A.py:64"}, "properties": {"repobilityId": "1007f61e35028066", "scanner": "scanner-primary", "fingerprint": "05563ef9071ac70b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-573c6551587b55c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/post-schedule-poll.mjs:2"}, "properties": {"repobilityId": "0582058753043f66", "scanner": "scanner-primary", "fingerprint": "573c6551587b55c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-951c77a90af28bf1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-card-pipeline-v4.py:160"}, "properties": {"repobilityId": "3cb2e375396d91c9", "scanner": "scanner-primary", "fingerprint": "951c77a90af28bf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-079ecc0052ddb312", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/tools/discord-cleanup-run.mjs:9"}, "properties": {"repobilityId": "7b059b3a1a3a258e", "scanner": "scanner-primary", "fingerprint": "079ecc0052ddb312", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94ba9e2a8b784986", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/arena-polish-fx-generator.py:214"}, "properties": {"repobilityId": "34efaf7ca57b57f4", "scanner": "scanner-primary", "fingerprint": "94ba9e2a8b784986", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8583693599656bf3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/gear-worn-overlay-pipeline.py:45"}, "properties": {"repobilityId": "84572763a45afeb3", "scanner": "scanner-primary", "fingerprint": "8583693599656bf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f310b7826f84c121", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-overlay-pipeline.py:140"}, "properties": {"repobilityId": "96850aa4f3718217", "scanner": "scanner-primary", "fingerprint": "f310b7826f84c121", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2ce026b9ed1eb97a", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/tools/discord-visibility-gate.mjs:8"}, "properties": {"repobilityId": "6d0a6deaa1e90db9", "scanner": "scanner-primary", "fingerprint": "2ce026b9ed1eb97a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bffedece82122531", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/follow-overlay-contact-sheet.py:84"}, "properties": {"repobilityId": "4e17f65e13d0e49f", "scanner": "scanner-primary", "fingerprint": "bffedece82122531", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f034f5e0a4d5abf", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/overhaul-upload.py:79"}, "properties": {"repobilityId": "a0fd93fe8d835b7c", "scanner": "scanner-primary", "fingerprint": "7f034f5e0a4d5abf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-407569703a6f7e2d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-upload.py:84"}, "properties": {"repobilityId": "281986f18b02c3ac", "scanner": "scanner-primary", "fingerprint": "407569703a6f7e2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9639a908c8c52e53", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/upload-pixel-art-v9.py:52"}, "properties": {"repobilityId": "a90bd7e469053c10", "scanner": "scanner-primary", "fingerprint": "9639a908c8c52e53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d504c348e4ea123b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-pixel-art-v9.py:66"}, "properties": {"repobilityId": "79bc249cb72bc8ed", "scanner": "scanner-primary", "fingerprint": "d504c348e4ea123b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b972b5fbfb73113", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator-v2.py:117"}, "properties": {"repobilityId": "268abf90b25c3a67", "scanner": "scanner-primary", "fingerprint": "6b972b5fbfb73113", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4820b5a875424b73", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/replicate-card-samples.mjs:125"}, "properties": {"repobilityId": "8024d7b70b594488", "scanner": "scanner-primary", "fingerprint": "4820b5a875424b73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f3c0cbff57b4bc6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-samples.mjs:58"}, "properties": {"repobilityId": "1c0179117f5ddd68", "scanner": "scanner-primary", "fingerprint": "0f3c0cbff57b4bc6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c17b08524829a0b1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/minigames-pixel-art.py:115"}, "properties": {"repobilityId": "56b816537bb64a3d", "scanner": "scanner-primary", "fingerprint": "c17b08524829a0b1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-018617fba9965864", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-gwyf-overlay-assets.mjs:48"}, "properties": {"repobilityId": "cb9dfb3c9c51884e", "scanner": "scanner-primary", "fingerprint": "018617fba9965864", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-86574fcd25cf4802", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gear-worn-feasibility.py:70"}, "properties": {"repobilityId": "fc2ecd5a3e08070e", "scanner": "scanner-primary", "fingerprint": "86574fcd25cf4802", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d831dcef934128e3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/bulk-regen-cards.py:145"}, "properties": {"repobilityId": "d38b07e05d4193e8", "scanner": "scanner-primary", "fingerprint": "d831dcef934128e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd9a3d1c64e4c62a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled.mjs:54"}, "properties": {"repobilityId": "6404d352121a9089", "scanner": "scanner-primary", "fingerprint": "bd9a3d1c64e4c62a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d171ad999350152", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/tools/repoint-global-art-cachebust.mjs:3"}, "properties": {"repobilityId": "c4b6679983cf3681", "scanner": "scanner-primary", "fingerprint": "2d171ad999350152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c147dc84b7ffac35", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/tools/premium-card-pipeline.py:97"}, "properties": {"repobilityId": "9452a038c3c48124", "scanner": "scanner-primary", "fingerprint": "c147dc84b7ffac35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fa6bb7353add1ea", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/premium-card-pipeline.py:140"}, "properties": {"repobilityId": "1a0e972065ad88cf", "scanner": "scanner-primary", "fingerprint": "3fa6bb7353add1ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e7299496a66a9523", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/tools/replicate-card-styled-retry.mjs:35"}, "properties": {"repobilityId": "9ae0fd7d85ca458c", "scanner": "scanner-primary", "fingerprint": "e7299496a66a9523", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6685a893745bfd5d", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/gen-expansion-art.py:135"}, "properties": {"repobilityId": "ac462d1640a97246", "scanner": "scanner-primary", "fingerprint": "6685a893745bfd5d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-21d4102f8556004b", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/tools/gen-card-effects.mjs:7"}, "properties": {"repobilityId": "338c986adff13f9d", "scanner": "scanner-primary", "fingerprint": "21d4102f8556004b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ebe30ac906e4f19", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/tools/overhaul-generate.py:334"}, "properties": {"repobilityId": "b2897c2e9fc44760", "scanner": "scanner-primary", "fingerprint": "1ebe30ac906e4f19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9e7669842a37a4e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/overhaul-generate.py:69"}, "properties": {"repobilityId": "237531876da170c9", "scanner": "scanner-primary", "fingerprint": "d9e7669842a37a4e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ceba03c9d032b4a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/tools/xp-checkin-reset.mjs:4"}, "properties": {"repobilityId": "9db76b01fe513874", "scanner": "scanner-primary", "fingerprint": "ceba03c9d032b4a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ac8dbee3efda8fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/tools/post-announcement.mjs:2"}, "properties": {"repobilityId": "5b03c09bd77281b9", "scanner": "scanner-primary", "fingerprint": "9ac8dbee3efda8fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-623cf9b43d334592", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/pixel-frame-generator.py:129"}, "properties": {"repobilityId": "51135b7bde74beba", "scanner": "scanner-primary", "fingerprint": "623cf9b43d334592", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2795de27b848bbf1", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 discord-bot/tools/upload-damage-numbers.py:39"}, "properties": {"repobilityId": "18f918e880a05377", "scanner": "scanner-primary", "fingerprint": "2795de27b848bbf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d146d5214e2626ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/rotation-poll.js:3"}, "properties": {"repobilityId": "12dc7047f2c1c4e6", "scanner": "scanner-primary", "fingerprint": "d146d5214e2626ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e67e4d98ef3d2fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/suggestions.js:1"}, "properties": {"repobilityId": "bffee518763356ff", "scanner": "scanner-primary", "fingerprint": "8e67e4d98ef3d2fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3af27522d59f94cc", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/aquilo/checkin-slash.js:3"}, "properties": {"repobilityId": "9415557a8fd56597", "scanner": "scanner-primary", "fingerprint": "3af27522d59f94cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e73244604b0289a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/checkin-slash.js:83"}, "properties": {"repobilityId": "72f1f68f263571c6", "scanner": "scanner-primary", "fingerprint": "e73244604b0289a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f0e9e5c73a2c81e", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/hub.js:1"}, "properties": {"repobilityId": "a9db37ae5725a69b", "scanner": "scanner-primary", "fingerprint": "8f0e9e5c73a2c81e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44e88d9a86122f59", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/util.js:214"}, "properties": {"repobilityId": "ea0f70724e56322a", "scanner": "scanner-primary", "fingerprint": "44e88d9a86122f59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acef4dd2424e09b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/util.js:47"}, "properties": {"repobilityId": "00776d0fb3506145", "scanner": "scanner-primary", "fingerprint": "acef4dd2424e09b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8830ff13fdffe899", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/products.js:6"}, "properties": {"repobilityId": "f635d0217223d98b", "scanner": "scanner-primary", "fingerprint": "8830ff13fdffe899", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc28edecffc97865", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/streak.js:12"}, "properties": {"repobilityId": "b943473c1fd1beb7", "scanner": "scanner-primary", "fingerprint": "cc28edecffc97865", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53465ed35b9d6236", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/bootstrap.js:29"}, "properties": {"repobilityId": "f3570caf2e604231", "scanner": "scanner-primary", "fingerprint": "53465ed35b9d6236", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7833f11c89116425", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/community-chat.js:3"}, "properties": {"repobilityId": "3b135c7d103e6f78", "scanner": "scanner-primary", "fingerprint": "7833f11c89116425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed3f5481e0a817d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/community-chat.js:287"}, "properties": {"repobilityId": "ddf01cd0981694ac", "scanner": "scanner-primary", "fingerprint": "ed3f5481e0a817d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56636df2da89f0bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/overlay-do.js:14"}, "properties": {"repobilityId": "e3aa1f70d741fd6c", "scanner": "scanner-primary", "fingerprint": "56636df2da89f0bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ff2ae2cc500c62f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/overlay-do.js:39"}, "properties": {"repobilityId": "689010bea06962db", "scanner": "scanner-primary", "fingerprint": "9ff2ae2cc500c62f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bf701beec9dbb601", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/checkin.js:4"}, "properties": {"repobilityId": "0044b032dacd768c", "scanner": "scanner-primary", "fingerprint": "bf701beec9dbb601", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8367bd8f7ddba8eb", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/aquilo/idle-msgs.js:5"}, "properties": {"repobilityId": "8b627703e8252b3f", "scanner": "scanner-primary", "fingerprint": "8367bd8f7ddba8eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d78d78b98f9baf09", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/spotlight.js:23"}, "properties": {"repobilityId": "29cd9da24d6cd030", "scanner": "scanner-primary", "fingerprint": "d78d78b98f9baf09", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-122c2185cb7ca715", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/setup.js:1"}, "properties": {"repobilityId": "4089a30aa24bb14a", "scanner": "scanner-primary", "fingerprint": "122c2185cb7ca715", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd75b6a2185c0d34", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/achievements.js:19"}, "properties": {"repobilityId": "9700732380646590", "scanner": "scanner-primary", "fingerprint": "bd75b6a2185c0d34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b60cbd5978e8f735", "level": "none", "message": {"text": "Commented-code block (14 lines) in discord-bot/aquilo/poll.js:5"}, "properties": {"repobilityId": "7926123865006155", "scanner": "scanner-primary", "fingerprint": "b60cbd5978e8f735", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc281f629f167aaa", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/shop.js:10"}, "properties": {"repobilityId": "f848b636836dee95", "scanner": "scanner-primary", "fingerprint": "fc281f629f167aaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-057862b6bdc25ae5", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/recap.js:61"}, "properties": {"repobilityId": "ffbe81cef0aa8825", "scanner": "scanner-primary", "fingerprint": "057862b6bdc25ae5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32dffdee5fb5c184", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/aquilo/viewer-hub.js:1"}, "properties": {"repobilityId": "6da315fd5348b3ed", "scanner": "scanner-primary", "fingerprint": "32dffdee5fb5c184", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca22a381e305090d", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/welcome.js:43"}, "properties": {"repobilityId": "a82cdd1d1046314d", "scanner": "scanner-primary", "fingerprint": "ca22a381e305090d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-377d7efe1b3f7b66", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/self-roles.js:5"}, "properties": {"repobilityId": "4ea8bef681a8e584", "scanner": "scanner-primary", "fingerprint": "377d7efe1b3f7b66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16a48200b9899ad4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/self-roles.js:315"}, "properties": {"repobilityId": "b8c00c7636b7b6fe", "scanner": "scanner-primary", "fingerprint": "16a48200b9899ad4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2cc01158fff9cee", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/prompts.js:42"}, "properties": {"repobilityId": "87debd9a950bfca5", "scanner": "scanner-primary", "fingerprint": "a2cc01158fff9cee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319d6fa9eebf1234", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/song-prequeue.js:3"}, "properties": {"repobilityId": "2917975a183b879e", "scanner": "scanner-primary", "fingerprint": "319d6fa9eebf1234", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a6264c79d693cc0", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/worker.js:3"}, "properties": {"repobilityId": "09e88bd9a2a21028", "scanner": "scanner-primary", "fingerprint": "9a6264c79d693cc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ca8dab87ff2fa87", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/worker.js:151"}, "properties": {"repobilityId": "14e73a7221c68fd4", "scanner": "scanner-primary", "fingerprint": "1ca8dab87ff2fa87", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-107c338fc48cb62c", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/aquilo/tickets.js:1"}, "properties": {"repobilityId": "045a6b03aa2851b5", "scanner": "scanner-primary", "fingerprint": "107c338fc48cb62c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b073c80ffa22ecbf", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/aq-queue.js:1"}, "properties": {"repobilityId": "d8e6af7d3576d46c", "scanner": "scanner-primary", "fingerprint": "b073c80ffa22ecbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-036171c377dcfdf1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/aquilo/notify.js:43"}, "properties": {"repobilityId": "3510b89e70cdcb92", "scanner": "scanner-primary", "fingerprint": "036171c377dcfdf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d573e77a7cce160c", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/self-roles-hub.js:1"}, "properties": {"repobilityId": "bdf90f41d72a12c2", "scanner": "scanner-primary", "fingerprint": "d573e77a7cce160c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a6a399e8ff143ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/today-game.js:7"}, "properties": {"repobilityId": "9d27fa849de68035", "scanner": "scanner-primary", "fingerprint": "8a6a399e8ff143ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-939a998a100f0df7", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/countdown.js:5"}, "properties": {"repobilityId": "3f3b999ce87fdcb4", "scanner": "scanner-primary", "fingerprint": "939a998a100f0df7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae0bca0bf0a9e7a5", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/aquilo/aq-schedule.js:1"}, "properties": {"repobilityId": "d3ca59a141dce235", "scanner": "scanner-primary", "fingerprint": "ae0bca0bf0a9e7a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-943e4f53ff28a6e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/counting.js:1"}, "properties": {"repobilityId": "6f7f0ff3298f975b", "scanner": "scanner-primary", "fingerprint": "943e4f53ff28a6e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5623930f3d73d3e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/aquilo/trivia.js:10"}, "properties": {"repobilityId": "e06c21940aca1e75", "scanner": "scanner-primary", "fingerprint": "5623930f3d73d3e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bd957f2070c308a", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/aquilo/auth.js:3"}, "properties": {"repobilityId": "8b25b6a797a08dbc", "scanner": "scanner-primary", "fingerprint": "3bd957f2070c308a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d7750ec697b6b3e", "level": "none", "message": {"text": "Commented-code block (13 lines) in discord-bot/test/test-scheduled-messages.mjs:3"}, "properties": {"repobilityId": "e598b13d6ff5026f", "scanner": "scanner-primary", "fingerprint": "4d7750ec697b6b3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4f47018e0e3418a", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/test/test-boltbound-replays-rx.mjs:23"}, "properties": {"repobilityId": "7950e5800e015224", "scanner": "scanner-primary", "fingerprint": "c4f47018e0e3418a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5766c9e690eefe8c", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/test/test-cards-skin.mjs:1"}, "properties": {"repobilityId": "00c2fd5506120833", "scanner": "scanner-primary", "fingerprint": "5766c9e690eefe8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a4270a87bce3547", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-pvp-combat.mjs:1"}, "properties": {"repobilityId": "11790853aa4d237e", "scanner": "scanner-primary", "fingerprint": "6a4270a87bce3547", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-daa09ee6eb20934a", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/test/test-scratch-flow.mjs:1"}, "properties": {"repobilityId": "a436e86637437509", "scanner": "scanner-primary", "fingerprint": "daa09ee6eb20934a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8b2d5655641b839", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-character-avatar.mjs:1"}, "properties": {"repobilityId": "982e142cbcbe06c7", "scanner": "scanner-primary", "fingerprint": "d8b2d5655641b839", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14860305bac11fe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-cards-trade.mjs:1"}, "properties": {"repobilityId": "b621cf58c1e9a8ed", "scanner": "scanner-primary", "fingerprint": "14860305bac11fe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dadde171ca412b9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-achievements-d1.mjs:1"}, "properties": {"repobilityId": "3c97116f17f6f1db", "scanner": "scanner-primary", "fingerprint": "dadde171ca412b9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a51325b93ce586b", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-starter-deck.mjs:1"}, "properties": {"repobilityId": "7548e35c66e33f9a", "scanner": "scanner-primary", "fingerprint": "6a51325b93ce586b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69bd7e9a39b6aad2", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/test/test-pvp-flow.mjs:1"}, "properties": {"repobilityId": "465e1ae2baf2c977", "scanner": "scanner-primary", "fingerprint": "69bd7e9a39b6aad2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8af77884c231844a", "level": "note", "message": {"text": "Legacy-named symbol `sixHoursOld` in discord-bot/test/test-character-pet.mjs:74"}, "properties": {"repobilityId": "2f42ce714849706a", "scanner": "scanner-primary", "fingerprint": "8af77884c231844a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-18283c5f1f6101c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-checkin-streak.mjs:3"}, "properties": {"repobilityId": "65797e14f42bf631", "scanner": "scanner-primary", "fingerprint": "18283c5f1f6101c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67eac49589ce0eb3", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/test/test-hubs-and-schedule.mjs:3"}, "properties": {"repobilityId": "b48c12e97a21e861", "scanner": "scanner-primary", "fingerprint": "67eac49589ce0eb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c4ab9d75a911a3d", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/test/test-bet-settle.mjs:8"}, "properties": {"repobilityId": "28da5be73a6e7a62", "scanner": "scanner-primary", "fingerprint": "5c4ab9d75a911a3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fc1f65f22f9c6f7", "level": "none", "message": {"text": "Commented-code block (15 lines) in discord-bot/test/test-onboarding-admin.mjs:5"}, "properties": {"repobilityId": "c3395db29c8117e7", "scanner": "scanner-primary", "fingerprint": "1fc1f65f22f9c6f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-631611df5dd32e2f", "level": "none", "message": {"text": "Commented-code block (13 lines) in discord-bot/test/test-twitch.mjs:4"}, "properties": {"repobilityId": "7cef0111bd695d30", "scanner": "scanner-primary", "fingerprint": "631611df5dd32e2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b36c705b97c0222", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/test/test-vote-hub.mjs:3"}, "properties": {"repobilityId": "7add05d73150a0cb", "scanner": "scanner-primary", "fingerprint": "9b36c705b97c0222", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ce96e1c29239681", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/test/test-daily-quests.mjs:22"}, "properties": {"repobilityId": "3eb32b82b54e30a9", "scanner": "scanner-primary", "fingerprint": "2ce96e1c29239681", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00d7524dbf0de6ff", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/test/test-channel-bindings.mjs:3"}, "properties": {"repobilityId": "4d018375d65ed47a", "scanner": "scanner-primary", "fingerprint": "00d7524dbf0de6ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2245b6512f77e0b", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/test/test-pet-leveling.mjs:5"}, "properties": {"repobilityId": "f10c14683d4aa960", "scanner": "scanner-primary", "fingerprint": "b2245b6512f77e0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc24fbbcb508719f", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/test/test-level-tier-roles.mjs:3"}, "properties": {"repobilityId": "7ce492f555d5ccc2", "scanner": "scanner-primary", "fingerprint": "bc24fbbcb508719f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d9f474618f99073", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/test/test-cards-battle-mechanics.mjs:1"}, "properties": {"repobilityId": "cdfd3aaa5a3a8787", "scanner": "scanner-primary", "fingerprint": "3d9f474618f99073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9177f11c9de0b0cb", "level": "none", "message": {"text": "Commented-code block (10 lines) in discord-bot/test/test-gifter-roles.mjs:4"}, "properties": {"repobilityId": "987c332298498d79", "scanner": "scanner-primary", "fingerprint": "9177f11c9de0b0cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96da0a7e79fe6dc1", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/test/test-prelaunch-batch.mjs:1"}, "properties": {"repobilityId": "b59af1ec345af834", "scanner": "scanner-primary", "fingerprint": "96da0a7e79fe6dc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1505bee25bc6cf32", "level": "none", "message": {"text": "Commented-code block (11 lines) in discord-bot/test/test-hero-death.mjs:5"}, "properties": {"repobilityId": "636ef3ddb891305e", "scanner": "scanner-primary", "fingerprint": "1505bee25bc6cf32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2766162662482974", "level": "none", "message": {"text": "Commented-code block (16 lines) in discord-bot/test/test-onboarding.mjs:3"}, "properties": {"repobilityId": "ca9bcb6d4a50e9de", "scanner": "scanner-primary", "fingerprint": "2766162662482974", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08a7150b81c7b60e", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/test/test-checkin-embed.mjs:1"}, "properties": {"repobilityId": "91b5aaaa51c0a725", "scanner": "scanner-primary", "fingerprint": "08a7150b81c7b60e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ea51b93e426fd1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/progression/linking.js:3"}, "properties": {"repobilityId": "16835199055babcf", "scanner": "scanner-primary", "fingerprint": "1ea51b93e426fd1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e06854ea120137fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in discord-bot/progression/profile.js:3"}, "properties": {"repobilityId": "dcb3de36ea974373", "scanner": "scanner-primary", "fingerprint": "e06854ea120137fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b529e61fce4a8dd3", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/progression/event-bus.js:3"}, "properties": {"repobilityId": "395060a2e645fd5d", "scanner": "scanner-primary", "fingerprint": "b529e61fce4a8dd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2b791322d62663d", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/progression/achievements.js:3"}, "properties": {"repobilityId": "05d2fdf2a3eb8c88", "scanner": "scanner-primary", "fingerprint": "f2b791322d62663d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6de43aa29a605756", "level": "none", "message": {"text": "Commented-code block (16 lines) in discord-bot/progression/achievements-catalog.js:7"}, "properties": {"repobilityId": "ac009efb316995f7", "scanner": "scanner-primary", "fingerprint": "6de43aa29a605756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10bc3e3c7b1e759a", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/progression/badges-catalog.js:3"}, "properties": {"repobilityId": "dc45642ab2d0c5b3", "scanner": "scanner-primary", "fingerprint": "10bc3e3c7b1e759a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b444c3306f5756f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in discord-bot/progression/xp.js:10"}, "properties": {"repobilityId": "fdfe03b0cf56f489", "scanner": "scanner-primary", "fingerprint": "b444c3306f5756f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f342c777e5524df5", "level": "none", "message": {"text": "Commented-code block (8 lines) in discord-bot/progression/http.js:7"}, "properties": {"repobilityId": "3879436c3c49427d", "scanner": "scanner-primary", "fingerprint": "f342c777e5524df5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e59b0c1d505e74c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in discord-bot/progression/abuse.js:7"}, "properties": {"repobilityId": "c8cf3fda83f1b3d2", "scanner": "scanner-primary", "fingerprint": "e59b0c1d505e74c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6db0dc9e7ea5963", "level": "none", "message": {"text": "Commented-code block (9 lines) in discord-bot/progression/oauth/_generic.js:8"}, "properties": {"repobilityId": "42d7d1ef874a3bc4", "scanner": "scanner-primary", "fingerprint": "d6db0dc9e7ea5963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb9821409101f777", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/_generic.js:59"}, "properties": {"repobilityId": "a20eb29456d37ba2", "scanner": "scanner-primary", "fingerprint": "cb9821409101f777", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff02c30302e49026", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/battlenet.js:13"}, "properties": {"repobilityId": "f8cd5357dc0c3ad9", "scanner": "scanner-primary", "fingerprint": "ff02c30302e49026", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c14773c00b7a421e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/twitch.js:48"}, "properties": {"repobilityId": "821618ecfcaa268e", "scanner": "scanner-primary", "fingerprint": "c14773c00b7a421e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7fa0a3a5767c041", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/xbox.js:18"}, "properties": {"repobilityId": "d4d9cf81a122040d", "scanner": "scanner-primary", "fingerprint": "f7fa0a3a5767c041", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b7772237ff908edc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/tiktok.js:13"}, "properties": {"repobilityId": "c6c438f3e5ebf6bb", "scanner": "scanner-primary", "fingerprint": "b7772237ff908edc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4b0984805229b3d", "level": "none", "message": {"text": "Commented-code block (12 lines) in discord-bot/progression/oauth/steam.js:3"}, "properties": {"repobilityId": "288a7a487b5f8f57", "scanner": "scanner-primary", "fingerprint": "e4b0984805229b3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef60a9729bb5cc9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/steam.js:62"}, "properties": {"repobilityId": "9a37db93a0c37e4d", "scanner": "scanner-primary", "fingerprint": "ef60a9729bb5cc9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ee1a9bb28c65f56", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/youtube.js:14"}, "properties": {"repobilityId": "14c206871fd97bf6", "scanner": "scanner-primary", "fingerprint": "7ee1a9bb28c65f56", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d2ce1f5bb7bcc58a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 discord-bot/progression/oauth/epic.js:13"}, "properties": {"repobilityId": "60cbcb7877ea61d4", "scanner": "scanner-primary", "fingerprint": "d2ce1f5bb7bcc58a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63e5ab221996b0aa", "level": "none", "message": {"text": "Commented-code block (12 lines) in tools/render-test-heroes.mjs:10"}, "properties": {"repobilityId": "2650bb779dd42ab5", "scanner": "scanner-primary", "fingerprint": "63e5ab221996b0aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99f52310977a28c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/build-clash-levels-glossy.mjs:3"}, "properties": {"repobilityId": "b43521b77de2f1bf", "scanner": "scanner-primary", "fingerprint": "99f52310977a28c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f935873fafb00f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-gear-figure-glossy.mjs:3"}, "properties": {"repobilityId": "de2643e5f82c70f9", "scanner": "scanner-primary", "fingerprint": "9f935873fafb00f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-624f76bf45486be9", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/build-card-apng.mjs:6"}, "properties": {"repobilityId": "171be0952ead3656", "scanner": "scanner-primary", "fingerprint": "624f76bf45486be9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d561410ecc21edbd", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-gear-fx-glossy.mjs:3"}, "properties": {"repobilityId": "58c89616c9b0a1f6", "scanner": "scanner-primary", "fingerprint": "d561410ecc21edbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95b6d7e68b7aa015", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-welcome-card.mjs:3"}, "properties": {"repobilityId": "25c07810aee0e423", "scanner": "scanner-primary", "fingerprint": "95b6d7e68b7aa015", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f858b2f14cdfccb", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-rules-header.mjs:7"}, "properties": {"repobilityId": "9e1a98347d5d4431", "scanner": "scanner-primary", "fingerprint": "4f858b2f14cdfccb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdaeffc490e03aa8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-clash-glossy-wave2.mjs:36"}, "properties": {"repobilityId": "69c4157d824b10ef", "scanner": "scanner-primary", "fingerprint": "cdaeffc490e03aa8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2af94002bf84c143", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/build-clash-unique-buildings.mjs:9"}, "properties": {"repobilityId": "84e401aa3cdf32af", "scanner": "scanner-primary", "fingerprint": "2af94002bf84c143", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db4a316c2da36d3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/build-gear-glossy.mjs:3"}, "properties": {"repobilityId": "b6a79c7c9c3be900", "scanner": "scanner-primary", "fingerprint": "db4a316c2da36d3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acb4e302cb7bc457", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-pet-glossy.mjs:46"}, "properties": {"repobilityId": "0b516d689c47bc6e", "scanner": "scanner-primary", "fingerprint": "acb4e302cb7bc457", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d32c5fc9b6412e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-clash-glossy.mjs:8"}, "properties": {"repobilityId": "f3d7cac9685b5de9", "scanner": "scanner-primary", "fingerprint": "3d32c5fc9b6412e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c450b2dad079675e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/build-character-glossy.mjs:8"}, "properties": {"repobilityId": "e974910b2f1b6755", "scanner": "scanner-primary", "fingerprint": "c450b2dad079675e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c72f647ceced1e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in tools/glossy-art-kit.mjs:68"}, "properties": {"repobilityId": "5661d6fd782e7cae", "scanner": "scanner-primary", "fingerprint": "2c72f647ceced1e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64edca1655911370", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/build-clash-troops-glossy.mjs:8"}, "properties": {"repobilityId": "91f03a7badfe7f60", "scanner": "scanner-primary", "fingerprint": "64edca1655911370", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4928df7a4ea0b5fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gateway/aquilo_gateway.py:273"}, "properties": {"repobilityId": "1822ce856ec9d5e0", "scanner": "scanner-primary", "fingerprint": "4928df7a4ea0b5fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e244dec9fff222fe", "level": "none", "message": {"text": "Commented-code block (11 lines) in companion-streamkey/build.py:22"}, "properties": {"repobilityId": "fb45a5d7701e32a7", "scanner": "scanner-primary", "fingerprint": "e244dec9fff222fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc942642fabc4a02", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 companion-streamkey/watchdog_task.py:63"}, "properties": {"repobilityId": "6672c6092f14ca60", "scanner": "scanner-primary", "fingerprint": "bc942642fabc4a02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1eae80e7fa073f3e", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 companion-streamkey/token_retriever.py:186"}, "properties": {"repobilityId": "f2073223d154a8dd", "scanner": "scanner-primary", "fingerprint": "1eae80e7fa073f3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-5e1929dbe4cefaf1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/worker/loadout-link-worker.js:77"}, "properties": {"repobilityId": "c8670b2f4ffe2fab", "scanner": "scanner-primary", "fingerprint": "5e1929dbe4cefaf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5400d1ac86e88da5", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/starting-soon/main.js:59"}, "properties": {"repobilityId": "5d221c6a00d39c82", "scanner": "scanner-primary", "fingerprint": "5400d1ac86e88da5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-782445df2a079ed2", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/tanks/main.js:1517"}, "properties": {"repobilityId": "1db8f8be0bfafcba", "scanner": "scanner-primary", "fingerprint": "782445df2a079ed2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b95134e38f4412c5", "level": "none", "message": {"text": "Commented-code block (8 lines) in aquilo-gg/overlays/minigames/main.js:35"}, "properties": {"repobilityId": "bc99c9963d63aa62", "scanner": "scanner-primary", "fingerprint": "b95134e38f4412c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca944f4f526137d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in aquilo-gg/overlays/check-in/main.js:98"}, "properties": {"repobilityId": "5cc67b091305f308", "scanner": "scanner-primary", "fingerprint": "ca944f4f526137d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07fceee31c771dce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/hangman/main.js:190"}, "properties": {"repobilityId": "bbfdbde1c098da94", "scanner": "scanner-primary", "fingerprint": "07fceee31c771dce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b2f9a8e8b863c32d", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/commands/main.js:84"}, "properties": {"repobilityId": "3720b3e66ef44bdb", "scanner": "scanner-primary", "fingerprint": "b2f9a8e8b863c32d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a126528cd8a2390e", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/viewer/main.js:101"}, "properties": {"repobilityId": "ad4c77384f9ec374", "scanner": "scanner-primary", "fingerprint": "a126528cd8a2390e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-475ad1b3613f4a13", "level": "none", "message": {"text": "Commented-code block (10 lines) in aquilo-gg/overlays/gift-jar/main.js:208"}, "properties": {"repobilityId": "80e193c37f30a2bb", "scanner": "scanner-primary", "fingerprint": "475ad1b3613f4a13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a3aa4f9c7d90dad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 aquilo-gg/overlays/gift-jar/main.js:123"}, "properties": {"repobilityId": "3dba416fa1d97378", "scanner": "scanner-primary", "fingerprint": "5a3aa4f9c7d90dad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a3947ba67717bcb", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/counters/main.js:30"}, "properties": {"repobilityId": "b6f68f5ad8c8c51c", "scanner": "scanner-primary", "fingerprint": "2a3947ba67717bcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b917125929da3907", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/vertical/main.js:181"}, "properties": {"repobilityId": "709a2e4c10f9f5bd", "scanner": "scanner-primary", "fingerprint": "b917125929da3907", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8029639cab1fdf50", "level": "none", "message": {"text": "Commented-code block (5 lines) in aquilo-gg/overlays/_shared/theme.js:85"}, "properties": {"repobilityId": "8609b109c9c6a488", "scanner": "scanner-primary", "fingerprint": "8029639cab1fdf50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9491ca277aacba74", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/hypetrain/main.js:30"}, "properties": {"repobilityId": "4865146445982c61", "scanner": "scanner-primary", "fingerprint": "9491ca277aacba74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e18dabf6502db85", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/compact/main.js:25"}, "properties": {"repobilityId": "eeed7e0a0875201c", "scanner": "scanner-primary", "fingerprint": "8e18dabf6502db85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7dbbf351c5c989e", "level": "none", "message": {"text": "Commented-code block (7 lines) in aquilo-gg/overlays/promo/main.js:64"}, "properties": {"repobilityId": "0d39e2a1ac97249f", "scanner": "scanner-primary", "fingerprint": "f7dbbf351c5c989e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9c8bb3352135f62a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "205f07934c2633d6", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "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": "41e4c4f046955f2d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "2eaab47a40af394d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "f1a6e3d2a7251fb6", "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": "863a49cc6b955969", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "dce597a87116f349", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "44fb75570da4bccb", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a355ac67e5b7037e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "ab5b98479fdfc1a9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "95e2814871d5842d", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1e4377e4ffa7dffe", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "21df0b22a66b29c9", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "215ff39e5dde1d25", "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": "d3809b8c9e0033be", "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": "d8ce43661089b337", "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": "95dbd059f106e2c9", "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": "c8c3692ad2d28fc4", "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": "31512773cebe1fd0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "96997d2faa30b43a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c2464ae8b75ed931", "level": "error", "message": {"text": "Flask mutation route `details` without `@login_required` \u2014 companion-streamkey/local_server.py:314"}, "properties": {"repobilityId": "642e069d68510534", "scanner": "scanner-primary", "fingerprint": "c2464ae8b75ed931", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py"}, "region": {"startLine": 314}}}]}, {"ruleId": "scanner-39621127d71b77ad", "level": "error", "message": {"text": "Flask mutation route `start` without `@login_required` \u2014 companion-streamkey/local_server.py:321"}, "properties": {"repobilityId": "fb00efcc9a6f3893", "scanner": "scanner-primary", "fingerprint": "39621127d71b77ad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-7ad8a28e85fb6f39", "level": "error", "message": {"text": "Flask mutation route `end` without `@login_required` \u2014 companion-streamkey/local_server.py:343"}, "properties": {"repobilityId": "1213fbd47f9778e7", "scanner": "scanner-primary", "fingerprint": "7ad8a28e85fb6f39", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py"}, "region": {"startLine": 343}}}]}, {"ruleId": "scanner-349d628f285f8908", "level": "error", "message": {"text": "Flask mutation route `auth_start` without `@login_required` \u2014 companion-streamkey/local_server.py:353"}, "properties": {"repobilityId": "7215fd4c5f2ca7b4", "scanner": "scanner-primary", "fingerprint": "349d628f285f8908", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "companion-streamkey/local_server.py"}, "region": {"startLine": 353}}}]}, {"ruleId": "scanner-3f071f87b2c47154", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/cn-vote-hub.js:69)"}, "properties": {"repobilityId": "71691c4064ce8150", "scanner": "scanner-primary", "fingerprint": "3f071f87b2c47154", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2a7669114046317", "level": "error", "message": {"text": "Dangling fetch: GET https://store.steampowered.com/api/appdetails?appids=${id}&filters=basic&cc=us (discord-bot/schedule.js:84)"}, "properties": {"repobilityId": "b32bab175375398d", "scanner": "scanner-primary", "fingerprint": "f2a7669114046317", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-059e15dc9ceb62ef", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/scratch-off.js:1284)"}, "properties": {"repobilityId": "cef888dbe7f17a33", "scanner": "scanner-primary", "fingerprint": "059e15dc9ceb62ef", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c9b322ca62a21419", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/lfg-hub.js:122)"}, "properties": {"repobilityId": "c21817a32b8b1bb9", "scanner": "scanner-primary", "fingerprint": "c9b322ca62a21419", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a77e51129daff6e6", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/lfg-hub.js:166)"}, "properties": {"repobilityId": "05645e42ce101ac7", "scanner": "scanner-primary", "fingerprint": "a77e51129daff6e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6154f782cfd560d", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg-hub.js:463)"}, "properties": {"repobilityId": "75bd2696e1e780c5", "scanner": "scanner-primary", "fingerprint": "a6154f782cfd560d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fdc043179fdec38", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/community.js:207)"}, "properties": {"repobilityId": "2d5dc0ff1286b53b", "scanner": "scanner-primary", "fingerprint": "4fdc043179fdec38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e3d343201b340ae2", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/live-status-embed.js:88)"}, "properties": {"repobilityId": "b5ea06ba20272850", "scanner": "scanner-primary", "fingerprint": "e3d343201b340ae2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-311faaf9cc44027f", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${messageId} (discord-bot/live-status-embed.js:101)"}, "properties": {"repobilityId": "d6713574bb8a0fc5", "scanner": "scanner-primary", "fingerprint": "311faaf9cc44027f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f2881e54c05b38aa", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/spire.js:387)"}, "properties": {"repobilityId": "5a239f960c98cf4b", "scanner": "scanner-primary", "fingerprint": "f2881e54c05b38aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c1ea5351672494d", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/level-tier-roles.js:99)"}, "properties": {"repobilityId": "80ffb1555915fa06", "scanner": "scanner-primary", "fingerprint": "5c1ea5351672494d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6ff09319015d5c40", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members?limit=1000&after=${after} (discord-bot/gifter-roles.js:331)"}, "properties": {"repobilityId": "ff260b26b95d0e89", "scanner": "scanner-primary", "fingerprint": "6ff09319015d5c40", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4958ff184ac1401a", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.js:412)"}, "properties": {"repobilityId": "c280c60829b3ac3e", "scanner": "scanner-primary", "fingerprint": "4958ff184ac1401a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dc3b03e319927589", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/gifter-roles.js:448)"}, "properties": {"repobilityId": "797699c28c2c49b7", "scanner": "scanner-primary", "fingerprint": "dc3b03e319927589", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-caff43b47b508f13", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/stream-checkin.js:288)"}, "properties": {"repobilityId": "0ad6391114221fb4", "scanner": "scanner-primary", "fingerprint": "caff43b47b508f13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a13d5f370669c77", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${g}/scheduled-events (discord-bot/stream-events.js:110)"}, "properties": {"repobilityId": "108260545b9304cb", "scanner": "scanner-primary", "fingerprint": "3a13d5f370669c77", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b305739a70cd361", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/stream-events.js:155)"}, "properties": {"repobilityId": "9ac9b26ce548f458", "scanner": "scanner-primary", "fingerprint": "5b305739a70cd361", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3aef2e78b8e90a68", "level": "error", "message": {"text": "Dangling fetch: POST https://accounts.spotify.com/api/token (discord-bot/rotation.js:219)"}, "properties": {"repobilityId": "38b60ea9afc94348", "scanner": "scanner-primary", "fingerprint": "3aef2e78b8e90a68", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-977e27a5608087ec", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/activity-feed.js:148)"}, "properties": {"repobilityId": "d9d0ad06b90769eb", "scanner": "scanner-primary", "fingerprint": "977e27a5608087ec", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e8e197d18bee8eb8", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-oauth.js:147)"}, "properties": {"repobilityId": "3c8f14d0b1aa33af", "scanner": "scanner-primary", "fingerprint": "e8e197d18bee8eb8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8937a7d41c4534ba", "level": "error", "message": {"text": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-oauth.js:176)"}, "properties": {"repobilityId": "b94fbdb7d84e8a51", "scanner": "scanner-primary", "fingerprint": "8937a7d41c4534ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a87c7472b59035fc", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/community-checkin.js:227)"}, "properties": {"repobilityId": "b03b58bc92fd4e96", "scanner": "scanner-primary", "fingerprint": "a87c7472b59035fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d8c41cb7f8b057a", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/community-checkin.js:481)"}, "properties": {"repobilityId": "385a61337c26d21a", "scanner": "scanner-primary", "fingerprint": "8d8c41cb7f8b057a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3812adea631002a7", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${existing.channelId}/messages/${existing.messageId} (discord-bot/community-checkin.js:990)"}, "properties": {"repobilityId": "05548e989ad5be2b", "scanner": "scanner-primary", "fingerprint": "3812adea631002a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-54c8dc6122f25a86", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:334)"}, "properties": {"repobilityId": "083beea2d2fbd3bc", "scanner": "scanner-primary", "fingerprint": "54c8dc6122f25a86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b6b943970d35ef5a", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:350)"}, "properties": {"repobilityId": "2838acdebc3c4608", "scanner": "scanner-primary", "fingerprint": "b6b943970d35ef5a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3d4148937ad70e86", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:354)"}, "properties": {"repobilityId": "609b9819f886abd2", "scanner": "scanner-primary", "fingerprint": "3d4148937ad70e86", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-407b33b75e987fbe", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:466)"}, "properties": {"repobilityId": "7715738a5c4e1cd2", "scanner": "scanner-primary", "fingerprint": "407b33b75e987fbe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6d7bfc25b5d4d06", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/pins/${prior.messageId} (discord-bot/vote-hub.js:522)"}, "properties": {"repobilityId": "e79b264271cbe2be", "scanner": "scanner-primary", "fingerprint": "a6d7bfc25b5d4d06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67c267f4b1e8e219", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:524)"}, "properties": {"repobilityId": "6e93bd17b71f8d05", "scanner": "scanner-primary", "fingerprint": "67c267f4b1e8e219", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0fe0ba9a98eaaee8", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/vote-hub.js:528)"}, "properties": {"repobilityId": "b584e4a1a99132a1", "scanner": "scanner-primary", "fingerprint": "0fe0ba9a98eaaee8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dd2bbda365780b2a", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/pins/${j.id} (discord-bot/vote-hub.js:535)"}, "properties": {"repobilityId": "edbbcae8a0d72710", "scanner": "scanner-primary", "fingerprint": "dd2bbda365780b2a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b9fedfc353f2733f", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/vote-hub.js:795)"}, "properties": {"repobilityId": "e599d09a45f9b37d", "scanner": "scanner-primary", "fingerprint": "b9fedfc353f2733f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b8221b6dbad588ae", "level": "error", "message": {"text": "Dangling fetch: GET https://site.api.espn.com/apis/site/v2/sports/${sport}/${league}/scoreboard (discord-bot/bet.js:54)"}, "properties": {"repobilityId": "1e09e51575a10380", "scanner": "scanner-primary", "fingerprint": "b8221b6dbad588ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2854c9b624810196", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printerbot.js:33)"}, "properties": {"repobilityId": "8cb2d8b5de3f4beb", "scanner": "scanner-primary", "fingerprint": "2854c9b624810196", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-898cbfa61786ce3f", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/webhooks (discord-bot/printerbot.js:65)"}, "properties": {"repobilityId": "a2c55698d76aa271", "scanner": "scanner-primary", "fingerprint": "898cbfa61786ce3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb250375dcdc634b", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${recapChannelId}/messages (discord-bot/weekly-recap.js:184)"}, "properties": {"repobilityId": "d1b4f1335faf8096", "scanner": "scanner-primary", "fingerprint": "fb250375dcdc634b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-722feb5ad533f3be", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/twitch-events.js:203)"}, "properties": {"repobilityId": "760881ce37dd16dd", "scanner": "scanner-primary", "fingerprint": "722feb5ad533f3be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9de9b647109941d9", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/temp-vc.js:39)"}, "properties": {"repobilityId": "9b324de118713201", "scanner": "scanner-primary", "fingerprint": "9de9b647109941d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2abe2df1f60edf7f", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/challenges.js:291)"}, "properties": {"repobilityId": "79537db376e84091", "scanner": "scanner-primary", "fingerprint": "2abe2df1f60edf7f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d867e60fbce8c63", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/preview (discord-bot/welcome.js:61)"}, "properties": {"repobilityId": "b140bb2a9e1f211b", "scanner": "scanner-primary", "fingerprint": "9d867e60fbce8c63", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb1b2a3a63dd5804", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:1961)"}, "properties": {"repobilityId": "7d54045545fe11c7", "scanner": "scanner-primary", "fingerprint": "bb1b2a3a63dd5804", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9419da950bc072ab", "level": "error", "message": {"text": "Dangling fetch: GET https://do/sse (discord-bot/worker.js:2516)"}, "properties": {"repobilityId": "33834a3850d35f64", "scanner": "scanner-primary", "fingerprint": "9419da950bc072ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-421dd6449f822b65", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/applications/${appId}/guilds/${guildId}/commands (discord-bot/worker.js:2795)"}, "properties": {"repobilityId": "28206c3dd0dcc905", "scanner": "scanner-primary", "fingerprint": "421dd6449f822b65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-40dcdfde7dc58893", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-bot/worker.js:2887)"}, "properties": {"repobilityId": "8bad869ffb3765db", "scanner": "scanner-primary", "fingerprint": "40dcdfde7dc58893", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4aa1aadeaa4b8170", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:2924)"}, "properties": {"repobilityId": "2395c3dc54dc3805", "scanner": "scanner-primary", "fingerprint": "4aa1aadeaa4b8170", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b85c13808806a72e", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/pins/${encodeURIComponent(messageId)} (discord-bot/worker.js:2936)"}, "properties": {"repobilityId": "7568491c67b56065", "scanner": "scanner-primary", "fingerprint": "b85c13808806a72e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d08dc03ff55254e6", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId}/messages/${existing} (discord-bot/worker.js:3090)"}, "properties": {"repobilityId": "ae22a24216644e3c", "scanner": "scanner-primary", "fingerprint": "d08dc03ff55254e6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2009830764d57e13", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/worker.js:3110)"}, "properties": {"repobilityId": "deb9857b20fcd0e0", "scanner": "scanner-primary", "fingerprint": "2009830764d57e13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bc0a9e672741a33", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(liveChannelId)} (discord-bot/worker.js:3331)"}, "properties": {"repobilityId": "242aeaf70a38a61e", "scanner": "scanner-primary", "fingerprint": "5bc0a9e672741a33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d802da7d43f43939", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:3361)"}, "properties": {"repobilityId": "caf498b5ba710c08", "scanner": "scanner-primary", "fingerprint": "d802da7d43f43939", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aed33e20ea17b980", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${stamp.messageId} (discord-bot/worker.js:4425)"}, "properties": {"repobilityId": "3235e3fc7ae9498c", "scanner": "scanner-primary", "fingerprint": "aed33e20ea17b980", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90105dbb80d31c85", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=50 (discord-bot/worker.js:4431)"}, "properties": {"repobilityId": "21d8eb6f5b7bcc92", "scanner": "scanner-primary", "fingerprint": "90105dbb80d31c85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-881077cfbed0b959", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${prior.id} (discord-bot/worker.js:4445)"}, "properties": {"repobilityId": "e319ebe9af4049be", "scanner": "scanner-primary", "fingerprint": "881077cfbed0b959", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5c9002570ed22862", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4467)"}, "properties": {"repobilityId": "deae0141ee9633a0", "scanner": "scanner-primary", "fingerprint": "5c9002570ed22862", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-39388fc7c853108b", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:4514)"}, "properties": {"repobilityId": "897435696d59cabc", "scanner": "scanner-primary", "fingerprint": "39388fc7c853108b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa9ed42d03b180b3", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(guildId)} (discord-bot/worker.js:4541)"}, "properties": {"repobilityId": "efc2fb531bf31998", "scanner": "scanner-primary", "fingerprint": "fa9ed42d03b180b3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4d4e3636886483ae", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(t.id)}/permissions/${encodeURIComponent(roleId)} (discord-bot/worker.js:4551)"}, "properties": {"repobilityId": "c7aa677f0ea218ac", "scanner": "scanner-primary", "fingerprint": "4d4e3636886483ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4f2837e63b97e6ba", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(prior.channelId)}/messages/${prior.messageId} (discord-bot/worker.js:4610)"}, "properties": {"repobilityId": "c3b2a5d6b7e013cf", "scanner": "scanner-primary", "fingerprint": "4f2837e63b97e6ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76aeb4aa003bee70", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4616)"}, "properties": {"repobilityId": "746254260ddaaddf", "scanner": "scanner-primary", "fingerprint": "76aeb4aa003bee70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-135df088af0b5435", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4692)"}, "properties": {"repobilityId": "45a2dcad6e522152", "scanner": "scanner-primary", "fingerprint": "135df088af0b5435", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a4d4ebf355d406c2", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/worker.js:4809)"}, "properties": {"repobilityId": "57385de611aec608", "scanner": "scanner-primary", "fingerprint": "a4d4ebf355d406c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7c88c86a61418acc", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:4859)"}, "properties": {"repobilityId": "7a3f702c473ab2ed", "scanner": "scanner-primary", "fingerprint": "7c88c86a61418acc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee51559fe1b671b4", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5010)"}, "properties": {"repobilityId": "0a0378fd74efb359", "scanner": "scanner-primary", "fingerprint": "ee51559fe1b671b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-337a7f9d130fb6bb", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/worker.js:5017)"}, "properties": {"repobilityId": "75c925013313c98c", "scanner": "scanner-primary", "fingerprint": "337a7f9d130fb6bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3babfe3fd8dfa81a", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5035)"}, "properties": {"repobilityId": "a4c105a0a1719f4e", "scanner": "scanner-primary", "fingerprint": "3babfe3fd8dfa81a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-846791afc6d11814", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5048)"}, "properties": {"repobilityId": "29cc5c83a476876f", "scanner": "scanner-primary", "fingerprint": "846791afc6d11814", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8127b07b5a4f5a33", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(category.id)}/permissions/${encodeURIComponent(ov.id)} (discord-bot/worker.js:5064)"}, "properties": {"repobilityId": "7ab4eff860fc974b", "scanner": "scanner-primary", "fingerprint": "8127b07b5a4f5a33", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c45d4e85fdcf6e2b", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5076)"}, "properties": {"repobilityId": "1d94447a1fef3fac", "scanner": "scanner-primary", "fingerprint": "c45d4e85fdcf6e2b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9a59d50707687888", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)} (discord-bot/worker.js:5093)"}, "properties": {"repobilityId": "a2166c134c1b4c6a", "scanner": "scanner-primary", "fingerprint": "9a59d50707687888", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b970296ab0e759b", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5142)"}, "properties": {"repobilityId": "ed7032a2df21b9e8", "scanner": "scanner-primary", "fingerprint": "2b970296ab0e759b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67f5fe932fbc35b7", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/worker.js:5155)"}, "properties": {"repobilityId": "7004849cd16a5b16", "scanner": "scanner-primary", "fingerprint": "67f5fe932fbc35b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bd1187b6dd879721", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${encodeURIComponent(channel.id)}/permissions/${encodeURIComponent(ov.id)} (discord-bot/worker.js:5172)"}, "properties": {"repobilityId": "349786833257648b", "scanner": "scanner-primary", "fingerprint": "bd1187b6dd879721", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0665e14d84023825", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages?limit=${scanLimit} (discord-bot/worker.js:5367)"}, "properties": {"repobilityId": "f2e523e78d2b50e1", "scanner": "scanner-primary", "fingerprint": "0665e14d84023825", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-111e029500f1948f", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages/${oldBanner.id} (discord-bot/worker.js:5392)"}, "properties": {"repobilityId": "f31be958bafb0238", "scanner": "scanner-primary", "fingerprint": "111e029500f1948f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc2e01714ceb6db8", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/worker.js:5416)"}, "properties": {"repobilityId": "81705b8db8947e4d", "scanner": "scanner-primary", "fingerprint": "bc2e01714ceb6db8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aa71a36020009f84", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5604)"}, "properties": {"repobilityId": "e5dbadc8b59480ab", "scanner": "scanner-primary", "fingerprint": "aa71a36020009f84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae93770664a7dccd", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5741)"}, "properties": {"repobilityId": "75b36f362b5af71a", "scanner": "scanner-primary", "fingerprint": "ae93770664a7dccd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1cd0c29855cf7b42", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5765)"}, "properties": {"repobilityId": "bec4ba6d6b5bc3ba", "scanner": "scanner-primary", "fingerprint": "1cd0c29855cf7b42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70516478a4dd45b9", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5871)"}, "properties": {"repobilityId": "ca6774346018d300", "scanner": "scanner-primary", "fingerprint": "70516478a4dd45b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-de24cfe1adc8ad52", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:5881)"}, "properties": {"repobilityId": "fb68c6bb0f2f27b5", "scanner": "scanner-primary", "fingerprint": "de24cfe1adc8ad52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4e4e13f886c2bed", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${rulesCh.id}/messages?limit=50 (discord-bot/worker.js:5909)"}, "properties": {"repobilityId": "382db9a9eb5c7a7e", "scanner": "scanner-primary", "fingerprint": "b4e4e13f886c2bed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3c3424dae4070d4d", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${rulesCh.id}/messages/${oldVerify.id} (discord-bot/worker.js:5919)"}, "properties": {"repobilityId": "169ce4b05f54cb1b", "scanner": "scanner-primary", "fingerprint": "3c3424dae4070d4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4240d3c2c27f62bf", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5950)"}, "properties": {"repobilityId": "2068f6a49a2ba4bc", "scanner": "scanner-primary", "fingerprint": "4240d3c2c27f62bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e153f8f22721571d", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${rulesCh.id}/messages (discord-bot/worker.js:5973)"}, "properties": {"repobilityId": "2aa9c5df369d2dfa", "scanner": "scanner-primary", "fingerprint": "e153f8f22721571d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-579f3f34ffbabb13", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/channels (discord-bot/worker.js:6101)"}, "properties": {"repobilityId": "a500bb1969db21db", "scanner": "scanner-primary", "fingerprint": "579f3f34ffbabb13", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d648b9985b1f8c5e", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${channelId} (discord-bot/worker.js:6247)"}, "properties": {"repobilityId": "4fd41544904ffa1e", "scanner": "scanner-primary", "fingerprint": "d648b9985b1f8c5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8176d80adee17113", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${p} (discord-bot/worker.js:6400)"}, "properties": {"repobilityId": "3b47bec9fc869e4a", "scanner": "scanner-primary", "fingerprint": "8176d80adee17113", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-beaae899c0f77cce", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6586)"}, "properties": {"repobilityId": "e2c40c1bffa3d519", "scanner": "scanner-primary", "fingerprint": "beaae899c0f77cce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7d84c1927a40aa5", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${r.id} (discord-bot/worker.js:6598)"}, "properties": {"repobilityId": "b5d220127557367c", "scanner": "scanner-primary", "fingerprint": "f7d84c1927a40aa5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb6b2471cfbf758b", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules (discord-bot/worker.js:6614)"}, "properties": {"repobilityId": "1604fe7eecd766c8", "scanner": "scanner-primary", "fingerprint": "fb6b2471cfbf758b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-783ea628af150303", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${guildId}/auto-moderation/rules/${occupant.id} (discord-bot/worker.js:6639)"}, "properties": {"repobilityId": "f74e79547f3b81a8", "scanner": "scanner-primary", "fingerprint": "783ea628af150303", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-db32921c1fa35dac", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${userId} (discord-bot/chat-relay.js:110)"}, "properties": {"repobilityId": "d324ca135abc55aa", "scanner": "scanner-primary", "fingerprint": "db32921c1fa35dac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-41c72d8576bf1408", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:136)"}, "properties": {"repobilityId": "c295310cb08c5cf8", "scanner": "scanner-primary", "fingerprint": "41c72d8576bf1408", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e2e19ec7c9585d3", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/webhooks (discord-bot/chat-relay.js:143)"}, "properties": {"repobilityId": "8f915d7565f1ba55", "scanner": "scanner-primary", "fingerprint": "3e2e19ec7c9585d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-34522ae678b5fd20", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/voice-temp.js:58)"}, "properties": {"repobilityId": "28d84597ce57417a", "scanner": "scanner-primary", "fingerprint": "34522ae678b5fd20", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02be32ce4e666fba", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)} (discord-bot/voice-temp.js:76)"}, "properties": {"repobilityId": "ce5f63eeacb6d5e0", "scanner": "scanner-primary", "fingerprint": "02be32ce4e666fba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a6235ebcbdb0558d", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${encodeURIComponent(chId)} (discord-bot/voice-temp.js:141)"}, "properties": {"repobilityId": "9189fd1e4691a823", "scanner": "scanner-primary", "fingerprint": "a6235ebcbdb0558d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bb49ec52a43215e", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/tickets.js:46)"}, "properties": {"repobilityId": "db87d5782e4314f7", "scanner": "scanner-primary", "fingerprint": "1bb49ec52a43215e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4269c637b888fcbd", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${prior.channelId}/messages/${prior.messageId} (discord-bot/channel-hubs.js:181)"}, "properties": {"repobilityId": "74fbe4d8e94f1361", "scanner": "scanner-primary", "fingerprint": "4269c637b888fcbd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b780fe2fb05edb08", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/channel-hubs.js:220)"}, "properties": {"repobilityId": "4ae7ab5102b186c2", "scanner": "scanner-primary", "fingerprint": "b780fe2fb05edb08", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4fac4bfca32893db", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/onboarding.js:692)"}, "properties": {"repobilityId": "2d4dc35914c626ed", "scanner": "scanner-primary", "fingerprint": "4fac4bfca32893db", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab577494a1bce31b", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/onboarding.js:705)"}, "properties": {"repobilityId": "485888d0ba5b5df2", "scanner": "scanner-primary", "fingerprint": "ab577494a1bce31b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3e70f60836b2ae75", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${priorRaw.channelId}/messages/${priorRaw.messageId} (discord-bot/onboarding.js:787)"}, "properties": {"repobilityId": "e7308bd42f7c4cfd", "scanner": "scanner-primary", "fingerprint": "3e70f60836b2ae75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b7177529d891cea4", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/onboarding.js:1011)"}, "properties": {"repobilityId": "776901598a677d68", "scanner": "scanner-primary", "fingerprint": "b7177529d891cea4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f0b6b030cb24066a", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1106)"}, "properties": {"repobilityId": "f2bf247e6e618192", "scanner": "scanner-primary", "fingerprint": "f0b6b030cb24066a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-110867be68c13526", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1138)"}, "properties": {"repobilityId": "de0b5150daff8c3c", "scanner": "scanner-primary", "fingerprint": "110867be68c13526", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd5a65413b0258b2", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/onboarding.js:1179)"}, "properties": {"repobilityId": "07d08460c5cf694c", "scanner": "scanner-primary", "fingerprint": "cd5a65413b0258b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9922d91bd9c5c8b0", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/users/@me/channels (discord-bot/onboarding.js:1212)"}, "properties": {"repobilityId": "cd1630563cf62549", "scanner": "scanner-primary", "fingerprint": "9922d91bd9c5c8b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61e98911a880cba0", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${ch.id}/messages (discord-bot/onboarding.js:1224)"}, "properties": {"repobilityId": "6e2aa9cac286bad9", "scanner": "scanner-primary", "fingerprint": "61e98911a880cba0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1ff58c401a4a31c4", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/schedule-rotation.js:187)"}, "properties": {"repobilityId": "a641f3fd4a3f700d", "scanner": "scanner-primary", "fingerprint": "1ff58c401a4a31c4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b639d554b21526f1", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/lfg.js:90)"}, "properties": {"repobilityId": "0352780fda9ce000", "scanner": "scanner-primary", "fingerprint": "b639d554b21526f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-45617b9287c72a55", "level": "error", "message": {"text": "Dangling fetch: PATCH https://discord.com/api/v10/channels/${encodeURIComponent(lfg.channelId)}/messages/${encodeURIComponent(lfg.messageId)} (discord-bot/lfg.js:105)"}, "properties": {"repobilityId": "ea0cd0746555c3e6", "scanner": "scanner-primary", "fingerprint": "45617b9287c72a55", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b522b2ceaade4dcb", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-features.js:72)"}, "properties": {"repobilityId": "8cabd927e5e3f6c4", "scanner": "scanner-primary", "fingerprint": "b522b2ceaade4dcb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1ea0d980fabede82", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${channelId}/messages (discord-bot/cn-games-list-hub.js:95)"}, "properties": {"repobilityId": "966250a49c340c7a", "scanner": "scanner-primary", "fingerprint": "1ea0d980fabede82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-23b3a9a6524aae38", "level": "error", "message": {"text": "Dangling fetch: DELETE https://discord.com/api/v10/channels/${m.channelId}/messages/${m.messageId} (discord-bot/cn-games-list-hub.js:118)"}, "properties": {"repobilityId": "1f7ec6a0cec98ff8", "scanner": "scanner-primary", "fingerprint": "23b3a9a6524aae38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aaf45d6935ef3fc2", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/cn-games-list-hub.js:174)"}, "properties": {"repobilityId": "48d4930797603b0f", "scanner": "scanner-primary", "fingerprint": "aaf45d6935ef3fc2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-48e56a8a2d0c75ba", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${env.PATRON_OF_MONTH_CHANNEL_ID}/messages (discord-bot/patron-of-month.js:115)"}, "properties": {"repobilityId": "5185413c90e5e35b", "scanner": "scanner-primary", "fingerprint": "48e56a8a2d0c75ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e35995a0e697ddb0", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/guilds/${env.AQUILO_VAULT_GUILD_ID}/members/${winner.userId}/roles/${env.PATRON_OF_MONTH_ROLE_ID} (discord-bot/patron-of-month.js:136)"}, "properties": {"repobilityId": "d732c9a9fb08b92a", "scanner": "scanner-primary", "fingerprint": "e35995a0e697ddb0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e149f9fe8d1f5dd", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(channelId)}/messages (discord-bot/cn-games-roster.js:233)"}, "properties": {"repobilityId": "025607463cd3be82", "scanner": "scanner-primary", "fingerprint": "2e149f9fe8d1f5dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76ed1f6f3c08e649", "level": "error", "message": {"text": "Dangling fetch: POST https://do/publish (discord-bot/activity-do.js:120)"}, "properties": {"repobilityId": "0ab21a8058c3307b", "scanner": "scanner-primary", "fingerprint": "76ed1f6f3c08e649", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b90641a48ef4f020", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${guildId}/members/${discordId} (discord-bot/actor-name.js:45)"}, "properties": {"repobilityId": "99e7716c9b54389b", "scanner": "scanner-primary", "fingerprint": "b90641a48ef4f020", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-52325c9795fd4764", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:71)"}, "properties": {"repobilityId": "e6a0dab3e2353a2f", "scanner": "scanner-primary", "fingerprint": "52325c9795fd4764", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9f86f3228fc55669", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/twitch-helix.js:128)"}, "properties": {"repobilityId": "2e79a77abc8b8153", "scanner": "scanner-primary", "fingerprint": "9f86f3228fc55669", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3288a8de8f29ce1", "level": "error", "message": {"text": "Dangling fetch: GET https://id.twitch.tv/oauth2/validate (discord-bot/twitch-helix.js:308)"}, "properties": {"repobilityId": "3bf7d997b9cf5320", "scanner": "scanner-primary", "fingerprint": "d3288a8de8f29ce1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-07715cfcc2127926", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${path} (discord-bot/guild-builder.js:23)"}, "properties": {"repobilityId": "e8232a220e61491b", "scanner": "scanner-primary", "fingerprint": "07715cfcc2127926", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0147a24a71e08ea", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(discordId)} (discord-bot/web.js:1068)"}, "properties": {"repobilityId": "1ff50564dc8face0", "scanner": "scanner-primary", "fingerprint": "d0147a24a71e08ea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1cf7b9334f09b124", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/roles (discord-bot/web.js:1069)"}, "properties": {"repobilityId": "fca69315725e4fd2", "scanner": "scanner-primary", "fingerprint": "1cf7b9334f09b124", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dfcbb12e64266e27", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/channels (discord-bot/web.js:1070)"}, "properties": {"repobilityId": "9da81efb611cc49b", "scanner": "scanner-primary", "fingerprint": "dfcbb12e64266e27", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c9830d27cabc6bb", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:251)"}, "properties": {"repobilityId": "a75aea8617b7bcd3", "scanner": "scanner-primary", "fingerprint": "2c9830d27cabc6bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-49667af0676063b1", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/punchcard.js:443)"}, "properties": {"repobilityId": "5de7072a51cf8efa", "scanner": "scanner-primary", "fingerprint": "49667af0676063b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d3e032defbc272a9", "level": "error", "message": {"text": "Dangling fetch: GET https://api.twitch.tv/helix/users (discord-bot/punchcard.js:459)"}, "properties": {"repobilityId": "80419047afbd58ea", "scanner": "scanner-primary", "fingerprint": "d3e032defbc272a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1e5f5796a21225f2", "level": "error", "message": {"text": "Dangling fetch: POST https://id.twitch.tv/oauth2/token (discord-bot/ext-loadout.js:26)"}, "properties": {"repobilityId": "5b6592b773c527ce", "scanner": "scanner-primary", "fingerprint": "1e5f5796a21225f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42ceafd046fd0fde", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (discord-bot/sfdock.js:39)"}, "properties": {"repobilityId": "23c9cb1254214b11", "scanner": "scanner-primary", "fingerprint": "42ceafd046fd0fde", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9ce426561c16866", "level": "error", "message": {"text": "Dangling fetch: PUT https://discord.com/api/v10/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me (discord-bot/twitch-clips.js:79)"}, "properties": {"repobilityId": "76e405cb8085d23d", "scanner": "scanner-primary", "fingerprint": "d9ce426561c16866", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98d20d43c6765460", "level": "error", "message": {"text": "Dangling fetch: POST https://do/broadcast (discord-bot/aquilo/overlay-do.js:86)"}, "properties": {"repobilityId": "e2697c7041859e22", "scanner": "scanner-primary", "fingerprint": "98d20d43c6765460", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94935c8f1bf52ab3", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10/guilds/${encodeURIComponent(guildId)}/members/${encodeURIComponent(userId)}/roles/${encodeURIComponent(roleId)} (discord-bot/aquilo/self-roles.js:315)"}, "properties": {"repobilityId": "57e58fdc2807a666", "scanner": "scanner-primary", "fingerprint": "94935c8f1bf52ab3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-df02df6422e5ee02", "level": "error", "message": {"text": "Dangling fetch: POST https://discord.com/api/v10/channels/${encodeURIComponent(modLog)}/messages (discord-bot/aquilo/self-roles.js:328)"}, "properties": {"repobilityId": "73fc536576b3b42f", "scanner": "scanner-primary", "fingerprint": "df02df6422e5ee02", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8848abfa4b5c8c69", "level": "error", "message": {"text": "Dangling fetch: GET https://oauth.battle.net/userinfo (discord-bot/progression/oauth/battlenet.js:13)"}, "properties": {"repobilityId": "3e9f5f07f18e918e", "scanner": "scanner-primary", "fingerprint": "8848abfa4b5c8c69", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4820784c2b61a109", "level": "error", "message": {"text": "Dangling fetch: GET https://graph.microsoft.com/v1.0/me (discord-bot/progression/oauth/xbox.js:18)"}, "properties": {"repobilityId": "e3801f116daf6452", "scanner": "scanner-primary", "fingerprint": "4820784c2b61a109", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cbf78a6e549ad781", "level": "error", "message": {"text": "Dangling fetch: GET https://open.tiktokapis.com/v2/user/info/?fields=open_id,union_id,avatar_url,display_name,username (discord-bot/progression/oauth/tiktok.js:13)"}, "properties": {"repobilityId": "1766ce6001070219", "scanner": "scanner-primary", "fingerprint": "cbf78a6e549ad781", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d4631ab9adff52b2", "level": "error", "message": {"text": "Dangling fetch: GET https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?key=${env.STEAM_API_KEY}&steamids=${steamId64} (discord-bot/progression/oauth/steam.js:80)"}, "properties": {"repobilityId": "171127fe51a7503b", "scanner": "scanner-primary", "fingerprint": "d4631ab9adff52b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6abb19d06f0672b9", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true (discord-bot/progression/oauth/youtube.js:14)"}, "properties": {"repobilityId": "2bd4ff7e917af2c5", "scanner": "scanner-primary", "fingerprint": "6abb19d06f0672b9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6af87d5f8a3dfcda", "level": "error", "message": {"text": "Dangling fetch: GET https://api.epicgames.dev/epic/oauth/v2/userInfo (discord-bot/progression/oauth/epic.js:13)"}, "properties": {"repobilityId": "b6ccaa3b110d9f56", "scanner": "scanner-primary", "fingerprint": "6af87d5f8a3dfcda", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b00b72d76ad7918", "level": "error", "message": {"text": "Dangling fetch: POST https://www.patreon.com/api/oauth2/token (aquilo-gg/worker/loadout-link-worker.js:77)"}, "properties": {"repobilityId": "76000c047171e86e", "scanner": "scanner-primary", "fingerprint": "2b00b72d76ad7918", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aeacd31de11ecac3", "level": "error", "message": {"text": "Dangling fetch: GET https://aquilo.gg/api/schedule (aquilo-gg/overlays/starting-soon/main.js:87)"}, "properties": {"repobilityId": "bc4f0dcb2cc8ca3b", "scanner": "scanner-primary", "fingerprint": "aeacd31de11ecac3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4b8b39fa459efcb0", "level": "error", "message": {"text": "Dangling fetch: GET https://aquilo.gg/api/community/supporter-wall (aquilo-gg/overlays/starting-soon/main.js:502)"}, "properties": {"repobilityId": "f9055c342cdd1a7b", "scanner": "scanner-primary", "fingerprint": "4b8b39fa459efcb0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8a84defdc6c88254", "level": "note", "message": {"text": "Unused endpoint: ANY /streamkey"}, "properties": {"repobilityId": "c87a8191620bdc6a", "scanner": "scanner-primary", "fingerprint": "8a84defdc6c88254", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8340dec135e05a1", "level": "note", "message": {"text": "Unused endpoint: ANY /stream/status"}, "properties": {"repobilityId": "0644f4ef7243a094", "scanner": "scanner-primary", "fingerprint": "e8340dec135e05a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e0f2b2fa1aec030b", "level": "note", "message": {"text": "Unused endpoint: ANY /categories"}, "properties": {"repobilityId": "f08233e6acaecc09", "scanner": "scanner-primary", "fingerprint": "e0f2b2fa1aec030b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3fada365bbbd64fc", "level": "note", "message": {"text": "Unused endpoint: ANY /tiktok/access-status"}, "properties": {"repobilityId": "1e7aaa652f771bc2", "scanner": "scanner-primary", "fingerprint": "3fada365bbbd64fc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aba6036a0d871acb", "level": "note", "message": {"text": "Unused endpoint: ANY /stream/details"}, "properties": {"repobilityId": "da3f6dc4aa0c5ef4", "scanner": "scanner-primary", "fingerprint": "aba6036a0d871acb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b5d009108efee6ae", "level": "note", "message": {"text": "Unused endpoint: ANY /stream/start"}, "properties": {"repobilityId": "2cc067f168e0d11d", "scanner": "scanner-primary", "fingerprint": "b5d009108efee6ae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef3f2d602ded2b9d", "level": "note", "message": {"text": "Unused endpoint: ANY /stream/end"}, "properties": {"repobilityId": "6c051bf23f00789d", "scanner": "scanner-primary", "fingerprint": "ef3f2d602ded2b9d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfcb0223d3f713fe", "level": "note", "message": {"text": "Unused endpoint: ANY /auth/start"}, "properties": {"repobilityId": "97048e9ed56d10eb", "scanner": "scanner-primary", "fingerprint": "dfcb0223d3f713fe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09db032564fceb70", "level": "note", "message": {"text": "Unused endpoint: ANY /debug/status"}, "properties": {"repobilityId": "2fb2aea489bad1d5", "scanner": "scanner-primary", "fingerprint": "09db032564fceb70", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3fd359199937853e", "level": "note", "message": {"text": "Unused endpoint: ANY /debug/log"}, "properties": {"repobilityId": "b5e25cc2d17624fc", "scanner": "scanner-primary", "fingerprint": "3fd359199937853e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2825fb43f04a1bec", "level": "note", "message": {"text": "Unused endpoint: ANY /debug/diag"}, "properties": {"repobilityId": "811010b450662f71", "scanner": "scanner-primary", "fingerprint": "2825fb43f04a1bec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}