{"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-d836069c13107fbc", "name": "Possibly dead Python function: do_OPTIONS", "shortDescription": {"text": "Possibly dead Python function: do_OPTIONS"}, "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-f1ffc4e1d5ad58bc", "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-c39059264f6b2084", "name": "Possibly dead Python function: do_POST", "shortDescription": {"text": "Possibly dead Python function: do_POST"}, "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-c183086e970db17d", "name": "Stray `console.log` in TS/JS \u2014 elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 elgato-proxy.js:658"}, "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-6b87ae8229565b1f", "name": "Stray `console.log` in TS/JS \u2014 2026-05-05/elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-05-05/elgato-proxy.js:658"}, "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-9aa74a5f16683b9c", "name": "Stray `console.log` in TS/JS \u2014 suno-local/server.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 suno-local/server.js:132"}, "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-21729d0bb63ac327", "name": "Stray `console.log` in TS/JS \u2014 2026-04-26/elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-26/elgato-proxy.js:658"}, "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-72992435cb42f952", "name": "Stray `console.log` in TS/JS \u2014 2026-04-29/elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-29/elgato-proxy.js:658"}, "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-60a263cc79fcda56", "name": "Stray `console.log` in TS/JS \u2014 2026-04-28/elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-28/elgato-proxy.js:658"}, "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-8eb8604ca17993e9", "name": "Stray `console.log` in TS/JS \u2014 2026-04-30/elgato-proxy.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-30/elgato-proxy.js:658"}, "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-ef7f1a119f2f1557", "name": "Stray `console.log` in TS/JS \u2014 drawthings-local/server.js:154", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 drawthings-local/server.js:154"}, "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-b373b8a67fa0e25e", "name": "Stray `console.log` in TS/JS \u2014 2026-03-25/elgato-proxy.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-03-25/elgato-proxy.js:79"}, "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-fd32412f3c0e6d22", "name": "Stray `console.log` in TS/JS \u2014 2026-03-25/sw.js:5", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 2026-03-25/sw.js:5"}, "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-8e9f6eca96f04a42", "name": "Insecure pattern 'node_child_process' in elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf3c3a093a1dd395", "name": "Insecure pattern 'cors_wildcard' in elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in elgato-proxy.js:434"}, "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-82bef282dfcd5b7a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pantalla.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pantalla.html:317"}, "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-788d47dde04fa45d", "name": "Insecure pattern 'direct_innerhtml_assignment' in qrcode.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in qrcode.min.js:1"}, "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-93e4fa9e380962fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in conectar.html:171", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in conectar.html:171"}, "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-e14d6f4ec04231fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in remote.html:168", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in remote.html:168"}, "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-72c70053ff2b6d08", "name": "Insecure pattern 'direct_innerhtml_assignment' in xtanco-loyalty-client.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in xtanco-loyalty-client.js:107"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d13397f763b0830", "name": "Insecure pattern 'direct_innerhtml_assignment' in marketplace/app.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in marketplace/app.js:38"}, "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-cfe39d0ab79b6c90", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-05-05/game.html:3499", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-05-05/game.html:3499"}, "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-e8728618aa04ac10", "name": "Insecure pattern 'node_child_process' in 2026-05-05/elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in 2026-05-05/elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-65d6500971326fe8", "name": "Insecure pattern 'cors_wildcard' in 2026-05-05/elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-05-05/elgato-proxy.js:434"}, "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-56f40da732da1046", "name": "Insecure pattern 'node_child_process' in suno-local/server.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in suno-local/server.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f905e366695f8fc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-26/game.html:2953", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-26/game.html:2953"}, "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-a5a32a75782727ef", "name": "Insecure pattern 'node_child_process' in 2026-04-26/elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in 2026-04-26/elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72ae620413139e71", "name": "Insecure pattern 'cors_wildcard' in 2026-04-26/elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-26/elgato-proxy.js:434"}, "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-0e5f68b2de425c05", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/game.html:3075", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/game.html:3075"}, "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-e5db87b6c11121ea", "name": "Insecure pattern 'node_child_process' in 2026-04-29/elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in 2026-04-29/elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3acdaafe27628da9", "name": "Insecure pattern 'cors_wildcard' in 2026-04-29/elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-29/elgato-proxy.js:434"}, "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-3e5812f49f87db86", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/qrcode.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/qrcode.min.js:1"}, "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-164fd9e0774fe275", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/xtanco-loyalty-client.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/xtanco-loyalty-client.js:107"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca2930a9a09091f6", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/loyalty-app/app.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/loyalty-app/app.js:12"}, "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-061395114e1c5a6b", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-28/game.html:2953", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-28/game.html:2953"}, "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-5fa9d02f51123c03", "name": "Insecure pattern 'node_child_process' in 2026-04-28/elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in 2026-04-28/elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cba0c35ba013daab", "name": "Insecure pattern 'cors_wildcard' in 2026-04-28/elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-28/elgato-proxy.js:434"}, "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-c77001d70f91f306", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/game.html:3081", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/game.html:3081"}, "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-d7651f53c83d1519", "name": "Insecure pattern 'node_child_process' in 2026-04-30/elgato-proxy.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in 2026-04-30/elgato-proxy.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5777031ac0019de3", "name": "Insecure pattern 'cors_wildcard' in 2026-04-30/elgato-proxy.js:434", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-30/elgato-proxy.js:434"}, "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-2293eefafd283a0c", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/qrcode.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/qrcode.min.js:1"}, "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-b7182100cc95e733", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/xtanco-loyalty-client.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/xtanco-loyalty-client.js:107"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24ac7b9a97a067df", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/marketplace/app.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/marketplace/app.js:38"}, "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-eb45ef0494f52580", "name": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/loyalty-app/app.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/loyalty-app/app.js:12"}, "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-46e681963d4942e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in loyalty-app/app.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in loyalty-app/app.js:12"}, "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-954b20442d96a261", "name": "Insecure pattern 'node_child_process' in drawthings-local/server.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in drawthings-local/server.js:5"}, "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-37c16ce05f211c4f", "name": "Possible secret in 2026-03-25/game.html", "shortDescription": {"text": "Possible secret in 2026-03-25/game.html"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-8e6c6bdf962784d2", "name": "Possible secret in 2026-03-25/elgato-proxy.js", "shortDescription": {"text": "Possible secret in 2026-03-25/elgato-proxy.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4929e75f780ee392", "name": "Insecure pattern 'cors_wildcard' in 2026-03-25/elgato-proxy.js:36", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in 2026-03-25/elgato-proxy.js:36"}, "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-1f6ce83cb3f7827e", "name": "Insecure pattern 'local_storage_auth_token' in assets/js/session-ping.js:109", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in assets/js/session-ping.js:109"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4634e5d06b8f5332", "name": "Very large file: elgato-proxy.js (2128 lines)", "shortDescription": {"text": "Very large file: elgato-proxy.js (2128 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-55c48cf75ecc1f2d", "name": "Very large file: 2026-05-05/elgato-proxy.js (1674 lines)", "shortDescription": {"text": "Very large file: 2026-05-05/elgato-proxy.js (1674 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-5b1fb729f7b64f48", "name": "Very large file: 2026-04-26/elgato-proxy.js (1629 lines)", "shortDescription": {"text": "Very large file: 2026-04-26/elgato-proxy.js (1629 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-186d8dd00e9b076e", "name": "Very large file: 2026-04-29/elgato-proxy.js (1629 lines)", "shortDescription": {"text": "Very large file: 2026-04-29/elgato-proxy.js (1629 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-195dcfb7e28d36e7", "name": "Very large file: 2026-04-28/elgato-proxy.js (1629 lines)", "shortDescription": {"text": "Very large file: 2026-04-28/elgato-proxy.js (1629 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-532f7fb7bb1c0e6b", "name": "Very large file: 2026-04-30/elgato-proxy.js (1629 lines)", "shortDescription": {"text": "Very large file: 2026-04-30/elgato-proxy.js (1629 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "0 test file(s) for 67 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 183 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 12 placeholder/mock markers across 4 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-572aa50f93c232fc", "name": "Agent authority lacks a verifier contract: CODEX.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: CODEX.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2973a59f3e250317", "name": "Commented-code block (6 lines) in elgato-proxy.js:889", "shortDescription": {"text": "Commented-code block (6 lines) in elgato-proxy.js:889"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-244b3953f2237245", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:82"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c25482bf7a15eda7", "name": "Commented-code block (6 lines) in smoke.mjs:16", "shortDescription": {"text": "Commented-code block (6 lines) in smoke.mjs:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a100e3c9a9f7ed7", "name": "Commented-code block (5 lines) in xtanco-runtime-config.js:43", "shortDescription": {"text": "Commented-code block (5 lines) in xtanco-runtime-config.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-2828263369e6a332", "name": "`fetch()` without try/.catch or AbortSignal \u2014 xtanco-loyalty-client.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 xtanco-loyalty-client.js:24"}, "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-fc7acbd1ddc1e0fc", "name": "Commented-code block (8 lines) in workers/admira-loyalty/src/index.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in workers/admira-loyalty/src/index.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-75d0dda599b83d62", "name": "Commented-code block (7 lines) in workers/admira-marketplace/src/index.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in workers/admira-marketplace/src/index.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-70649b27fe14bb09", "name": "Commented-code block (6 lines) in workers/admira-tunes/src/index.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in workers/admira-tunes/src/index.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-9918d8aac66412b7", "name": "Legacy-named symbol `eleven_multilingual_v2` in workers/admira-tts/src/index.js:67", "shortDescription": {"text": "Legacy-named symbol `eleven_multilingual_v2` in workers/admira-tts/src/index.js:67"}, "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-bbe1cf0e1c76e7b1", "name": "Commented-code block (5 lines) in workers/admira-tts/src/index.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in workers/admira-tts/src/index.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-050f92c1de355cab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-tts/src/index.js:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-tts/src/index.js:55"}, "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-9029c9eba007579a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-grok-proxy/src/index.js:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-grok-proxy/src/index.js:100"}, "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-af1b182e6609f64e", "name": "Legacy-named symbol `eleven_multilingual_v2` in workers/omnipublicity-api/src/index.js:281", "shortDescription": {"text": "Legacy-named symbol `eleven_multilingual_v2` in workers/omnipublicity-api/src/index.js:281"}, "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-0647c95f30807bd1", "name": "Commented-code block (7 lines) in workers/omnipublicity-api/src/index.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in workers/omnipublicity-api/src/index.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-79a142aeab38b19c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-telegram-bridge/src/index.js:269", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-telegram-bridge/src/index.js:269"}, "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-d1f262f0da5634ee", "name": "Commented-code block (9 lines) in studio/app.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in studio/app.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-3275569117b28097", "name": "Commented-code block (5 lines) in suno-local/server.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in suno-local/server.js: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-e122c70f36fca484", "name": "`fetch()` without try/.catch or AbortSignal \u2014 suno-local/server.js:227", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 suno-local/server.js:227"}, "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-b2682224fbdcf245", "name": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-26/index.js:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-26/index.js:84"}, "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-3a3843c70c841d2a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-29/xtanco-loyalty-client.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-29/xtanco-loyalty-client.js:24"}, "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-bd9e130ea4f49b38", "name": "Commented-code block (8 lines) in 2026-04-29/admira-loyalty/src/index.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in 2026-04-29/admira-loyalty/src/index.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-a55372eba8025dbd", "name": "Commented-code block (9 lines) in 2026-04-30/app.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in 2026-04-30/app.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-a8e72b0de1185004", "name": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-30/xtanco-loyalty-client.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-30/xtanco-loyalty-client.js:24"}, "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-4592537304dfcd08", "name": "Commented-code block (9 lines) in 2026-04-30/studio/app.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in 2026-04-30/studio/app.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-1e2904dcadddbe47", "name": "Commented-code block (8 lines) in 2026-04-30/admira-loyalty/src/index.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in 2026-04-30/admira-loyalty/src/index.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-3dc96f9f4071206b", "name": "Commented-code block (7 lines) in 2026-04-30/admira-marketplace/src/index.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in 2026-04-30/admira-marketplace/src/index.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-a1248a22722e5b3f", "name": "Commented-code block (6 lines) in 2026-04-30/admira-tunes/src/index.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in 2026-04-30/admira-tunes/src/index.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-0494c661c5da5719", "name": "Network/subprocess call without timeout or try/except \u2014 drawthings-local/server.py:134", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 drawthings-local/server.py:134"}, "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-d0b4dd01aecf4b2e", "name": "Commented-code block (8 lines) in 2026-03-25/elgato-proxy.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in 2026-03-25/elgato-proxy.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-4a358548beb1653e", "name": "Commented-code block (7 lines) in assets/js/session-log.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in assets/js/session-log.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-5e259d1049810953", "name": "Commented-code block (7 lines) in assets/js/streamdeck.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in assets/js/streamdeck.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-2643ec96ac0a6ca0", "name": "Commented-code block (6 lines) in assets/js/heatmap.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in assets/js/heatmap.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-0cae7f70b3c41a51", "name": "Commented-code block (8 lines) in assets/js/session-ping.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in assets/js/session-ping.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-159c9df18ef32167", "name": "Commented-code block (5 lines) in assets/js/ambient.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in assets/js/ambient.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-7c8b918e1fee9558", "name": "20 env vars used in code but missing from .env.example", "shortDescription": {"text": "20 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `DRAWTHINGS_BRIDGE_HOST`, `DRAWTHINGS_BRIDGE_PORT`, `DRAWTHINGS_CLI`, `DRAWTHINGS_MODEL`, `DRAWTHINGS_OUTPUT_DIR`, `SMOKE_URL`, `STOCK_PUBLISH_URL`, `SUNO_ALLOWED_ORIGINS` + 12 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/25146"}, "properties": {"repository": "csilvasantin/01.-AdmiraXperience-Game", "repoUrl": "https://github.com/csilvasantin/01.-AdmiraXperience-Game", "branch": "main"}, "results": [{"ruleId": "scanner-d836069c13107fbc", "level": "note", "message": {"text": "Possibly dead Python function: do_OPTIONS"}, "properties": {"repobilityId": "36491d1f4fa41aef", "scanner": "scanner-primary", "fingerprint": "d836069c13107fbc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "drawthings-local/server.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1ffc4e1d5ad58bc", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "f1ffc4e1d5ad58bc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "drawthings-local/server.py:75"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c39059264f6b2084", "level": "note", "message": {"text": "Possibly dead Python function: do_POST"}, "properties": {"repobilityId": "53357410ca9379a9", "scanner": "scanner-primary", "fingerprint": "c39059264f6b2084", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "drawthings-local/server.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c183086e970db17d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 elgato-proxy.js:658"}, "properties": {"repobilityId": "b25a081bd44e69be", "scanner": "scanner-primary", "fingerprint": "c183086e970db17d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b87ae8229565b1f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-05-05/elgato-proxy.js:658"}, "properties": {"repobilityId": "48490ce1b32d48be", "scanner": "scanner-primary", "fingerprint": "6b87ae8229565b1f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9aa74a5f16683b9c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 suno-local/server.js:132"}, "properties": {"repobilityId": "1d54127aad810689", "scanner": "scanner-primary", "fingerprint": "9aa74a5f16683b9c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21729d0bb63ac327", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-26/elgato-proxy.js:658"}, "properties": {"repobilityId": "48840b96fe01f70a", "scanner": "scanner-primary", "fingerprint": "21729d0bb63ac327", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-72992435cb42f952", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-29/elgato-proxy.js:658"}, "properties": {"repobilityId": "2e35f1f7940d49dd", "scanner": "scanner-primary", "fingerprint": "72992435cb42f952", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-60a263cc79fcda56", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-28/elgato-proxy.js:658"}, "properties": {"repobilityId": "c27e85c3fb42c947", "scanner": "scanner-primary", "fingerprint": "60a263cc79fcda56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8eb8604ca17993e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-04-30/elgato-proxy.js:658"}, "properties": {"repobilityId": "d481b695ae3fc532", "scanner": "scanner-primary", "fingerprint": "8eb8604ca17993e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ef7f1a119f2f1557", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 drawthings-local/server.js:154"}, "properties": {"repobilityId": "adc4b823c3e4ba94", "scanner": "scanner-primary", "fingerprint": "ef7f1a119f2f1557", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b373b8a67fa0e25e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-03-25/elgato-proxy.js:79"}, "properties": {"repobilityId": "4c7b2e7a1ec14d7d", "scanner": "scanner-primary", "fingerprint": "b373b8a67fa0e25e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd32412f3c0e6d22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 2026-03-25/sw.js:5"}, "properties": {"repobilityId": "821bedd679178f49", "scanner": "scanner-primary", "fingerprint": "fd32412f3c0e6d22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e9f6eca96f04a42", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in elgato-proxy.js:7"}, "properties": {"repobilityId": "d323a6ef2e1d191b", "scanner": "scanner-primary", "fingerprint": "8e9f6eca96f04a42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-bf3c3a093a1dd395", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in elgato-proxy.js:434"}, "properties": {"repobilityId": "5fe3914ef22ec6c1", "scanner": "scanner-primary", "fingerprint": "bf3c3a093a1dd395", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-82bef282dfcd5b7a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pantalla.html:317"}, "properties": {"repobilityId": "c9faef6fb8f20fea", "scanner": "scanner-primary", "fingerprint": "82bef282dfcd5b7a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantalla.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-788d47dde04fa45d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in qrcode.min.js:1"}, "properties": {"repobilityId": "2250a5766346ade1", "scanner": "scanner-primary", "fingerprint": "788d47dde04fa45d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "qrcode.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93e4fa9e380962fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in conectar.html:171"}, "properties": {"repobilityId": "fe7520d520b2ad86", "scanner": "scanner-primary", "fingerprint": "93e4fa9e380962fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "conectar.html"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-e14d6f4ec04231fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in remote.html:168"}, "properties": {"repobilityId": "de683fb93cce1d80", "scanner": "scanner-primary", "fingerprint": "e14d6f4ec04231fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "remote.html"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-72c70053ff2b6d08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in xtanco-loyalty-client.js:107"}, "properties": {"repobilityId": "522ef9c9ac2a50b4", "scanner": "scanner-primary", "fingerprint": "72c70053ff2b6d08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "xtanco-loyalty-client.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-2d13397f763b0830", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in marketplace/app.js:38"}, "properties": {"repobilityId": "99d74ad767321fc8", "scanner": "scanner-primary", "fingerprint": "2d13397f763b0830", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "marketplace/app.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-cfe39d0ab79b6c90", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-05-05/game.html:3499"}, "properties": {"repobilityId": "a90c9f972437a6a8", "scanner": "scanner-primary", "fingerprint": "cfe39d0ab79b6c90", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-05-05/game.html"}, "region": {"startLine": 3499}}}]}, {"ruleId": "scanner-e8728618aa04ac10", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in 2026-05-05/elgato-proxy.js:7"}, "properties": {"repobilityId": "e3c783ba937f45e6", "scanner": "scanner-primary", "fingerprint": "e8728618aa04ac10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-05-05/elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-65d6500971326fe8", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-05-05/elgato-proxy.js:434"}, "properties": {"repobilityId": "fd0a7e5b6f99f53d", "scanner": "scanner-primary", "fingerprint": "65d6500971326fe8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-05-05/elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-56f40da732da1046", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in suno-local/server.js:20"}, "properties": {"repobilityId": "8787976edb62b690", "scanner": "scanner-primary", "fingerprint": "56f40da732da1046", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "suno-local/server.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-f905e366695f8fc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-26/game.html:2953"}, "properties": {"repobilityId": "788e2f1235912211", "scanner": "scanner-primary", "fingerprint": "f905e366695f8fc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-26/game.html"}, "region": {"startLine": 2953}}}]}, {"ruleId": "scanner-a5a32a75782727ef", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in 2026-04-26/elgato-proxy.js:7"}, "properties": {"repobilityId": "17bf44ad7bab1111", "scanner": "scanner-primary", "fingerprint": "a5a32a75782727ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-26/elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-72ae620413139e71", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-26/elgato-proxy.js:434"}, "properties": {"repobilityId": "505f9f9ef6d7522a", "scanner": "scanner-primary", "fingerprint": "72ae620413139e71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-26/elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-0e5f68b2de425c05", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/game.html:3075"}, "properties": {"repobilityId": "5e9183e52ebdda53", "scanner": "scanner-primary", "fingerprint": "0e5f68b2de425c05", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/game.html"}, "region": {"startLine": 3075}}}]}, {"ruleId": "scanner-e5db87b6c11121ea", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in 2026-04-29/elgato-proxy.js:7"}, "properties": {"repobilityId": "86645785c73b8a46", "scanner": "scanner-primary", "fingerprint": "e5db87b6c11121ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-3acdaafe27628da9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-29/elgato-proxy.js:434"}, "properties": {"repobilityId": "5c2c05d2f9713869", "scanner": "scanner-primary", "fingerprint": "3acdaafe27628da9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-3e5812f49f87db86", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/qrcode.min.js:1"}, "properties": {"repobilityId": "29fe9e6384a76ab1", "scanner": "scanner-primary", "fingerprint": "3e5812f49f87db86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/qrcode.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-164fd9e0774fe275", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/xtanco-loyalty-client.js:107"}, "properties": {"repobilityId": "74d04332cc03a906", "scanner": "scanner-primary", "fingerprint": "164fd9e0774fe275", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/xtanco-loyalty-client.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-ca2930a9a09091f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-29/loyalty-app/app.js:12"}, "properties": {"repobilityId": "7e62965b08d5e7c6", "scanner": "scanner-primary", "fingerprint": "ca2930a9a09091f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-29/loyalty-app/app.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-061395114e1c5a6b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-28/game.html:2953"}, "properties": {"repobilityId": "53cc7575f35b6c59", "scanner": "scanner-primary", "fingerprint": "061395114e1c5a6b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-28/game.html"}, "region": {"startLine": 2953}}}]}, {"ruleId": "scanner-5fa9d02f51123c03", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in 2026-04-28/elgato-proxy.js:7"}, "properties": {"repobilityId": "cd029bc7245274a1", "scanner": "scanner-primary", "fingerprint": "5fa9d02f51123c03", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-28/elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-cba0c35ba013daab", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-28/elgato-proxy.js:434"}, "properties": {"repobilityId": "0c1c8de07a9079aa", "scanner": "scanner-primary", "fingerprint": "cba0c35ba013daab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-28/elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-c77001d70f91f306", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/game.html:3081"}, "properties": {"repobilityId": "fc5aa537bad14e21", "scanner": "scanner-primary", "fingerprint": "c77001d70f91f306", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/game.html"}, "region": {"startLine": 3081}}}]}, {"ruleId": "scanner-d7651f53c83d1519", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in 2026-04-30/elgato-proxy.js:7"}, "properties": {"repobilityId": "4aa909038d8d36c8", "scanner": "scanner-primary", "fingerprint": "d7651f53c83d1519", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/elgato-proxy.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-5777031ac0019de3", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-04-30/elgato-proxy.js:434"}, "properties": {"repobilityId": "4cae5e037d990866", "scanner": "scanner-primary", "fingerprint": "5777031ac0019de3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/elgato-proxy.js"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-2293eefafd283a0c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/qrcode.min.js:1"}, "properties": {"repobilityId": "7c864d2064b63a77", "scanner": "scanner-primary", "fingerprint": "2293eefafd283a0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/qrcode.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7182100cc95e733", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/xtanco-loyalty-client.js:107"}, "properties": {"repobilityId": "3600c4176f4366f1", "scanner": "scanner-primary", "fingerprint": "b7182100cc95e733", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/xtanco-loyalty-client.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-24ac7b9a97a067df", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/marketplace/app.js:38"}, "properties": {"repobilityId": "2356ad6a13cb891a", "scanner": "scanner-primary", "fingerprint": "24ac7b9a97a067df", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/marketplace/app.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-eb45ef0494f52580", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 2026-04-30/loyalty-app/app.js:12"}, "properties": {"repobilityId": "953248a86fa0c7ca", "scanner": "scanner-primary", "fingerprint": "eb45ef0494f52580", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-04-30/loyalty-app/app.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-46e681963d4942e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in loyalty-app/app.js:12"}, "properties": {"repobilityId": "812fed3337e7ae85", "scanner": "scanner-primary", "fingerprint": "46e681963d4942e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "loyalty-app/app.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-954b20442d96a261", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in drawthings-local/server.js:5"}, "properties": {"repobilityId": "acca3add2b7ea283", "scanner": "scanner-primary", "fingerprint": "954b20442d96a261", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "drawthings-local/server.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-37c16ce05f211c4f", "level": "error", "message": {"text": "Possible secret in 2026-03-25/game.html"}, "properties": {"repobilityId": "2eb5a496bb0ed6eb", "scanner": "scanner-primary", "fingerprint": "37c16ce05f211c4f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-03-25/game.html"}, "region": {"startLine": 637}}}]}, {"ruleId": "scanner-8e6c6bdf962784d2", "level": "error", "message": {"text": "Possible secret in 2026-03-25/elgato-proxy.js"}, "properties": {"repobilityId": "959e8fa763cc6eff", "scanner": "scanner-primary", "fingerprint": "8e6c6bdf962784d2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-03-25/elgato-proxy.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-4929e75f780ee392", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in 2026-03-25/elgato-proxy.js:36"}, "properties": {"repobilityId": "12fb0dee6e885938", "scanner": "scanner-primary", "fingerprint": "4929e75f780ee392", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "2026-03-25/elgato-proxy.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-1f6ce83cb3f7827e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in assets/js/session-ping.js:109"}, "properties": {"repobilityId": "042e0daecb170872", "scanner": "scanner-primary", "fingerprint": "1f6ce83cb3f7827e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "assets/js/session-ping.js"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-4634e5d06b8f5332", "level": "note", "message": {"text": "Very large file: elgato-proxy.js (2128 lines)"}, "properties": {"repobilityId": "3c01c43609d44343", "scanner": "scanner-primary", "fingerprint": "4634e5d06b8f5332", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-55c48cf75ecc1f2d", "level": "note", "message": {"text": "Very large file: 2026-05-05/elgato-proxy.js (1674 lines)"}, "properties": {"repobilityId": "b50092cccc2e9091", "scanner": "scanner-primary", "fingerprint": "55c48cf75ecc1f2d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5b1fb729f7b64f48", "level": "note", "message": {"text": "Very large file: 2026-04-26/elgato-proxy.js (1629 lines)"}, "properties": {"repobilityId": "83470cc2a39a8761", "scanner": "scanner-primary", "fingerprint": "5b1fb729f7b64f48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-186d8dd00e9b076e", "level": "note", "message": {"text": "Very large file: 2026-04-29/elgato-proxy.js (1629 lines)"}, "properties": {"repobilityId": "928a526e0dab1a32", "scanner": "scanner-primary", "fingerprint": "186d8dd00e9b076e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-195dcfb7e28d36e7", "level": "note", "message": {"text": "Very large file: 2026-04-28/elgato-proxy.js (1629 lines)"}, "properties": {"repobilityId": "dd7f32176cd55f32", "scanner": "scanner-primary", "fingerprint": "195dcfb7e28d36e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-532f7fb7bb1c0e6b", "level": "note", "message": {"text": "Very large file: 2026-04-30/elgato-proxy.js (1629 lines)"}, "properties": {"repobilityId": "ee6136c52f50d891", "scanner": "scanner-primary", "fingerprint": "532f7fb7bb1c0e6b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "db1c9088f195cc2a", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "1cd57b3ef1fd55b6", "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": "1317457bef84a7b7", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "08174b6d4518af10", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "13de98f943908941", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "501770ed6b1e9939", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "07c899802e5b1d2c", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-572aa50f93c232fc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: CODEX.md"}, "properties": {"repobilityId": "95650a0f68504fab", "scanner": "scanner-primary", "fingerprint": "572aa50f93c232fc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "codex_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CODEX.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2973a59f3e250317", "level": "none", "message": {"text": "Commented-code block (6 lines) in elgato-proxy.js:889"}, "properties": {"repobilityId": "537b5bfec1bfd91b", "scanner": "scanner-primary", "fingerprint": "2973a59f3e250317", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-244b3953f2237245", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:82"}, "properties": {"repobilityId": "22311e2191284211", "scanner": "scanner-primary", "fingerprint": "244b3953f2237245", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c25482bf7a15eda7", "level": "none", "message": {"text": "Commented-code block (6 lines) in smoke.mjs:16"}, "properties": {"repobilityId": "ecad4647b15e6e7c", "scanner": "scanner-primary", "fingerprint": "c25482bf7a15eda7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a100e3c9a9f7ed7", "level": "none", "message": {"text": "Commented-code block (5 lines) in xtanco-runtime-config.js:43"}, "properties": {"repobilityId": "2258b2cc5ef6f06d", "scanner": "scanner-primary", "fingerprint": "8a100e3c9a9f7ed7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2828263369e6a332", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 xtanco-loyalty-client.js:24"}, "properties": {"repobilityId": "b75a9fd55c4fe2d4", "scanner": "scanner-primary", "fingerprint": "2828263369e6a332", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc7acbd1ddc1e0fc", "level": "none", "message": {"text": "Commented-code block (8 lines) in workers/admira-loyalty/src/index.js:1"}, "properties": {"repobilityId": "3236a8d033b3c044", "scanner": "scanner-primary", "fingerprint": "fc7acbd1ddc1e0fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75d0dda599b83d62", "level": "none", "message": {"text": "Commented-code block (7 lines) in workers/admira-marketplace/src/index.js:3"}, "properties": {"repobilityId": "173d5e15ea33660f", "scanner": "scanner-primary", "fingerprint": "75d0dda599b83d62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70649b27fe14bb09", "level": "none", "message": {"text": "Commented-code block (6 lines) in workers/admira-tunes/src/index.js:3"}, "properties": {"repobilityId": "edbf221c2cea5ac8", "scanner": "scanner-primary", "fingerprint": "70649b27fe14bb09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9918d8aac66412b7", "level": "note", "message": {"text": "Legacy-named symbol `eleven_multilingual_v2` in workers/admira-tts/src/index.js:67"}, "properties": {"repobilityId": "26bbc8d3b8a0eb54", "scanner": "scanner-primary", "fingerprint": "9918d8aac66412b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bbe1cf0e1c76e7b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in workers/admira-tts/src/index.js:1"}, "properties": {"repobilityId": "801cb8afe75ba8a8", "scanner": "scanner-primary", "fingerprint": "bbe1cf0e1c76e7b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-050f92c1de355cab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-tts/src/index.js:55"}, "properties": {"repobilityId": "449e6d1fb331db84", "scanner": "scanner-primary", "fingerprint": "050f92c1de355cab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9029c9eba007579a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-grok-proxy/src/index.js:100"}, "properties": {"repobilityId": "a256ae4b25da349a", "scanner": "scanner-primary", "fingerprint": "9029c9eba007579a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af1b182e6609f64e", "level": "note", "message": {"text": "Legacy-named symbol `eleven_multilingual_v2` in workers/omnipublicity-api/src/index.js:281"}, "properties": {"repobilityId": "9494fbf9645acee9", "scanner": "scanner-primary", "fingerprint": "af1b182e6609f64e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0647c95f30807bd1", "level": "none", "message": {"text": "Commented-code block (7 lines) in workers/omnipublicity-api/src/index.js:1"}, "properties": {"repobilityId": "52fe672ed0f081ec", "scanner": "scanner-primary", "fingerprint": "0647c95f30807bd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79a142aeab38b19c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/admira-telegram-bridge/src/index.js:269"}, "properties": {"repobilityId": "b8ef988dcc197584", "scanner": "scanner-primary", "fingerprint": "79a142aeab38b19c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1f262f0da5634ee", "level": "none", "message": {"text": "Commented-code block (9 lines) in studio/app.js:3"}, "properties": {"repobilityId": "9936582b972d0f2d", "scanner": "scanner-primary", "fingerprint": "d1f262f0da5634ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3275569117b28097", "level": "none", "message": {"text": "Commented-code block (5 lines) in suno-local/server.js:2"}, "properties": {"repobilityId": "5d59ff907101bbcf", "scanner": "scanner-primary", "fingerprint": "3275569117b28097", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e122c70f36fca484", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 suno-local/server.js:227"}, "properties": {"repobilityId": "3b68c11da8bccc9f", "scanner": "scanner-primary", "fingerprint": "e122c70f36fca484", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b2682224fbdcf245", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-26/index.js:84"}, "properties": {"repobilityId": "5440e80b6c4ecd23", "scanner": "scanner-primary", "fingerprint": "b2682224fbdcf245", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a3843c70c841d2a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-29/xtanco-loyalty-client.js:24"}, "properties": {"repobilityId": "99d98b7a9f93ebb0", "scanner": "scanner-primary", "fingerprint": "3a3843c70c841d2a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd9e130ea4f49b38", "level": "none", "message": {"text": "Commented-code block (8 lines) in 2026-04-29/admira-loyalty/src/index.js:1"}, "properties": {"repobilityId": "5eb2f7c66650ec61", "scanner": "scanner-primary", "fingerprint": "bd9e130ea4f49b38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a55372eba8025dbd", "level": "none", "message": {"text": "Commented-code block (9 lines) in 2026-04-30/app.js:3"}, "properties": {"repobilityId": "d08bc95caa49e3f3", "scanner": "scanner-primary", "fingerprint": "a55372eba8025dbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8e72b0de1185004", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 2026-04-30/xtanco-loyalty-client.js:24"}, "properties": {"repobilityId": "ea458ab653ffa2f0", "scanner": "scanner-primary", "fingerprint": "a8e72b0de1185004", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4592537304dfcd08", "level": "none", "message": {"text": "Commented-code block (9 lines) in 2026-04-30/studio/app.js:3"}, "properties": {"repobilityId": "b3284d7dba3772d2", "scanner": "scanner-primary", "fingerprint": "4592537304dfcd08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e2904dcadddbe47", "level": "none", "message": {"text": "Commented-code block (8 lines) in 2026-04-30/admira-loyalty/src/index.js:1"}, "properties": {"repobilityId": "a955317074713dcd", "scanner": "scanner-primary", "fingerprint": "1e2904dcadddbe47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dc96f9f4071206b", "level": "none", "message": {"text": "Commented-code block (7 lines) in 2026-04-30/admira-marketplace/src/index.js:3"}, "properties": {"repobilityId": "e442ae61c418ba88", "scanner": "scanner-primary", "fingerprint": "3dc96f9f4071206b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1248a22722e5b3f", "level": "none", "message": {"text": "Commented-code block (6 lines) in 2026-04-30/admira-tunes/src/index.js:3"}, "properties": {"repobilityId": "44bbd05f1c24179b", "scanner": "scanner-primary", "fingerprint": "a1248a22722e5b3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0494c661c5da5719", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 drawthings-local/server.py:134"}, "properties": {"repobilityId": "8ede04de9147618d", "scanner": "scanner-primary", "fingerprint": "0494c661c5da5719", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0b4dd01aecf4b2e", "level": "none", "message": {"text": "Commented-code block (8 lines) in 2026-03-25/elgato-proxy.js:1"}, "properties": {"repobilityId": "e2b29f229347512b", "scanner": "scanner-primary", "fingerprint": "d0b4dd01aecf4b2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a358548beb1653e", "level": "none", "message": {"text": "Commented-code block (7 lines) in assets/js/session-log.js:3"}, "properties": {"repobilityId": "aca1029752b0dad3", "scanner": "scanner-primary", "fingerprint": "4a358548beb1653e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e259d1049810953", "level": "none", "message": {"text": "Commented-code block (7 lines) in assets/js/streamdeck.js:6"}, "properties": {"repobilityId": "2f656138612dd8ce", "scanner": "scanner-primary", "fingerprint": "5e259d1049810953", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2643ec96ac0a6ca0", "level": "none", "message": {"text": "Commented-code block (6 lines) in assets/js/heatmap.js:5"}, "properties": {"repobilityId": "bb1a0f0850fc68c0", "scanner": "scanner-primary", "fingerprint": "2643ec96ac0a6ca0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cae7f70b3c41a51", "level": "none", "message": {"text": "Commented-code block (8 lines) in assets/js/session-ping.js:3"}, "properties": {"repobilityId": "02cefa55cf2cdaa2", "scanner": "scanner-primary", "fingerprint": "0cae7f70b3c41a51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-159c9df18ef32167", "level": "none", "message": {"text": "Commented-code block (5 lines) in assets/js/ambient.js:1"}, "properties": {"repobilityId": "0628181424b0f9ff", "scanner": "scanner-primary", "fingerprint": "159c9df18ef32167", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c8b918e1fee9558", "level": "note", "message": {"text": "20 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "bd1f6d44917e8105", "scanner": "scanner-primary", "fingerprint": "7c8b918e1fee9558", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}