{"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-8ef0a01bc7a254f1", "name": "Stray `console.log` in TS/JS \u2014 src/ui/coopui.js:286", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/ui/coopui.js:286"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a97dbec6f0c845b", "name": "Insecure pattern 'cors_wildcard' in relay/dev-relay.mjs:70", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in relay/dev-relay.mjs:70"}, "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-d2cfb91a6ebee4db", "name": "Insecure pattern 'cors_wildcard' in worker/relay-worker.js:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in worker/relay-worker.js:18"}, "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-505c55d14c154cf6", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/shop.js:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/shop.js:88"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e0894039a4648eb", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/hud.js:173", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/hud.js:173"}, "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-530728e615d2a339", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/globe.js:334", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/globe.js:334"}, "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-e072f58d32cfe4e2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/main.js:487", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.js:487"}, "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-babd1c00c91bbdce", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/touch.js:142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/touch.js:142"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-83510be3fa9e8a44", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/leagueui.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/leagueui.js:37"}, "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-9dc3475ce9f40cba", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/coopui.js:186", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/coopui.js:186"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d553ef91ed2c55f", "name": "Very large file: src/world.js (3264 lines)", "shortDescription": {"text": "Very large file: src/world.js (3264 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-cd0e1d7ea0a3791d", "name": "Very large file: src/missionpool.js (1675 lines)", "shortDescription": {"text": "Very large file: src/missionpool.js (1675 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-630f0dbe5ab6e174", "name": "Very large file: src/characters.js (2179 lines)", "shortDescription": {"text": "Very large file: src/characters.js (2179 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-c2b3a239e30d4b62", "name": "Very large file: src/main.js (1846 lines)", "shortDescription": {"text": "Very large file: src/main.js (1846 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-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 5 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-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b5b25d38dbe7b29", "name": "Commented-code block (7 lines) in relay/dev-relay.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in relay/dev-relay.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-686fb1b627f50f8a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/_live13.mjs:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/_live13.mjs:15"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-554619719217ba04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/coop6.mjs:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/coop6.mjs:19"}, "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-339e98b1c028ba13", "name": "`fetch()` without try/.catch or AbortSignal \u2014 test/cloudsave.mjs:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/cloudsave.mjs:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-526a0033ef171864", "name": "Commented-code block (5 lines) in worker/relay-worker.js:236", "shortDescription": {"text": "Commented-code block (5 lines) in worker/relay-worker.js:236"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-155537f674dba34f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/relay-worker.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/relay-worker.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-028f758806de294c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/globe.js:183", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/globe.js:183"}, "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-2407ef87068eb854", "name": "Commented-code block (6 lines) in src/characters.js:763", "shortDescription": {"text": "Commented-code block (6 lines) in src/characters.js:763"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8cdceb25d38818e", "name": "Legacy-named symbol `_sbOld` in src/effects.js:58", "shortDescription": {"text": "Legacy-named symbol `_sbOld` in src/effects.js:58"}, "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-6e37cfadee7fd14b", "name": "Commented-code block (5 lines) in src/net/host.js:348", "shortDescription": {"text": "Commented-code block (5 lines) in src/net/host.js:348"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34d3c42d39c9e1fd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/net/lobby.js:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/net/lobby.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-7e550e3d92adf77d", "name": "Commented-code block (5 lines) in src/net/cloudsave.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/net/cloudsave.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}}]}}, "automationDetails": {"id": "repobility/19849"}, "properties": {"repository": "slonce70/zombie-world-rescue", "repoUrl": "https://github.com/slonce70/zombie-world-rescue", "branch": "main"}, "results": [{"ruleId": "scanner-8ef0a01bc7a254f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/ui/coopui.js:286"}, "properties": {"repobilityId": "fab386638aede037", "scanner": "scanner-primary", "fingerprint": "8ef0a01bc7a254f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6a97dbec6f0c845b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in relay/dev-relay.mjs:70"}, "properties": {"repobilityId": "eaeb27114b0ff328", "scanner": "scanner-primary", "fingerprint": "6a97dbec6f0c845b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "relay/dev-relay.mjs"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-d2cfb91a6ebee4db", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in worker/relay-worker.js:18"}, "properties": {"repobilityId": "8d060993ff1281d4", "scanner": "scanner-primary", "fingerprint": "d2cfb91a6ebee4db", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/relay-worker.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-505c55d14c154cf6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/shop.js:88"}, "properties": {"repobilityId": "6eb3bccac679d715", "scanner": "scanner-primary", "fingerprint": "505c55d14c154cf6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/shop.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-6e0894039a4648eb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/hud.js:173"}, "properties": {"repobilityId": "8560723a6eb9c6c9", "scanner": "scanner-primary", "fingerprint": "6e0894039a4648eb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/hud.js"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-530728e615d2a339", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/globe.js:334"}, "properties": {"repobilityId": "a9a6bb3365dd23ac", "scanner": "scanner-primary", "fingerprint": "530728e615d2a339", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/globe.js"}, "region": {"startLine": 334}}}]}, {"ruleId": "scanner-e072f58d32cfe4e2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.js:487"}, "properties": {"repobilityId": "915d880daefc6ce4", "scanner": "scanner-primary", "fingerprint": "e072f58d32cfe4e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/main.js"}, "region": {"startLine": 487}}}]}, {"ruleId": "scanner-babd1c00c91bbdce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/touch.js:142"}, "properties": {"repobilityId": "4f8c2a6df349fd09", "scanner": "scanner-primary", "fingerprint": "babd1c00c91bbdce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/touch.js"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-83510be3fa9e8a44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/leagueui.js:37"}, "properties": {"repobilityId": "86c278012c220c00", "scanner": "scanner-primary", "fingerprint": "83510be3fa9e8a44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/leagueui.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-9dc3475ce9f40cba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/ui/coopui.js:186"}, "properties": {"repobilityId": "dbab25758c86c1cf", "scanner": "scanner-primary", "fingerprint": "9dc3475ce9f40cba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ui/coopui.js"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-1d553ef91ed2c55f", "level": "note", "message": {"text": "Very large file: src/world.js (3264 lines)"}, "properties": {"repobilityId": "1f73c8869bd15e01", "scanner": "scanner-primary", "fingerprint": "1d553ef91ed2c55f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cd0e1d7ea0a3791d", "level": "note", "message": {"text": "Very large file: src/missionpool.js (1675 lines)"}, "properties": {"repobilityId": "db65b05b3a774d8c", "scanner": "scanner-primary", "fingerprint": "cd0e1d7ea0a3791d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-630f0dbe5ab6e174", "level": "note", "message": {"text": "Very large file: src/characters.js (2179 lines)"}, "properties": {"repobilityId": "f204550d27d81b38", "scanner": "scanner-primary", "fingerprint": "630f0dbe5ab6e174", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c2b3a239e30d4b62", "level": "note", "message": {"text": "Very large file: src/main.js (1846 lines)"}, "properties": {"repobilityId": "2a21ddcaf055ba28", "scanner": "scanner-primary", "fingerprint": "c2b3a239e30d4b62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "cbd28ac55e71268b", "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": "b886e070e7184a88", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "072cceaac3f16c05", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "01ea0bfde76ef2af", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-1b5b25d38dbe7b29", "level": "none", "message": {"text": "Commented-code block (7 lines) in relay/dev-relay.mjs:1"}, "properties": {"repobilityId": "fb9995059cb40053", "scanner": "scanner-primary", "fingerprint": "1b5b25d38dbe7b29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-686fb1b627f50f8a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/_live13.mjs:15"}, "properties": {"repobilityId": "4d69baa6d3a69bcd", "scanner": "scanner-primary", "fingerprint": "686fb1b627f50f8a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-554619719217ba04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/coop6.mjs:19"}, "properties": {"repobilityId": "ef6f196e4c969b41", "scanner": "scanner-primary", "fingerprint": "554619719217ba04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-339e98b1c028ba13", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 test/cloudsave.mjs:32"}, "properties": {"repobilityId": "3aa286258dc73426", "scanner": "scanner-primary", "fingerprint": "339e98b1c028ba13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-526a0033ef171864", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/relay-worker.js:236"}, "properties": {"repobilityId": "d800ee821a9cde01", "scanner": "scanner-primary", "fingerprint": "526a0033ef171864", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-155537f674dba34f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/relay-worker.js:24"}, "properties": {"repobilityId": "da5b2c63f9925405", "scanner": "scanner-primary", "fingerprint": "155537f674dba34f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-028f758806de294c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/globe.js:183"}, "properties": {"repobilityId": "01cc55b4c418360f", "scanner": "scanner-primary", "fingerprint": "028f758806de294c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2407ef87068eb854", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/characters.js:763"}, "properties": {"repobilityId": "d39492f34b848a7b", "scanner": "scanner-primary", "fingerprint": "2407ef87068eb854", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8cdceb25d38818e", "level": "note", "message": {"text": "Legacy-named symbol `_sbOld` in src/effects.js:58"}, "properties": {"repobilityId": "c0885863d77f955b", "scanner": "scanner-primary", "fingerprint": "b8cdceb25d38818e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e37cfadee7fd14b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/net/host.js:348"}, "properties": {"repobilityId": "f3eb0d46205fe0d2", "scanner": "scanner-primary", "fingerprint": "6e37cfadee7fd14b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34d3c42d39c9e1fd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/net/lobby.js:48"}, "properties": {"repobilityId": "6b79c252935a6900", "scanner": "scanner-primary", "fingerprint": "34d3c42d39c9e1fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e550e3d92adf77d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/net/cloudsave.js:1"}, "properties": {"repobilityId": "3577fc47a166e62e", "scanner": "scanner-primary", "fingerprint": "7e550e3d92adf77d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}