{"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-726f05d4ea87dc0d", "name": "Stray `console.log` in TS/JS \u2014 electron/main.js:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 electron/main.js:137"}, "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-c787512a4b1e3459", "name": "Stray `console.log` in TS/JS \u2014 electron/test-spout.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 electron/test-spout.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-2cf1e9859743c687", "name": "Stray `console.log` in TS/JS \u2014 server/ws-server.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/ws-server.js:104"}, "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-8e982651bf02cc43", "name": "Stray `console.log` in TS/JS \u2014 tools/shader-admin/server.js:259", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tools/shader-admin/server.js:259"}, "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-39e10c8ceaac276e", "name": "Icon-only button without accessible name \u2014 tools/shader-admin/src/App.svelte:874", "shortDescription": {"text": "Icon-only button without accessible name \u2014 tools/shader-admin/src/App.svelte:874"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ffc86219f8a86e19", "name": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183"}, "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-a5a4f27cd0c51f3b", "name": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183"}, "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-79d052aa988a6124", "name": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:182", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:182"}, "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-3e1982ab9fe905c8", "name": "Stray `console.log` in TS/JS \u2014 src/SliceOutputApp.svelte:391", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/SliceOutputApp.svelte:391"}, "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-ba5f7ccda787a552", "name": "Stray `console.log` in TS/JS \u2014 src/SpoutOutputApp.svelte:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/SpoutOutputApp.svelte: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-3128ab161c17297c", "name": "Stray `console.log` in TS/JS \u2014 src/OutputDisplayApp.svelte:183", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/OutputDisplayApp.svelte:183"}, "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-61125c558c1ec202", "name": "Stray `console.log` in TS/JS \u2014 src/App.svelte:205", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/App.svelte:205"}, "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-326b1aa6e487497c", "name": "Stray `console.log` in TS/JS \u2014 src/OutputSharedTextureDisplayApp.svelte:315", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/OutputSharedTextureDisplayApp.svelte:315"}, "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-cbf8097ac1b63d05", "name": "Stray `console.log` in TS/JS \u2014 src/lib/shaderPreload.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/shaderPreload.ts: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-4ec15fadc18d719c", "name": "Stray `console.log` in TS/JS \u2014 src/lib/recording/recorder.ts:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/recording/recorder.ts:129"}, "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-41f9cef4e93c2c31", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuEngine.ts:148", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuEngine.ts:148"}, "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-1789fb68f3cc71ce", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuFluidSim.ts:453", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuFluidSim.ts:453"}, "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-8ba204f6186bd156", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuAdvLightPaint.ts:487", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuAdvLightPaint.ts:487"}, "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-ec0375ae5a4540f9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuEffectRunner.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuEffectRunner.ts:171"}, "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-cbac6085983a2af2", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpu3DSmoke.ts:1077", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpu3DSmoke.ts:1077"}, "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-44207d3c61380e8a", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPointCloudFX.ts:859", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPointCloudFX.ts:859"}, "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-8565d9876452a6dd", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPaintDrip.ts:331", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPaintDrip.ts:331"}, "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-30a954033c8ea542", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuLayerRenderer.ts:462", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuLayerRenderer.ts:462"}, "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-7b31c7b9193eb652", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuStrokeParticles.ts:1301", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuStrokeParticles.ts:1301"}, "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-d0d7e6b74b05a900", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuShared.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuShared.ts:52"}, "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-95e87ba3386aba38", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPixelParticles.ts:721", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPixelParticles.ts:721"}, "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-a76aa4a5b22b6c3e", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/renderer/geometry.ts:550", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/renderer/geometry.ts:550"}, "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-700e4b694cf24264", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/engine.ts:518", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/engine.ts:518"}, "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-471e21f6210a1195", "name": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/shaders/webgpuPlanet.ts:1200", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/shaders/webgpuPlanet.ts:1200"}, "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-b70cbcf4e7a96f55", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/keyframeTimeline.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/keyframeTimeline.ts:73"}, "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-93051e1dffa344d9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/connection.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/connection.ts:38"}, "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-4cf63db85a69236f", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/layers.ts:758", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/layers.ts:758"}, "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-5a5527a642e51738", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/shaderLibrary.ts:509", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/shaderLibrary.ts:509"}, "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-b018907aeedaedd7", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/updateChecker.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/updateChecker.ts:89"}, "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-9f7d990a7ff11525", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/settings.ts:1026", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/settings.ts:1026"}, "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-75b56251e09a2b20", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stores/spout.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/spout.ts:66"}, "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-b0e09332d58a83c5", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/audioBroadcast.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/audioBroadcast.ts:65"}, "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-7e39c3d7977715d5", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputPixelBroadcast.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputPixelBroadcast.ts:137"}, "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-e96d97035c69a8fe", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputSharedTexturePresenter.ts:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputSharedTexturePresenter.ts:145"}, "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-348261868e3252ac", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/modulationBroadcast.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/modulationBroadcast.ts:55"}, "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-35f764e433846bc2", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/sync/nativeRendererSync.ts:676", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/sync/nativeRendererSync.ts:676"}, "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-fd66de908d07f84c", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/nativeRendererSync.ts:322", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/nativeRendererSync.ts:322"}, "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-1a669e37108d3fdb", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputComposite.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputComposite.ts:43"}, "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-37fd1f796ad41786", "name": "Stray `console.log` in TS/JS \u2014 src/lib/sync/stateBroadcast.ts:241", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/stateBroadcast.ts:241"}, "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-3fc7d0e7f313b40c", "name": "Stray `console.log` in TS/JS \u2014 src/lib/midi/midiManager.ts:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/midi/midiManager.ts:94"}, "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-069720b960b3dc04", "name": "Stray `console.log` in TS/JS \u2014 src/lib/isf/parser.ts:117", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/isf/parser.ts:117"}, "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-d20098d5e3e86719", "name": "Stray `console.log` in TS/JS \u2014 src/lib/isf/renderer.ts:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/isf/renderer.ts:164"}, "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-9018f7ef837e981f", "name": "Stray `console.log` in TS/JS \u2014 src/lib/api/ai-client.ts:958", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/api/ai-client.ts:958"}, "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-b6c896e132adb419", "name": "Stray `console.log` in TS/JS \u2014 src/lib/utils/videoLoop.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/utils/videoLoop.ts:171"}, "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-897f8549a182ccad", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/SplatPanel.svelte:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/SplatPanel.svelte:176"}, "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-5958bc72a40a9ca7", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/Canvas.svelte:607", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/Canvas.svelte:607"}, "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-50b59557f31bb39e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/WebGPUCanvas.svelte:742", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/WebGPUCanvas.svelte:742"}, "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-bcbe5357856341b6", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/ScreenPanel.svelte:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/ScreenPanel.svelte:92"}, "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-5e5d639363db09c9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/Model3DPanel.svelte:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/Model3DPanel.svelte:206"}, "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-e552b7a7bc6cf160", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/KeyframeTimeline.svelte:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/KeyframeTimeline.svelte:45"}, "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-77c53b72f30eaaab", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/MobileApp.svelte:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MobileApp.svelte: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-fe527075698fe4ff", "name": "Icon-only button without accessible name \u2014 src/lib/components/ShaderLibrary.svelte:287", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/lib/components/ShaderLibrary.svelte:287"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfbf215f92617ae9", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/MediaTray.svelte:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MediaTray.svelte:80"}, "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-e333febab69acbab", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/OutputWindow.svelte:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/OutputWindow.svelte:116"}, "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-1da4bf489076009d", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/VJModePanel.svelte:1429", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/VJModePanel.svelte:1429"}, "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-5bfb7c8a14aabdba", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/VJModePanel.svelte:164", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/VJModePanel.svelte:164"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a76ad2197f65106e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/AIShaderGenerator.svelte:164", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/AIShaderGenerator.svelte:164"}, "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-6e0b9dbcbe60a174", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/MasterWarpHandles.svelte:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MasterWarpHandles.svelte:69"}, "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-a63440f170385154", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/SynthVision.svelte:1765", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/SynthVision.svelte:1765"}, "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-b56d53a5434a26a3", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/LayerPanel.svelte:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/LayerPanel.svelte:73"}, "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-0eb1a855807c7f51", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/LayerPanel.svelte:428", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/LayerPanel.svelte:428"}, "fullDescription": {"text": "React Flow edge labels render with a white rectangle behind the text by default, which scatters bright boxes across a dark canvas. Either drop the label, or override `.react-flow__edge-textbg` and `.react-flow__edge-text` in your stylesheet.\n\nWhy: P-H in CHECKLIST.md \u2014 vendor edge labels bleed white through a dark canvas.\nRule id: fq.edge-label.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-016df83cb9ae679f", "name": "Stray `console.log` in TS/JS \u2014 src/lib/components/timeline/TimelineGrid.svelte:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/timeline/TimelineGrid.svelte:89"}, "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-e613f500aafc026e", "name": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StagePresetPicker.svelte:23", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StagePresetPicker.svelte:23"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f971ed9b2df251d", "name": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StageVenuePicker.svelte:14", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StageVenuePicker.svelte:14"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c904b7f11d11dabe", "name": "Stray `console.log` in TS/JS \u2014 src/lib/model3d/Model3DRenderer.ts:945", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/model3d/Model3DRenderer.ts:945"}, "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-cf82f80b4cc53412", "name": "Stray `console.log` in TS/JS \u2014 src/lib/audio/modulation.ts:941", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audio/modulation.ts:941"}, "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-f9ccc5477daebced", "name": "Stray `console.log` in TS/JS \u2014 src/lib/lightpainting/webglRenderer.ts:503", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/lightpainting/webglRenderer.ts:503"}, "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-c0966a7c242d52e6", "name": "Stray `console.log` in TS/JS \u2014 src/lib/stage3d/Stage3DRenderer.ts:699", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stage3d/Stage3DRenderer.ts:699"}, "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-8f6b4251df6be210", "name": "Stray `console.log` in TS/JS \u2014 src/lib/osc/oscStore.ts:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/osc/oscStore.ts:149"}, "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-ee2fd641d538f091", "name": "Stray `console.log` in TS/JS \u2014 src/lib/splat/splatLoader.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/splat/splatLoader.ts:23"}, "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-ec463e32888c7e14", "name": "Stray `console.log` in TS/JS \u2014 src/lib/splat/plyLoader.ts:632", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/splat/plyLoader.ts:632"}, "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-662c3c45fc06a809", "name": "Stray `console.log` in TS/JS \u2014 src/lib/effects/milkdropVisualizer.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/effects/milkdropVisualizer.ts: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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45d21d9641c7b29c", "name": "Insecure pattern 'node_child_process' in package.json:41", "shortDescription": {"text": "Insecure pattern 'node_child_process' in package.json:41"}, "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-2f3c5e04b6d5cfda", "name": "Insecure pattern 'node_child_process' in electron/main.js:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in electron/main.js:19"}, "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-6458d79e084959ce", "name": "Insecure pattern 'cors_wildcard' in electron/main.js:3863", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in electron/main.js:3863"}, "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-880cea15de68f84e", "name": "Insecure pattern 'node_child_process' in electron/native/scripts/build-native.mjs:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in electron/native/scripts/build-native.mjs:1"}, "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-19282f97aeef56c1", "name": "Insecure pattern 'cors_wildcard' in tools/shader-admin/server.js:17", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in tools/shader-admin/server.js:17"}, "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-51798dee5c2d148f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/threejs/embryo/index.html:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/threejs/embryo/index.html:47"}, "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-01f55fa1a449c71e", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/native-mobile-main.ts:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/native-mobile-main.ts:31"}, "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-cc5d839f6918b6f2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/lib/sync/stateBroadcast.ts:1102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/lib/sync/stateBroadcast.ts:1102"}, "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-6b6784706c797214", "name": "Insecure pattern 'new_function_used' in src/lib/components/MediaTray.svelte:1371", "shortDescription": {"text": "Insecure pattern 'new_function_used' in src/lib/components/MediaTray.svelte:1371"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7141401cd3d7adf5", "name": "Insecure pattern 'new_function_used' in src/lib/components/MediaLibrary.svelte:281", "shortDescription": {"text": "Insecure pattern 'new_function_used' in src/lib/components/MediaLibrary.svelte:281"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ba9bfab5f283202", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "softprops/action-gh-release@v2 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b769174c9fcf8ea8", "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-d3053d04728921c5", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-407458665bd88985", "name": "Very large file: electron/main.js (4054 lines)", "shortDescription": {"text": "Very large file: electron/main.js (4054 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-6e28ec961f73b39e", "name": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 lines)", "shortDescription": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 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-85d91b4d14e8c629", "name": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 lines)", "shortDescription": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 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-be225a7d11d0f88d", "name": "Very large file: public/mediapipe/wasm/vision_wasm_module_internal.js (8823 lines)", "shortDescription": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_module_internal.js (8823 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-47f7c5071ba56377", "name": "Very large file: src/lib/types.ts (5386 lines)", "shortDescription": {"text": "Very large file: src/lib/types.ts (5386 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-9ef96d436869220d", "name": "Very large file: src/lib/renderer/webgpu3DSmoke.ts (1394 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/webgpu3DSmoke.ts (1394 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-b3ce2c664cfa1b38", "name": "Very large file: src/lib/renderer/webgpuParticleField.ts (1902 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/webgpuParticleField.ts (1902 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-2f5fa56621e7f900", "name": "Very large file: src/lib/renderer/effects.ts (4931 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/effects.ts (4931 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-758071f998999d9e", "name": "Very large file: src/lib/renderer/webgpuStrokeParticles.ts (1922 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/webgpuStrokeParticles.ts (1922 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-7cb7ae76f7a23476", "name": "Very large file: src/lib/renderer/webgpuPixelParticles.ts (1238 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/webgpuPixelParticles.ts (1238 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-128ea467269a24a4", "name": "Very large file: src/lib/renderer/engine.ts (3462 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/engine.ts (3462 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-654e73c6df1cab23", "name": "Very large file: src/lib/renderer/shaders/basic.ts (9546 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/shaders/basic.ts (9546 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-4d77b1e86f3bc744", "name": "Very large file: src/lib/renderer/shaders/webgpuPlanet.ts (1317 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/shaders/webgpuPlanet.ts (1317 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-fb2d819d3d76b4f0", "name": "Very large file: src/lib/renderer/shaders/premium-standalone.ts (2192 lines)", "shortDescription": {"text": "Very large file: src/lib/renderer/shaders/premium-standalone.ts (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-9a9ae21f20751e31", "name": "Very large file: src/lib/stores/layers.ts (5602 lines)", "shortDescription": {"text": "Very large file: src/lib/stores/layers.ts (5602 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-9d81208c0f84be56", "name": "Very large file: src/lib/stores/vjClipLauncher.ts (2530 lines)", "shortDescription": {"text": "Very large file: src/lib/stores/vjClipLauncher.ts (2530 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-ab178418622589d2", "name": "Very large file: src/lib/stores/settings.ts (1692 lines)", "shortDescription": {"text": "Very large file: src/lib/stores/settings.ts (1692 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-4852f37a0dfa4adc", "name": "Very large file: src/lib/drawing/renderer.ts (2067 lines)", "shortDescription": {"text": "Very large file: src/lib/drawing/renderer.ts (2067 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-9ca61a95ccb06855", "name": "Very large file: src/lib/model3d/Model3DRenderer.ts (2323 lines)", "shortDescription": {"text": "Very large file: src/lib/model3d/Model3DRenderer.ts (2323 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-c320837916d01501", "name": "Very large file: src/lib/audio/modulation.ts (1362 lines)", "shortDescription": {"text": "Very large file: src/lib/audio/modulation.ts (1362 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-c72eba0aa950dd45", "name": "Very large file: src/lib/lightpainting/renderer.ts (1452 lines)", "shortDescription": {"text": "Very large file: src/lib/lightpainting/renderer.ts (1452 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-f06175f7ea76a375", "name": "Very large file: src/lib/lightpainting/webglRenderer.ts (1395 lines)", "shortDescription": {"text": "Very large file: src/lib/lightpainting/webglRenderer.ts (1395 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-786c1ee4869eea29", "name": "Very large file: src/lib/stage3d/Stage3DRenderer.ts (2021 lines)", "shortDescription": {"text": "Very large file: src/lib/stage3d/Stage3DRenderer.ts (2021 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-686da3fcf5d2c63a", "name": "Very large file: src/lib/stage3d/venues.ts (1251 lines)", "shortDescription": {"text": "Very large file: src/lib/stage3d/venues.ts (1251 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-ca8f3bfc5062639a", "name": "Very large file: src/lib/svg/renderer.ts (1910 lines)", "shortDescription": {"text": "Very large file: src/lib/svg/renderer.ts (1910 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-22a27a165846813d", "name": "Very large file: src/lib/lines/renderer.ts (1485 lines)", "shortDescription": {"text": "Very large file: src/lib/lines/renderer.ts (1485 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-3eb9268cb2447984", "name": "Very large file: src/lib/splat/SplatRenderer.ts (1777 lines)", "shortDescription": {"text": "Very large file: src/lib/splat/SplatRenderer.ts (1777 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-d1f99f2438a70c30", "name": "Very large file: src/lib/effects/effectUX.ts (3663 lines)", "shortDescription": {"text": "Very large file: src/lib/effects/effectUX.ts (3663 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-51f604dc9c5d7291", "name": "Very large file: src/lib/effects/ghostfx/ghostfxVisualizer.ts (1733 lines)", "shortDescription": {"text": "Very large file: src/lib/effects/ghostfx/ghostfxVisualizer.ts (1733 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "8 test file(s) for 255 source file(s) (ratio 0.03). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-609a0f88510fe029", "name": "91 TODO/FIXME markers", "shortDescription": {"text": "91 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-b445c7d43bcff3d0", "name": "Node manifest has dependencies but no lockfile: native-mobile/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: native-mobile/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 282 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 83 placeholder/mock markers across 35 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07aa8ebbc2d850b4", "name": "Commented-code block (5 lines) in vite.config.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in vite.config.ts: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-114adfb70e774752", "name": "Commented-code block (7 lines) in electron/preload.cjs:26", "shortDescription": {"text": "Commented-code block (7 lines) in electron/preload.cjs: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-1a19e14300c84994", "name": "Commented-code block (7 lines) in electron/osc-parser.cjs:3", "shortDescription": {"text": "Commented-code block (7 lines) in electron/osc-parser.cjs: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-c2addce15d802053", "name": "Commented-code block (8 lines) in electron/main.js:42", "shortDescription": {"text": "Commented-code block (8 lines) in electron/main.js:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b1a660437b24ab8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 electron/main.js:170", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 electron/main.js:170"}, "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-751ba9cf98e40f11", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-shot.mjs:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-shot.mjs:8"}, "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-40735b9a1c3c9fca", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-console.mjs:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-console.mjs:9"}, "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-8878fdaf7571f98d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-eval.mjs:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-eval.mjs:19"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7db3f2968485e6e5", "name": "Commented-code block (6 lines) in server/ws-server.js:242", "shortDescription": {"text": "Commented-code block (6 lines) in server/ws-server.js:242"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef2625b570ee0b42", "name": "Legacy-named symbol `Test_Full_Pro_v1` in tools/generate-test-project.mjs:21", "shortDescription": {"text": "Legacy-named symbol `Test_Full_Pro_v1` in tools/generate-test-project.mjs:21"}, "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-4036add49728a68b", "name": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143", "shortDescription": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143"}, "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-ccedad758f7c1e2e", "name": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:14", "shortDescription": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.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-3b876081f0e3c42b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140"}, "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-ae20fb0511e42254", "name": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143", "shortDescription": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143"}, "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-cdade13839f63082", "name": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.js:14", "shortDescription": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.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-de74b22bfde1ed47", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140"}, "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-a3e11ccbd5b80cc9", "name": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_module_internal.js:8146", "shortDescription": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_module_internal.js:8146"}, "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-bbd95dd32698c4b7", "name": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_module_internal.js:9", "shortDescription": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_module_internal.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-acb8ef804dad4e22", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:139"}, "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-3386048e90ad3de6", "name": "Commented-code block (6 lines) in src/main.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in src/main.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2327b8b2ded16b94", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shaderPreload.ts:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shaderPreload.ts:72"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-520f8216f1e97508", "name": "Commented-code block (6 lines) in src/lib/types.ts:899", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/types.ts:899"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a99d8c833e45981", "name": "Commented-code block (7 lines) in src/lib/recording/recorder.ts:131", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/recording/recorder.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50cfbeb4dc2b3227", "name": "Commented-code block (12 lines) in src/lib/recording/offlineRender.ts:33", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/recording/offlineRender.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3d8eeb3d0db1fbb", "name": "Commented-code block (6 lines) in src/lib/theming/rangeProgress.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/theming/rangeProgress.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21d350ea63d3abf0", "name": "Commented-code block (5 lines) in src/lib/types/butterchurn.d.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/types/butterchurn.d.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-500023f6b4e89235", "name": "Commented-code block (6 lines) in src/lib/types/web-experimental.d.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/types/web-experimental.d.ts: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-850bf59aac810f95", "name": "Commented-code block (11 lines) in src/lib/renderer/webgpuFlythrough.ts:346", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/renderer/webgpuFlythrough.ts:346"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c321e9cd3b068ffe", "name": "Commented-code block (6 lines) in src/lib/renderer/webgpuCapability.ts:66", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/renderer/webgpuCapability.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8360db993453856", "name": "Legacy-named symbol `v_old` in src/lib/renderer/webgpuFluidSim.ts:175", "shortDescription": {"text": "Legacy-named symbol `v_old` in src/lib/renderer/webgpuFluidSim.ts:175"}, "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-7d5d963b03682055", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpuFluidSim.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuFluidSim.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d0e584f0a1f5bf5", "name": "Commented-code block (5 lines) in src/lib/renderer/gpuShaderCatalog.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuShaderCatalog.ts: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-61951ef82bf72d58", "name": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuAdvLightPaint.ts:88", "shortDescription": {"text": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuAdvLightPaint.ts:88"}, "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-2a6d0164e73ff6f9", "name": "Commented-code block (8 lines) in src/lib/renderer/webgpuAdvLightPaint.ts:51", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuAdvLightPaint.ts:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ef94f679dd79969", "name": "Commented-code block (5 lines) in src/lib/renderer/gpuEffectRunner.ts:107", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuEffectRunner.ts:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f2231ce29c8a6dd", "name": "Commented-code block (7 lines) in src/lib/renderer/gpuShaderTypes.ts:53", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/renderer/gpuShaderTypes.ts: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-82a92870c6cc066e", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpu3DSmoke.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpu3DSmoke.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01f6497fc251ca9a", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpuInkCloud.ts:721", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuInkCloud.ts:721"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a874b4a2b8f09f29", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpuParticleField.ts:244", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuParticleField.ts:244"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-763e533676f31731", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpuPointCloudFX.ts:260", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuPointCloudFX.ts:260"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e58e5491e8cfa04", "name": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuPaintDrip.ts:119", "shortDescription": {"text": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuPaintDrip.ts:119"}, "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-f8c0004842971037", "name": "Commented-code block (16 lines) in src/lib/renderer/webgpuPaintDrip.ts:46", "shortDescription": {"text": "Commented-code block (16 lines) in src/lib/renderer/webgpuPaintDrip.ts: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-443ba035d08445de", "name": "Commented-code block (5 lines) in src/lib/renderer/gpuLayerRenderer.ts:77", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuLayerRenderer.ts: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-0f3492148001f2ef", "name": "Commented-code block (7 lines) in src/lib/renderer/js-animation.ts:127", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/renderer/js-animation.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5d92bcb8c24c0cb", "name": "Commented-code block (8 lines) in src/lib/renderer/webgpuStrokeParticles.ts:86", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuStrokeParticles.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-522953ad6548af17", "name": "Commented-code block (5 lines) in src/lib/renderer/crossfadeTransitions.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/crossfadeTransitions.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd4cc050f1d26a0d", "name": "Commented-code block (8 lines) in src/lib/renderer/webgpuPixelParticles.ts:107", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuPixelParticles.ts:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6d15b8e4043e270", "name": "Commented-code block (5 lines) in src/lib/renderer/geometry.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/geometry.ts: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-e79899ae9f17d400", "name": "Commented-code block (5 lines) in src/lib/renderer/engine.ts:190", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/engine.ts:190"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de956da7be475095", "name": "Commented-code block (5 lines) in src/lib/renderer/webgpuPilot.ts:179", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuPilot.ts:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-808ce423e40c2cbd", "name": "Commented-code block (7 lines) in src/lib/renderer/shaders.ts:42", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d82940e1a3d787e", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFluidSmokeShader.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFluidSmokeShader.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-371eca7777180b93", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFlythroughShader.ts:77", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFlythroughShader.ts: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-358259b749ae420d", "name": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpu3DSmokeShader.ts:35", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpu3DSmokeShader.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-481c3e89498c59c1", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuPixelParticlesShader.ts:30", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuPixelParticlesShader.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f753d74f53fa8e6d", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/basic.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/basic.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2964eddd0d470f5c", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/geometric-3d.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/geometric-3d.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed09decf594f065d", "name": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpuPlanet.ts:300", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpuPlanet.ts: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-84c0d6d47bd92944", "name": "Commented-code block (6 lines) in src/lib/renderer/shaders/premium-standalone.ts:493", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/renderer/shaders/premium-standalone.ts:493"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c705c11d761e3ecd", "name": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuInkCloudShader.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuInkCloudShader.ts: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-d2acf8418f48bc20", "name": "Commented-code block (10 lines) in src/lib/renderer/shaders/webgpuParticleFieldShader.ts:151", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/renderer/shaders/webgpuParticleFieldShader.ts:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-999d91236281c69f", "name": "Commented-code block (6 lines) in src/lib/renderer/shaders/webgpuPointCloudFXShader.ts:100", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/renderer/shaders/webgpuPointCloudFXShader.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c8a2f3046c890d0", "name": "Commented-code block (5 lines) in src/lib/stores/snapshots.ts:128", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stores/snapshots.ts:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1737223d60bdc3b", "name": "Commented-code block (5 lines) in src/lib/stores/audio.ts:136", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stores/audio.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de563f9dea512a9f", "name": "Commented-code block (5 lines) in src/lib/stores/history.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stores/history.ts: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-776c81b540c25369", "name": "Commented-code block (5 lines) in src/lib/stores/stageEffects.ts:337", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stores/stageEffects.ts:337"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc26c84dab6b9584", "name": "Commented-code block (8 lines) in src/lib/stores/surface.ts:34", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/stores/surface.ts:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d40c889b2e3b1c72", "name": "Commented-code block (9 lines) in src/lib/stores/layers.ts:30", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/stores/layers.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21b81e0528ca59e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/stores/layers.ts:199", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/stores/layers.ts:199"}, "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-f7958bc807a4b82a", "name": "Commented-code block (7 lines) in src/lib/stores/updateChecker.ts:59", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/stores/updateChecker.ts: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-a69af739031cf65a", "name": "Commented-code block (9 lines) in src/lib/stores/synthVision.ts:219", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/stores/synthVision.ts:219"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb02710f52a84230", "name": "Commented-code block (5 lines) in src/lib/stores/workspace.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stores/workspace.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a16799eddd5491f", "name": "Commented-code block (6 lines) in src/lib/stores/vjClipLauncher.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/stores/vjClipLauncher.ts: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-153de080dc598953", "name": "Commented-code block (6 lines) in src/lib/stores/settings.ts:341", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/stores/settings.ts:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bdde213cdd65422", "name": "Commented-code block (5 lines) in src/lib/input/gamepad.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/input/gamepad.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2f6e67606e78329", "name": "Commented-code block (7 lines) in src/lib/sync/audioBroadcast.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/sync/audioBroadcast.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ef889e6079723ad", "name": "Commented-code block (5 lines) in src/lib/sync/outputPixelBroadcast.ts:84", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/sync/outputPixelBroadcast.ts:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7b826d1858c1868", "name": "Commented-code block (6 lines) in src/lib/sync/outputSharedTexturePresenter.ts:64", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sync/outputSharedTexturePresenter.ts:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75085fff251cf3c6", "name": "Commented-code block (11 lines) in src/lib/sync/modulationBroadcast.ts:3", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/sync/modulationBroadcast.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6909b59c007b99f1", "name": "Commented-code block (10 lines) in src/lib/sync/outputComposite.ts:127", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/sync/outputComposite.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26b87569090ae8b4", "name": "Commented-code block (6 lines) in src/lib/sync/stateBroadcast.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/sync/stateBroadcast.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2afc81f9df899ad8", "name": "Commented-code block (7 lines) in src/lib/midi/midiRouter.ts:261", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/midi/midiRouter.ts:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db32f296fc86e5f5", "name": "Commented-code block (21 lines) in src/lib/midi/midiTypes.ts:3", "shortDescription": {"text": "Commented-code block (21 lines) in src/lib/midi/midiTypes.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2092ed6f59894cc9", "name": "Commented-code block (6 lines) in src/lib/midi/midiManager.ts:14", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/midi/midiManager.ts: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-38308d6e07e4373f", "name": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeBus.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeBus.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d99fa968353eea2b", "name": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeSource.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeSource.ts: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-aec950f004339f00", "name": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeWorker.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeWorker.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb430f3512df4a18", "name": "Commented-code block (5 lines) in src/lib/isf/renderer.ts:171", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/isf/renderer.ts:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cc9e329a9eea2df", "name": "Commented-code block (7 lines) in src/lib/isf/livePreview.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/isf/livePreview.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5117616d3860a80", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api/ai-client.ts:392", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api/ai-client.ts:392"}, "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-43a3dcd9d016f7c7", "name": "Commented-code block (5 lines) in src/lib/keyframes/paramDiscovery.ts:203", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/keyframes/paramDiscovery.ts:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1546bdcbdfe9a90", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/versionCheck.ts:142", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/versionCheck.ts:142"}, "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-0342d5245ea66188", "name": "Commented-code block (11 lines) in src/lib/utils/videoLoop.ts:35", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/utils/videoLoop.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bbcfe5153765dc9f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/videoLoop.ts:301", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/videoLoop.ts:301"}, "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-8c18cb5fb03edd15", "name": "Commented-code block (7 lines) in src/lib/model3d/Model3DRenderer.ts:775", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/model3d/Model3DRenderer.ts:775"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-934732c9773bca15", "name": "Commented-code block (7 lines) in src/lib/audio/autoEngine.ts:131", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/audio/autoEngine.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f18c86d1123d2897", "name": "Commented-code block (5 lines) in src/lib/audio/modulation.ts:155", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audio/modulation.ts:155"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-787df917bb4bee94", "name": "Commented-code block (5 lines) in src/lib/audio/milkdropFollower.ts:195", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audio/milkdropFollower.ts:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6990dbc9ba2d7f3b", "name": "Commented-code block (6 lines) in src/lib/audio/analyzer.ts:89", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/audio/analyzer.ts: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-4d2d75ba543a143c", "name": "Commented-code block (5 lines) in src/lib/audio/stemRouter.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audio/stemRouter.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dfbe024a8075c24", "name": "Commented-code block (5 lines) in src/lib/audio/multiStemAnalyzer.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/audio/multiStemAnalyzer.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06af04b4c955e365", "name": "Commented-code block (6 lines) in src/lib/mobile/standaloneRecorder.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneRecorder.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea1b391ddcd2dbdf", "name": "Commented-code block (8 lines) in src/lib/mobile/standaloneShaderList.ts:55", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/mobile/standaloneShaderList.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dec0b85748ba3a64", "name": "Commented-code block (6 lines) in src/lib/mobile/standaloneEffects.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneEffects.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9fbb4d0b026625d", "name": "Commented-code block (6 lines) in src/lib/mobile/standaloneRenderer.ts:51", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneRenderer.ts:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85264fca3ae68a85", "name": "Commented-code block (5 lines) in src/lib/mobile/standaloneHomography.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mobile/standaloneHomography.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fc53e22b96000c3", "name": "Commented-code block (6 lines) in src/lib/mobile/standaloneAudio.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneAudio.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b08a050c8bb7f7f9", "name": "Commented-code block (5 lines) in src/lib/lightpainting/renderer.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/lightpainting/renderer.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c902c245dbe5ce7", "name": "Commented-code block (5 lines) in src/lib/lightpainting/webglRenderer.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/lightpainting/webglRenderer.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6b55b62977d3ca0", "name": "Commented-code block (6 lines) in src/lib/lightpainting/webglShaders.ts:141", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/lightpainting/webglShaders.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0777839a518ac8d9", "name": "Commented-code block (6 lines) in src/lib/stage3d/syncToMapping.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/stage3d/syncToMapping.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0015247d8db2598d", "name": "Commented-code block (15 lines) in src/lib/stage3d/atmosphere.ts:6", "shortDescription": {"text": "Commented-code block (15 lines) in src/lib/stage3d/atmosphere.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6623d6b4905d5f1", "name": "Commented-code block (9 lines) in src/lib/stage3d/demoReel.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/stage3d/demoReel.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-486502e2dadc9420", "name": "Commented-code block (8 lines) in src/lib/stage3d/Stage3DRenderer.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/stage3d/Stage3DRenderer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8d08a3dbb661ef7", "name": "Commented-code block (5 lines) in src/lib/stage3d/venues.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stage3d/venues.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5337b534d785061", "name": "Commented-code block (5 lines) in src/lib/stage3d/elementTypes.ts:270", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/stage3d/elementTypes.ts:270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8ec0836fe9e218f", "name": "Commented-code block (5 lines) in src/lib/svg/renderer.ts:770", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/svg/renderer.ts:770"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-297a4db4374c6a22", "name": "Commented-code block (6 lines) in src/lib/output/atlasLayout.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/output/atlasLayout.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6aa3fb854c29cd72", "name": "Commented-code block (6 lines) in src/lib/output/blendRenderer.ts:60", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/output/blendRenderer.ts: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-707240132c40b6ff", "name": "Commented-code block (7 lines) in src/lib/splat/splatLoader.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/splat/splatLoader.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf8510d578014312", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/splatLoader.ts:107", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/splatLoader.ts:107"}, "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-115446cd0ca66c38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/plyLoader.ts:387", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/plyLoader.ts:387"}, "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-6a1aafa70b8e8525", "name": "Commented-code block (5 lines) in src/lib/effects/wavejsVisualizer.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/wavejsVisualizer.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0f1f3cedaf04aae", "name": "Commented-code block (5 lines) in src/lib/effects/analyzerLabVisualizer.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/analyzerLabVisualizer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-218c93cc02f0bad3", "name": "Commented-code block (19 lines) in src/lib/effects/handfxVisualizer.ts:3", "shortDescription": {"text": "Commented-code block (19 lines) in src/lib/effects/handfxVisualizer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d96e25877118f64b", "name": "Commented-code block (8 lines) in src/lib/effects/audiomotionVisualizer.ts:106", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/effects/audiomotionVisualizer.ts:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9090998ca7a8b88c", "name": "Commented-code block (5 lines) in src/lib/effects/effectUX.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/effectUX.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-661a8284039f034e", "name": "Commented-code block (6 lines) in src/lib/effects/hydraVisualizer.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/effects/hydraVisualizer.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb3cb4a91f3e6ce4", "name": "Commented-code block (6 lines) in src/lib/effects/effectCatalog.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/effects/effectCatalog.ts: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-a0f8b101253d5d0a", "name": "Commented-code block (6 lines) in src/lib/effects/ghostPilot/canyonShader.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostPilot/canyonShader.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fddcc981bc29b372", "name": "Commented-code block (11 lines) in src/lib/effects/ghostPilot/ghostPilotVisualizer.ts:3", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/effects/ghostPilot/ghostPilotVisualizer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff3a076a0ea4e94f", "name": "Commented-code block (5 lines) in src/lib/effects/ghostfx/ghostfxVisualizer.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/ghostfxVisualizer.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef95c0a5894c342b", "name": "Commented-code block (5 lines) in src/lib/effects/ghostfx/audioSmoother.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/audioSmoother.ts: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-6b9c80df89e046bf", "name": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/sceneHeader.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/sceneHeader.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-835ef0c88b87d17c", "name": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/liquid.wgsl.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/liquid.wgsl.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8855250d37f6453f", "name": "Commented-code block (5 lines) in src/lib/effects/ghostfx/scenes/drift.wgsl.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/scenes/drift.wgsl.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd9f898496ffa8b0", "name": "Commented-code block (6 lines) in src/lib/effects/ghostfx/scenes/ribbons.wgsl.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostfx/scenes/ribbons.wgsl.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cd6258951a81b7b", "name": "Commented-code block (6 lines) in src/lib/effects/ghostfx/shaders/post.wgsl.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostfx/shaders/post.wgsl.ts: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-ba01323a6cba86d6", "name": "Commented-code block (5 lines) in src/lib/plugins/registry.ts:746", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/plugins/registry.ts:746"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c95b3eae686b8181", "name": "Commented-code block (5 lines) in src/lib/storage/assetRegistry.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/storage/assetRegistry.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d2b1c78fb66e258", "name": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-shot.mjs:8)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-shot.mjs:8)"}, "fullDescription": {"text": "`scripts/cdp-shot.mjs:8` calls `GET http://127.0.0.1:${port}/json/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/json/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-08bc726708a43db4", "name": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-console.mjs:9)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-console.mjs:9)"}, "fullDescription": {"text": "`scripts/cdp-console.mjs:9` calls `GET http://127.0.0.1:${port}/json/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/json/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dd0af27e23f33be", "name": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-eval.mjs:19)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-eval.mjs:19)"}, "fullDescription": {"text": "`scripts/cdp-eval.mjs:19` calls `GET http://127.0.0.1:${port}/json/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/json/list`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-40ae6da84db26ed9", "name": "Dangling fetch: GET http://127.0.0.1:9002/spout/receive/${encodeURIComponent(state.senderName)} (src/lib/renderer/spoutC", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:9002/spout/receive/${encodeURIComponent(state.senderName)} (src/lib/renderer/spoutCanvasReceiver.ts:152)"}, "fullDescription": {"text": "`src/lib/renderer/spoutCanvasReceiver.ts:152` calls `GET http://127.0.0.1:9002/spout/receive/${encodeURIComponent(state.senderName)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:9002/spout/receive/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-49f0bbebbafbd274", "name": "Dangling fetch: POST http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:404)", "shortDescription": {"text": "Dangling fetch: POST http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:404)"}, "fullDescription": {"text": "`src/lib/stores/shaderLibrary.ts:404` calls `POST http://localhost:9002/api/shaders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:9002/api/shaders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9b76af635ec1000", "name": "Dangling fetch: DELETE http://localhost:9002/api/shaders/${shader.id} (src/lib/stores/shaderLibrary.ts:424)", "shortDescription": {"text": "Dangling fetch: DELETE http://localhost:9002/api/shaders/${shader.id} (src/lib/stores/shaderLibrary.ts:424)"}, "fullDescription": {"text": "`src/lib/stores/shaderLibrary.ts:424` calls `DELETE http://localhost:9002/api/shaders/${shader.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:9002/api/shaders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-485a15a0f1f68da7", "name": "Dangling fetch: GET http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:443)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:443)"}, "fullDescription": {"text": "`src/lib/stores/shaderLibrary.ts:443` calls `GET http://localhost:9002/api/shaders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:9002/api/shaders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e4d78871dc79778", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:392)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:392)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:392` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cadd7ccd9e476702", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent (src/lib/api/ai-cl", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent (src/lib/api/ai-client.ts:423)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:423` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9b88bc4470faa28a", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:predictLongRunning (src/lib/api/ai", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:predictLongRunning (src/lib/api/ai-client.ts:758)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:758` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${model}:predictLongRunning` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5295304184ea5af5", "name": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/${operationName} (src/lib/api/ai-client.ts:795)", "shortDescription": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/${operationName} (src/lib/api/ai-client.ts:795)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:795` calls `GET https://generativelanguage.googleapis.com/v1beta/${operationName}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-83f331549e2a2a26", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:872)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:872)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:872` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac2ccff81b84dab4", "name": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${geminiModel}:generateContent (src/lib/api", "shortDescription": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${geminiModel}:generateContent (src/lib/api/ai-client.ts:889)"}, "fullDescription": {"text": "`src/lib/api/ai-client.ts:889` calls `POST https://generativelanguage.googleapis.com/v1beta/models/${geminiModel}:generateContent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/generativelanguage.googleapis.com/v1beta/models/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-244f8a0e292bea2e", "name": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (src/lib/utils/versionCheck.ts:142)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (src/lib/utils/versionCheck.ts:142)"}, "fullDescription": {"text": "`src/lib/utils/versionCheck.ts:142` calls `GET https://api.github.com/repos/${REPO}/releases/latest` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>/releases/latest`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-31d507ed8d9cb066", "name": "Unused endpoint: GET /api/shaders", "shortDescription": {"text": "Unused endpoint: GET /api/shaders"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/shaders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c79bcdb652e34f92", "name": "Unused endpoint: GET /api/shader/:filename(*)", "shortDescription": {"text": "Unused endpoint: GET /api/shader/:filename(*)"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/shader/:filename(*)` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afd535bb11f2d869", "name": "Unused endpoint: GET /api/new-shaders", "shortDescription": {"text": "Unused endpoint: GET /api/new-shaders"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/new-shaders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96684572a891a923", "name": "Unused endpoint: GET /api/manifest", "shortDescription": {"text": "Unused endpoint: GET /api/manifest"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/manifest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1f50e74a4ccef09", "name": "Unused endpoint: POST /api/manifest", "shortDescription": {"text": "Unused endpoint: POST /api/manifest"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `POST /api/manifest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74352d16be652a99", "name": "Unused endpoint: POST /api/import-shader", "shortDescription": {"text": "Unused endpoint: POST /api/import-shader"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `POST /api/import-shader` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ad1de67cf9a52bc", "name": "Unused endpoint: PATCH /api/shader-entry", "shortDescription": {"text": "Unused endpoint: PATCH /api/shader-entry"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `PATCH /api/shader-entry` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea7e67f8fa2f6c0c", "name": "Unused endpoint: POST /api/thumbnail", "shortDescription": {"text": "Unused endpoint: POST /api/thumbnail"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `POST /api/thumbnail` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f473f0edff28987", "name": "Unused endpoint: GET /api/thumbnail/:filename", "shortDescription": {"text": "Unused endpoint: GET /api/thumbnail/:filename"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/thumbnail/:filename` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bba9ed49925af13", "name": "Unused endpoint: GET /api/thumbnails", "shortDescription": {"text": "Unused endpoint: GET /api/thumbnails"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/thumbnails` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b907747196bd765a", "name": "Unused endpoint: POST /api/bulk-tier", "shortDescription": {"text": "Unused endpoint: POST /api/bulk-tier"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `POST /api/bulk-tier` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1828ee30f3feaad9", "name": "Unused endpoint: GET /api/scan", "shortDescription": {"text": "Unused endpoint: GET /api/scan"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `GET /api/scan` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ece8604f2f6c27d6", "name": "Unused endpoint: POST /api/import-from", "shortDescription": {"text": "Unused endpoint: POST /api/import-from"}, "fullDescription": {"text": "`tools/shader-admin/server.js` declares `POST /api/import-from` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18206"}, "properties": {"repository": "riskcapital/ghost-arcade", "repoUrl": "https://github.com/riskcapital/ghost-arcade", "branch": "main"}, "results": [{"ruleId": "scanner-726f05d4ea87dc0d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 electron/main.js:137"}, "properties": {"repobilityId": "48d4c97f3512931b", "scanner": "scanner-primary", "fingerprint": "726f05d4ea87dc0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c787512a4b1e3459", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 electron/test-spout.js:16"}, "properties": {"repobilityId": "5f97a3fcec6664aa", "scanner": "scanner-primary", "fingerprint": "c787512a4b1e3459", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2cf1e9859743c687", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/ws-server.js:104"}, "properties": {"repobilityId": "a84152fae585d3a5", "scanner": "scanner-primary", "fingerprint": "2cf1e9859743c687", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e982651bf02cc43", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tools/shader-admin/server.js:259"}, "properties": {"repobilityId": "b193ef18b26ecda5", "scanner": "scanner-primary", "fingerprint": "8e982651bf02cc43", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-39e10c8ceaac276e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 tools/shader-admin/src/App.svelte:874"}, "properties": {"repobilityId": "b3ca6661d3f0badf", "scanner": "scanner-primary", "fingerprint": "39e10c8ceaac276e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ffc86219f8a86e19", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183"}, "properties": {"repobilityId": "b3c1a84cfce776bc", "scanner": "scanner-primary", "fingerprint": "ffc86219f8a86e19", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a5a4f27cd0c51f3b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183"}, "properties": {"repobilityId": "10b080a34a6645c7", "scanner": "scanner-primary", "fingerprint": "a5a4f27cd0c51f3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-79d052aa988a6124", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:182"}, "properties": {"repobilityId": "767d628f8404fbe0", "scanner": "scanner-primary", "fingerprint": "79d052aa988a6124", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3e1982ab9fe905c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/SliceOutputApp.svelte:391"}, "properties": {"repobilityId": "8143bdd1b9119c49", "scanner": "scanner-primary", "fingerprint": "3e1982ab9fe905c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba5f7ccda787a552", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/SpoutOutputApp.svelte:24"}, "properties": {"repobilityId": "bbb9eaf254f54574", "scanner": "scanner-primary", "fingerprint": "ba5f7ccda787a552", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3128ab161c17297c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/OutputDisplayApp.svelte:183"}, "properties": {"repobilityId": "45254df03e8c1371", "scanner": "scanner-primary", "fingerprint": "3128ab161c17297c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-61125c558c1ec202", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/App.svelte:205"}, "properties": {"repobilityId": "43b8d2293b5bef84", "scanner": "scanner-primary", "fingerprint": "61125c558c1ec202", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-326b1aa6e487497c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/OutputSharedTextureDisplayApp.svelte:315"}, "properties": {"repobilityId": "bd28fc9db0b5aa06", "scanner": "scanner-primary", "fingerprint": "326b1aa6e487497c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbf8097ac1b63d05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/shaderPreload.ts:50"}, "properties": {"repobilityId": "d36262fcb4ec2be1", "scanner": "scanner-primary", "fingerprint": "cbf8097ac1b63d05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ec15fadc18d719c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/recording/recorder.ts:129"}, "properties": {"repobilityId": "bd06e1a07ee8c9e5", "scanner": "scanner-primary", "fingerprint": "4ec15fadc18d719c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41f9cef4e93c2c31", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuEngine.ts:148"}, "properties": {"repobilityId": "34da8c95fc3c1bb3", "scanner": "scanner-primary", "fingerprint": "41f9cef4e93c2c31", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1789fb68f3cc71ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuFluidSim.ts:453"}, "properties": {"repobilityId": "704c34d3a966daf6", "scanner": "scanner-primary", "fingerprint": "1789fb68f3cc71ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8ba204f6186bd156", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuAdvLightPaint.ts:487"}, "properties": {"repobilityId": "6e30e6febaff7252", "scanner": "scanner-primary", "fingerprint": "8ba204f6186bd156", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec0375ae5a4540f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuEffectRunner.ts:171"}, "properties": {"repobilityId": "9a4fc5a6dd7417e5", "scanner": "scanner-primary", "fingerprint": "ec0375ae5a4540f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbac6085983a2af2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpu3DSmoke.ts:1077"}, "properties": {"repobilityId": "a1a54df980ed69cd", "scanner": "scanner-primary", "fingerprint": "cbac6085983a2af2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-44207d3c61380e8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPointCloudFX.ts:859"}, "properties": {"repobilityId": "47bf83970d32ebb8", "scanner": "scanner-primary", "fingerprint": "44207d3c61380e8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8565d9876452a6dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPaintDrip.ts:331"}, "properties": {"repobilityId": "2815783b89d67d67", "scanner": "scanner-primary", "fingerprint": "8565d9876452a6dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-30a954033c8ea542", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/gpuLayerRenderer.ts:462"}, "properties": {"repobilityId": "1baed88e7eff8c10", "scanner": "scanner-primary", "fingerprint": "30a954033c8ea542", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b31c7b9193eb652", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuStrokeParticles.ts:1301"}, "properties": {"repobilityId": "41dd31defb36f5c8", "scanner": "scanner-primary", "fingerprint": "7b31c7b9193eb652", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0d7e6b74b05a900", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuShared.ts:52"}, "properties": {"repobilityId": "1c7fdeb0c2a59bba", "scanner": "scanner-primary", "fingerprint": "d0d7e6b74b05a900", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95e87ba3386aba38", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/webgpuPixelParticles.ts:721"}, "properties": {"repobilityId": "9cce0990e2a8dfe5", "scanner": "scanner-primary", "fingerprint": "95e87ba3386aba38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a76aa4a5b22b6c3e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/renderer/geometry.ts:550"}, "properties": {"repobilityId": "ff6609ebcf2f196d", "scanner": "scanner-primary", "fingerprint": "a76aa4a5b22b6c3e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-700e4b694cf24264", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/engine.ts:518"}, "properties": {"repobilityId": "85351dc184dbcce9", "scanner": "scanner-primary", "fingerprint": "700e4b694cf24264", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-471e21f6210a1195", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/renderer/shaders/webgpuPlanet.ts:1200"}, "properties": {"repobilityId": "a61cd98413c7e852", "scanner": "scanner-primary", "fingerprint": "471e21f6210a1195", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b70cbcf4e7a96f55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/keyframeTimeline.ts:73"}, "properties": {"repobilityId": "a88bbd5a8113036a", "scanner": "scanner-primary", "fingerprint": "b70cbcf4e7a96f55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-93051e1dffa344d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/connection.ts:38"}, "properties": {"repobilityId": "5ca124c138030eb7", "scanner": "scanner-primary", "fingerprint": "93051e1dffa344d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4cf63db85a69236f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/layers.ts:758"}, "properties": {"repobilityId": "49f3a87e808af0e0", "scanner": "scanner-primary", "fingerprint": "4cf63db85a69236f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a5527a642e51738", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/shaderLibrary.ts:509"}, "properties": {"repobilityId": "82bb685feb10739d", "scanner": "scanner-primary", "fingerprint": "5a5527a642e51738", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b018907aeedaedd7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/updateChecker.ts:89"}, "properties": {"repobilityId": "beeaac2e68a404c9", "scanner": "scanner-primary", "fingerprint": "b018907aeedaedd7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f7d990a7ff11525", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/settings.ts:1026"}, "properties": {"repobilityId": "1bc46fc85e4c53ac", "scanner": "scanner-primary", "fingerprint": "9f7d990a7ff11525", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75b56251e09a2b20", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stores/spout.ts:66"}, "properties": {"repobilityId": "fc9514f85f27c283", "scanner": "scanner-primary", "fingerprint": "75b56251e09a2b20", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b0e09332d58a83c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/audioBroadcast.ts:65"}, "properties": {"repobilityId": "b73b44d7c020b8d1", "scanner": "scanner-primary", "fingerprint": "b0e09332d58a83c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e39c3d7977715d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputPixelBroadcast.ts:137"}, "properties": {"repobilityId": "f7ebf281b3d9ecab", "scanner": "scanner-primary", "fingerprint": "7e39c3d7977715d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e96d97035c69a8fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputSharedTexturePresenter.ts:145"}, "properties": {"repobilityId": "c7c75566f3b6df02", "scanner": "scanner-primary", "fingerprint": "e96d97035c69a8fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-348261868e3252ac", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/modulationBroadcast.ts:55"}, "properties": {"repobilityId": "7953229802b9799d", "scanner": "scanner-primary", "fingerprint": "348261868e3252ac", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-35f764e433846bc2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/sync/nativeRendererSync.ts:676"}, "properties": {"repobilityId": "41432f2541094dda", "scanner": "scanner-primary", "fingerprint": "35f764e433846bc2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fd66de908d07f84c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/nativeRendererSync.ts:322"}, "properties": {"repobilityId": "41c5eee45ff4f729", "scanner": "scanner-primary", "fingerprint": "fd66de908d07f84c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1a669e37108d3fdb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/outputComposite.ts:43"}, "properties": {"repobilityId": "b882589e5c36e035", "scanner": "scanner-primary", "fingerprint": "1a669e37108d3fdb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37fd1f796ad41786", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/sync/stateBroadcast.ts:241"}, "properties": {"repobilityId": "bfd4d0f1be5ca006", "scanner": "scanner-primary", "fingerprint": "37fd1f796ad41786", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fc7d0e7f313b40c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/midi/midiManager.ts:94"}, "properties": {"repobilityId": "b82bef004921cc4b", "scanner": "scanner-primary", "fingerprint": "3fc7d0e7f313b40c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-069720b960b3dc04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/isf/parser.ts:117"}, "properties": {"repobilityId": "2eb8af94f3e92cf8", "scanner": "scanner-primary", "fingerprint": "069720b960b3dc04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d20098d5e3e86719", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/isf/renderer.ts:164"}, "properties": {"repobilityId": "f8a72131e25e3800", "scanner": "scanner-primary", "fingerprint": "d20098d5e3e86719", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9018f7ef837e981f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/api/ai-client.ts:958"}, "properties": {"repobilityId": "af062f56b20e201f", "scanner": "scanner-primary", "fingerprint": "9018f7ef837e981f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6c896e132adb419", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/utils/videoLoop.ts:171"}, "properties": {"repobilityId": "0c50fb5347f237cb", "scanner": "scanner-primary", "fingerprint": "b6c896e132adb419", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-897f8549a182ccad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/SplatPanel.svelte:176"}, "properties": {"repobilityId": "5cc7f307300fabaa", "scanner": "scanner-primary", "fingerprint": "897f8549a182ccad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5958bc72a40a9ca7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/Canvas.svelte:607"}, "properties": {"repobilityId": "8fc14d3c4a515520", "scanner": "scanner-primary", "fingerprint": "5958bc72a40a9ca7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-50b59557f31bb39e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/WebGPUCanvas.svelte:742"}, "properties": {"repobilityId": "8a3c5f4e60ffc3b9", "scanner": "scanner-primary", "fingerprint": "50b59557f31bb39e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcbe5357856341b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/ScreenPanel.svelte:92"}, "properties": {"repobilityId": "73dfb31af30576d0", "scanner": "scanner-primary", "fingerprint": "bcbe5357856341b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e5d639363db09c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/Model3DPanel.svelte:206"}, "properties": {"repobilityId": "7d94b941b8cce9f7", "scanner": "scanner-primary", "fingerprint": "5e5d639363db09c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e552b7a7bc6cf160", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/KeyframeTimeline.svelte:45"}, "properties": {"repobilityId": "24ee19d6223d7821", "scanner": "scanner-primary", "fingerprint": "e552b7a7bc6cf160", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-77c53b72f30eaaab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MobileApp.svelte:34"}, "properties": {"repobilityId": "83c2fe6bd4718682", "scanner": "scanner-primary", "fingerprint": "77c53b72f30eaaab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe527075698fe4ff", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/lib/components/ShaderLibrary.svelte:287"}, "properties": {"repobilityId": "04cdd80e95ec7c10", "scanner": "scanner-primary", "fingerprint": "fe527075698fe4ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-dfbf215f92617ae9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MediaTray.svelte:80"}, "properties": {"repobilityId": "58277e23f8dc6aa6", "scanner": "scanner-primary", "fingerprint": "dfbf215f92617ae9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e333febab69acbab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/OutputWindow.svelte:116"}, "properties": {"repobilityId": "525c16ee526741f3", "scanner": "scanner-primary", "fingerprint": "e333febab69acbab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1da4bf489076009d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/VJModePanel.svelte:1429"}, "properties": {"repobilityId": "02d1f40d81c815c0", "scanner": "scanner-primary", "fingerprint": "1da4bf489076009d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5bfb7c8a14aabdba", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/VJModePanel.svelte:164"}, "properties": {"repobilityId": "eb2eea78169c6cef", "scanner": "scanner-primary", "fingerprint": "5bfb7c8a14aabdba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-a76ad2197f65106e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/AIShaderGenerator.svelte:164"}, "properties": {"repobilityId": "b05063d78fcaa7ad", "scanner": "scanner-primary", "fingerprint": "a76ad2197f65106e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e0b9dbcbe60a174", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/MasterWarpHandles.svelte:69"}, "properties": {"repobilityId": "797ca3ded9846627", "scanner": "scanner-primary", "fingerprint": "6e0b9dbcbe60a174", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a63440f170385154", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/SynthVision.svelte:1765"}, "properties": {"repobilityId": "29ad17551005251e", "scanner": "scanner-primary", "fingerprint": "a63440f170385154", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b56d53a5434a26a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/LayerPanel.svelte:73"}, "properties": {"repobilityId": "f3c5d3e126ce1f77", "scanner": "scanner-primary", "fingerprint": "b56d53a5434a26a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0eb1a855807c7f51", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 src/lib/components/LayerPanel.svelte:428"}, "properties": {"repobilityId": "ae1c11afb394898d", "scanner": "scanner-primary", "fingerprint": "0eb1a855807c7f51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-016df83cb9ae679f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/components/timeline/TimelineGrid.svelte:89"}, "properties": {"repobilityId": "55b0c2f13a287382", "scanner": "scanner-primary", "fingerprint": "016df83cb9ae679f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e613f500aafc026e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StagePresetPicker.svelte:23"}, "properties": {"repobilityId": "1ef57b56497cfc78", "scanner": "scanner-primary", "fingerprint": "e613f500aafc026e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9f971ed9b2df251d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/lib/components/stage3d/StageVenuePicker.svelte:14"}, "properties": {"repobilityId": "553c27a405eab0e8", "scanner": "scanner-primary", "fingerprint": "9f971ed9b2df251d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c904b7f11d11dabe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/model3d/Model3DRenderer.ts:945"}, "properties": {"repobilityId": "8b5a83cf8f0d70e3", "scanner": "scanner-primary", "fingerprint": "c904b7f11d11dabe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf82f80b4cc53412", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/audio/modulation.ts:941"}, "properties": {"repobilityId": "bba5078e6f6f8524", "scanner": "scanner-primary", "fingerprint": "cf82f80b4cc53412", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9ccc5477daebced", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/lightpainting/webglRenderer.ts:503"}, "properties": {"repobilityId": "78e64e8a28b80c0b", "scanner": "scanner-primary", "fingerprint": "f9ccc5477daebced", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0966a7c242d52e6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/stage3d/Stage3DRenderer.ts:699"}, "properties": {"repobilityId": "d6614293105547be", "scanner": "scanner-primary", "fingerprint": "c0966a7c242d52e6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f6b4251df6be210", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/osc/oscStore.ts:149"}, "properties": {"repobilityId": "3e35ec817d12cf1b", "scanner": "scanner-primary", "fingerprint": "8f6b4251df6be210", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee2fd641d538f091", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/splat/splatLoader.ts:23"}, "properties": {"repobilityId": "79127e055b408901", "scanner": "scanner-primary", "fingerprint": "ee2fd641d538f091", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec463e32888c7e14", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/splat/plyLoader.ts:632"}, "properties": {"repobilityId": "883f15cf0d7e4489", "scanner": "scanner-primary", "fingerprint": "ec463e32888c7e14", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-662c3c45fc06a809", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/effects/milkdropVisualizer.ts:63"}, "properties": {"repobilityId": "1115a76e0f3d440e", "scanner": "scanner-primary", "fingerprint": "662c3c45fc06a809", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-45d21d9641c7b29c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in package.json:41"}, "properties": {"repobilityId": "40fa5506c1a3b684", "scanner": "scanner-primary", "fingerprint": "45d21d9641c7b29c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-2f3c5e04b6d5cfda", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in electron/main.js:19"}, "properties": {"repobilityId": "62f4d103c3300b41", "scanner": "scanner-primary", "fingerprint": "2f3c5e04b6d5cfda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "electron/main.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-6458d79e084959ce", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in electron/main.js:3863"}, "properties": {"repobilityId": "733fef30204e4253", "scanner": "scanner-primary", "fingerprint": "6458d79e084959ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "electron/main.js"}, "region": {"startLine": 3863}}}]}, {"ruleId": "scanner-880cea15de68f84e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in electron/native/scripts/build-native.mjs:1"}, "properties": {"repobilityId": "d489b7303101c537", "scanner": "scanner-primary", "fingerprint": "880cea15de68f84e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "electron/native/scripts/build-native.mjs"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19282f97aeef56c1", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in tools/shader-admin/server.js:17"}, "properties": {"repobilityId": "a5bee1523da18795", "scanner": "scanner-primary", "fingerprint": "19282f97aeef56c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/shader-admin/server.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-51798dee5c2d148f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/threejs/embryo/index.html:47"}, "properties": {"repobilityId": "81da75357597bb5c", "scanner": "scanner-primary", "fingerprint": "51798dee5c2d148f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/threejs/embryo/index.html"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-01f55fa1a449c71e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/native-mobile-main.ts:31"}, "properties": {"repobilityId": "0b5888165427f0f2", "scanner": "scanner-primary", "fingerprint": "01f55fa1a449c71e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/native-mobile-main.ts"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-cc5d839f6918b6f2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/lib/sync/stateBroadcast.ts:1102"}, "properties": {"repobilityId": "d79561866d56e4e3", "scanner": "scanner-primary", "fingerprint": "cc5d839f6918b6f2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/sync/stateBroadcast.ts"}, "region": {"startLine": 1102}}}]}, {"ruleId": "scanner-6b6784706c797214", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in src/lib/components/MediaTray.svelte:1371"}, "properties": {"repobilityId": "8834ea67e844793d", "scanner": "scanner-primary", "fingerprint": "6b6784706c797214", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/components/MediaTray.svelte"}, "region": {"startLine": 1371}}}]}, {"ruleId": "scanner-7141401cd3d7adf5", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in src/lib/components/MediaLibrary.svelte:281"}, "properties": {"repobilityId": "a18815399cbf56cb", "scanner": "scanner-primary", "fingerprint": "7141401cd3d7adf5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/components/MediaLibrary.svelte"}, "region": {"startLine": 281}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6ac4ae69c5a42541", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6ac4ae69c5a42541", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 155}}}]}, {"ruleId": "scanner-6ba9bfab5f283202", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6ac4ae69c5a42541", "scanner": "scanner-primary", "fingerprint": "6ba9bfab5f283202", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 216}}}]}, {"ruleId": "scanner-b769174c9fcf8ea8", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e34b6cb9b56931d2", "scanner": "scanner-primary", "fingerprint": "b769174c9fcf8ea8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3053d04728921c5", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "54ff8cec63a458dc", "scanner": "scanner-primary", "fingerprint": "d3053d04728921c5", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "electron/native/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-407458665bd88985", "level": "note", "message": {"text": "Very large file: electron/main.js (4054 lines)"}, "properties": {"repobilityId": "98b3549e7ab356e8", "scanner": "scanner-primary", "fingerprint": "407458665bd88985", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e28ec961f73b39e", "level": "note", "message": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 lines)"}, "properties": {"repobilityId": "972982e1dc73a0a1", "scanner": "scanner-primary", "fingerprint": "6e28ec961f73b39e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85d91b4d14e8c629", "level": "note", "message": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 lines)"}, "properties": {"repobilityId": "cd11362b784a584c", "scanner": "scanner-primary", "fingerprint": "85d91b4d14e8c629", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-be225a7d11d0f88d", "level": "note", "message": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_module_internal.js (8823 lines)"}, "properties": {"repobilityId": "5e943150ab56f34e", "scanner": "scanner-primary", "fingerprint": "be225a7d11d0f88d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47f7c5071ba56377", "level": "note", "message": {"text": "Very large file: src/lib/types.ts (5386 lines)"}, "properties": {"repobilityId": "1df5ffb8039732db", "scanner": "scanner-primary", "fingerprint": "47f7c5071ba56377", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ef96d436869220d", "level": "note", "message": {"text": "Very large file: src/lib/renderer/webgpu3DSmoke.ts (1394 lines)"}, "properties": {"repobilityId": "b93b20dd7a47f764", "scanner": "scanner-primary", "fingerprint": "9ef96d436869220d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b3ce2c664cfa1b38", "level": "note", "message": {"text": "Very large file: src/lib/renderer/webgpuParticleField.ts (1902 lines)"}, "properties": {"repobilityId": "1c5d4539c64bbace", "scanner": "scanner-primary", "fingerprint": "b3ce2c664cfa1b38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f5fa56621e7f900", "level": "note", "message": {"text": "Very large file: src/lib/renderer/effects.ts (4931 lines)"}, "properties": {"repobilityId": "fc22b6ca6d6e4172", "scanner": "scanner-primary", "fingerprint": "2f5fa56621e7f900", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-758071f998999d9e", "level": "note", "message": {"text": "Very large file: src/lib/renderer/webgpuStrokeParticles.ts (1922 lines)"}, "properties": {"repobilityId": "e4e1684835a4809a", "scanner": "scanner-primary", "fingerprint": "758071f998999d9e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7cb7ae76f7a23476", "level": "note", "message": {"text": "Very large file: src/lib/renderer/webgpuPixelParticles.ts (1238 lines)"}, "properties": {"repobilityId": "04fc89a2faaedeb7", "scanner": "scanner-primary", "fingerprint": "7cb7ae76f7a23476", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-128ea467269a24a4", "level": "note", "message": {"text": "Very large file: src/lib/renderer/engine.ts (3462 lines)"}, "properties": {"repobilityId": "ca6e859e607c7634", "scanner": "scanner-primary", "fingerprint": "128ea467269a24a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-654e73c6df1cab23", "level": "note", "message": {"text": "Very large file: src/lib/renderer/shaders/basic.ts (9546 lines)"}, "properties": {"repobilityId": "1bbc402706d5c151", "scanner": "scanner-primary", "fingerprint": "654e73c6df1cab23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d77b1e86f3bc744", "level": "note", "message": {"text": "Very large file: src/lib/renderer/shaders/webgpuPlanet.ts (1317 lines)"}, "properties": {"repobilityId": "12a133f198d5d3ce", "scanner": "scanner-primary", "fingerprint": "4d77b1e86f3bc744", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb2d819d3d76b4f0", "level": "note", "message": {"text": "Very large file: src/lib/renderer/shaders/premium-standalone.ts (2192 lines)"}, "properties": {"repobilityId": "b9b3887474c18d28", "scanner": "scanner-primary", "fingerprint": "fb2d819d3d76b4f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9a9ae21f20751e31", "level": "note", "message": {"text": "Very large file: src/lib/stores/layers.ts (5602 lines)"}, "properties": {"repobilityId": "f5e71b064af3aaac", "scanner": "scanner-primary", "fingerprint": "9a9ae21f20751e31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d81208c0f84be56", "level": "note", "message": {"text": "Very large file: src/lib/stores/vjClipLauncher.ts (2530 lines)"}, "properties": {"repobilityId": "41043682f336850c", "scanner": "scanner-primary", "fingerprint": "9d81208c0f84be56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ab178418622589d2", "level": "note", "message": {"text": "Very large file: src/lib/stores/settings.ts (1692 lines)"}, "properties": {"repobilityId": "47d081e7767c509c", "scanner": "scanner-primary", "fingerprint": "ab178418622589d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4852f37a0dfa4adc", "level": "note", "message": {"text": "Very large file: src/lib/drawing/renderer.ts (2067 lines)"}, "properties": {"repobilityId": "8b44952f0dcff130", "scanner": "scanner-primary", "fingerprint": "4852f37a0dfa4adc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ca61a95ccb06855", "level": "note", "message": {"text": "Very large file: src/lib/model3d/Model3DRenderer.ts (2323 lines)"}, "properties": {"repobilityId": "5e92d4b10756ea21", "scanner": "scanner-primary", "fingerprint": "9ca61a95ccb06855", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c320837916d01501", "level": "note", "message": {"text": "Very large file: src/lib/audio/modulation.ts (1362 lines)"}, "properties": {"repobilityId": "4492cd325100bf71", "scanner": "scanner-primary", "fingerprint": "c320837916d01501", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c72eba0aa950dd45", "level": "note", "message": {"text": "Very large file: src/lib/lightpainting/renderer.ts (1452 lines)"}, "properties": {"repobilityId": "079c0ef80d9dee48", "scanner": "scanner-primary", "fingerprint": "c72eba0aa950dd45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f06175f7ea76a375", "level": "note", "message": {"text": "Very large file: src/lib/lightpainting/webglRenderer.ts (1395 lines)"}, "properties": {"repobilityId": "9c5d441dd4b16f80", "scanner": "scanner-primary", "fingerprint": "f06175f7ea76a375", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-786c1ee4869eea29", "level": "note", "message": {"text": "Very large file: src/lib/stage3d/Stage3DRenderer.ts (2021 lines)"}, "properties": {"repobilityId": "772c7b9ec0b960c1", "scanner": "scanner-primary", "fingerprint": "786c1ee4869eea29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-686da3fcf5d2c63a", "level": "note", "message": {"text": "Very large file: src/lib/stage3d/venues.ts (1251 lines)"}, "properties": {"repobilityId": "02841fc6fbcbbd41", "scanner": "scanner-primary", "fingerprint": "686da3fcf5d2c63a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca8f3bfc5062639a", "level": "note", "message": {"text": "Very large file: src/lib/svg/renderer.ts (1910 lines)"}, "properties": {"repobilityId": "9cfd6efebc3aedc6", "scanner": "scanner-primary", "fingerprint": "ca8f3bfc5062639a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-22a27a165846813d", "level": "note", "message": {"text": "Very large file: src/lib/lines/renderer.ts (1485 lines)"}, "properties": {"repobilityId": "d7eda4bab17cfff1", "scanner": "scanner-primary", "fingerprint": "22a27a165846813d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3eb9268cb2447984", "level": "note", "message": {"text": "Very large file: src/lib/splat/SplatRenderer.ts (1777 lines)"}, "properties": {"repobilityId": "adc17657bf54af51", "scanner": "scanner-primary", "fingerprint": "3eb9268cb2447984", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1f99f2438a70c30", "level": "note", "message": {"text": "Very large file: src/lib/effects/effectUX.ts (3663 lines)"}, "properties": {"repobilityId": "cd27363195120ee0", "scanner": "scanner-primary", "fingerprint": "d1f99f2438a70c30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-51f604dc9c5d7291", "level": "note", "message": {"text": "Very large file: src/lib/effects/ghostfx/ghostfxVisualizer.ts (1733 lines)"}, "properties": {"repobilityId": "81f19aeb35189ec0", "scanner": "scanner-primary", "fingerprint": "51f604dc9c5d7291", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-609a0f88510fe029", "level": "note", "message": {"text": "91 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "609a0f88510fe029", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-b445c7d43bcff3d0", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: native-mobile/package.json"}, "properties": {"repobilityId": "0dc9f3a85ade3099", "scanner": "scanner-primary", "fingerprint": "b445c7d43bcff3d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "native-mobile/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0096f567c31ae688", "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": "c0774be862272382", "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": "73aab29668a07a7d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "1b1d974d53ab725c", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "2d8c1ca1bbe0d134", "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": "53be36c898feb46f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-07aa8ebbc2d850b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in vite.config.ts:9"}, "properties": {"repobilityId": "a62b3df4c1d56ea6", "scanner": "scanner-primary", "fingerprint": "07aa8ebbc2d850b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-114adfb70e774752", "level": "none", "message": {"text": "Commented-code block (7 lines) in electron/preload.cjs:26"}, "properties": {"repobilityId": "e1d2367c422c0675", "scanner": "scanner-primary", "fingerprint": "114adfb70e774752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a19e14300c84994", "level": "none", "message": {"text": "Commented-code block (7 lines) in electron/osc-parser.cjs:3"}, "properties": {"repobilityId": "58e4cc67ba9483bc", "scanner": "scanner-primary", "fingerprint": "1a19e14300c84994", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2addce15d802053", "level": "none", "message": {"text": "Commented-code block (8 lines) in electron/main.js:42"}, "properties": {"repobilityId": "967a744552278452", "scanner": "scanner-primary", "fingerprint": "c2addce15d802053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b1a660437b24ab8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 electron/main.js:170"}, "properties": {"repobilityId": "4a4eef40677988ae", "scanner": "scanner-primary", "fingerprint": "4b1a660437b24ab8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-751ba9cf98e40f11", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-shot.mjs:8"}, "properties": {"repobilityId": "0f3e8155686280cd", "scanner": "scanner-primary", "fingerprint": "751ba9cf98e40f11", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40735b9a1c3c9fca", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-console.mjs:9"}, "properties": {"repobilityId": "a62647d13d995312", "scanner": "scanner-primary", "fingerprint": "40735b9a1c3c9fca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8878fdaf7571f98d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/cdp-eval.mjs:19"}, "properties": {"repobilityId": "6f709580fbc9e470", "scanner": "scanner-primary", "fingerprint": "8878fdaf7571f98d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7db3f2968485e6e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/ws-server.js:242"}, "properties": {"repobilityId": "ceb9e5effdadd742", "scanner": "scanner-primary", "fingerprint": "7db3f2968485e6e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef2625b570ee0b42", "level": "note", "message": {"text": "Legacy-named symbol `Test_Full_Pro_v1` in tools/generate-test-project.mjs:21"}, "properties": {"repobilityId": "c7fa1423c6525378", "scanner": "scanner-primary", "fingerprint": "ef2625b570ee0b42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4036add49728a68b", "level": "note", "message": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143"}, "properties": {"repobilityId": "532bfe81a99eb705", "scanner": "scanner-primary", "fingerprint": "4036add49728a68b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ccedad758f7c1e2e", "level": "none", "message": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:14"}, "properties": {"repobilityId": "8887b8c2afdb6d7b", "scanner": "scanner-primary", "fingerprint": "ccedad758f7c1e2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b876081f0e3c42b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140"}, "properties": {"repobilityId": "eeb7e7b0f8726b43", "scanner": "scanner-primary", "fingerprint": "3b876081f0e3c42b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae20fb0511e42254", "level": "note", "message": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143"}, "properties": {"repobilityId": "7e23b949d66bab58", "scanner": "scanner-primary", "fingerprint": "ae20fb0511e42254", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cdade13839f63082", "level": "none", "message": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.js:14"}, "properties": {"repobilityId": "fedc6a891fa1edd2", "scanner": "scanner-primary", "fingerprint": "cdade13839f63082", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de74b22bfde1ed47", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140"}, "properties": {"repobilityId": "d179cb9d919fb55c", "scanner": "scanner-primary", "fingerprint": "de74b22bfde1ed47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a3e11ccbd5b80cc9", "level": "note", "message": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_module_internal.js:8146"}, "properties": {"repobilityId": "7b3518957ca89875", "scanner": "scanner-primary", "fingerprint": "a3e11ccbd5b80cc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bbd95dd32698c4b7", "level": "none", "message": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_module_internal.js:9"}, "properties": {"repobilityId": "8606035a29766bff", "scanner": "scanner-primary", "fingerprint": "bbd95dd32698c4b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acb8ef804dad4e22", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_module_internal.js:139"}, "properties": {"repobilityId": "9caf233688147ae6", "scanner": "scanner-primary", "fingerprint": "acb8ef804dad4e22", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3386048e90ad3de6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/main.ts:39"}, "properties": {"repobilityId": "83c9c4e05ca1f70f", "scanner": "scanner-primary", "fingerprint": "3386048e90ad3de6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2327b8b2ded16b94", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/shaderPreload.ts:72"}, "properties": {"repobilityId": "354503d7bdfda905", "scanner": "scanner-primary", "fingerprint": "2327b8b2ded16b94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-520f8216f1e97508", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/types.ts:899"}, "properties": {"repobilityId": "122c6558b507e477", "scanner": "scanner-primary", "fingerprint": "520f8216f1e97508", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a99d8c833e45981", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/recording/recorder.ts:131"}, "properties": {"repobilityId": "3c8c96f286492e52", "scanner": "scanner-primary", "fingerprint": "0a99d8c833e45981", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50cfbeb4dc2b3227", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/recording/offlineRender.ts:33"}, "properties": {"repobilityId": "cb11b1aaab4db6d3", "scanner": "scanner-primary", "fingerprint": "50cfbeb4dc2b3227", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3d8eeb3d0db1fbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/theming/rangeProgress.ts:6"}, "properties": {"repobilityId": "34a1494d288999f7", "scanner": "scanner-primary", "fingerprint": "c3d8eeb3d0db1fbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21d350ea63d3abf0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/types/butterchurn.d.ts:1"}, "properties": {"repobilityId": "2ae8482193483633", "scanner": "scanner-primary", "fingerprint": "21d350ea63d3abf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-500023f6b4e89235", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/types/web-experimental.d.ts:14"}, "properties": {"repobilityId": "7a86fc073ac4c41a", "scanner": "scanner-primary", "fingerprint": "500023f6b4e89235", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-850bf59aac810f95", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/renderer/webgpuFlythrough.ts:346"}, "properties": {"repobilityId": "76f3b0981e67b6da", "scanner": "scanner-primary", "fingerprint": "850bf59aac810f95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c321e9cd3b068ffe", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/renderer/webgpuCapability.ts:66"}, "properties": {"repobilityId": "dfe93a1d84888739", "scanner": "scanner-primary", "fingerprint": "c321e9cd3b068ffe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8360db993453856", "level": "note", "message": {"text": "Legacy-named symbol `v_old` in src/lib/renderer/webgpuFluidSim.ts:175"}, "properties": {"repobilityId": "333b76c74de1b588", "scanner": "scanner-primary", "fingerprint": "d8360db993453856", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7d5d963b03682055", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuFluidSim.ts:50"}, "properties": {"repobilityId": "6a16cb43f47770a5", "scanner": "scanner-primary", "fingerprint": "7d5d963b03682055", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d0e584f0a1f5bf5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuShaderCatalog.ts:47"}, "properties": {"repobilityId": "6cf1a2219f48ec24", "scanner": "scanner-primary", "fingerprint": "4d0e584f0a1f5bf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61951ef82bf72d58", "level": "note", "message": {"text": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuAdvLightPaint.ts:88"}, "properties": {"repobilityId": "4861ebb656be3920", "scanner": "scanner-primary", "fingerprint": "61951ef82bf72d58", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a6d0164e73ff6f9", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuAdvLightPaint.ts:51"}, "properties": {"repobilityId": "489c2f53fc9a7c43", "scanner": "scanner-primary", "fingerprint": "2a6d0164e73ff6f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ef94f679dd79969", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuEffectRunner.ts:107"}, "properties": {"repobilityId": "9961376be1eb8e26", "scanner": "scanner-primary", "fingerprint": "7ef94f679dd79969", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f2231ce29c8a6dd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/renderer/gpuShaderTypes.ts:53"}, "properties": {"repobilityId": "ea201222042d635f", "scanner": "scanner-primary", "fingerprint": "4f2231ce29c8a6dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82a92870c6cc066e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpu3DSmoke.ts:165"}, "properties": {"repobilityId": "d916911ffe756d01", "scanner": "scanner-primary", "fingerprint": "82a92870c6cc066e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01f6497fc251ca9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuInkCloud.ts:721"}, "properties": {"repobilityId": "639e10c5ee50ddb1", "scanner": "scanner-primary", "fingerprint": "01f6497fc251ca9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a874b4a2b8f09f29", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuParticleField.ts:244"}, "properties": {"repobilityId": "0369e22a38391ca7", "scanner": "scanner-primary", "fingerprint": "a874b4a2b8f09f29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-763e533676f31731", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuPointCloudFX.ts:260"}, "properties": {"repobilityId": "34d09b494b44aad1", "scanner": "scanner-primary", "fingerprint": "763e533676f31731", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e58e5491e8cfa04", "level": "note", "message": {"text": "Legacy-named symbol `hash21_v2` in src/lib/renderer/webgpuPaintDrip.ts:119"}, "properties": {"repobilityId": "fddd2d25eb18c58c", "scanner": "scanner-primary", "fingerprint": "7e58e5491e8cfa04", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f8c0004842971037", "level": "none", "message": {"text": "Commented-code block (16 lines) in src/lib/renderer/webgpuPaintDrip.ts:46"}, "properties": {"repobilityId": "34d6818c8aef0bd3", "scanner": "scanner-primary", "fingerprint": "f8c0004842971037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-443ba035d08445de", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/gpuLayerRenderer.ts:77"}, "properties": {"repobilityId": "43c0a63563165f08", "scanner": "scanner-primary", "fingerprint": "443ba035d08445de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f3492148001f2ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/renderer/js-animation.ts:127"}, "properties": {"repobilityId": "cfa58c335364ba57", "scanner": "scanner-primary", "fingerprint": "0f3492148001f2ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5d92bcb8c24c0cb", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuStrokeParticles.ts:86"}, "properties": {"repobilityId": "8ef2ec7bac7f5551", "scanner": "scanner-primary", "fingerprint": "e5d92bcb8c24c0cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-522953ad6548af17", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/crossfadeTransitions.ts:38"}, "properties": {"repobilityId": "7aa10a5aa27741c2", "scanner": "scanner-primary", "fingerprint": "522953ad6548af17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd4cc050f1d26a0d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/renderer/webgpuPixelParticles.ts:107"}, "properties": {"repobilityId": "48df22d836bfef7a", "scanner": "scanner-primary", "fingerprint": "cd4cc050f1d26a0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6d15b8e4043e270", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/geometry.ts:10"}, "properties": {"repobilityId": "1abc3f2d2480ce12", "scanner": "scanner-primary", "fingerprint": "e6d15b8e4043e270", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e79899ae9f17d400", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/engine.ts:190"}, "properties": {"repobilityId": "2b765fc7f0c276b1", "scanner": "scanner-primary", "fingerprint": "e79899ae9f17d400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de956da7be475095", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/webgpuPilot.ts:179"}, "properties": {"repobilityId": "533e4efbaac6bc95", "scanner": "scanner-primary", "fingerprint": "de956da7be475095", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-808ce423e40c2cbd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders.ts:42"}, "properties": {"repobilityId": "73a92728b6cf22df", "scanner": "scanner-primary", "fingerprint": "808ce423e40c2cbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d82940e1a3d787e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFluidSmokeShader.ts:41"}, "properties": {"repobilityId": "b2dd80f416ec0d0b", "scanner": "scanner-primary", "fingerprint": "1d82940e1a3d787e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-371eca7777180b93", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuFlythroughShader.ts:77"}, "properties": {"repobilityId": "e5278ef0f640d99a", "scanner": "scanner-primary", "fingerprint": "371eca7777180b93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-358259b749ae420d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpu3DSmokeShader.ts:35"}, "properties": {"repobilityId": "dd19240c94364b20", "scanner": "scanner-primary", "fingerprint": "358259b749ae420d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-481c3e89498c59c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuPixelParticlesShader.ts:30"}, "properties": {"repobilityId": "c64ceab26a5eb38b", "scanner": "scanner-primary", "fingerprint": "481c3e89498c59c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f753d74f53fa8e6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/basic.ts:13"}, "properties": {"repobilityId": "2038381a61391c4e", "scanner": "scanner-primary", "fingerprint": "f753d74f53fa8e6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2964eddd0d470f5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/geometric-3d.ts:114"}, "properties": {"repobilityId": "f3bc2941d41542f4", "scanner": "scanner-primary", "fingerprint": "2964eddd0d470f5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed09decf594f065d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/renderer/shaders/webgpuPlanet.ts:300"}, "properties": {"repobilityId": "411c26d27e44b919", "scanner": "scanner-primary", "fingerprint": "ed09decf594f065d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84c0d6d47bd92944", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/renderer/shaders/premium-standalone.ts:493"}, "properties": {"repobilityId": "21c1fc036e0ab959", "scanner": "scanner-primary", "fingerprint": "84c0d6d47bd92944", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c705c11d761e3ecd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/renderer/shaders/webgpuInkCloudShader.ts:70"}, "properties": {"repobilityId": "83da4fba4fd68bad", "scanner": "scanner-primary", "fingerprint": "c705c11d761e3ecd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2acf8418f48bc20", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/renderer/shaders/webgpuParticleFieldShader.ts:151"}, "properties": {"repobilityId": "80cffbf5b75e0692", "scanner": "scanner-primary", "fingerprint": "d2acf8418f48bc20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-999d91236281c69f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/renderer/shaders/webgpuPointCloudFXShader.ts:100"}, "properties": {"repobilityId": "b9114f8c2bb5f7e0", "scanner": "scanner-primary", "fingerprint": "999d91236281c69f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c8a2f3046c890d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stores/snapshots.ts:128"}, "properties": {"repobilityId": "20fae5c21e9a6f88", "scanner": "scanner-primary", "fingerprint": "7c8a2f3046c890d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1737223d60bdc3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stores/audio.ts:136"}, "properties": {"repobilityId": "ec08cdac2ddff0ae", "scanner": "scanner-primary", "fingerprint": "e1737223d60bdc3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de563f9dea512a9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stores/history.ts:19"}, "properties": {"repobilityId": "357f5ead0e1b87c2", "scanner": "scanner-primary", "fingerprint": "de563f9dea512a9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-776c81b540c25369", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stores/stageEffects.ts:337"}, "properties": {"repobilityId": "ee86511a00d7fa73", "scanner": "scanner-primary", "fingerprint": "776c81b540c25369", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc26c84dab6b9584", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/stores/surface.ts:34"}, "properties": {"repobilityId": "4b723da9c762eea0", "scanner": "scanner-primary", "fingerprint": "fc26c84dab6b9584", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d40c889b2e3b1c72", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/stores/layers.ts:30"}, "properties": {"repobilityId": "e922c06e70fa976f", "scanner": "scanner-primary", "fingerprint": "d40c889b2e3b1c72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21b81e0528ca59e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/stores/layers.ts:199"}, "properties": {"repobilityId": "7031e2a44df2a15f", "scanner": "scanner-primary", "fingerprint": "21b81e0528ca59e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7958bc807a4b82a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/stores/updateChecker.ts:59"}, "properties": {"repobilityId": "908b8773bdfb8ae7", "scanner": "scanner-primary", "fingerprint": "f7958bc807a4b82a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a69af739031cf65a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/stores/synthVision.ts:219"}, "properties": {"repobilityId": "3e86711f08fa2306", "scanner": "scanner-primary", "fingerprint": "a69af739031cf65a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb02710f52a84230", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stores/workspace.ts:44"}, "properties": {"repobilityId": "1d6211b16012249c", "scanner": "scanner-primary", "fingerprint": "cb02710f52a84230", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a16799eddd5491f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/stores/vjClipLauncher.ts:12"}, "properties": {"repobilityId": "da705dd23bbdd0b1", "scanner": "scanner-primary", "fingerprint": "2a16799eddd5491f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-153de080dc598953", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/stores/settings.ts:341"}, "properties": {"repobilityId": "0684b21c41467948", "scanner": "scanner-primary", "fingerprint": "153de080dc598953", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bdde213cdd65422", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/input/gamepad.ts:5"}, "properties": {"repobilityId": "99a22fcd4cc3c15f", "scanner": "scanner-primary", "fingerprint": "7bdde213cdd65422", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2f6e67606e78329", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/sync/audioBroadcast.ts:3"}, "properties": {"repobilityId": "4a09b27affa3bb7e", "scanner": "scanner-primary", "fingerprint": "e2f6e67606e78329", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ef889e6079723ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/sync/outputPixelBroadcast.ts:84"}, "properties": {"repobilityId": "f9f011d95f4ece49", "scanner": "scanner-primary", "fingerprint": "5ef889e6079723ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7b826d1858c1868", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sync/outputSharedTexturePresenter.ts:64"}, "properties": {"repobilityId": "5b3f12d02c1f93db", "scanner": "scanner-primary", "fingerprint": "d7b826d1858c1868", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75085fff251cf3c6", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/sync/modulationBroadcast.ts:3"}, "properties": {"repobilityId": "5340d2fd5f2bb20c", "scanner": "scanner-primary", "fingerprint": "75085fff251cf3c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6909b59c007b99f1", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/sync/outputComposite.ts:127"}, "properties": {"repobilityId": "76542667db55c47b", "scanner": "scanner-primary", "fingerprint": "6909b59c007b99f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26b87569090ae8b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/sync/stateBroadcast.ts:37"}, "properties": {"repobilityId": "9ae216997cc1ea91", "scanner": "scanner-primary", "fingerprint": "26b87569090ae8b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2afc81f9df899ad8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/midi/midiRouter.ts:261"}, "properties": {"repobilityId": "c965c952824c6f0e", "scanner": "scanner-primary", "fingerprint": "2afc81f9df899ad8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db32f296fc86e5f5", "level": "none", "message": {"text": "Commented-code block (21 lines) in src/lib/midi/midiTypes.ts:3"}, "properties": {"repobilityId": "6dc6349bafc34178", "scanner": "scanner-primary", "fingerprint": "db32f296fc86e5f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2092ed6f59894cc9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/midi/midiManager.ts:14"}, "properties": {"repobilityId": "9b6c7fa291a0dad0", "scanner": "scanner-primary", "fingerprint": "2092ed6f59894cc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38308d6e07e4373f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeBus.ts:3"}, "properties": {"repobilityId": "2b7da411bf99eb08", "scanner": "scanner-primary", "fingerprint": "38308d6e07e4373f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d99fa968353eea2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeSource.ts:9"}, "properties": {"repobilityId": "d704c7ea1f50003c", "scanner": "scanner-primary", "fingerprint": "d99fa968353eea2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aec950f004339f00", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mediapipe/mediaPipeWorker.ts:18"}, "properties": {"repobilityId": "922e14108971c287", "scanner": "scanner-primary", "fingerprint": "aec950f004339f00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb430f3512df4a18", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/isf/renderer.ts:171"}, "properties": {"repobilityId": "08eb1abf2b85dea0", "scanner": "scanner-primary", "fingerprint": "cb430f3512df4a18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cc9e329a9eea2df", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/isf/livePreview.ts:3"}, "properties": {"repobilityId": "a0584de8e2bd662a", "scanner": "scanner-primary", "fingerprint": "6cc9e329a9eea2df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5117616d3860a80", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/api/ai-client.ts:392"}, "properties": {"repobilityId": "c104be2cc3b47857", "scanner": "scanner-primary", "fingerprint": "a5117616d3860a80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-43a3dcd9d016f7c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/keyframes/paramDiscovery.ts:203"}, "properties": {"repobilityId": "646913bd7f45dbb2", "scanner": "scanner-primary", "fingerprint": "43a3dcd9d016f7c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1546bdcbdfe9a90", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/versionCheck.ts:142"}, "properties": {"repobilityId": "e9b0e3229820bb5f", "scanner": "scanner-primary", "fingerprint": "d1546bdcbdfe9a90", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0342d5245ea66188", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/utils/videoLoop.ts:35"}, "properties": {"repobilityId": "bfcde62dc66b170f", "scanner": "scanner-primary", "fingerprint": "0342d5245ea66188", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbcfe5153765dc9f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/utils/videoLoop.ts:301"}, "properties": {"repobilityId": "d095d73e8acd374c", "scanner": "scanner-primary", "fingerprint": "bbcfe5153765dc9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c18cb5fb03edd15", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/model3d/Model3DRenderer.ts:775"}, "properties": {"repobilityId": "713c661ff35e0133", "scanner": "scanner-primary", "fingerprint": "8c18cb5fb03edd15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-934732c9773bca15", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/audio/autoEngine.ts:131"}, "properties": {"repobilityId": "d4386d2d5f830f1d", "scanner": "scanner-primary", "fingerprint": "934732c9773bca15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f18c86d1123d2897", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audio/modulation.ts:155"}, "properties": {"repobilityId": "bfd6a9c629f477fd", "scanner": "scanner-primary", "fingerprint": "f18c86d1123d2897", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-787df917bb4bee94", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audio/milkdropFollower.ts:195"}, "properties": {"repobilityId": "e3243edd94c5416f", "scanner": "scanner-primary", "fingerprint": "787df917bb4bee94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6990dbc9ba2d7f3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/audio/analyzer.ts:89"}, "properties": {"repobilityId": "7a76b2c7d53195bf", "scanner": "scanner-primary", "fingerprint": "6990dbc9ba2d7f3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d2d75ba543a143c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audio/stemRouter.ts:6"}, "properties": {"repobilityId": "5763e06f9c4d64e3", "scanner": "scanner-primary", "fingerprint": "4d2d75ba543a143c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dfbe024a8075c24", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/audio/multiStemAnalyzer.ts:6"}, "properties": {"repobilityId": "aa3a5c09aa894405", "scanner": "scanner-primary", "fingerprint": "2dfbe024a8075c24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06af04b4c955e365", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneRecorder.ts:3"}, "properties": {"repobilityId": "e0d760ac5bc1a5c9", "scanner": "scanner-primary", "fingerprint": "06af04b4c955e365", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea1b391ddcd2dbdf", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/mobile/standaloneShaderList.ts:55"}, "properties": {"repobilityId": "861d4d32cb04d4ca", "scanner": "scanner-primary", "fingerprint": "ea1b391ddcd2dbdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dec0b85748ba3a64", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneEffects.ts:6"}, "properties": {"repobilityId": "e3333b8a943630dc", "scanner": "scanner-primary", "fingerprint": "dec0b85748ba3a64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9fbb4d0b026625d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneRenderer.ts:51"}, "properties": {"repobilityId": "dd3f8dde3e364d02", "scanner": "scanner-primary", "fingerprint": "d9fbb4d0b026625d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85264fca3ae68a85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mobile/standaloneHomography.ts:1"}, "properties": {"repobilityId": "cc88f5e6ce7ee7c8", "scanner": "scanner-primary", "fingerprint": "85264fca3ae68a85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fc53e22b96000c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/mobile/standaloneAudio.ts:1"}, "properties": {"repobilityId": "9e3d1b8c6ff1358e", "scanner": "scanner-primary", "fingerprint": "1fc53e22b96000c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b08a050c8bb7f7f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/lightpainting/renderer.ts:57"}, "properties": {"repobilityId": "b8f8a5fe6e7d5432", "scanner": "scanner-primary", "fingerprint": "b08a050c8bb7f7f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c902c245dbe5ce7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/lightpainting/webglRenderer.ts:56"}, "properties": {"repobilityId": "c9f80a866438cd0b", "scanner": "scanner-primary", "fingerprint": "8c902c245dbe5ce7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6b55b62977d3ca0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/lightpainting/webglShaders.ts:141"}, "properties": {"repobilityId": "4e41b5a3999a9bd3", "scanner": "scanner-primary", "fingerprint": "f6b55b62977d3ca0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0777839a518ac8d9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/stage3d/syncToMapping.ts:1"}, "properties": {"repobilityId": "b419ed6bb388e456", "scanner": "scanner-primary", "fingerprint": "0777839a518ac8d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0015247d8db2598d", "level": "none", "message": {"text": "Commented-code block (15 lines) in src/lib/stage3d/atmosphere.ts:6"}, "properties": {"repobilityId": "e8c1132a9636cfce", "scanner": "scanner-primary", "fingerprint": "0015247d8db2598d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6623d6b4905d5f1", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/stage3d/demoReel.ts:3"}, "properties": {"repobilityId": "bea7f0d9c87396b6", "scanner": "scanner-primary", "fingerprint": "d6623d6b4905d5f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-486502e2dadc9420", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/stage3d/Stage3DRenderer.ts:3"}, "properties": {"repobilityId": "3b8b3de6613ae6be", "scanner": "scanner-primary", "fingerprint": "486502e2dadc9420", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8d08a3dbb661ef7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stage3d/venues.ts:6"}, "properties": {"repobilityId": "775fc817262f3e8a", "scanner": "scanner-primary", "fingerprint": "e8d08a3dbb661ef7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5337b534d785061", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/stage3d/elementTypes.ts:270"}, "properties": {"repobilityId": "7545bae4d17979bb", "scanner": "scanner-primary", "fingerprint": "e5337b534d785061", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8ec0836fe9e218f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/svg/renderer.ts:770"}, "properties": {"repobilityId": "5b89107d5302be32", "scanner": "scanner-primary", "fingerprint": "a8ec0836fe9e218f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-297a4db4374c6a22", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/output/atlasLayout.ts:3"}, "properties": {"repobilityId": "f589d092968f022c", "scanner": "scanner-primary", "fingerprint": "297a4db4374c6a22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aa3fb854c29cd72", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/output/blendRenderer.ts:60"}, "properties": {"repobilityId": "dfd35be0b2e0f6fc", "scanner": "scanner-primary", "fingerprint": "6aa3fb854c29cd72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-707240132c40b6ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/splat/splatLoader.ts:1"}, "properties": {"repobilityId": "7be1f2b559bd8ec3", "scanner": "scanner-primary", "fingerprint": "707240132c40b6ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf8510d578014312", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/splatLoader.ts:107"}, "properties": {"repobilityId": "9619fa6be5b45157", "scanner": "scanner-primary", "fingerprint": "bf8510d578014312", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-115446cd0ca66c38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/splat/plyLoader.ts:387"}, "properties": {"repobilityId": "9e2177375af0f1fe", "scanner": "scanner-primary", "fingerprint": "115446cd0ca66c38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6a1aafa70b8e8525", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/wavejsVisualizer.ts:1"}, "properties": {"repobilityId": "b7f6447bff8d361b", "scanner": "scanner-primary", "fingerprint": "6a1aafa70b8e8525", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0f1f3cedaf04aae", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/analyzerLabVisualizer.ts:3"}, "properties": {"repobilityId": "8d295823094b300d", "scanner": "scanner-primary", "fingerprint": "e0f1f3cedaf04aae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-218c93cc02f0bad3", "level": "none", "message": {"text": "Commented-code block (19 lines) in src/lib/effects/handfxVisualizer.ts:3"}, "properties": {"repobilityId": "45f112269edf13e2", "scanner": "scanner-primary", "fingerprint": "218c93cc02f0bad3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d96e25877118f64b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/effects/audiomotionVisualizer.ts:106"}, "properties": {"repobilityId": "23651563de7f240e", "scanner": "scanner-primary", "fingerprint": "d96e25877118f64b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9090998ca7a8b88c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/effectUX.ts:67"}, "properties": {"repobilityId": "6b8cec0108fd9365", "scanner": "scanner-primary", "fingerprint": "9090998ca7a8b88c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-661a8284039f034e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/effects/hydraVisualizer.ts:8"}, "properties": {"repobilityId": "b9e9dd7bd74c32cf", "scanner": "scanner-primary", "fingerprint": "661a8284039f034e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb3cb4a91f3e6ce4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/effects/effectCatalog.ts:29"}, "properties": {"repobilityId": "de134c45c6931a19", "scanner": "scanner-primary", "fingerprint": "fb3cb4a91f3e6ce4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0f8b101253d5d0a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostPilot/canyonShader.ts:3"}, "properties": {"repobilityId": "e0b74c89215661a9", "scanner": "scanner-primary", "fingerprint": "a0f8b101253d5d0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fddcc981bc29b372", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/effects/ghostPilot/ghostPilotVisualizer.ts:3"}, "properties": {"repobilityId": "93f9636f42e8bb57", "scanner": "scanner-primary", "fingerprint": "fddcc981bc29b372", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff3a076a0ea4e94f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/ghostfxVisualizer.ts:3"}, "properties": {"repobilityId": "13efdc007dfed083", "scanner": "scanner-primary", "fingerprint": "ff3a076a0ea4e94f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef95c0a5894c342b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/audioSmoother.ts:17"}, "properties": {"repobilityId": "ed6dc324ca299743", "scanner": "scanner-primary", "fingerprint": "ef95c0a5894c342b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b9c80df89e046bf", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/sceneHeader.ts:1"}, "properties": {"repobilityId": "4dc17f0b4185b0fd", "scanner": "scanner-primary", "fingerprint": "6b9c80df89e046bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-835ef0c88b87d17c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/effects/ghostfx/scenes/liquid.wgsl.ts:3"}, "properties": {"repobilityId": "06eb50260b9036c6", "scanner": "scanner-primary", "fingerprint": "835ef0c88b87d17c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8855250d37f6453f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/effects/ghostfx/scenes/drift.wgsl.ts:3"}, "properties": {"repobilityId": "46ef023482533084", "scanner": "scanner-primary", "fingerprint": "8855250d37f6453f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd9f898496ffa8b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostfx/scenes/ribbons.wgsl.ts:1"}, "properties": {"repobilityId": "66dee7cafb4a0017", "scanner": "scanner-primary", "fingerprint": "fd9f898496ffa8b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cd6258951a81b7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/effects/ghostfx/shaders/post.wgsl.ts:9"}, "properties": {"repobilityId": "ba00eaa6a8287af0", "scanner": "scanner-primary", "fingerprint": "7cd6258951a81b7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba01323a6cba86d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/plugins/registry.ts:746"}, "properties": {"repobilityId": "064495d837197b4f", "scanner": "scanner-primary", "fingerprint": "ba01323a6cba86d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c95b3eae686b8181", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/storage/assetRegistry.ts:3"}, "properties": {"repobilityId": "aebd68dcb177c809", "scanner": "scanner-primary", "fingerprint": "c95b3eae686b8181", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d2b1c78fb66e258", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-shot.mjs:8)"}, "properties": {"repobilityId": "50402de06b982bde", "scanner": "scanner-primary", "fingerprint": "7d2b1c78fb66e258", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-08bc726708a43db4", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-console.mjs:9)"}, "properties": {"repobilityId": "bb212d77adcea3e3", "scanner": "scanner-primary", "fingerprint": "08bc726708a43db4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2dd0af27e23f33be", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/json/list (scripts/cdp-eval.mjs:19)"}, "properties": {"repobilityId": "0843799902d48d2d", "scanner": "scanner-primary", "fingerprint": "2dd0af27e23f33be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-40ae6da84db26ed9", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:9002/spout/receive/${encodeURIComponent(state.senderName)} (src/lib/renderer/spoutCanvasReceiver.ts:152)"}, "properties": {"repobilityId": "112d2f042e9d31d6", "scanner": "scanner-primary", "fingerprint": "40ae6da84db26ed9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-49f0bbebbafbd274", "level": "error", "message": {"text": "Dangling fetch: POST http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:404)"}, "properties": {"repobilityId": "a4cd13c46fa90678", "scanner": "scanner-primary", "fingerprint": "49f0bbebbafbd274", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d9b76af635ec1000", "level": "error", "message": {"text": "Dangling fetch: DELETE http://localhost:9002/api/shaders/${shader.id} (src/lib/stores/shaderLibrary.ts:424)"}, "properties": {"repobilityId": "e4aa87f4df1650d0", "scanner": "scanner-primary", "fingerprint": "d9b76af635ec1000", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-485a15a0f1f68da7", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:9002/api/shaders (src/lib/stores/shaderLibrary.ts:443)"}, "properties": {"repobilityId": "f479f8799b8f9b34", "scanner": "scanner-primary", "fingerprint": "485a15a0f1f68da7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e4d78871dc79778", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:392)"}, "properties": {"repobilityId": "3d1d28a68f0d4afe", "scanner": "scanner-primary", "fingerprint": "4e4d78871dc79778", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cadd7ccd9e476702", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent (src/lib/api/ai-client.ts:423)"}, "properties": {"repobilityId": "9190a2b0e6c79a59", "scanner": "scanner-primary", "fingerprint": "cadd7ccd9e476702", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b88bc4470faa28a", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${model}:predictLongRunning (src/lib/api/ai-client.ts:758)"}, "properties": {"repobilityId": "dffb08babde00b89", "scanner": "scanner-primary", "fingerprint": "9b88bc4470faa28a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5295304184ea5af5", "level": "error", "message": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/${operationName} (src/lib/api/ai-client.ts:795)"}, "properties": {"repobilityId": "d8c453ee5eb7e821", "scanner": "scanner-primary", "fingerprint": "5295304184ea5af5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-83f331549e2a2a26", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (src/lib/api/ai-client.ts:872)"}, "properties": {"repobilityId": "7d824b23319fe165", "scanner": "scanner-primary", "fingerprint": "83f331549e2a2a26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac2ccff81b84dab4", "level": "error", "message": {"text": "Dangling fetch: POST https://generativelanguage.googleapis.com/v1beta/models/${geminiModel}:generateContent (src/lib/api/ai-client.ts:889)"}, "properties": {"repobilityId": "0bfb2b3c5be93f72", "scanner": "scanner-primary", "fingerprint": "ac2ccff81b84dab4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-244f8a0e292bea2e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (src/lib/utils/versionCheck.ts:142)"}, "properties": {"repobilityId": "ea6e6eea548c6287", "scanner": "scanner-primary", "fingerprint": "244f8a0e292bea2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31d507ed8d9cb066", "level": "note", "message": {"text": "Unused endpoint: GET /api/shaders"}, "properties": {"repobilityId": "b4a14f7245c66eb9", "scanner": "scanner-primary", "fingerprint": "31d507ed8d9cb066", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c79bcdb652e34f92", "level": "note", "message": {"text": "Unused endpoint: GET /api/shader/:filename(*)"}, "properties": {"repobilityId": "f30c5dcc9b4594b1", "scanner": "scanner-primary", "fingerprint": "c79bcdb652e34f92", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afd535bb11f2d869", "level": "note", "message": {"text": "Unused endpoint: GET /api/new-shaders"}, "properties": {"repobilityId": "1d8a921884c18433", "scanner": "scanner-primary", "fingerprint": "afd535bb11f2d869", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-96684572a891a923", "level": "note", "message": {"text": "Unused endpoint: GET /api/manifest"}, "properties": {"repobilityId": "6bcc294737f8782b", "scanner": "scanner-primary", "fingerprint": "96684572a891a923", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1f50e74a4ccef09", "level": "note", "message": {"text": "Unused endpoint: POST /api/manifest"}, "properties": {"repobilityId": "34be150d4c7920e8", "scanner": "scanner-primary", "fingerprint": "e1f50e74a4ccef09", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74352d16be652a99", "level": "note", "message": {"text": "Unused endpoint: POST /api/import-shader"}, "properties": {"repobilityId": "318315d47939e1a6", "scanner": "scanner-primary", "fingerprint": "74352d16be652a99", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2ad1de67cf9a52bc", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/shader-entry"}, "properties": {"repobilityId": "795f2980dd199acb", "scanner": "scanner-primary", "fingerprint": "2ad1de67cf9a52bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea7e67f8fa2f6c0c", "level": "note", "message": {"text": "Unused endpoint: POST /api/thumbnail"}, "properties": {"repobilityId": "da087e2922cf0ce6", "scanner": "scanner-primary", "fingerprint": "ea7e67f8fa2f6c0c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8f473f0edff28987", "level": "note", "message": {"text": "Unused endpoint: GET /api/thumbnail/:filename"}, "properties": {"repobilityId": "d8a33eb3994031ea", "scanner": "scanner-primary", "fingerprint": "8f473f0edff28987", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1bba9ed49925af13", "level": "note", "message": {"text": "Unused endpoint: GET /api/thumbnails"}, "properties": {"repobilityId": "1e02cdbebddd2097", "scanner": "scanner-primary", "fingerprint": "1bba9ed49925af13", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b907747196bd765a", "level": "note", "message": {"text": "Unused endpoint: POST /api/bulk-tier"}, "properties": {"repobilityId": "06e4d986bad5cd9d", "scanner": "scanner-primary", "fingerprint": "b907747196bd765a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1828ee30f3feaad9", "level": "note", "message": {"text": "Unused endpoint: GET /api/scan"}, "properties": {"repobilityId": "507c01cb29229452", "scanner": "scanner-primary", "fingerprint": "1828ee30f3feaad9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ece8604f2f6c27d6", "level": "note", "message": {"text": "Unused endpoint: POST /api/import-from"}, "properties": {"repobilityId": "6d99840de4264beb", "scanner": "scanner-primary", "fingerprint": "ece8604f2f6c27d6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}