{"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-135178b54f992abb", "name": "Stray `console.log` in TS/JS \u2014 preload-log-popout.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 preload-log-popout.js:14"}, "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-f42e37c252c7b5cd", "name": "TODO/FIXME marker in shipping code \u2014 main.js:18186", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 main.js:18186"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85d5a7f62f5a23ec", "name": "Stray `console.log` in TS/JS \u2014 main.js:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 main.js:135"}, "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-b9bfe6ef2525974d", "name": "Stray `console.log` in TS/JS \u2014 renderer/map-popout.js:570", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 renderer/map-popout.js:570"}, "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-349bfac204cdc0ab", "name": "Stray `console.log` in TS/JS \u2014 renderer/remote.js:911", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 renderer/remote.js:911"}, "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-555a3182f0e3d518", "name": "Stray `console.log` in TS/JS \u2014 renderer/pair-popout.js:157", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 renderer/pair-popout.js:157"}, "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-54a834e6e19c5379", "name": "Stray `console.log` in TS/JS \u2014 renderer/jtcat-popout.js:451", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 renderer/jtcat-popout.js:451"}, "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-0d643ef7cad04a67", "name": "Stray `console.log` in TS/JS \u2014 test/revoke-kick.test.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/revoke-kick.test.js:19"}, "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-692a6fbdfaf106e8", "name": "Stray `console.log` in TS/JS \u2014 test/pskreporter-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/pskreporter-test.js:14"}, "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-d5259f706e7638e9", "name": "Stray `console.log` in TS/JS \u2014 test/remote-desktop-e2e-test.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-desktop-e2e-test.js:21"}, "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-5ec6edce4af780df", "name": "Stray `console.log` in TS/JS \u2014 test/sstv-quality-test.js:253", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/sstv-quality-test.js:253"}, "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-5ab26c5648454d11", "name": "Stray `console.log` in TS/JS \u2014 test/remote-audio-answerer-test.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-audio-answerer-test.js:13"}, "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-409188e8e320bf50", "name": "Stray `console.log` in TS/JS \u2014 test/cloud-tunnel-degraded-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/cloud-tunnel-degraded-test.js:14"}, "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-bd9735d5247cfd09", "name": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol.test.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol.test.js:15"}, "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-842640b1dda8ac2b", "name": "Stray `console.log` in TS/JS \u2014 test/cq-target-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/cq-target-test.js:14"}, "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-98c397f9dafae8b4", "name": "Stray `console.log` in TS/JS \u2014 test/popout-theme-boot-test.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/popout-theme-boot-test.js:34"}, "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-501e63de6adc8381", "name": "Stray `console.log` in TS/JS \u2014 test/jtcat-parser-test.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/jtcat-parser-test.js:20"}, "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-e6809453f8277fba", "name": "Stray `console.log` in TS/JS \u2014 test/tunnel-webui-gate-test.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/tunnel-webui-gate-test.js:17"}, "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-59c6c3803ab5f124", "name": "Stray `console.log` in TS/JS \u2014 test/cloudflared-arch-test.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/cloudflared-arch-test.js:20"}, "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-c3f8c17d0c8bb4ce", "name": "Stray `console.log` in TS/JS \u2014 test/guest-pass-test.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/guest-pass-test.js:20"}, "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-66ea18d5aeee4613", "name": "Stray `console.log` in TS/JS \u2014 test/linux-sandbox-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/linux-sandbox-test.js:14"}, "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-92cf1f20ce6a4308", "name": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol-test.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol-test.js:18"}, "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-b0f9083beabfe798", "name": "Stray `console.log` in TS/JS \u2014 test/rig-test.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/rig-test.js:21"}, "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-b3f6a7791f9f85ed", "name": "Stray `console.log` in TS/JS \u2014 test/remote-client-integration.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-client-integration.js:16"}, "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-a85cdfdbccf617f6", "name": "Stray `console.log` in TS/JS \u2014 test/rotorez-test.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/rotorez-test.js:15"}, "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-6d92fc2451ccb53c", "name": "Stray `console.log` in TS/JS \u2014 test/jtcat-test.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/jtcat-test.js:29"}, "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-2ed89548bc0d1df4", "name": "Stray `console.log` in TS/JS \u2014 test/ts-wss-url-test.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/ts-wss-url-test.js:12"}, "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-9fba4bd2ec439baf", "name": "Stray `console.log` in TS/JS \u2014 test/remote-client-dial-test.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-client-dial-test.js:20"}, "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-0de0981af845b87e", "name": "Stray `console.log` in TS/JS \u2014 test/local-ips-test.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/local-ips-test.js:15"}, "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-3f3cc0e6e7fa9c0a", "name": "Stray `console.log` in TS/JS \u2014 test/ft8-engine-rebaseline-test.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/ft8-engine-rebaseline-test.js:16"}, "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-bcc5de9fcb1eebd8", "name": "Stray `console.log` in TS/JS \u2014 test/pair-request-tunnel-gate-test.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/pair-request-tunnel-gate-test.js:21"}, "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-b692cd6fad52d497", "name": "Stray `console.log` in TS/JS \u2014 test/sstv-test.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/sstv-test.js:39"}, "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-ab6b604db48282d7", "name": "Stray `console.log` in TS/JS \u2014 test/cloud-export-test.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/cloud-export-test.js:19"}, "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-7f8dd27ce8b2c462", "name": "Stray `console.log` in TS/JS \u2014 test/pair-request-retry-test.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/pair-request-retry-test.js:18"}, "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-f8455ae87faffbbf", "name": "Stray `console.log` in TS/JS \u2014 test/websdr-test.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/websdr-test.js:21"}, "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-be3566cb117b1709", "name": "Stray `console.log` in TS/JS \u2014 test/park-state-test.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/park-state-test.js:14"}, "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-3beaa6dec120e40a", "name": "Stray `console.log` in TS/JS \u2014 test/ragchew-test.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/ragchew-test.js:24"}, "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-97e380f6f0effaf0", "name": "Stray `console.log` in TS/JS \u2014 test/remote-ptt-test.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-ptt-test.js:12"}, "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-b5ea756205b3d0e3", "name": "Stray `console.log` in TS/JS \u2014 test/voice-macros-test.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test/voice-macros-test.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a08e0555d55fe3bf", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-sdrs.js:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-sdrs.js:81"}, "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-a6f3c624eb3c6eb5", "name": "Stray `console.log` in TS/JS \u2014 scripts/rsba1-probe.js:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rsba1-probe.js:99"}, "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-ce49bf9f9d3d0087", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-pd-decode.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-pd-decode.js:48"}, "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-ca76e6edd63d4c21", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-cloudflared.js:114", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-cloudflared.js:114"}, "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-036418f6779179ef", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-alsa.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-alsa.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bdff4618ef5c8493", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-robot36-anomaly.js:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-robot36-anomaly.js:110"}, "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-41cb6fa8b9b21857", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-linestart.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-linestart.js:60"}, "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-fc4b1d82a4482135", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv-quality.js:235", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv-quality.js:235"}, "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-b353db2df446d7d0", "name": "Stray `console.log` in TS/JS \u2014 scripts/echocat-cli.js:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/echocat-cli.js:141"}, "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-aa47409e41714d83", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv.js:186", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv.js:186"}, "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-fc4a55b4f6c172c9", "name": "Stray `console.log` in TS/JS \u2014 scripts/launcher-install.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/launcher-install.js:31"}, "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-71b4df8ba6389c4e", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-adif-stream.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-adif-stream.js:8"}, "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-4d14388d22455757", "name": "Stray `console.log` in TS/JS \u2014 scripts/linux-after-pack.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/linux-after-pack.js:33"}, "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-84ce15d36977fd71", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-rade.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-rade.js:27"}, "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-503bd762e8e95f4c", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-capture.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-capture.js:25"}, "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-4d6530b302d62493", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-website-links.js:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-website-links.js:122"}, "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-b20280894b0aa2fa", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-noise.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-noise.js:78"}, "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-823af3d330583d0f", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-icon.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-icon.js:42"}, "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-f39e08fcf1c9262f", "name": "Stray `console.log` in TS/JS \u2014 scripts/launcher.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/launcher.js:60"}, "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-0271b2cad4febeb4", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-natives.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-natives.js:29"}, "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-84df0705879fa81f", "name": "Stray `console.log` in TS/JS \u2014 scripts/release.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release.js:82"}, "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-3af1a769de131374", "name": "Stray `console.log` in TS/JS \u2014 scripts/probe-flex-audio.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-flex-audio.js:40"}, "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-75b2acdb3a482c12", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv-worker.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv-worker.js:70"}, "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-afa89ac58361fc2b", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv-engine.js:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv-engine.js:119"}, "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-efdc7db25c48d748", "name": "TODO/FIXME marker in shipping code \u2014 lib/remote-server.js:1406", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/remote-server.js:1406"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-837c4d406c63f8b7", "name": "Stray `console.log` in TS/JS \u2014 lib/remote-server.js:288", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/remote-server.js:288"}, "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-65ce0313023e491a", "name": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine-test.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine-test.js:15"}, "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-d66373652235898a", "name": "Stray `console.log` in TS/JS \u2014 lib/sstv-engine.js:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-engine.js:108"}, "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-b732a6727e4b99e7", "name": "Stray `console.log` in TS/JS \u2014 lib/smartsdr.js:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/smartsdr.js:204"}, "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-3acb6f34f6e1e34d", "name": "Stray `console.log` in TS/JS \u2014 lib/pota-sync.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/pota-sync.js:40"}, "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-0598233cdb314559", "name": "Stray `console.log` in TS/JS \u2014 lib/kiwisdr.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/kiwisdr.js:50"}, "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-58820245025d4b84", "name": "Stray `console.log` in TS/JS \u2014 lib/sstv-manager.js:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-manager.js:54"}, "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-a3ac20fa0821ecd1", "name": "Stray `console.log` in TS/JS \u2014 lib/sstv-worker.js:1874", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-worker.js:1874"}, "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-498773c988c24c9f", "name": "Stray `console.log` in TS/JS \u2014 lib/ft8-worker.js:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-worker.js:87"}, "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-b9212fcc8ae25301", "name": "TODO/FIXME marker in shipping code \u2014 lib/cat.js:1873", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/cat.js:1873"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89066aa5dee54eb0", "name": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine.js:316", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine.js:316"}, "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-eda28fa0591da4b8", "name": "Stray `console.log` in TS/JS \u2014 lib/winkeyer.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/winkeyer.js:68"}, "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-d99e2d01364a6efa", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_complex.js:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_complex.js:63"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9aa636874903f49d", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/gen_codebook.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/gen_codebook.js:103"}, "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-2b43369be4015e88", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_malloc_casts.js:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_malloc_casts.js:62"}, "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-7b4af0a349d53a9a", "name": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_vla.js:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_vla.js:85"}, "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-6f5f5a12b05cdefe", "name": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_decode.js:272", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_decode.js:272"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2083a3dd5aea7a6", "name": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_encode.js:272", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_encode.js:272"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fea6aae4aa719d85", "name": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_decode.js:272", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_decode.js:272"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b4ecfaa98a55ec2", "name": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_encode.js:272", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_encode.js:272"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12cdd6973328dad0", "name": "Insecure pattern 'node_child_process' in main.js:201", "shortDescription": {"text": "Insecure pattern 'node_child_process' in main.js:201"}, "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-7df40fd079175989", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/spots-popout.js:203", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/spots-popout.js:203"}, "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-c1848c22e5e67f54", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/prop-popout.js:351", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/prop-popout.js:351"}, "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-3e4db0c09a0d9a39", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/conditions-popout.js:116", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/conditions-popout.js:116"}, "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-3493b88a6f5fc399", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/remote.js:2012", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/remote.js:2012"}, "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-34eff7d434b1a2f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/pair-popout.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/pair-popout.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-70229014314be678", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/sstv-popout.js:312", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/sstv-popout.js:312"}, "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-1e169061d50ffaca", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/vfo-popout.html:709", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/vfo-popout.html:709"}, "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-a258619a30260f07", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/jtcat-popout.js:403", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/jtcat-popout.js:403"}, "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-934e1594a1eec88d", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/log-popout.js:218", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/log-popout.js:218"}, "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-7beb81a771bc5cf0", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/qso-popout.js:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/qso-popout.js:280"}, "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-100ccfbd4cb98505", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/cluster-popout.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/cluster-popout.js:101"}, "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-5642f921f762a8d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in renderer/bandspread-popout.js:867", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/bandspread-popout.js:867"}, "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-1c4939a76e75182a", "name": "Insecure pattern 'node_child_process' in scripts/fetch-cloudflared.js:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-cloudflared.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24177d07dfac61cc", "name": "Insecure pattern 'node_child_process' in scripts/launcher-install.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/launcher-install.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2dc90dfc12e8385c", "name": "Insecure pattern 'node_child_process' in scripts/build-rade.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-rade.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0d32ee6b5f03e68", "name": "Insecure pattern 'node_child_process' in scripts/launcher.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/launcher.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9c620bb3636a265", "name": "Insecure pattern 'node_child_process' in scripts/build-natives.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build-natives.js:8"}, "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-23f1df0acb860e43", "name": "Insecure pattern 'node_child_process' in scripts/release.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/release.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3be240028915ab4f", "name": "Insecure pattern 'direct_innerhtml_assignment' in worker/telemetry-worker.js:120", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in worker/telemetry-worker.js:120"}, "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-49b9c94996fd2b24", "name": "Insecure pattern 'cors_wildcard' in worker/telemetry-worker.js:67", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in worker/telemetry-worker.js:67"}, "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-f48fbdb0e0c995dd", "name": "Insecure pattern 'cors_wildcard' in worker/donors/index.js:63", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in worker/donors/index.js:63"}, "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-c9e6c2bc3e26d99f", "name": "Insecure pattern 'cors_wildcard' in worker/dxpeditions/index.js:315", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in worker/dxpeditions/index.js:315"}, "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-40745c959d503025", "name": "Insecure pattern 'node_child_process' in lib/remote-server.js:160", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/remote-server.js:160"}, "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-0ed4c57a11e3e5e2", "name": "Insecure pattern 'cors_wildcard' in lib/remote-server.js:1554", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in lib/remote-server.js:1554"}, "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-6ec8e4d9181aad31", "name": "Insecure pattern 'node_child_process' in lib/cloudflared.js:80", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cloudflared.js:80"}, "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-1dcc9d7f06a3beda", "name": "Insecure pattern 'node_child_process' in lib/cloud-tunnel.js:26", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/cloud-tunnel.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d463de2c3dc559c9", "name": "Insecure pattern 'exec_used' in lib/ntp.js:148", "shortDescription": {"text": "Insecure pattern 'exec_used' in lib/ntp.js:148"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a3c59897eb248e89", "name": "Insecure pattern 'node_child_process' in lib/ntp.js:146", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/ntp.js:146"}, "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-ecbacdf2d71816e3", "name": "Possible secret in lib/tiles.js", "shortDescription": {"text": "Possible secret in lib/tiles.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-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/download-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35acf86618f459dd", "name": "Very large file: main.js (21315 lines)", "shortDescription": {"text": "Very large file: main.js (21315 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-f143060184785e6a", "name": "Very large file: renderer/remote.js (10982 lines)", "shortDescription": {"text": "Very large file: renderer/remote.js (10982 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-27debb19ad254825", "name": "Very large file: renderer/sstv-popout.js (2244 lines)", "shortDescription": {"text": "Very large file: renderer/sstv-popout.js (2244 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-96ec402c9a961d7e", "name": "Very large file: renderer/jtcat-popout.js (2097 lines)", "shortDescription": {"text": "Very large file: renderer/jtcat-popout.js (2097 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-4afe1b8f65fd1f68", "name": "Very large file: lib/remote-server.js (4097 lines)", "shortDescription": {"text": "Very large file: lib/remote-server.js (4097 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-a7b581af3a26b0e0", "name": "Very large file: lib/sstv-worker.js (1897 lines)", "shortDescription": {"text": "Very large file: lib/sstv-worker.js (1897 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-0290bcceaf7273bf", "name": "Very large file: lib/cat.js (2197 lines)", "shortDescription": {"text": "Very large file: lib/cat.js (2197 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-218ae5775377a2b9", "name": "Very large file: lib/ft8-engine.js (1175 lines)", "shortDescription": {"text": "Very large file: lib/ft8-engine.js (1175 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-ff63d084f57f687d", "name": "Very large file: lib/ft4/wasm/ft4_decode.js (2198 lines)", "shortDescription": {"text": "Very large file: lib/ft4/wasm/ft4_decode.js (2198 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-dfcd937dbf84b3c6", "name": "Very large file: lib/ft4/wasm/ft4_encode.js (2192 lines)", "shortDescription": {"text": "Very large file: lib/ft4/wasm/ft4_encode.js (2192 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-20d71cd90fb0917c", "name": "Very large file: lib/ft2/wasm/ft2_decode.js (2198 lines)", "shortDescription": {"text": "Very large file: lib/ft2/wasm/ft2_decode.js (2198 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-cfc8e3e5e76312e4", "name": "Very large file: lib/ft2/wasm/ft2_encode.js (2192 lines)", "shortDescription": {"text": "Very large file: lib/ft2/wasm/ft2_encode.js (2192 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-720a280bf799af06", "name": "36 TODO/FIXME markers", "shortDescription": {"text": "36 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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 343 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 36 placeholder/mock markers across 15 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-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-132dbda8c03aedb2", "name": "Commented-code block (5 lines) in preload.js:46", "shortDescription": {"text": "Commented-code block (5 lines) in preload.js:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ad075d56b03376c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 preload.js:263", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 preload.js:263"}, "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-d3189f10dc371806", "name": "Commented-code block (7 lines) in preload-remote-audio.js:29", "shortDescription": {"text": "Commented-code block (7 lines) in preload-remote-audio.js:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-993640c1c1299849", "name": "Commented-code block (8 lines) in main.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in main.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-d9023eb08b70d853", "name": "Commented-code block (11 lines) in renderer/cq-target.js:113", "shortDescription": {"text": "Commented-code block (11 lines) in renderer/cq-target.js:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2168b1b24aa9e7e9", "name": "Commented-code block (6 lines) in renderer/popout-theme-bootstrap.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in renderer/popout-theme-bootstrap.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-31dd9ca9bb67afa7", "name": "Commented-code block (5 lines) in renderer/dax-tx-worklet.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/dax-tx-worklet.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-7c68d9c898a566a4", "name": "Commented-code block (7 lines) in renderer/remote-audio-answerer.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in renderer/remote-audio-answerer.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-ad985f69868a497b", "name": "Commented-code block (5 lines) in renderer/conditions-popout.js:74", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/conditions-popout.js:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f6a4da9642d511f", "name": "Commented-code block (5 lines) in renderer/remote.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/remote.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4b7b5700c3feef8", "name": "Commented-code block (5 lines) in renderer/jtcat-parser.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/jtcat-parser.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe72173a03e18a5c", "name": "Commented-code block (6 lines) in renderer/pair-popout.js:17", "shortDescription": {"text": "Commented-code block (6 lines) in renderer/pair-popout.js:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff35fb093f11accc", "name": "Commented-code block (6 lines) in renderer/sstv-popout.js:59", "shortDescription": {"text": "Commented-code block (6 lines) in renderer/sstv-popout.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-996c65273a334bf7", "name": "Commented-code block (6 lines) in renderer/waterfall.js:9", "shortDescription": {"text": "Commented-code block (6 lines) in renderer/waterfall.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c86ff1b47dcc8d43", "name": "Commented-code block (5 lines) in renderer/pota-sync-ui.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/pota-sync-ui.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-3612fffdf562cce8", "name": "Legacy-named symbol `clearOld` in renderer/jtcat-popout.js:335", "shortDescription": {"text": "Legacy-named symbol `clearOld` in renderer/jtcat-popout.js:335"}, "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-e6fc6543e6d620a2", "name": "Commented-code block (5 lines) in renderer/jtcat-popout.js:300", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/jtcat-popout.js:300"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4254c7c1ce7f44b9", "name": "Commented-code block (7 lines) in renderer/log-popout.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in renderer/log-popout.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-190f93938ffe2c55", "name": "Commented-code block (7 lines) in renderer/popout-theme-boot.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in renderer/popout-theme-boot.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-639f9528cff8f0a1", "name": "Commented-code block (5 lines) in renderer/cloud-ui.js:374", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/cloud-ui.js:374"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10b0837aa8234d58", "name": "Commented-code block (5 lines) in renderer/qso-popout.js:890", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/qso-popout.js:890"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2454c24dd3253117", "name": "Commented-code block (5 lines) in renderer/tx-eq-chain.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/tx-eq-chain.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-ec85181a360677f7", "name": "Commented-code block (7 lines) in renderer/jtcat-vita49-source-worklet.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in renderer/jtcat-vita49-source-worklet.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-0f818fa073b9b16e", "name": "Commented-code block (5 lines) in renderer/remote-ptt.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in renderer/remote-ptt.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-0ba4a66705b9b7f1", "name": "Commented-code block (9 lines) in renderer/bandspread-popout.js:263", "shortDescription": {"text": "Commented-code block (9 lines) in renderer/bandspread-popout.js:263"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb519cd7bb875048", "name": "Commented-code block (7 lines) in test/revoke-kick.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in test/revoke-kick.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29bd4c645dda21b3", "name": "Commented-code block (6 lines) in test/pskreporter-test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in test/pskreporter-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e42fe0df15de868", "name": "Commented-code block (6 lines) in test/remote-desktop-e2e-test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in test/remote-desktop-e2e-test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab8a592cb8a974ca", "name": "Commented-code block (6 lines) in test/sstv-quality-test.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in test/sstv-quality-test.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71c7ce439f13e8b1", "name": "Commented-code block (8 lines) in test/remote-audio-answerer-test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in test/remote-audio-answerer-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33da64b4768c4eb5", "name": "Commented-code block (6 lines) in test/cloud-tunnel-degraded-test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in test/cloud-tunnel-degraded-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fafa391b2f632db", "name": "Commented-code block (9 lines) in test/popout-theme-boot-test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in test/popout-theme-boot-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3925d1f0b120ac5a", "name": "Commented-code block (5 lines) in test/jtcat-parser-test.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in test/jtcat-parser-test.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-a75d3cdc65d28632", "name": "Commented-code block (7 lines) in test/tunnel-webui-gate-test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in test/tunnel-webui-gate-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a816a94d51ef71d5", "name": "Commented-code block (8 lines) in test/cloudflared-arch-test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in test/cloudflared-arch-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec634d1114343bee", "name": "Commented-code block (5 lines) in test/linux-sandbox-test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in test/linux-sandbox-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6488b0cd01a8d81", "name": "Commented-code block (6 lines) in test/echocat-protocol-test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in test/echocat-protocol-test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2aa89bc2d1422b03", "name": "Commented-code block (5 lines) in test/rig-test.js:1030", "shortDescription": {"text": "Commented-code block (5 lines) in test/rig-test.js:1030"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b94974a7de5ed3b", "name": "Commented-code block (6 lines) in test/rotorez-test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in test/rotorez-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8a31d58134b14c1", "name": "Commented-code block (6 lines) in test/jtcat-test.js:212", "shortDescription": {"text": "Commented-code block (6 lines) in test/jtcat-test.js:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b3a03e2228bf39a", "name": "Commented-code block (11 lines) in test/remote-client-dial-test.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in test/remote-client-dial-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b95fb7b4274d334", "name": "Commented-code block (7 lines) in test/local-ips-test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in test/local-ips-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d5423d23c5082a9", "name": "Commented-code block (5 lines) in test/pair-request-tunnel-gate-test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in test/pair-request-tunnel-gate-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-868535cdcb8e4403", "name": "Commented-code block (13 lines) in test/sstv-test.js:12", "shortDescription": {"text": "Commented-code block (13 lines) in test/sstv-test.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f79c5e60906eb30a", "name": "Commented-code block (7 lines) in test/cloud-export-test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in test/cloud-export-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0523fb424edffd12", "name": "Commented-code block (9 lines) in test/pair-request-retry-test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in test/pair-request-retry-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf05f743519a7955", "name": "Commented-code block (5 lines) in test/park-state-test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in test/park-state-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39fb1b41b63af394", "name": "Commented-code block (5 lines) in test/ragchew-test.js:31", "shortDescription": {"text": "Commented-code block (5 lines) in test/ragchew-test.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3908364bcb1f814e", "name": "Commented-code block (5 lines) in test/remote-ptt-test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in test/remote-ptt-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-940d39b95fa8c774", "name": "Commented-code block (6 lines) in test/voice-macros-test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in test/voice-macros-test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dd4fd446575cbd1", "name": "Commented-code block (5 lines) in scripts/probe-sdrs.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/probe-sdrs.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-da4540645b5b9c31", "name": "Commented-code block (6 lines) in scripts/rsba1-probe.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/rsba1-probe.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90e7608c6b1997dd", "name": "Commented-code block (5 lines) in scripts/fetch-cloudflared.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/fetch-cloudflared.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-a337a16ed9db89dc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-cloudflared.js:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-cloudflared.js:73"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9120a16fbab873e", "name": "Commented-code block (10 lines) in scripts/test-sstv-quality.js:2", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/test-sstv-quality.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-18b7a745bb020d1c", "name": "Commented-code block (5 lines) in scripts/echocat-cli.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/echocat-cli.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b495ad65c7d671f6", "name": "Commented-code block (6 lines) in scripts/test-sstv.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-sstv.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-9b679cac9c736135", "name": "Commented-code block (6 lines) in scripts/launcher-install.js:73", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/launcher-install.js:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4398a67c229561b2", "name": "Commented-code block (8 lines) in scripts/linux-after-pack.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/linux-after-pack.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-49a4d169ef2ab155", "name": "Commented-code block (9 lines) in scripts/launcher.js:41", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/launcher.js:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec594ffe9ffcf814", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/launcher.js:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/launcher.js:42"}, "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-6d8bb7203b94ce7c", "name": "Commented-code block (6 lines) in scripts/build-natives.js:15", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/build-natives.js:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f48fecdeac395570", "name": "Commented-code block (6 lines) in scripts/probe-flex-audio.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/probe-flex-audio.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-457911086472382c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/donors/index.js:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/donors/index.js:20"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9525aeb8d4b0c00c", "name": "Commented-code block (5 lines) in worker/dxpeditions/index.js:159", "shortDescription": {"text": "Commented-code block (5 lines) in worker/dxpeditions/index.js:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2953194f1eea46c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 worker/dxpeditions/index.js:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/dxpeditions/index.js:52"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80f5a5be2abb3cc2", "name": "Commented-code block (6 lines) in lib/guest-pass.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/guest-pass.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-10e5e25de21f6ac6", "name": "Commented-code block (7 lines) in lib/remote-server.js:26", "shortDescription": {"text": "Commented-code block (7 lines) in lib/remote-server.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-494a4db8008c00f9", "name": "Commented-code block (5 lines) in lib/cloud-ipc.js:211", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cloud-ipc.js:211"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49028f18d3315e77", "name": "Commented-code block (6 lines) in lib/transport.js:159", "shortDescription": {"text": "Commented-code block (6 lines) in lib/transport.js:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c3ff8ece0e553c", "name": "Commented-code block (5 lines) in lib/rig-utils.js:47", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rig-utils.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41579e88aade050f", "name": "Commented-code block (12 lines) in lib/websdr.js:10", "shortDescription": {"text": "Commented-code block (12 lines) in lib/websdr.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b5631fc46aaa38c", "name": "Commented-code block (5 lines) in lib/sdr-directory.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/sdr-directory.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-29440d2a1ef1bb4c", "name": "Commented-code block (5 lines) in lib/cty.js:16", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cty.js: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-8d15add130fd5051", "name": "Commented-code block (7 lines) in lib/sstv-modes.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in lib/sstv-modes.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-062972f2d11a7e13", "name": "Commented-code block (5 lines) in lib/smartsdr-audio.js:29", "shortDescription": {"text": "Commented-code block (5 lines) in lib/smartsdr-audio.js:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-354561ec8ae827ae", "name": "Commented-code block (8 lines) in lib/pskreporter.js:12", "shortDescription": {"text": "Commented-code block (8 lines) in lib/pskreporter.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7224f714c0ba62c", "name": "Commented-code block (8 lines) in lib/contests-db.js:8", "shortDescription": {"text": "Commented-code block (8 lines) in lib/contests-db.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e87ded02074138a", "name": "Commented-code block (7 lines) in lib/smartsdr.js:464", "shortDescription": {"text": "Commented-code block (7 lines) in lib/smartsdr.js:464"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e72afe2022ce02b", "name": "Commented-code block (9 lines) in lib/pota-sync.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in lib/pota-sync.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5761672122af7ca6", "name": "Commented-code block (6 lines) in lib/remote-client.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/remote-client.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-4817f9da94c61871", "name": "Commented-code block (6 lines) in lib/kiwisdr.js:21", "shortDescription": {"text": "Commented-code block (6 lines) in lib/kiwisdr.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb1ba1799629df43", "name": "Commented-code block (5 lines) in lib/cloudflared.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cloudflared.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-e6ccbf217d749096", "name": "Commented-code block (10 lines) in lib/jtcat-state-machine.js:105", "shortDescription": {"text": "Commented-code block (10 lines) in lib/jtcat-state-machine.js:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3de06a3d40f4d04e", "name": "Commented-code block (5 lines) in lib/cloud-tunnel.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cloud-tunnel.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-9a5d11b111938b81", "name": "Commented-code block (5 lines) in lib/rig-controller.js:60", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rig-controller.js:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f13a27fdb4c91479", "name": "Commented-code block (13 lines) in lib/sstv-worker.js:3", "shortDescription": {"text": "Commented-code block (13 lines) in lib/sstv-worker.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e1c49756c2d0a96", "name": "Commented-code block (5 lines) in lib/spectrum-fft.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in lib/spectrum-fft.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a8e40aac508ecbf", "name": "Commented-code block (5 lines) in lib/rotorez.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rotorez.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-3d7ddcc112a73110", "name": "Commented-code block (8 lines) in lib/cat.js:14", "shortDescription": {"text": "Commented-code block (8 lines) in lib/cat.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e91dade75881ff27", "name": "Commented-code block (9 lines) in lib/echocat-protocol.js:112", "shortDescription": {"text": "Commented-code block (9 lines) in lib/echocat-protocol.js:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-946b266231b32044", "name": "Commented-code block (7 lines) in lib/keyer.js:78", "shortDescription": {"text": "Commented-code block (7 lines) in lib/keyer.js:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60f358990d1e31d4", "name": "Commented-code block (5 lines) in lib/sstv-post.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/sstv-post.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-383119510a6636b6", "name": "Commented-code block (11 lines) in lib/ft8-engine.js:89", "shortDescription": {"text": "Commented-code block (11 lines) in lib/ft8-engine.js:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc29c0a4d39213b9", "name": "Commented-code block (17 lines) in lib/tiles.js:5", "shortDescription": {"text": "Commented-code block (17 lines) in lib/tiles.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-fc3572ab2aa4d08d", "name": "Commented-code block (14 lines) in lib/rig-models.js:32", "shortDescription": {"text": "Commented-code block (14 lines) in lib/rig-models.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef578f07b5658d51", "name": "Commented-code block (5 lines) in lib/qrz.js:214", "shortDescription": {"text": "Commented-code block (5 lines) in lib/qrz.js:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-424c3e9324cc70fc", "name": "Commented-code block (5 lines) in lib/wwbota.js:70", "shortDescription": {"text": "Commented-code block (5 lines) in lib/wwbota.js:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6a2ab9c3a8e6709", "name": "Commented-code block (6 lines) in lib/winkeyer.js:77", "shortDescription": {"text": "Commented-code block (6 lines) in lib/winkeyer.js:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f594ccc955f7b507", "name": "Commented-code block (6 lines) in lib/privileges.js:77", "shortDescription": {"text": "Commented-code block (6 lines) in lib/privileges.js:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0aec32fbfcdc0c6", "name": "Commented-code block (5 lines) in lib/sstv-dsp.js:149", "shortDescription": {"text": "Commented-code block (5 lines) in lib/sstv-dsp.js:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d168d54d3cd2933d", "name": "Commented-code block (6 lines) in lib/rsba1-transport.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/rsba1-transport.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-9b5eaf8d78ee9171", "name": "Commented-code block (6 lines) in lib/pass-enforcement.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in lib/pass-enforcement.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-e53077dff62cebc4", "name": "Commented-code block (9 lines) in lib/linux-sandbox.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in lib/linux-sandbox.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b808451c11fff11", "name": "Commented-code block (7 lines) in lib/cloud-sync.js:129", "shortDescription": {"text": "Commented-code block (7 lines) in lib/cloud-sync.js:129"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08ddad64fabde53b", "name": "Commented-code block (6 lines) in lib/ft8_native/ft8_lib/utils/decode.py:178", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ft8_native/ft8_lib/utils/decode.py:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff3633d757cb03a0", "name": "Network/subprocess call without timeout or try/except \u2014 lib/ft8_native/ft8_lib/utils/run_tests.py:35", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 lib/ft8_native/ft8_lib/utils/run_tests.py:35"}, "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-43f4b71156424cf7", "name": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_decode.js:758", "shortDescription": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_decode.js:758"}, "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-862a0b3d62c6ba45", "name": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_decode.js:53", "shortDescription": {"text": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_decode.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20e1c98886ad205c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_decode.js:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_decode.js:204"}, "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-861682ef32027c34", "name": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_encode.js:758", "shortDescription": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_encode.js:758"}, "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-f9956ac3bcb62709", "name": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_encode.js:53", "shortDescription": {"text": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_encode.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a975426e9e829aeb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_encode.js:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_encode.js:204"}, "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-2bedc6a86f082ce3", "name": "Commented-code block (10 lines) in lib/codecs/civ-codec.js:59", "shortDescription": {"text": "Commented-code block (10 lines) in lib/codecs/civ-codec.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-311da62e50567f1f", "name": "Commented-code block (6 lines) in lib/codecs/kenwood-codec.js:241", "shortDescription": {"text": "Commented-code block (6 lines) in lib/codecs/kenwood-codec.js:241"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f804fc4c210b3b0", "name": "Commented-code block (5 lines) in lib/codecs/rigctld-codec.js:24", "shortDescription": {"text": "Commented-code block (5 lines) in lib/codecs/rigctld-codec.js:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb5e207d02f78529", "name": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_decode.js:758", "shortDescription": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_decode.js:758"}, "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-015909b5dceffa14", "name": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_decode.js:53", "shortDescription": {"text": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_decode.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16de13529fc742f4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_decode.js:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_decode.js:204"}, "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-e2dd75d925cfcb74", "name": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_encode.js:758", "shortDescription": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_encode.js:758"}, "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-1c5b9693317ab060", "name": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_encode.js:53", "shortDescription": {"text": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_encode.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d18bbb9e6549482b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_encode.js:204", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_encode.js:204"}, "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-be1dd47d9dfb703b", "name": "Commented-code block (6 lines) in lib/ft2/ft8_lib/utils/decode.py:178", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ft2/ft8_lib/utils/decode.py:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bae8ecd97cc43ee", "name": "Network/subprocess call without timeout or try/except \u2014 lib/ft2/ft8_lib/utils/run_tests.py:35", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 lib/ft2/ft8_lib/utils/run_tests.py:35"}, "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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlib/ft8_native/ft8_lib/utils/decode.py:lin_to_db, lib/ft2/ft8_lib/utils/decode.py:lin_to_db\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22516"}, "properties": {"repository": "Waffleslop/POTACAT", "repoUrl": "https://github.com/Waffleslop/POTACAT", "branch": "main"}, "results": [{"ruleId": "scanner-135178b54f992abb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 preload-log-popout.js:14"}, "properties": {"repobilityId": "0869145aed15b046", "scanner": "scanner-primary", "fingerprint": "135178b54f992abb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f42e37c252c7b5cd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 main.js:18186"}, "properties": {"repobilityId": "749c75a9f1ecc96a", "scanner": "scanner-primary", "fingerprint": "f42e37c252c7b5cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-85d5a7f62f5a23ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 main.js:135"}, "properties": {"repobilityId": "4a2f610e5e3afce9", "scanner": "scanner-primary", "fingerprint": "85d5a7f62f5a23ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9bfe6ef2525974d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 renderer/map-popout.js:570"}, "properties": {"repobilityId": "d5cc8d174942cb03", "scanner": "scanner-primary", "fingerprint": "b9bfe6ef2525974d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-349bfac204cdc0ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 renderer/remote.js:911"}, "properties": {"repobilityId": "fab9f4f4566d5d59", "scanner": "scanner-primary", "fingerprint": "349bfac204cdc0ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-555a3182f0e3d518", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 renderer/pair-popout.js:157"}, "properties": {"repobilityId": "a5a051a7c3d608d4", "scanner": "scanner-primary", "fingerprint": "555a3182f0e3d518", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54a834e6e19c5379", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 renderer/jtcat-popout.js:451"}, "properties": {"repobilityId": "bac3211080ad96a5", "scanner": "scanner-primary", "fingerprint": "54a834e6e19c5379", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0d643ef7cad04a67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/revoke-kick.test.js:19"}, "properties": {"repobilityId": "b37f070136edcbb4", "scanner": "scanner-primary", "fingerprint": "0d643ef7cad04a67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-692a6fbdfaf106e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/pskreporter-test.js:14"}, "properties": {"repobilityId": "920b0ef605df62f4", "scanner": "scanner-primary", "fingerprint": "692a6fbdfaf106e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5259f706e7638e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-desktop-e2e-test.js:21"}, "properties": {"repobilityId": "38de712d1e148146", "scanner": "scanner-primary", "fingerprint": "d5259f706e7638e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ec6edce4af780df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/sstv-quality-test.js:253"}, "properties": {"repobilityId": "bb3c7a50850c1035", "scanner": "scanner-primary", "fingerprint": "5ec6edce4af780df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ab26c5648454d11", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-audio-answerer-test.js:13"}, "properties": {"repobilityId": "159873baf140fc88", "scanner": "scanner-primary", "fingerprint": "5ab26c5648454d11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-409188e8e320bf50", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/cloud-tunnel-degraded-test.js:14"}, "properties": {"repobilityId": "2b2143ba06b5a016", "scanner": "scanner-primary", "fingerprint": "409188e8e320bf50", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd9735d5247cfd09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol.test.js:15"}, "properties": {"repobilityId": "e4b1da7ec8f0121e", "scanner": "scanner-primary", "fingerprint": "bd9735d5247cfd09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-842640b1dda8ac2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/cq-target-test.js:14"}, "properties": {"repobilityId": "3cc3f74b88c2c7b4", "scanner": "scanner-primary", "fingerprint": "842640b1dda8ac2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-98c397f9dafae8b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/popout-theme-boot-test.js:34"}, "properties": {"repobilityId": "91f816869518ea69", "scanner": "scanner-primary", "fingerprint": "98c397f9dafae8b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-501e63de6adc8381", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/jtcat-parser-test.js:20"}, "properties": {"repobilityId": "937900f47b1b89b2", "scanner": "scanner-primary", "fingerprint": "501e63de6adc8381", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e6809453f8277fba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/tunnel-webui-gate-test.js:17"}, "properties": {"repobilityId": "b11d65c8e339c6d0", "scanner": "scanner-primary", "fingerprint": "e6809453f8277fba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59c6c3803ab5f124", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/cloudflared-arch-test.js:20"}, "properties": {"repobilityId": "6235f4dded572426", "scanner": "scanner-primary", "fingerprint": "59c6c3803ab5f124", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3f8c17d0c8bb4ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/guest-pass-test.js:20"}, "properties": {"repobilityId": "12ebf4925cd6f058", "scanner": "scanner-primary", "fingerprint": "c3f8c17d0c8bb4ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-66ea18d5aeee4613", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/linux-sandbox-test.js:14"}, "properties": {"repobilityId": "aeb78923f53afe35", "scanner": "scanner-primary", "fingerprint": "66ea18d5aeee4613", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92cf1f20ce6a4308", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/echocat-protocol-test.js:18"}, "properties": {"repobilityId": "0a90ea748d3e3090", "scanner": "scanner-primary", "fingerprint": "92cf1f20ce6a4308", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b0f9083beabfe798", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/rig-test.js:21"}, "properties": {"repobilityId": "ee75a816d130285f", "scanner": "scanner-primary", "fingerprint": "b0f9083beabfe798", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b3f6a7791f9f85ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-client-integration.js:16"}, "properties": {"repobilityId": "cb30b0bf5a8ca45d", "scanner": "scanner-primary", "fingerprint": "b3f6a7791f9f85ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a85cdfdbccf617f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/rotorez-test.js:15"}, "properties": {"repobilityId": "a03265bde51cd657", "scanner": "scanner-primary", "fingerprint": "a85cdfdbccf617f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d92fc2451ccb53c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/jtcat-test.js:29"}, "properties": {"repobilityId": "bde3d2ea1aabf887", "scanner": "scanner-primary", "fingerprint": "6d92fc2451ccb53c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ed89548bc0d1df4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/ts-wss-url-test.js:12"}, "properties": {"repobilityId": "ea267b6bd76b533b", "scanner": "scanner-primary", "fingerprint": "2ed89548bc0d1df4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fba4bd2ec439baf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-client-dial-test.js:20"}, "properties": {"repobilityId": "ef00aca6f59ef5be", "scanner": "scanner-primary", "fingerprint": "9fba4bd2ec439baf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0de0981af845b87e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/local-ips-test.js:15"}, "properties": {"repobilityId": "5eac90274c829831", "scanner": "scanner-primary", "fingerprint": "0de0981af845b87e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f3cc0e6e7fa9c0a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/ft8-engine-rebaseline-test.js:16"}, "properties": {"repobilityId": "777ade4aff39bc60", "scanner": "scanner-primary", "fingerprint": "3f3cc0e6e7fa9c0a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcc5de9fcb1eebd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/pair-request-tunnel-gate-test.js:21"}, "properties": {"repobilityId": "0aa40c1c9ba931c0", "scanner": "scanner-primary", "fingerprint": "bcc5de9fcb1eebd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b692cd6fad52d497", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/sstv-test.js:39"}, "properties": {"repobilityId": "854c130d68b43739", "scanner": "scanner-primary", "fingerprint": "b692cd6fad52d497", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab6b604db48282d7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/cloud-export-test.js:19"}, "properties": {"repobilityId": "8eed7f37efbf13c4", "scanner": "scanner-primary", "fingerprint": "ab6b604db48282d7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f8dd27ce8b2c462", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/pair-request-retry-test.js:18"}, "properties": {"repobilityId": "00e1e8f9d4727ba8", "scanner": "scanner-primary", "fingerprint": "7f8dd27ce8b2c462", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8455ae87faffbbf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/websdr-test.js:21"}, "properties": {"repobilityId": "3d9c13199ac47a4a", "scanner": "scanner-primary", "fingerprint": "f8455ae87faffbbf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be3566cb117b1709", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/park-state-test.js:14"}, "properties": {"repobilityId": "bab5b0f5172b4a61", "scanner": "scanner-primary", "fingerprint": "be3566cb117b1709", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3beaa6dec120e40a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/ragchew-test.js:24"}, "properties": {"repobilityId": "2fc6c1918b36a088", "scanner": "scanner-primary", "fingerprint": "3beaa6dec120e40a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97e380f6f0effaf0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/remote-ptt-test.js:12"}, "properties": {"repobilityId": "05ea401068849fab", "scanner": "scanner-primary", "fingerprint": "97e380f6f0effaf0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b5ea756205b3d0e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test/voice-macros-test.js:35"}, "properties": {"repobilityId": "0eacaba0f19fe218", "scanner": "scanner-primary", "fingerprint": "b5ea756205b3d0e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a08e0555d55fe3bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-sdrs.js:81"}, "properties": {"repobilityId": "20d87b64cf027052", "scanner": "scanner-primary", "fingerprint": "a08e0555d55fe3bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a6f3c624eb3c6eb5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/rsba1-probe.js:99"}, "properties": {"repobilityId": "010145a2dd51c0ca", "scanner": "scanner-primary", "fingerprint": "a6f3c624eb3c6eb5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce49bf9f9d3d0087", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-pd-decode.js:48"}, "properties": {"repobilityId": "336c057f3cdbd948", "scanner": "scanner-primary", "fingerprint": "ce49bf9f9d3d0087", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca76e6edd63d4c21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-cloudflared.js:114"}, "properties": {"repobilityId": "16f614a5463779c2", "scanner": "scanner-primary", "fingerprint": "ca76e6edd63d4c21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-036418f6779179ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-alsa.js:35"}, "properties": {"repobilityId": "99e1b8cc05aaea8c", "scanner": "scanner-primary", "fingerprint": "036418f6779179ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bdff4618ef5c8493", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-robot36-anomaly.js:110"}, "properties": {"repobilityId": "52a0adba89c0dfb5", "scanner": "scanner-primary", "fingerprint": "bdff4618ef5c8493", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41cb6fa8b9b21857", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-linestart.js:60"}, "properties": {"repobilityId": "9bbb5762ad6f1765", "scanner": "scanner-primary", "fingerprint": "41cb6fa8b9b21857", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc4b1d82a4482135", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv-quality.js:235"}, "properties": {"repobilityId": "e80a118db71391bb", "scanner": "scanner-primary", "fingerprint": "fc4b1d82a4482135", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b353db2df446d7d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/echocat-cli.js:141"}, "properties": {"repobilityId": "5999ba477ed4cf21", "scanner": "scanner-primary", "fingerprint": "b353db2df446d7d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa47409e41714d83", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-sstv.js:186"}, "properties": {"repobilityId": "9101df7ce4fe52ff", "scanner": "scanner-primary", "fingerprint": "aa47409e41714d83", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc4a55b4f6c172c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/launcher-install.js:31"}, "properties": {"repobilityId": "e0c6ca07a19d71a0", "scanner": "scanner-primary", "fingerprint": "fc4a55b4f6c172c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-71b4df8ba6389c4e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-adif-stream.js:8"}, "properties": {"repobilityId": "b536d4ef74aed642", "scanner": "scanner-primary", "fingerprint": "71b4df8ba6389c4e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d14388d22455757", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/linux-after-pack.js:33"}, "properties": {"repobilityId": "8dd0edd041c7904c", "scanner": "scanner-primary", "fingerprint": "4d14388d22455757", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84ce15d36977fd71", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-rade.js:27"}, "properties": {"repobilityId": "753fdc2a8afc61c9", "scanner": "scanner-primary", "fingerprint": "84ce15d36977fd71", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-503bd762e8e95f4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-capture.js:25"}, "properties": {"repobilityId": "0db3e95e13bc43c5", "scanner": "scanner-primary", "fingerprint": "503bd762e8e95f4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d6530b302d62493", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-website-links.js:122"}, "properties": {"repobilityId": "3fbb62fc106d4c4f", "scanner": "scanner-primary", "fingerprint": "4d6530b302d62493", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b20280894b0aa2fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-noise.js:78"}, "properties": {"repobilityId": "d44166b5c8a29d99", "scanner": "scanner-primary", "fingerprint": "b20280894b0aa2fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-823af3d330583d0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-icon.js:42"}, "properties": {"repobilityId": "99c89bca9bfae11f", "scanner": "scanner-primary", "fingerprint": "823af3d330583d0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f39e08fcf1c9262f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/launcher.js:60"}, "properties": {"repobilityId": "70083d62b0afa025", "scanner": "scanner-primary", "fingerprint": "f39e08fcf1c9262f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0271b2cad4febeb4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-natives.js:29"}, "properties": {"repobilityId": "bd44d851e9b5d832", "scanner": "scanner-primary", "fingerprint": "0271b2cad4febeb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84df0705879fa81f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/release.js:82"}, "properties": {"repobilityId": "80d1676931ae5d13", "scanner": "scanner-primary", "fingerprint": "84df0705879fa81f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3af1a769de131374", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/probe-flex-audio.js:40"}, "properties": {"repobilityId": "fe053f342da580ee", "scanner": "scanner-primary", "fingerprint": "3af1a769de131374", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75b2acdb3a482c12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv-worker.js:70"}, "properties": {"repobilityId": "8c764362af7bb24b", "scanner": "scanner-primary", "fingerprint": "75b2acdb3a482c12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-afa89ac58361fc2b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv-engine.js:119"}, "properties": {"repobilityId": "69a1e628a76d85f8", "scanner": "scanner-primary", "fingerprint": "afa89ac58361fc2b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-efdc7db25c48d748", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/remote-server.js:1406"}, "properties": {"repobilityId": "54c83060df2fb36b", "scanner": "scanner-primary", "fingerprint": "efdc7db25c48d748", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-837c4d406c63f8b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/remote-server.js:288"}, "properties": {"repobilityId": "0b52016990df266c", "scanner": "scanner-primary", "fingerprint": "837c4d406c63f8b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65ce0313023e491a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine-test.js:15"}, "properties": {"repobilityId": "2d66e7343ade426a", "scanner": "scanner-primary", "fingerprint": "65ce0313023e491a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d66373652235898a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-engine.js:108"}, "properties": {"repobilityId": "eedc33e638a5f97f", "scanner": "scanner-primary", "fingerprint": "d66373652235898a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b732a6727e4b99e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/smartsdr.js:204"}, "properties": {"repobilityId": "70516af78654086f", "scanner": "scanner-primary", "fingerprint": "b732a6727e4b99e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3acb6f34f6e1e34d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/pota-sync.js:40"}, "properties": {"repobilityId": "55fd540b2265d2b8", "scanner": "scanner-primary", "fingerprint": "3acb6f34f6e1e34d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0598233cdb314559", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/kiwisdr.js:50"}, "properties": {"repobilityId": "8c3e01f036593b0f", "scanner": "scanner-primary", "fingerprint": "0598233cdb314559", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58820245025d4b84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-manager.js:54"}, "properties": {"repobilityId": "157a25acfed555af", "scanner": "scanner-primary", "fingerprint": "58820245025d4b84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a3ac20fa0821ecd1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/sstv-worker.js:1874"}, "properties": {"repobilityId": "f71272be612492d8", "scanner": "scanner-primary", "fingerprint": "a3ac20fa0821ecd1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-498773c988c24c9f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-worker.js:87"}, "properties": {"repobilityId": "422e5f0fa9c52099", "scanner": "scanner-primary", "fingerprint": "498773c988c24c9f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9212fcc8ae25301", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/cat.js:1873"}, "properties": {"repobilityId": "d41ec61cd0f495dd", "scanner": "scanner-primary", "fingerprint": "b9212fcc8ae25301", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-89066aa5dee54eb0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ft8-engine.js:316"}, "properties": {"repobilityId": "46cf52be8a7062c2", "scanner": "scanner-primary", "fingerprint": "89066aa5dee54eb0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eda28fa0591da4b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/winkeyer.js:68"}, "properties": {"repobilityId": "da880d6d7aea40d6", "scanner": "scanner-primary", "fingerprint": "eda28fa0591da4b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d99e2d01364a6efa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_complex.js:63"}, "properties": {"repobilityId": "4412c9854825e84a", "scanner": "scanner-primary", "fingerprint": "d99e2d01364a6efa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9aa636874903f49d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/gen_codebook.js:103"}, "properties": {"repobilityId": "ca0cb4786fe23c00", "scanner": "scanner-primary", "fingerprint": "9aa636874903f49d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b43369be4015e88", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_malloc_casts.js:62"}, "properties": {"repobilityId": "3e448e0efbf64d3b", "scanner": "scanner-primary", "fingerprint": "2b43369be4015e88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b4af0a349d53a9a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/freedv_native/fix_vla.js:85"}, "properties": {"repobilityId": "e5b2ba4379d8397d", "scanner": "scanner-primary", "fingerprint": "7b4af0a349d53a9a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f5f5a12b05cdefe", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_decode.js:272"}, "properties": {"repobilityId": "9f6e371e1c4c7d20", "scanner": "scanner-primary", "fingerprint": "6f5f5a12b05cdefe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d2083a3dd5aea7a6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft4/wasm/ft4_encode.js:272"}, "properties": {"repobilityId": "7ae99117263a34c3", "scanner": "scanner-primary", "fingerprint": "d2083a3dd5aea7a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fea6aae4aa719d85", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_decode.js:272"}, "properties": {"repobilityId": "8302bb73e0158921", "scanner": "scanner-primary", "fingerprint": "fea6aae4aa719d85", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7b4ecfaa98a55ec2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/ft2/wasm/ft2_encode.js:272"}, "properties": {"repobilityId": "4d50014a542cc22e", "scanner": "scanner-primary", "fingerprint": "7b4ecfaa98a55ec2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-12cdd6973328dad0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in main.js:201"}, "properties": {"repobilityId": "f39f9770bd53a67e", "scanner": "scanner-primary", "fingerprint": "12cdd6973328dad0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main.js"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-7df40fd079175989", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/spots-popout.js:203"}, "properties": {"repobilityId": "e0a716ee57c8875d", "scanner": "scanner-primary", "fingerprint": "7df40fd079175989", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/spots-popout.js"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-c1848c22e5e67f54", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/prop-popout.js:351"}, "properties": {"repobilityId": "cee395b6c319980d", "scanner": "scanner-primary", "fingerprint": "c1848c22e5e67f54", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/prop-popout.js"}, "region": {"startLine": 351}}}]}, {"ruleId": "scanner-3e4db0c09a0d9a39", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/conditions-popout.js:116"}, "properties": {"repobilityId": "ed1378e6983ca283", "scanner": "scanner-primary", "fingerprint": "3e4db0c09a0d9a39", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/conditions-popout.js"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-3493b88a6f5fc399", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/remote.js:2012"}, "properties": {"repobilityId": "6ab4698ac935067b", "scanner": "scanner-primary", "fingerprint": "3493b88a6f5fc399", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/remote.js"}, "region": {"startLine": 2012}}}]}, {"ruleId": "scanner-34eff7d434b1a2f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/pair-popout.js:37"}, "properties": {"repobilityId": "7ac38dd73dfae0cc", "scanner": "scanner-primary", "fingerprint": "34eff7d434b1a2f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/pair-popout.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-70229014314be678", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/sstv-popout.js:312"}, "properties": {"repobilityId": "05f7802e7205adb7", "scanner": "scanner-primary", "fingerprint": "70229014314be678", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/sstv-popout.js"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-1e169061d50ffaca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/vfo-popout.html:709"}, "properties": {"repobilityId": "57d434b9f6dcc541", "scanner": "scanner-primary", "fingerprint": "1e169061d50ffaca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/vfo-popout.html"}, "region": {"startLine": 709}}}]}, {"ruleId": "scanner-a258619a30260f07", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/jtcat-popout.js:403"}, "properties": {"repobilityId": "3742a77faff95a18", "scanner": "scanner-primary", "fingerprint": "a258619a30260f07", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/jtcat-popout.js"}, "region": {"startLine": 403}}}]}, {"ruleId": "scanner-934e1594a1eec88d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/log-popout.js:218"}, "properties": {"repobilityId": "8579bf4e28c87cc2", "scanner": "scanner-primary", "fingerprint": "934e1594a1eec88d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/log-popout.js"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-7beb81a771bc5cf0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/qso-popout.js:280"}, "properties": {"repobilityId": "364d0ef6a1d6934e", "scanner": "scanner-primary", "fingerprint": "7beb81a771bc5cf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/qso-popout.js"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-100ccfbd4cb98505", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/cluster-popout.js:101"}, "properties": {"repobilityId": "bb2a0489a4879e44", "scanner": "scanner-primary", "fingerprint": "100ccfbd4cb98505", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/cluster-popout.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-5642f921f762a8d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in renderer/bandspread-popout.js:867"}, "properties": {"repobilityId": "2b19714b19fa4617", "scanner": "scanner-primary", "fingerprint": "5642f921f762a8d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "renderer/bandspread-popout.js"}, "region": {"startLine": 867}}}]}, {"ruleId": "scanner-1c4939a76e75182a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-cloudflared.js:21"}, "properties": {"repobilityId": "89e153819dfc7886", "scanner": "scanner-primary", "fingerprint": "1c4939a76e75182a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-cloudflared.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-24177d07dfac61cc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/launcher-install.js:10"}, "properties": {"repobilityId": "fe5f4db2e0fd8838", "scanner": "scanner-primary", "fingerprint": "24177d07dfac61cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/launcher-install.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-2dc90dfc12e8385c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-rade.js:10"}, "properties": {"repobilityId": "cac5703d31a9cbee", "scanner": "scanner-primary", "fingerprint": "2dc90dfc12e8385c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-rade.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-d0d32ee6b5f03e68", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/launcher.js:16"}, "properties": {"repobilityId": "8c185ea9f5651b3b", "scanner": "scanner-primary", "fingerprint": "d0d32ee6b5f03e68", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/launcher.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-c9c620bb3636a265", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build-natives.js:8"}, "properties": {"repobilityId": "3dc44c9bc8c5cdc2", "scanner": "scanner-primary", "fingerprint": "c9c620bb3636a265", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build-natives.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-23f1df0acb860e43", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/release.js:18"}, "properties": {"repobilityId": "3863d72c4fc6b52a", "scanner": "scanner-primary", "fingerprint": "23f1df0acb860e43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-3be240028915ab4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in worker/telemetry-worker.js:120"}, "properties": {"repobilityId": "ee7851a25e6904a6", "scanner": "scanner-primary", "fingerprint": "3be240028915ab4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/telemetry-worker.js"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-49b9c94996fd2b24", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in worker/telemetry-worker.js:67"}, "properties": {"repobilityId": "1ad3ed466f1e7e66", "scanner": "scanner-primary", "fingerprint": "49b9c94996fd2b24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/telemetry-worker.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-f48fbdb0e0c995dd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in worker/donors/index.js:63"}, "properties": {"repobilityId": "fdb14675f02d1843", "scanner": "scanner-primary", "fingerprint": "f48fbdb0e0c995dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/donors/index.js"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-c9e6c2bc3e26d99f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in worker/dxpeditions/index.js:315"}, "properties": {"repobilityId": "7f3309cfc979530e", "scanner": "scanner-primary", "fingerprint": "c9e6c2bc3e26d99f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "worker/dxpeditions/index.js"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-40745c959d503025", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/remote-server.js:160"}, "properties": {"repobilityId": "48a84b890048748e", "scanner": "scanner-primary", "fingerprint": "40745c959d503025", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/remote-server.js"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-0ed4c57a11e3e5e2", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in lib/remote-server.js:1554"}, "properties": {"repobilityId": "29912f7ef446cb05", "scanner": "scanner-primary", "fingerprint": "0ed4c57a11e3e5e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/remote-server.js"}, "region": {"startLine": 1554}}}]}, {"ruleId": "scanner-6ec8e4d9181aad31", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cloudflared.js:80"}, "properties": {"repobilityId": "32b5c3a627c3acc6", "scanner": "scanner-primary", "fingerprint": "6ec8e4d9181aad31", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cloudflared.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-1dcc9d7f06a3beda", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/cloud-tunnel.js:26"}, "properties": {"repobilityId": "23b851bd9ed85351", "scanner": "scanner-primary", "fingerprint": "1dcc9d7f06a3beda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/cloud-tunnel.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-d463de2c3dc559c9", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in lib/ntp.js:148"}, "properties": {"repobilityId": "e5ee3c2db14063fb", "scanner": "scanner-primary", "fingerprint": "d463de2c3dc559c9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/ntp.js"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-a3c59897eb248e89", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/ntp.js:146"}, "properties": {"repobilityId": "8c0e01ba5fac546f", "scanner": "scanner-primary", "fingerprint": "a3c59897eb248e89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/ntp.js"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-ecbacdf2d71816e3", "level": "error", "message": {"text": "Possible secret in lib/tiles.js"}, "properties": {"repobilityId": "319c597f1825f3bc", "scanner": "scanner-primary", "fingerprint": "ecbacdf2d71816e3", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/tiles.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 419}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2644034c718fb80d", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 477}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35acf86618f459dd", "level": "note", "message": {"text": "Very large file: main.js (21315 lines)"}, "properties": {"repobilityId": "35584af1b78f3853", "scanner": "scanner-primary", "fingerprint": "35acf86618f459dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f143060184785e6a", "level": "note", "message": {"text": "Very large file: renderer/remote.js (10982 lines)"}, "properties": {"repobilityId": "78240f70c917df35", "scanner": "scanner-primary", "fingerprint": "f143060184785e6a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27debb19ad254825", "level": "note", "message": {"text": "Very large file: renderer/sstv-popout.js (2244 lines)"}, "properties": {"repobilityId": "a02066e0853435d0", "scanner": "scanner-primary", "fingerprint": "27debb19ad254825", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-96ec402c9a961d7e", "level": "note", "message": {"text": "Very large file: renderer/jtcat-popout.js (2097 lines)"}, "properties": {"repobilityId": "faf83f9a6a62452c", "scanner": "scanner-primary", "fingerprint": "96ec402c9a961d7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4afe1b8f65fd1f68", "level": "note", "message": {"text": "Very large file: lib/remote-server.js (4097 lines)"}, "properties": {"repobilityId": "cdaa5cf391935567", "scanner": "scanner-primary", "fingerprint": "4afe1b8f65fd1f68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a7b581af3a26b0e0", "level": "note", "message": {"text": "Very large file: lib/sstv-worker.js (1897 lines)"}, "properties": {"repobilityId": "51a31cd4aa7b73ac", "scanner": "scanner-primary", "fingerprint": "a7b581af3a26b0e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0290bcceaf7273bf", "level": "note", "message": {"text": "Very large file: lib/cat.js (2197 lines)"}, "properties": {"repobilityId": "5b98c6ca739259b1", "scanner": "scanner-primary", "fingerprint": "0290bcceaf7273bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-218ae5775377a2b9", "level": "note", "message": {"text": "Very large file: lib/ft8-engine.js (1175 lines)"}, "properties": {"repobilityId": "e4da87937d678479", "scanner": "scanner-primary", "fingerprint": "218ae5775377a2b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff63d084f57f687d", "level": "note", "message": {"text": "Very large file: lib/ft4/wasm/ft4_decode.js (2198 lines)"}, "properties": {"repobilityId": "afec15cef827b463", "scanner": "scanner-primary", "fingerprint": "ff63d084f57f687d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfcd937dbf84b3c6", "level": "note", "message": {"text": "Very large file: lib/ft4/wasm/ft4_encode.js (2192 lines)"}, "properties": {"repobilityId": "f48088a382805909", "scanner": "scanner-primary", "fingerprint": "dfcd937dbf84b3c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-20d71cd90fb0917c", "level": "note", "message": {"text": "Very large file: lib/ft2/wasm/ft2_decode.js (2198 lines)"}, "properties": {"repobilityId": "0e09c1c9683a50c3", "scanner": "scanner-primary", "fingerprint": "20d71cd90fb0917c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cfc8e3e5e76312e4", "level": "note", "message": {"text": "Very large file: lib/ft2/wasm/ft2_encode.js (2192 lines)"}, "properties": {"repobilityId": "62d203912eb41fe2", "scanner": "scanner-primary", "fingerprint": "cfc8e3e5e76312e4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-720a280bf799af06", "level": "note", "message": {"text": "36 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "720a280bf799af06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "80147789cda889ec", "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": "891f1ca62ac33f55", "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": "70d5dba7b1aa4329", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "5cbb7d1197c674b0", "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": "e92a91dbcca948d4", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-132dbda8c03aedb2", "level": "none", "message": {"text": "Commented-code block (5 lines) in preload.js:46"}, "properties": {"repobilityId": "1ac1fc270331f3d6", "scanner": "scanner-primary", "fingerprint": "132dbda8c03aedb2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ad075d56b03376c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 preload.js:263"}, "properties": {"repobilityId": "964f51e68856b450", "scanner": "scanner-primary", "fingerprint": "3ad075d56b03376c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3189f10dc371806", "level": "none", "message": {"text": "Commented-code block (7 lines) in preload-remote-audio.js:29"}, "properties": {"repobilityId": "a940e306000d72cf", "scanner": "scanner-primary", "fingerprint": "d3189f10dc371806", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-993640c1c1299849", "level": "none", "message": {"text": "Commented-code block (8 lines) in main.js:1"}, "properties": {"repobilityId": "8597fb8feb002281", "scanner": "scanner-primary", "fingerprint": "993640c1c1299849", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9023eb08b70d853", "level": "none", "message": {"text": "Commented-code block (11 lines) in renderer/cq-target.js:113"}, "properties": {"repobilityId": "2a5b2dc886c07585", "scanner": "scanner-primary", "fingerprint": "d9023eb08b70d853", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2168b1b24aa9e7e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in renderer/popout-theme-bootstrap.js:1"}, "properties": {"repobilityId": "8556145bc14bbd7a", "scanner": "scanner-primary", "fingerprint": "2168b1b24aa9e7e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31dd9ca9bb67afa7", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/dax-tx-worklet.js:5"}, "properties": {"repobilityId": "ca5820b7924d9089", "scanner": "scanner-primary", "fingerprint": "31dd9ca9bb67afa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c68d9c898a566a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in renderer/remote-audio-answerer.js:6"}, "properties": {"repobilityId": "df9c3a9aad4937e6", "scanner": "scanner-primary", "fingerprint": "7c68d9c898a566a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad985f69868a497b", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/conditions-popout.js:74"}, "properties": {"repobilityId": "481ae05d2f09281e", "scanner": "scanner-primary", "fingerprint": "ad985f69868a497b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f6a4da9642d511f", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/remote.js:4"}, "properties": {"repobilityId": "7d2c91f6c1320235", "scanner": "scanner-primary", "fingerprint": "8f6a4da9642d511f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4b7b5700c3feef8", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/jtcat-parser.js:20"}, "properties": {"repobilityId": "c828a365dbeed773", "scanner": "scanner-primary", "fingerprint": "f4b7b5700c3feef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe72173a03e18a5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in renderer/pair-popout.js:17"}, "properties": {"repobilityId": "70786864d2a90f4c", "scanner": "scanner-primary", "fingerprint": "fe72173a03e18a5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff35fb093f11accc", "level": "none", "message": {"text": "Commented-code block (6 lines) in renderer/sstv-popout.js:59"}, "properties": {"repobilityId": "6e2b87b07bd7715f", "scanner": "scanner-primary", "fingerprint": "ff35fb093f11accc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-996c65273a334bf7", "level": "none", "message": {"text": "Commented-code block (6 lines) in renderer/waterfall.js:9"}, "properties": {"repobilityId": "f19011d426ef54a9", "scanner": "scanner-primary", "fingerprint": "996c65273a334bf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c86ff1b47dcc8d43", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/pota-sync-ui.js:3"}, "properties": {"repobilityId": "9b4b4846d16b4f2c", "scanner": "scanner-primary", "fingerprint": "c86ff1b47dcc8d43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3612fffdf562cce8", "level": "note", "message": {"text": "Legacy-named symbol `clearOld` in renderer/jtcat-popout.js:335"}, "properties": {"repobilityId": "30f7bc0052b88996", "scanner": "scanner-primary", "fingerprint": "3612fffdf562cce8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e6fc6543e6d620a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/jtcat-popout.js:300"}, "properties": {"repobilityId": "e3b123a1d4bb4a12", "scanner": "scanner-primary", "fingerprint": "e6fc6543e6d620a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4254c7c1ce7f44b9", "level": "none", "message": {"text": "Commented-code block (7 lines) in renderer/log-popout.js:19"}, "properties": {"repobilityId": "9d3d229638d1d50b", "scanner": "scanner-primary", "fingerprint": "4254c7c1ce7f44b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-190f93938ffe2c55", "level": "none", "message": {"text": "Commented-code block (7 lines) in renderer/popout-theme-boot.js:6"}, "properties": {"repobilityId": "b0c1b660a13ad07f", "scanner": "scanner-primary", "fingerprint": "190f93938ffe2c55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-639f9528cff8f0a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/cloud-ui.js:374"}, "properties": {"repobilityId": "a19c4125d765b2d9", "scanner": "scanner-primary", "fingerprint": "639f9528cff8f0a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10b0837aa8234d58", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/qso-popout.js:890"}, "properties": {"repobilityId": "81e4d9d2bcb85771", "scanner": "scanner-primary", "fingerprint": "10b0837aa8234d58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2454c24dd3253117", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/tx-eq-chain.js:6"}, "properties": {"repobilityId": "fe13472a9d70afc2", "scanner": "scanner-primary", "fingerprint": "2454c24dd3253117", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec85181a360677f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in renderer/jtcat-vita49-source-worklet.js:1"}, "properties": {"repobilityId": "cf0adc66686ab5e5", "scanner": "scanner-primary", "fingerprint": "ec85181a360677f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f818fa073b9b16e", "level": "none", "message": {"text": "Commented-code block (5 lines) in renderer/remote-ptt.js:1"}, "properties": {"repobilityId": "0e248d5c67b23988", "scanner": "scanner-primary", "fingerprint": "0f818fa073b9b16e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ba4a66705b9b7f1", "level": "none", "message": {"text": "Commented-code block (9 lines) in renderer/bandspread-popout.js:263"}, "properties": {"repobilityId": "574f017ce46f67ea", "scanner": "scanner-primary", "fingerprint": "0ba4a66705b9b7f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb519cd7bb875048", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/revoke-kick.test.js:1"}, "properties": {"repobilityId": "2409e1ff6550bd50", "scanner": "scanner-primary", "fingerprint": "fb519cd7bb875048", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29bd4c645dda21b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/pskreporter-test.js:1"}, "properties": {"repobilityId": "6f1ab53483e4ef52", "scanner": "scanner-primary", "fingerprint": "29bd4c645dda21b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e42fe0df15de868", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/remote-desktop-e2e-test.js:3"}, "properties": {"repobilityId": "bb4275ac5397a6cc", "scanner": "scanner-primary", "fingerprint": "7e42fe0df15de868", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab8a592cb8a974ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/sstv-quality-test.js:8"}, "properties": {"repobilityId": "1c4c4216baf115d5", "scanner": "scanner-primary", "fingerprint": "ab8a592cb8a974ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71c7ce439f13e8b1", "level": "none", "message": {"text": "Commented-code block (8 lines) in test/remote-audio-answerer-test.js:1"}, "properties": {"repobilityId": "fe0f655d32ad561c", "scanner": "scanner-primary", "fingerprint": "71c7ce439f13e8b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33da64b4768c4eb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/cloud-tunnel-degraded-test.js:1"}, "properties": {"repobilityId": "8d8d7b01f0adbe81", "scanner": "scanner-primary", "fingerprint": "33da64b4768c4eb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fafa391b2f632db", "level": "none", "message": {"text": "Commented-code block (9 lines) in test/popout-theme-boot-test.js:1"}, "properties": {"repobilityId": "d98d67d6a1feab4e", "scanner": "scanner-primary", "fingerprint": "0fafa391b2f632db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3925d1f0b120ac5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/jtcat-parser-test.js:5"}, "properties": {"repobilityId": "de8fb966337fcb44", "scanner": "scanner-primary", "fingerprint": "3925d1f0b120ac5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a75d3cdc65d28632", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/tunnel-webui-gate-test.js:1"}, "properties": {"repobilityId": "b701129156da8412", "scanner": "scanner-primary", "fingerprint": "a75d3cdc65d28632", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a816a94d51ef71d5", "level": "none", "message": {"text": "Commented-code block (8 lines) in test/cloudflared-arch-test.js:1"}, "properties": {"repobilityId": "37a9ae8ad1ebe350", "scanner": "scanner-primary", "fingerprint": "a816a94d51ef71d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec634d1114343bee", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/linux-sandbox-test.js:1"}, "properties": {"repobilityId": "c1deca129bb9337e", "scanner": "scanner-primary", "fingerprint": "ec634d1114343bee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6488b0cd01a8d81", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/echocat-protocol-test.js:3"}, "properties": {"repobilityId": "ac0e52a3f4d4b800", "scanner": "scanner-primary", "fingerprint": "a6488b0cd01a8d81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2aa89bc2d1422b03", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/rig-test.js:1030"}, "properties": {"repobilityId": "08558d9f275684d9", "scanner": "scanner-primary", "fingerprint": "2aa89bc2d1422b03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b94974a7de5ed3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/rotorez-test.js:1"}, "properties": {"repobilityId": "3345c1b7db9b20cb", "scanner": "scanner-primary", "fingerprint": "5b94974a7de5ed3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8a31d58134b14c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/jtcat-test.js:212"}, "properties": {"repobilityId": "626ab3c7c461d092", "scanner": "scanner-primary", "fingerprint": "b8a31d58134b14c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b3a03e2228bf39a", "level": "none", "message": {"text": "Commented-code block (11 lines) in test/remote-client-dial-test.js:1"}, "properties": {"repobilityId": "fc3fb84244bc5c77", "scanner": "scanner-primary", "fingerprint": "9b3a03e2228bf39a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b95fb7b4274d334", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/local-ips-test.js:1"}, "properties": {"repobilityId": "5c0bbab00f2de435", "scanner": "scanner-primary", "fingerprint": "2b95fb7b4274d334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d5423d23c5082a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/pair-request-tunnel-gate-test.js:1"}, "properties": {"repobilityId": "c4ddc21c17e448f9", "scanner": "scanner-primary", "fingerprint": "1d5423d23c5082a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-868535cdcb8e4403", "level": "none", "message": {"text": "Commented-code block (13 lines) in test/sstv-test.js:12"}, "properties": {"repobilityId": "65238ee1fbee8777", "scanner": "scanner-primary", "fingerprint": "868535cdcb8e4403", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f79c5e60906eb30a", "level": "none", "message": {"text": "Commented-code block (7 lines) in test/cloud-export-test.js:1"}, "properties": {"repobilityId": "7a2edac9dbda0fc4", "scanner": "scanner-primary", "fingerprint": "f79c5e60906eb30a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0523fb424edffd12", "level": "none", "message": {"text": "Commented-code block (9 lines) in test/pair-request-retry-test.js:1"}, "properties": {"repobilityId": "b051119579658ddf", "scanner": "scanner-primary", "fingerprint": "0523fb424edffd12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf05f743519a7955", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/park-state-test.js:1"}, "properties": {"repobilityId": "2cd3f971cf8ae35c", "scanner": "scanner-primary", "fingerprint": "cf05f743519a7955", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39fb1b41b63af394", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/ragchew-test.js:31"}, "properties": {"repobilityId": "2d19e7853239dd3d", "scanner": "scanner-primary", "fingerprint": "39fb1b41b63af394", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3908364bcb1f814e", "level": "none", "message": {"text": "Commented-code block (5 lines) in test/remote-ptt-test.js:1"}, "properties": {"repobilityId": "16764af8f3a06f4e", "scanner": "scanner-primary", "fingerprint": "3908364bcb1f814e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-940d39b95fa8c774", "level": "none", "message": {"text": "Commented-code block (6 lines) in test/voice-macros-test.js:3"}, "properties": {"repobilityId": "8f316debf4f810d0", "scanner": "scanner-primary", "fingerprint": "940d39b95fa8c774", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dd4fd446575cbd1", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/probe-sdrs.js:3"}, "properties": {"repobilityId": "d85c099cf3cd78e9", "scanner": "scanner-primary", "fingerprint": "4dd4fd446575cbd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da4540645b5b9c31", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/rsba1-probe.js:8"}, "properties": {"repobilityId": "f25bfdcabb2bcf96", "scanner": "scanner-primary", "fingerprint": "da4540645b5b9c31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90e7608c6b1997dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/fetch-cloudflared.js:6"}, "properties": {"repobilityId": "3dda29610928f646", "scanner": "scanner-primary", "fingerprint": "90e7608c6b1997dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a337a16ed9db89dc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-cloudflared.js:73"}, "properties": {"repobilityId": "5fd64a0081291dc8", "scanner": "scanner-primary", "fingerprint": "a337a16ed9db89dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f9120a16fbab873e", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/test-sstv-quality.js:2"}, "properties": {"repobilityId": "56ddb0b1cfdad2b5", "scanner": "scanner-primary", "fingerprint": "f9120a16fbab873e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18b7a745bb020d1c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/echocat-cli.js:8"}, "properties": {"repobilityId": "3f7a7c42ec2ca965", "scanner": "scanner-primary", "fingerprint": "18b7a745bb020d1c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b495ad65c7d671f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-sstv.js:2"}, "properties": {"repobilityId": "501dadea66927d27", "scanner": "scanner-primary", "fingerprint": "b495ad65c7d671f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b679cac9c736135", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/launcher-install.js:73"}, "properties": {"repobilityId": "2cfcab242e05a51c", "scanner": "scanner-primary", "fingerprint": "9b679cac9c736135", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4398a67c229561b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/linux-after-pack.js:2"}, "properties": {"repobilityId": "9a0d4bc7c3b816e9", "scanner": "scanner-primary", "fingerprint": "4398a67c229561b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49a4d169ef2ab155", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/launcher.js:41"}, "properties": {"repobilityId": "8df5c72b1bea4d67", "scanner": "scanner-primary", "fingerprint": "49a4d169ef2ab155", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec594ffe9ffcf814", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/launcher.js:42"}, "properties": {"repobilityId": "13034ef3a075bfbe", "scanner": "scanner-primary", "fingerprint": "ec594ffe9ffcf814", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d8bb7203b94ce7c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/build-natives.js:15"}, "properties": {"repobilityId": "d4d1d8ae84b12894", "scanner": "scanner-primary", "fingerprint": "6d8bb7203b94ce7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f48fecdeac395570", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/probe-flex-audio.js:3"}, "properties": {"repobilityId": "128796de108450fe", "scanner": "scanner-primary", "fingerprint": "f48fecdeac395570", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-457911086472382c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/donors/index.js:20"}, "properties": {"repobilityId": "f8921104dd94315f", "scanner": "scanner-primary", "fingerprint": "457911086472382c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9525aeb8d4b0c00c", "level": "none", "message": {"text": "Commented-code block (5 lines) in worker/dxpeditions/index.js:159"}, "properties": {"repobilityId": "dbcdb89a6f4dfaba", "scanner": "scanner-primary", "fingerprint": "9525aeb8d4b0c00c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2953194f1eea46c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 worker/dxpeditions/index.js:52"}, "properties": {"repobilityId": "9fba6eb40d8695a5", "scanner": "scanner-primary", "fingerprint": "2953194f1eea46c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-80f5a5be2abb3cc2", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/guest-pass.js:1"}, "properties": {"repobilityId": "9bc3ea842cb8e7a5", "scanner": "scanner-primary", "fingerprint": "80f5a5be2abb3cc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10e5e25de21f6ac6", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/remote-server.js:26"}, "properties": {"repobilityId": "75569c1e586a8d4b", "scanner": "scanner-primary", "fingerprint": "10e5e25de21f6ac6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-494a4db8008c00f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cloud-ipc.js:211"}, "properties": {"repobilityId": "07060f9cfec9ca92", "scanner": "scanner-primary", "fingerprint": "494a4db8008c00f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49028f18d3315e77", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/transport.js:159"}, "properties": {"repobilityId": "fb251f008cfc392b", "scanner": "scanner-primary", "fingerprint": "49028f18d3315e77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c3ff8ece0e553c", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rig-utils.js:47"}, "properties": {"repobilityId": "53ef3ff5bcb33199", "scanner": "scanner-primary", "fingerprint": "41c3ff8ece0e553c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41579e88aade050f", "level": "none", "message": {"text": "Commented-code block (12 lines) in lib/websdr.js:10"}, "properties": {"repobilityId": "63552fdb9ac9136b", "scanner": "scanner-primary", "fingerprint": "41579e88aade050f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b5631fc46aaa38c", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/sdr-directory.js:3"}, "properties": {"repobilityId": "d10e187a6636ca4d", "scanner": "scanner-primary", "fingerprint": "9b5631fc46aaa38c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29440d2a1ef1bb4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cty.js:16"}, "properties": {"repobilityId": "2901a76f2e516527", "scanner": "scanner-primary", "fingerprint": "29440d2a1ef1bb4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d15add130fd5051", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/sstv-modes.js:3"}, "properties": {"repobilityId": "196cd8f687cf5440", "scanner": "scanner-primary", "fingerprint": "8d15add130fd5051", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-062972f2d11a7e13", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/smartsdr-audio.js:29"}, "properties": {"repobilityId": "11c8d40e5efa4ed2", "scanner": "scanner-primary", "fingerprint": "062972f2d11a7e13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-354561ec8ae827ae", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/pskreporter.js:12"}, "properties": {"repobilityId": "105c22b68f42e2ad", "scanner": "scanner-primary", "fingerprint": "354561ec8ae827ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7224f714c0ba62c", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/contests-db.js:8"}, "properties": {"repobilityId": "06fb35c3831b30a1", "scanner": "scanner-primary", "fingerprint": "c7224f714c0ba62c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e87ded02074138a", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/smartsdr.js:464"}, "properties": {"repobilityId": "837821b23d992fcb", "scanner": "scanner-primary", "fingerprint": "0e87ded02074138a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e72afe2022ce02b", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/pota-sync.js:3"}, "properties": {"repobilityId": "0741817840f789b3", "scanner": "scanner-primary", "fingerprint": "1e72afe2022ce02b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5761672122af7ca6", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/remote-client.js:3"}, "properties": {"repobilityId": "85ed1d4e9b9cfd01", "scanner": "scanner-primary", "fingerprint": "5761672122af7ca6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4817f9da94c61871", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/kiwisdr.js:21"}, "properties": {"repobilityId": "fd350e14d296f928", "scanner": "scanner-primary", "fingerprint": "4817f9da94c61871", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb1ba1799629df43", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cloudflared.js:3"}, "properties": {"repobilityId": "7ec8b0e1258560a9", "scanner": "scanner-primary", "fingerprint": "cb1ba1799629df43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6ccbf217d749096", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/jtcat-state-machine.js:105"}, "properties": {"repobilityId": "c7902e81e28868bd", "scanner": "scanner-primary", "fingerprint": "e6ccbf217d749096", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3de06a3d40f4d04e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cloud-tunnel.js:5"}, "properties": {"repobilityId": "6aaa9b356565e875", "scanner": "scanner-primary", "fingerprint": "3de06a3d40f4d04e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a5d11b111938b81", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rig-controller.js:60"}, "properties": {"repobilityId": "ba348fe8723dee81", "scanner": "scanner-primary", "fingerprint": "9a5d11b111938b81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f13a27fdb4c91479", "level": "none", "message": {"text": "Commented-code block (13 lines) in lib/sstv-worker.js:3"}, "properties": {"repobilityId": "df7875b94e83f121", "scanner": "scanner-primary", "fingerprint": "f13a27fdb4c91479", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e1c49756c2d0a96", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/spectrum-fft.js:10"}, "properties": {"repobilityId": "ce610f4907df612f", "scanner": "scanner-primary", "fingerprint": "1e1c49756c2d0a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8e40aac508ecbf", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rotorez.js:3"}, "properties": {"repobilityId": "fc8bb8c65e786c1e", "scanner": "scanner-primary", "fingerprint": "7a8e40aac508ecbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d7ddcc112a73110", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/cat.js:14"}, "properties": {"repobilityId": "add3b1253949dbbb", "scanner": "scanner-primary", "fingerprint": "3d7ddcc112a73110", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e91dade75881ff27", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/echocat-protocol.js:112"}, "properties": {"repobilityId": "7295a8d9070db869", "scanner": "scanner-primary", "fingerprint": "e91dade75881ff27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-946b266231b32044", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/keyer.js:78"}, "properties": {"repobilityId": "248f42a5e4f4ef4c", "scanner": "scanner-primary", "fingerprint": "946b266231b32044", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f358990d1e31d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/sstv-post.js:3"}, "properties": {"repobilityId": "977df3a902f8110e", "scanner": "scanner-primary", "fingerprint": "60f358990d1e31d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-383119510a6636b6", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/ft8-engine.js:89"}, "properties": {"repobilityId": "8d4873a068d04022", "scanner": "scanner-primary", "fingerprint": "383119510a6636b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc29c0a4d39213b9", "level": "none", "message": {"text": "Commented-code block (17 lines) in lib/tiles.js:5"}, "properties": {"repobilityId": "8e2265bf6aeaa650", "scanner": "scanner-primary", "fingerprint": "cc29c0a4d39213b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc3572ab2aa4d08d", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/rig-models.js:32"}, "properties": {"repobilityId": "5ff39674cb66bb73", "scanner": "scanner-primary", "fingerprint": "fc3572ab2aa4d08d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef578f07b5658d51", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/qrz.js:214"}, "properties": {"repobilityId": "8bf589f2291d8bec", "scanner": "scanner-primary", "fingerprint": "ef578f07b5658d51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-424c3e9324cc70fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/wwbota.js:70"}, "properties": {"repobilityId": "530f31b914dff5c6", "scanner": "scanner-primary", "fingerprint": "424c3e9324cc70fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6a2ab9c3a8e6709", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/winkeyer.js:77"}, "properties": {"repobilityId": "a9c713ece9fd5b3a", "scanner": "scanner-primary", "fingerprint": "a6a2ab9c3a8e6709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f594ccc955f7b507", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/privileges.js:77"}, "properties": {"repobilityId": "b50713b8cdc835aa", "scanner": "scanner-primary", "fingerprint": "f594ccc955f7b507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0aec32fbfcdc0c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/sstv-dsp.js:149"}, "properties": {"repobilityId": "756b505af261c846", "scanner": "scanner-primary", "fingerprint": "e0aec32fbfcdc0c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d168d54d3cd2933d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/rsba1-transport.js:3"}, "properties": {"repobilityId": "5c5d8ef9f297d4d9", "scanner": "scanner-primary", "fingerprint": "d168d54d3cd2933d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b5eaf8d78ee9171", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/pass-enforcement.js:5"}, "properties": {"repobilityId": "135a7d97778e3ccc", "scanner": "scanner-primary", "fingerprint": "9b5eaf8d78ee9171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53077dff62cebc4", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/linux-sandbox.js:8"}, "properties": {"repobilityId": "a6026ad1a7a3aa58", "scanner": "scanner-primary", "fingerprint": "e53077dff62cebc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b808451c11fff11", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/cloud-sync.js:129"}, "properties": {"repobilityId": "092c27b33acf167a", "scanner": "scanner-primary", "fingerprint": "7b808451c11fff11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08ddad64fabde53b", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ft8_native/ft8_lib/utils/decode.py:178"}, "properties": {"repobilityId": "f22fe6993e00e273", "scanner": "scanner-primary", "fingerprint": "08ddad64fabde53b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff3633d757cb03a0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 lib/ft8_native/ft8_lib/utils/run_tests.py:35"}, "properties": {"repobilityId": "3a0637510f85e698", "scanner": "scanner-primary", "fingerprint": "ff3633d757cb03a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-43f4b71156424cf7", "level": "note", "message": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_decode.js:758"}, "properties": {"repobilityId": "de71177be85a5f9e", "scanner": "scanner-primary", "fingerprint": "43f4b71156424cf7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-862a0b3d62c6ba45", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_decode.js:53"}, "properties": {"repobilityId": "f83ce70545004c0f", "scanner": "scanner-primary", "fingerprint": "862a0b3d62c6ba45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20e1c98886ad205c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_decode.js:204"}, "properties": {"repobilityId": "9e99d79d7df294e4", "scanner": "scanner-primary", "fingerprint": "20e1c98886ad205c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-861682ef32027c34", "level": "note", "message": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft4/wasm/ft4_encode.js:758"}, "properties": {"repobilityId": "d00d7036f3bcd072", "scanner": "scanner-primary", "fingerprint": "861682ef32027c34", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f9956ac3bcb62709", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/ft4/wasm/ft4_encode.js:53"}, "properties": {"repobilityId": "d2426d11988b09e4", "scanner": "scanner-primary", "fingerprint": "f9956ac3bcb62709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a975426e9e829aeb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft4/wasm/ft4_encode.js:204"}, "properties": {"repobilityId": "508764f7fc5c2287", "scanner": "scanner-primary", "fingerprint": "a975426e9e829aeb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2bedc6a86f082ce3", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/codecs/civ-codec.js:59"}, "properties": {"repobilityId": "b24fdada4ec5fd8c", "scanner": "scanner-primary", "fingerprint": "2bedc6a86f082ce3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-311da62e50567f1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/codecs/kenwood-codec.js:241"}, "properties": {"repobilityId": "989d2eec2cb193f4", "scanner": "scanner-primary", "fingerprint": "311da62e50567f1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f804fc4c210b3b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/codecs/rigctld-codec.js:24"}, "properties": {"repobilityId": "e5d427848ec565b1", "scanner": "scanner-primary", "fingerprint": "7f804fc4c210b3b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb5e207d02f78529", "level": "note", "message": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_decode.js:758"}, "properties": {"repobilityId": "ff6fce861e1eb446", "scanner": "scanner-primary", "fingerprint": "cb5e207d02f78529", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-015909b5dceffa14", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_decode.js:53"}, "properties": {"repobilityId": "9ad0d4faa81c7bb5", "scanner": "scanner-primary", "fingerprint": "015909b5dceffa14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16de13529fc742f4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_decode.js:204"}, "properties": {"repobilityId": "154db3fbaf19eaa4", "scanner": "scanner-primary", "fingerprint": "16de13529fc742f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e2dd75d925cfcb74", "level": "note", "message": {"text": "Legacy-named symbol `dynCallLegacy` in lib/ft2/wasm/ft2_encode.js:758"}, "properties": {"repobilityId": "75f08149c43955b0", "scanner": "scanner-primary", "fingerprint": "e2dd75d925cfcb74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1c5b9693317ab060", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/ft2/wasm/ft2_encode.js:53"}, "properties": {"repobilityId": "df93e50c87b04d47", "scanner": "scanner-primary", "fingerprint": "1c5b9693317ab060", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d18bbb9e6549482b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ft2/wasm/ft2_encode.js:204"}, "properties": {"repobilityId": "f86ac93373a59134", "scanner": "scanner-primary", "fingerprint": "d18bbb9e6549482b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-be1dd47d9dfb703b", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ft2/ft8_lib/utils/decode.py:178"}, "properties": {"repobilityId": "b699e7eb741193d2", "scanner": "scanner-primary", "fingerprint": "be1dd47d9dfb703b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bae8ecd97cc43ee", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 lib/ft2/ft8_lib/utils/run_tests.py:35"}, "properties": {"repobilityId": "ace6a4d525bc350d", "scanner": "scanner-primary", "fingerprint": "0bae8ecd97cc43ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "14c9e324a1d3d6b8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5ccc1a7257ca25ac", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1c5388777a76ec9a", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "780b6ea3ec019dc7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e4f6a20484b11114", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "229b2d84f3a106b9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0a52a405166801e9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "581b27c9665352a8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5f0035542ba876d1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "93a0e8353c2ffa1e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "496045dafe0c3950", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "48e9eb9ee74990b3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}