{"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-d66178db19e1f1e7", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:118"}, "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-c86e59a09b1618e8", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/setup.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/setup.js:15"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d420a097bffa3e48", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js: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-84f3c13218a32776", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/cli.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/cli.js: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-3860e7c014013593", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/gateway-server.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/gateway-server.js:27"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48f54a37c059d987", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runViaGateway.js:163", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runViaGateway.js:163"}, "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-a5ab37dfbe48f1d9", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runBenchmark.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runBenchmark.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09865e1279594573", "name": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runInstance.js:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runInstance.js:56"}, "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-a82b60cbe9b3e4c0", "name": "Stray `console.log` in TS/JS \u2014 apps/review/alchemy.run.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/alchemy.run.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-3b033f33315e558f", "name": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runAction.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runAction.ts:32"}, "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-a55c5c822aa7123e", "name": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runGate.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runGate.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7f152f2b5df4c7a", "name": "Stray `console.log` in TS/JS \u2014 apps/review/src/cli/main.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/src/cli/main.ts:71"}, "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-73bdf3bf05db2d4d", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/_capture-workflow-ui-screenshots.test.js:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/_capture-workflow-ui-screenshots.test.js: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-8e3bcadf24aebe7f", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/workflow-ui-all.e2e.test.js:165", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/workflow-ui-all.e2e.test.js:165"}, "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-c9830525db91bab2", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/workflow-pack.js:1722", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/workflow-pack.js:1722"}, "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-443f6e1f58af98cc", "name": "Stray `console.log` in TS/JS \u2014 apps/cli/src/index.js:2236", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/index.js:2236"}, "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-265387b8088ff440", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/alchemy.run.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/alchemy.run.ts:81"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f84aa7e96523a0b", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/fakePlueHost.ts:452", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/fakePlueHost.ts:452"}, "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-23c3be36b3e157b2", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/cerebrasUpstream.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/cerebrasUpstream.ts:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-51bef538711003f7", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/plueFixture.ts:137", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/plueFixture.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-c319b7f2e19a1978", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/workerHost.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/workerHost.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb0f1bad1b46c0ed", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/authFixture.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/authFixture.ts:64"}, "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-87e4236954720ba0", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/generateSlideshow.ts:402", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/generateSlideshow.ts:402"}, "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-c8a352fda16c7a2a", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/capture.ts:533", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/capture.ts:533"}, "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-493c9af4a6263c17", "name": "React Flow <Controls> without dark theming \u2014 apps/smithers/src/askme/WorkflowGraph.tsx:57", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 apps/smithers/src/askme/WorkflowGraph.tsx:57"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c579b99ba06e3b8f", "name": "TODO/FIXME marker in shipping code \u2014 apps/smithers/src/concierge/ConciergeConsole.tsx:33", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/smithers/src/concierge/ConciergeConsole.tsx:33"}, "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-37c0b7f39d514207", "name": "React Flow <Controls> without dark theming \u2014 apps/smithers-demo/src/App.tsx:223", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 apps/smithers-demo/src/App.tsx:223"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7235af462971ca52", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/tests/e2e/pty-server.spec.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/tests/e2e/pty-server.spec.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f6885a0aa15b7f8e", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/pty-server.ts:595", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/pty-server.ts:595"}, "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-4dec41b8c50a438e", "name": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/dev.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/dev.ts:59"}, "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-80777eb10fdaed26", "name": "Stray `console.log` in TS/JS \u2014 scripts/sandbox.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sandbox.ts:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-998797372fe2edbf", "name": "Stray `console.log` in TS/JS \u2014 scripts/optimize-llms-full.ts:404", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/optimize-llms-full.ts:404"}, "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-daaf7a44ee6f3d04", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-llms.ts:239", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-llms.ts:239"}, "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-3615310f4ea8de9b", "name": "Stray `console.log` in TS/JS \u2014 scripts/normalize-bunx.ts:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize-bunx.ts:136"}, "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-2f61b6d788b042b3", "name": "Stray `console.log` in TS/JS \u2014 scripts/normalize-placeholders.ts:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize-placeholders.ts:133"}, "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-f6973fe78578cdd8", "name": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/build-slideshow.ts:349", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/build-slideshow.ts:349"}, "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-f692a699ae9487ff", "name": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/capture-gifs.ts:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/capture-gifs.ts:97"}, "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-f09e180e50dba170", "name": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/worker.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/worker.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-0bfa610a81df9bfd", "name": "Stray `console.log` in TS/JS \u2014 packages/devtools/src/DevToolsRunStore.js:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/devtools/src/DevToolsRunStore.js:120"}, "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-24a02e5ad412ac32", "name": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/accounts/src/parseAccountsFile.js:8", "shortDescription": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/accounts/src/parseAccountsFile.js:86"}, "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-a0d7b9d0072fe9b6", "name": "TODO/FIXME marker in shipping code \u2014 packages/sandbox/tests/sandbox-isolation.test.js:246", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sandbox/tests/sandbox-isolation.test.js:246"}, "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-dac3deb6871cd7ed", "name": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/opencode-e2e.test.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/opencode-e2e.test.js: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-51e8fa6432df8464", "name": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/vibe-agent-e2e.test.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/vibe-agent-e2e.test.js:46"}, "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-8d162d78b5dd3817", "name": "Stray `console.log` in TS/JS \u2014 packages/react-reconciler/src/devtools/SmithersDevTools.js:238", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/react-reconciler/src/devtools/SmithersDevTools.js:238"}, "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-0833c06d97cae4d8", "name": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/rewindLock-concurrent.test.ts:18", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/rewindLock-concurrent.test.ts:18"}, "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-3f7b2523adaa8bd9", "name": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/fork-recovery.test.js:147", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/fork-recovery.test.js:147"}, "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-f079ddad5807077f", "name": "TODO/FIXME marker in shipping code \u2014 packages/db/src/sql-message-storage.js:658", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/db/src/sql-message-storage.js:658"}, "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-3861c95617524e0f", "name": "TODO/FIXME marker in shipping code \u2014 packages/graph/src/dom/extract.js:17", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/graph/src/dom/extract.js:17"}, "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-0ce648b0537a4d10", "name": "Stray `console.log` in TS/JS \u2014 examples/bun-port-smithers/components/porting-rules.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/bun-port-smithers/components/porting-rules.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-a55bc5a922d60f1a", "name": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/teardown.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/teardown.js:2"}, "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-58389a799fab6a6c", "name": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/build.js:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/build.js:11"}, "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-6dc9c239d43d2bf2", "name": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/deploy.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/deploy.js:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a3c3d01938548c37", "name": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/run.ts:262", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/run.ts:262"}, "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-b343615582d3e9e7", "name": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/verify-gold.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/verify-gold.ts:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31f8fe4bf1ea77c9", "name": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/dataset/load.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/dataset/load.ts:83"}, "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-bc0768e19e34d41d", "name": "Stray `console.log` in TS/JS \u2014 e2e/faults/case28-soak-live-stream-rss.test.ts:282", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 e2e/faults/case28-soak-live-stream-rss.test.ts:282"}, "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-cf13ffe6724724c8", "name": "Dockerfile runs as root: examples/kubernetes/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: examples/kubernetes/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b738b105ccb094f", "name": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c5d876a1b5c366c", "name": "Insecure pattern 'direct_innerhtml_assignment' in poc/run-chronicle.html:413", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in poc/run-chronicle.html:413"}, "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-1bf0fb36eb929656", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/scripts/setup.js:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/scripts/setup.js:2"}, "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-ce66a02de07d6c8a", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runWorkflowForInstance.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runWorkflowForInstance.js: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-686bed10246a58f4", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runViaGateway.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runViaGateway.js: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-ef150c55e9378abd", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/prepareCheckout.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/prepareCheckout.js: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-e8443021cd39703e", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/scorePatch.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/scorePatch.js: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-6a8e70616f6c259f", "name": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/extractPatch.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/extractPatch.js: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-c7d06b7d53f71893", "name": "Insecure pattern 'node_child_process' in apps/review/action/src/runAction.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/review/action/src/runAction.ts:2"}, "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-8144eed7b5f707e1", "name": "Insecure pattern 'node_child_process' in apps/review/action/src/runReview.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/review/action/src/runReview.ts: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-1f57aa8a3f245c36", "name": "Insecure pattern 'node_child_process' in apps/review/src/github/runGh.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/review/src/github/runGh.ts: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-6456cc3220ec6a71", "name": "Insecure pattern 'node_child_process' in apps/review/src/cli/main.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/review/src/cli/main.ts:2"}, "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-e6a70b2f882a64e7", "name": "Insecure pattern 'exec_used' in apps/review/src/server/d1.ts:35", "shortDescription": {"text": "Insecure pattern 'exec_used' in apps/review/src/server/d1.ts:35"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac97253d85cf815e", "name": "Insecure pattern 'node_child_process' in apps/cli/src/scheduler.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/scheduler.js: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-c1944cea1cae4226", "name": "Insecure pattern 'node_child_process' in apps/cli/src/restore.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/restore.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4de086c5831c8337", "name": "Insecure pattern 'node_child_process' in apps/cli/src/resume-detached.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/resume-detached.js: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-5fd752b748be450f", "name": "Insecure pattern 'node_child_process' in apps/cli/src/workflow-pack.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/workflow-pack.js: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-79f5952c1379faf9", "name": "Insecure pattern 'node_child_process' in apps/cli/src/agent-detection.js:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/agent-detection.js:4"}, "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-0ec050dab86b3a1a", "name": "Insecure pattern 'node_child_process' in apps/cli/src/hijack.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/hijack.js: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-b872f42b07fd826e", "name": "Insecure pattern 'node_child_process' in apps/cli/src/index.js:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/index.js:28"}, "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-70c637a588811cf0", "name": "Insecure pattern 'node_child_process' in apps/cli/src/agent-commands/runAgentAdd.js:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/agent-commands/runAgentAdd.js:2"}, "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-f72cedbcd1c3bad5", "name": "Insecure pattern 'local_storage_auth_token' in apps/smithers/src/gateway/gatewayClient.test.ts:47", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in apps/smithers/src/gateway/gatewayClient.test.ts:47"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59af2c25e965ef56", "name": "Insecure pattern 'cors_wildcard' in apps/smithers/src/pair/pairSyncDO.ts:82", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in apps/smithers/src/pair/pairSyncDO.ts:82"}, "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-92d3a46b002cd444", "name": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/workspaceBackend.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/workspaceBackend.ts: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-d038d2db99562bb9", "name": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/runs/launchWorkflowRun.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/runs/launchWorkflowRun.ts: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-eff655d08477b66d", "name": "Insecure pattern 'node_child_process' in scripts/sandbox.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sandbox.ts:2"}, "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-dfabf91242be970d", "name": "Insecure pattern 'node_child_process' in scripts/publish.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/publish.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a198bc179093a86f", "name": "Insecure pattern 'node_child_process' in scripts/check-docs.mjs:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/check-docs.mjs:14"}, "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-5483d413399bcbed", "name": "Insecure pattern 'node_child_process' in scripts/fetch-jj-binaries.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-jj-binaries.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0649bd49ab02502c", "name": "Insecure pattern 'node_child_process' in scripts/bump.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/bump.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78dfd4ffab6052be", "name": "Insecure pattern 'node_child_process' in scripts/check-llms.mjs:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/check-llms.mjs:2"}, "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-8f98d6f18087f741", "name": "Insecure pattern 'node_child_process' in scripts/e2e-real/capture-gifs.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/e2e-real/capture-gifs.ts: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-e96cefbacc321c43", "name": "Insecure pattern 'node_child_process' in packages/usage/src/readClaudeCredentials.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/usage/src/readClaudeCredentials.js: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-ee5e608e768a5b47", "name": "Insecure pattern 'node_child_process' in packages/driver/src/child-process.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/driver/src/child-process.js: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-4e175aa6c428cd46", "name": "Insecure pattern 'exec_used' in packages/errors/src/smithersErrorDefinitions.js:315", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/errors/src/smithersErrorDefinitions.js:315"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e461a2571e145cc", "name": "Insecure pattern 'node_child_process' in packages/smithers/src/tools/utils.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/smithers/src/tools/utils.js: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-351113e4cd065c07", "name": "Insecure pattern 'exec_used' in packages/control-plane/src/index.d.ts:4", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/control-plane/src/index.d.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ddf7dbef023d7855", "name": "Insecure pattern 'node_child_process' in packages/vcs/src/vcsToolingStatus.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/vcs/src/vcsToolingStatus.js: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-da3fc1681b7dfba2", "name": "Insecure pattern 'node_child_process' in packages/agents/src/BaseCliAgent/runRpcCommandEffect.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agents/src/BaseCliAgent/runRpcCommandEffect.js: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-ed3dbd1f2e939946", "name": "Insecure pattern 'node_child_process' in packages/agents/src/diagnostics/getDiagnosticStrategy.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/agents/src/diagnostics/getDiagnosticStrategy.js: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-3f359b78a5926e3d", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/server/src/gatewayUi/defaultOperatorUi.js:1258", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/server/src/gatewayUi/defaultOperatorUi.js:1258"}, "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-23228f6524b76204", "name": "Insecure pattern 'node_child_process' in packages/server/src/gatewayRoutes/getNodeDiff.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/server/src/gatewayRoutes/getNodeDiff.js: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-393cf96d92ec1a1b", "name": "Insecure pattern 'node_child_process' in packages/engine/src/engine.js:43", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/engine.js:43"}, "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-a7f125b6cd5f8770", "name": "Insecure pattern 'node_child_process' in packages/engine/src/effect/diff-bundle.js:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/effect/diff-bundle.js:2"}, "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-c5d41213de1378b4", "name": "Insecure pattern 'new_function_used' in packages/graph/src/dom/extract.js:26", "shortDescription": {"text": "Insecure pattern 'new_function_used' in packages/graph/src/dom/extract.js:26"}, "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-ba1bb4609d357e32", "name": "Insecure pattern 'node_child_process' in e2e/harness/killProcess.test.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in e2e/harness/killProcess.test.ts:2"}, "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-01e19313bf195095", "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-58bfb293711990aa", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-f434724052d073ef", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-25e478c4f16acb9c", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-457ec2ea910f93f0", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-f36fcec0310218b2", "name": "Very large file: apps/cli/src/workflow-pack.js (4420 lines)", "shortDescription": {"text": "Very large file: apps/cli/src/workflow-pack.js (4420 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-e14b39319ef470fe", "name": "Very large file: apps/cli/src/index.js (6426 lines)", "shortDescription": {"text": "Very large file: apps/cli/src/index.js (6426 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-325e3ecc78a4a960", "name": "Very large file: apps/cli/src/mcp/semantic-tools.js (1388 lines)", "shortDescription": {"text": "Very large file: apps/cli/src/mcp/semantic-tools.js (1388 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-7463818e1b36ff67", "name": "Very large file: apps/smithers-studio-2/server/workspaceBackend.ts (4721 lines)", "shortDescription": {"text": "Very large file: apps/smithers-studio-2/server/workspaceBackend.ts (4721 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-1e106cca61a2ac16", "name": "Very large file: scripts/check-docs.mjs (3868 lines)", "shortDescription": {"text": "Very large file: scripts/check-docs.mjs (3868 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-ba2f0b732fb6d309", "name": "Very large file: packages/components/src/index.d.ts (1622 lines)", "shortDescription": {"text": "Very large file: packages/components/src/index.d.ts (1622 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-56286f19c932da6f", "name": "Very large file: packages/server/src/gateway.js (4983 lines)", "shortDescription": {"text": "Very large file: packages/server/src/gateway.js (4983 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-f60741ddfa3abc7b", "name": "Very large file: packages/server/src/index.d.ts (1554 lines)", "shortDescription": {"text": "Very large file: packages/server/src/index.d.ts (1554 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-30b403f45204aedb", "name": "Very large file: packages/server/src/index.js (1248 lines)", "shortDescription": {"text": "Very large file: packages/server/src/index.js (1248 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-1ef1b90bd4d4d06f", "name": "Very large file: packages/engine/src/engine.js (7620 lines)", "shortDescription": {"text": "Very large file: packages/engine/src/engine.js (7620 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-31a0c44763ba8b0f", "name": "Very large file: packages/engine/src/index.d.ts (1685 lines)", "shortDescription": {"text": "Very large file: packages/engine/src/index.d.ts (1685 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-27c1ad739e655689", "name": "Very large file: packages/db/src/index.d.ts (5229 lines)", "shortDescription": {"text": "Very large file: packages/db/src/index.d.ts (5229 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-bb8ad842a8a432ee", "name": "Very large file: packages/db/src/adapter.js (2753 lines)", "shortDescription": {"text": "Very large file: packages/db/src/adapter.js (2753 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-4cce4ca41373422e", "name": "Node manifest has dependencies but no lockfile: apps/review/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/review/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-a0165ea166579aa4", "name": "Node manifest has dependencies but no lockfile: apps/cli/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/cli/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-ed8639bd6c3ad688", "name": "Node manifest has dependencies but no lockfile: apps/smithers/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/smithers/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-a1b8734959b73063", "name": "Node manifest has dependencies but no lockfile: apps/observability/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/observability/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-435b7bac55ebd876", "name": "Node manifest has dependencies but no lockfile: apps/smithers-demo/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-demo/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-165664eee84e7c93", "name": "Node manifest has dependencies but no lockfile: apps/smithers-studio-2/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-studio-2/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-1821625a46a11008", "name": "Node manifest has dependencies but no lockfile: apps/smithers-tui-demo/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-tui-demo/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-54dcd98423d69cf4", "name": "Node manifest has dependencies but no lockfile: packages/gateway-react/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/gateway-react/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-81cb0595a60e8328", "name": "Node manifest has dependencies but no lockfile: packages/devtools/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/devtools/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-44b6efcbb3cb9d6d", "name": "Node manifest has dependencies but no lockfile: packages/usage/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/usage/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-28a4196bf5aaf7ec", "name": "Node manifest has dependencies but no lockfile: packages/driver/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/driver/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-592524165b9fc40c", "name": "Node manifest has dependencies but no lockfile: packages/errors/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/errors/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-9894e3bb45432d03", "name": "Node manifest has dependencies but no lockfile: packages/components/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/components/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-619e1de6fdacf58f", "name": "Node manifest has dependencies but no lockfile: packages/smithers/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/smithers/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-b28590d5fa4d92e2", "name": "Node manifest has dependencies but no lockfile: packages/accounts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/accounts/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-b72c002eb088638a", "name": "Node manifest has dependencies but no lockfile: packages/control-plane/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/control-plane/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-eedc0132b559efe0", "name": "Node manifest has dependencies but no lockfile: packages/vcs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/vcs/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-8cad527fa7b2fdd7", "name": "Node manifest has dependencies but no lockfile: packages/sandbox/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sandbox/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-3c6f2be45e72de9d", "name": "Node manifest has dependencies but no lockfile: packages/agents/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/agents/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-6980af6f44bc070f", "name": "Node manifest has dependencies but no lockfile: packages/memory/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/memory/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-56d11ce7c09ef03a", "name": "Node manifest has dependencies but no lockfile: packages/tool-context/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/tool-context/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-599801b287dcdcc0", "name": "Node manifest has dependencies but no lockfile: packages/scorers/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/scorers/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-b822ec54a081d6c6", "name": "Node manifest has dependencies but no lockfile: packages/pi-plugin/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/pi-plugin/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-ea5f771bc2d71789", "name": "Node manifest has dependencies but no lockfile: packages/react-reconciler/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/react-reconciler/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-b739f2f2be1d714d", "name": "Node manifest has dependencies but no lockfile: packages/server/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/server/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-7092af7719a1a38d", "name": "Node manifest has dependencies but no lockfile: packages/time-travel/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/time-travel/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-f9f13e1418f0ef36", "name": "Node manifest has dependencies but no lockfile: packages/engine/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/engine/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-7b16ae2bd0fca524", "name": "Node manifest has dependencies but no lockfile: packages/db/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/db/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-1b3d0fa3fe79a342", "name": "Node manifest has dependencies but no lockfile: packages/protocol/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/protocol/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-40209380d552b619", "name": "Node manifest has dependencies but no lockfile: packages/gateway/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/gateway/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-fcc3ab7de11e876c", "name": "Node manifest has dependencies but no lockfile: packages/scheduler/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/scheduler/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-b09786dfaec0de7c", "name": "Node manifest has dependencies but no lockfile: packages/gateway-client/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/gateway-client/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-5d7c3f19978cb63d", "name": "Node manifest has dependencies but no lockfile: packages/graph/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/graph/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-7e52cabd5cdfdc20", "name": "Node manifest has dependencies but no lockfile: packages/openapi/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/openapi/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-6ffcaf0e44327a2b", "name": "Node manifest has dependencies but no lockfile: examples/dstack/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/dstack/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-2e352cff53cc13a8", "name": "Node manifest has dependencies but no lockfile: examples/kubernetes/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/kubernetes/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-eb850abe5d3c8bc3", "name": "Node manifest has dependencies but no lockfile: e2e/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: e2e/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 264 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 167 placeholder/mock markers across 85 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-ce858224ceb9a536", "name": "Commented-code block (7 lines) in benchmarks/claw-eval-live/gateway/src/server.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in benchmarks/claw-eval-live/gateway/src/server.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-e96a6a82f28fcb54", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:86"}, "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-58b3442de8d6bc59", "name": "Commented-code block (6 lines) in benchmarks/claw-eval-live/gateway/src/mixture.ts:309", "shortDescription": {"text": "Commented-code block (6 lines) in benchmarks/claw-eval-live/gateway/src/mixture.ts:309"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ee6a4355bbeb304", "name": "Legacy-named symbol `V_old` in benchmarks/roadmapbench/harness/audit_run.py:16", "shortDescription": {"text": "Legacy-named symbol `V_old` in benchmarks/roadmapbench/harness/audit_run.py:16"}, "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-c50efb9393d6608f", "name": "Commented-code block (5 lines) in benchmarks/roadmapbench/harness/audit_run.py:140", "shortDescription": {"text": "Commented-code block (5 lines) in benchmarks/roadmapbench/harness/audit_run.py:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c367b8191ea63bf", "name": "Network/subprocess call without timeout or try/except \u2014 benchmarks/roadmapbench/harness/audit_run.py:115", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 benchmarks/roadmapbench/harness/audit_run.py:115"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-805b78991946ecc0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js:21"}, "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-616ca61540b405bb", "name": "Commented-code block (5 lines) in benchmarks/swe-bench-pro/src/runViaGateway.js:79", "shortDescription": {"text": "Commented-code block (5 lines) in benchmarks/swe-bench-pro/src/runViaGateway.js:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f030a6f7b9f0be6f", "name": "Commented-code block (6 lines) in benchmarks/swe-bench-pro/src/scorePatch.js:108", "shortDescription": {"text": "Commented-code block (6 lines) in benchmarks/swe-bench-pro/src/scorePatch.js:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69d6afd8c5f89c98", "name": "Commented-code block (6 lines) in apps/review/src/workflow/createReviewAgents.ts:34", "shortDescription": {"text": "Commented-code block (6 lines) in apps/review/src/workflow/createReviewAgents.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-90616af2600f556e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/review/src/server/worker.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/review/src/server/worker.ts:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e172e614741840a8", "name": "Commented-code block (5 lines) in apps/cli/tests/ask-human.e2e.test.js:55", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/tests/ask-human.e2e.test.js: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-a878c8c71cfbaae7", "name": "Commented-code block (7 lines) in apps/cli/tests/docs-public-surface-coverage.test.js:170", "shortDescription": {"text": "Commented-code block (7 lines) in apps/cli/tests/docs-public-surface-coverage.test.js:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f3ec17953daf9c4", "name": "Commented-code block (6 lines) in apps/cli/tests/init-installed-layout.test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/cli/tests/init-installed-layout.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fdc17f7ed9725987", "name": "Commented-code block (5 lines) in apps/cli/tests/bin-delegation-unit.test.js:128", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/tests/bin-delegation-unit.test.js: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-82ffd230463a5dad", "name": "Commented-code block (5 lines) in apps/cli/tests/_capture-workflow-ui-screenshots.test.js:17", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/tests/_capture-workflow-ui-screenshots.test.js:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86a89362b94283ab", "name": "Commented-code block (6 lines) in apps/cli/tests/cli-flag-validation.test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/cli/tests/cli-flag-validation.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76bf807f3145d19c", "name": "Commented-code block (7 lines) in apps/cli/tests/cli-signals.e2e.test.js:7", "shortDescription": {"text": "Commented-code block (7 lines) in apps/cli/tests/cli-signals.e2e.test.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c4ec5582042a0b1", "name": "Commented-code block (5 lines) in apps/cli/src/init-command.js:103", "shortDescription": {"text": "Commented-code block (5 lines) in apps/cli/src/init-command.js:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4ce94749ec98294", "name": "Commented-code block (6 lines) in apps/cli/src/snapshot-hook.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/cli/src/snapshot-hook.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0f4c514c9b54e1c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/watch.js:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/watch.js:83"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-368329b5680daa7d", "name": "Commented-code block (8 lines) in apps/cli/src/index.js:5737", "shortDescription": {"text": "Commented-code block (8 lines) in apps/cli/src/index.js:5737"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a12ef9696c369343", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/index.js:1945", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/index.js:1945"}, "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-9c82167964c4860a", "name": "Commented-code block (6 lines) in apps/smithers/vite.config.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers/vite.config.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24e62c0c3bca48f6", "name": "Commented-code block (5 lines) in apps/smithers/tests/e2e/plueHarness.spec.ts:194", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers/tests/e2e/plueHarness.spec.ts:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dacaf9ee0d321e18", "name": "Commented-code block (6 lines) in apps/smithers/scripts/capture/surfaces.ts:301", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers/scripts/capture/surfaces.ts:301"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bbed9262ba8c66f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/public/sw.js:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/public/sw.js:67"}, "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-6114bed6e311b81d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/env.ts:65", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/env.ts:65"}, "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-6749e3131294a2ee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/workerPlue.test.ts:74", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/workerPlue.test.ts:74"}, "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-d68856576953615e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.realkey.test.ts:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.realkey.test.ts:40"}, "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-8cc093f02e0bfcfd", "name": "Commented-code block (6 lines) in apps/smithers/src/main.tsx:38", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers/src/main.tsx: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-3dcd0dea30d07835", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.test.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.test.ts: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-4cfdb7bcd0373a95", "name": "Commented-code block (5 lines) in apps/smithers/src/worker.ts:286", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers/src/worker.ts:286"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce05827d20d6d503", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.ts:376", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.ts:376"}, "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-5f6d40adb4868685", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/auth/authClient.ts:238", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/auth/authClient.ts:238"}, "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-9d1e0c0797b901a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/jjhub/platformFetch.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/jjhub/platformFetch.ts:17"}, "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-529acd6f7a74786b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/observability/workerMetrics.test.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/observability/workerMetrics.test.ts:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-344603372bc6b54c", "name": "Legacy-named symbol `sessions_v1` in apps/smithers/src/approvals/approvals.ts:146", "shortDescription": {"text": "Legacy-named symbol `sessions_v1` in apps/smithers/src/approvals/approvals.ts:146"}, "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-fdff235316303195", "name": "Commented-code block (5 lines) in apps/smithers/src/prompts/promptsStore.ts:134", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers/src/prompts/promptsStore.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-219403204d6ffafa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.ts:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.ts:81"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc49e4bfd524e4a6", "name": "Commented-code block (5 lines) in apps/smithers/src/gateway/gatewayStore.ts:467", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers/src/gateway/gatewayStore.ts:467"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f30cbea15e733f43", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.test.ts:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.test.ts:104"}, "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-834fb6bb5cd32ccb", "name": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/Diff.ts:7", "shortDescription": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/Diff.ts:7"}, "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-7975133f48c75ffd", "name": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/authRefactorDiff.ts:12", "shortDescription": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/authRefactorDiff.ts:12"}, "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-a821fc922f26bc0e", "name": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffPaginateDomain.test.ts:117", "shortDescription": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffPaginateDomain.test.ts:117"}, "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-57ac18bbe6f4a8a8", "name": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/DiffHunks.tsx:43", "shortDescription": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/DiffHunks.tsx:43"}, "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-b7232b5f81e4802f", "name": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffDomain.test.ts:27", "shortDescription": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffDomain.test.ts:27"}, "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-857bf3608291a9c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/pair/pairSyncDO.ts:171", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/pair/pairSyncDO.ts:171"}, "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-12e63e8a4926c452", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/playwright.config.ts:38", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/playwright.config.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-6e8d20d735210495", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/vite.config.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/vite.config.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8528150f14074d97", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/electrobun.config.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/electrobun.config.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-e0813f843d7e16f1", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/electrobun/studioRpc.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/electrobun/studioRpc.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1b3e0d8d779c419", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/electrobun/studioRpc.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/electrobun/studioRpc.ts:21"}, "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-f76f7e19a25da5ee", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/fixtures/workspaceApiServer.ts:493", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/fixtures/workspaceApiServer.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-fb06a3ba868df0ef", "name": "Commented-code block (7 lines) in apps/smithers-studio-2/tests/fixtures/gatewayFixture.tsx:65", "shortDescription": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/tests/fixtures/gatewayFixture.tsx:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b5517bbed998727", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/server/pty-server.test.ts:444", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/server/pty-server.test.ts:444"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b68f5b72fb981ac7", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/terminal-lifecycle.spec.ts:49", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/terminal-lifecycle.spec.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-434218b989ad4936", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/terminal.spec.ts:92", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/terminal.spec.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c86f4984a008983", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/runs.spec.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/runs.spec.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75562ca717c62a01", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/runs-live.spec.ts:74", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/runs-live.spec.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f86b83e0eba90455", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/devtools-tree.spec.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/devtools-tree.spec.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-3a01c1c8e4217119", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/scripts/pty-server.ts:111", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/scripts/pty-server.ts:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89abe66d46f0eaa2", "name": "Commented-code block (9 lines) in apps/smithers-studio-2/scripts/dev.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in apps/smithers-studio-2/scripts/dev.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-1dc6d35187e1b75e", "name": "Commented-code block (7 lines) in apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:451", "shortDescription": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:451"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b11205a16876116", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:158", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:158"}, "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-dd10bd4d08af5890", "name": "Legacy-named symbol `current_working_copy` in apps/smithers-studio-2/server/workspaceBackend.ts:2392", "shortDescription": {"text": "Legacy-named symbol `current_working_copy` in apps/smithers-studio-2/server/workspaceBackend.ts:2392"}, "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-ae5746b10b09f6c0", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/server/startGatewayServer.ts:77", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/server/startGatewayServer.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-47a35a99913e7b32", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/server/chat/streamChatMessage.ts:70", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/server/chat/streamChatMessage.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-601bfabe8bd11f41", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/server/runs/launchWorkflowRun.ts:59", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/server/runs/launchWorkflowRun.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-7e1555d67b43baba", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/server/queries/querySmithersDb.mjs:18", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/server/queries/querySmithersDb.mjs: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-88a429e6c1c0384d", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/src/three.d.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/three.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-34b14ae66eef068a", "name": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/landings/LandingsPanel.tsx:204", "shortDescription": {"text": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/landings/LandingsPanel.tsx:204"}, "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-c3092697eded6c09", "name": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/issues/IssuesPanel.tsx:95", "shortDescription": {"text": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/issues/IssuesPanel.tsx:95"}, "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-5764c14d236ffa19", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/GhosttyTerminalPane.tsx:185", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/GhosttyTerminalPane.tsx:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55033ebc1b54b171", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/useAgentChat.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/useAgentChat.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-b12ca6b2ad35439d", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunsData.ts:57", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunsData.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-70a675e7d0c211e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/src/runs/useRunsData.ts:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/src/runs/useRunsData.ts:86"}, "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-557190187244adda", "name": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunEvents.ts:143", "shortDescription": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunEvents.ts:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4eb340cca9b7b82a", "name": "Commented-code block (7 lines) in apps/smithers-studio-2/src/runs/Runs.tsx:38", "shortDescription": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/src/runs/Runs.tsx: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-e8846c678a445ff6", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/developer/DevToolsNodeInspector.tsx:60", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/developer/DevToolsNodeInspector.tsx: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-ac54eaf6c695f188", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/useWorkflowList.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/useWorkflowList.ts:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d49a6a9509acd1e", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/launchFieldLogic.ts:93", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/launchFieldLogic.ts:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e12b5a4c576ce88f", "name": "Commented-code block (5 lines) in apps/smithers-studio-2/src/shell/CommandPalette/CommandPalette.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/shell/CommandPalette/CommandPalette.tsx: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-0abb9152dbef4c55", "name": "Commented-code block (8 lines) in scripts/publish.mjs:6", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/publish.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e13d4d4382870478", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-jj-binaries.mjs:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-jj-binaries.mjs:36"}, "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-2907dbcb11dd51a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e-real/worker.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e-real/worker.ts:64"}, "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-b6e927635c328cbc", "name": "Commented-code block (6 lines) in packages/gateway-react/tests/docsExamplesCompile.test.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in packages/gateway-react/tests/docsExamplesCompile.test.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-cb80bfd492aa1cba", "name": "Commented-code block (5 lines) in packages/gateway-react/src/useGatewayRpc.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in packages/gateway-react/src/useGatewayRpc.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-cbdc79a777e74062", "name": "Commented-code block (5 lines) in packages/driver/tests/spawnCaptureEffect.test.js:302", "shortDescription": {"text": "Commented-code block (5 lines) in packages/driver/tests/spawnCaptureEffect.test.js:302"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-960e5a0d1fbd5843", "name": "Commented-code block (5 lines) in packages/components/tests/react-hooks.test.jsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in packages/components/tests/react-hooks.test.jsx: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-e245903f2dfde37b", "name": "Commented-code block (5 lines) in packages/components/src/components/EscalationChain.js:78", "shortDescription": {"text": "Commented-code block (5 lines) in packages/components/src/components/EscalationChain.js:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f1e52527e322256", "name": "Commented-code block (6 lines) in packages/smithers/tests/exit-listener-leak-unit.test.js:23", "shortDescription": {"text": "Commented-code block (6 lines) in packages/smithers/tests/exit-listener-leak-unit.test.js:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4cc14d7d1d77dc8d", "name": "Legacy-named symbol `org_legacy` in packages/control-plane/tests/control-plane.test.js:316", "shortDescription": {"text": "Legacy-named symbol `org_legacy` in packages/control-plane/tests/control-plane.test.js:316"}, "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-20637fb22074d7d9", "name": "Legacy-named symbol `_smithers_cp_secret_refs_legacy` in packages/control-plane/src/index.js:184", "shortDescription": {"text": "Legacy-named symbol `_smithers_cp_secret_refs_legacy` in packages/control-plane/src/index.js:184"}, "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-19176e03b7b5fea6", "name": "Commented-code block (5 lines) in packages/vcs/tests/jj-real-repo.test.js:227", "shortDescription": {"text": "Commented-code block (5 lines) in packages/vcs/tests/jj-real-repo.test.js:227"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10272d6a71bf7d7f", "name": "Commented-code block (6 lines) in packages/sandbox/tests/sandbox-isolation.test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sandbox/tests/sandbox-isolation.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c864e2915f8c040b", "name": "Commented-code block (8 lines) in packages/agents/tests/opencode-support.test.js:33", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agents/tests/opencode-support.test.js: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-5ddbdb13ff2a022f", "name": "Commented-code block (7 lines) in packages/agents/tests/run-diagnostics-timeout-cleared.test.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in packages/agents/tests/run-diagnostics-timeout-cleared.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a11a03a3ab9c7197", "name": "Commented-code block (5 lines) in packages/agents/tests/run-rpc-command-effect-timers.test.js:68", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agents/tests/run-rpc-command-effect-timers.test.js:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c633e23ca88b765", "name": "Commented-code block (5 lines) in packages/agents/src/ClaudeCodeAgent.js:97", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agents/src/ClaudeCodeAgent.js:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35d2156800b4b9d4", "name": "Commented-code block (5 lines) in packages/agents/src/KimiAgent.js:454", "shortDescription": {"text": "Commented-code block (5 lines) in packages/agents/src/KimiAgent.js:454"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ceed2debe6393225", "name": "Commented-code block (8 lines) in packages/agents/src/BaseCliAgent/BaseCliAgent.js:929", "shortDescription": {"text": "Commented-code block (8 lines) in packages/agents/src/BaseCliAgent/BaseCliAgent.js:929"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67d4b6deab7cc41b", "name": "Commented-code block (7 lines) in packages/memory/tests/store-concurrent.test.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in packages/memory/tests/store-concurrent.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bee6596a7431b272", "name": "Commented-code block (6 lines) in packages/server/tests/gateway-extensions-dispatch.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in packages/server/tests/gateway-extensions-dispatch.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6d7cb74b277df28", "name": "Commented-code block (5 lines) in packages/server/src/gateway.js:3353", "shortDescription": {"text": "Commented-code block (5 lines) in packages/server/src/gateway.js:3353"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b775ad1c835d324a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/server/src/gateway.js:1494", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/server/src/gateway.js:1494"}, "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-5b4210d098dfc555", "name": "Commented-code block (5 lines) in packages/server/src/GatewayExtensions.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/server/src/GatewayExtensions.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c6cd7b880f8890d", "name": "Commented-code block (5 lines) in packages/server/src/gatewayRoutes/getNodeDiff.js:345", "shortDescription": {"text": "Commented-code block (5 lines) in packages/server/src/gatewayRoutes/getNodeDiff.js:345"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ce27983b0e02142", "name": "Commented-code block (8 lines) in packages/time-travel/tests/rewindLock-concurrent.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in packages/time-travel/tests/rewindLock-concurrent.test.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-634a8af64e27e363", "name": "Legacy-named symbol `out_unused` in packages/time-travel/tests/rewindRollback.test.ts:21", "shortDescription": {"text": "Legacy-named symbol `out_unused` in packages/time-travel/tests/rewindRollback.test.ts: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-f00497c7721702d8", "name": "Commented-code block (6 lines) in packages/engine/tests/cli-agent-event-output-capture.test.jsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/tests/cli-agent-event-output-capture.test.jsx: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-72d22044bd3fc7eb", "name": "Legacy-named symbol `working_copy` in packages/engine/tests/workspace-watcher.test.js:60", "shortDescription": {"text": "Legacy-named symbol `working_copy` in packages/engine/tests/workspace-watcher.test.js:60"}, "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-de8b18804fe3e104", "name": "Commented-code block (5 lines) in packages/engine/tests/workspace-watcher.test.js:98", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/tests/workspace-watcher.test.js:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d378ab59c3146ee", "name": "Commented-code block (5 lines) in packages/engine/tests/events-persist-log-append.test.js:80", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/tests/events-persist-log-append.test.js:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-214c971457b49e99", "name": "Commented-code block (5 lines) in packages/engine/tests/diff-bundle.test.js:126", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/tests/diff-bundle.test.js:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c81ca8fc5982ee30", "name": "Legacy-named symbol `runLegacy` in packages/engine/tests/engine-legacy-mode.test.jsx:24", "shortDescription": {"text": "Legacy-named symbol `runLegacy` in packages/engine/tests/engine-legacy-mode.test.jsx:24"}, "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-33aab4df29275252", "name": "Legacy-named symbol `runWorkflowBodyLegacy` in packages/engine/src/engine.js:4623", "shortDescription": {"text": "Legacy-named symbol `runWorkflowBodyLegacy` in packages/engine/src/engine.js:4623"}, "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-647bcb34e82b4947", "name": "Commented-code block (6 lines) in packages/engine/src/engine.js:2360", "shortDescription": {"text": "Commented-code block (6 lines) in packages/engine/src/engine.js:2360"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1aa24a112b9dd4ff", "name": "Commented-code block (5 lines) in packages/engine/src/durabilityGapSpool.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/engine/src/durabilityGapSpool.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be23ac1d16f9640e", "name": "Commented-code block (5 lines) in packages/db/tests/migrations.test.js:198", "shortDescription": {"text": "Commented-code block (5 lines) in packages/db/tests/migrations.test.js:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0477e9face1af070", "name": "Commented-code block (6 lines) in packages/db/tests/db-concurrent.test.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in packages/db/tests/db-concurrent.test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f6486be5a24cac5", "name": "Commented-code block (7 lines) in packages/db/src/adapter.js:2396", "shortDescription": {"text": "Commented-code block (7 lines) in packages/db/src/adapter.js:2396"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-500c814f0d82941d", "name": "Commented-code block (8 lines) in packages/scheduler/src/makeWorkflowSession.js:481", "shortDescription": {"text": "Commented-code block (8 lines) in packages/scheduler/src/makeWorkflowSession.js:481"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d890a21bbb1bbed7", "name": "Commented-code block (7 lines) in packages/gateway-client/tests/gatewayReconnectResume.test.ts:177", "shortDescription": {"text": "Commented-code block (7 lines) in packages/gateway-client/tests/gatewayReconnectResume.test.ts:177"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecf869784611ebc3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/gateway-client/src/sync/SyncCache.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/gateway-client/src/sync/SyncCache.ts: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-5ce93516ac1c79c8", "name": "Commented-code block (5 lines) in packages/gateway-client/src/sync/SyncSubscriptionHub.ts:237", "shortDescription": {"text": "Commented-code block (5 lines) in packages/gateway-client/src/sync/SyncSubscriptionHub.ts:237"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe75d1c7d990d38e", "name": "Commented-code block (5 lines) in packages/graph/src/extract.js:13", "shortDescription": {"text": "Commented-code block (5 lines) in packages/graph/src/extract.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c97a378802cb932", "name": "Commented-code block (9 lines) in packages/graph/src/dom/extract.js:17", "shortDescription": {"text": "Commented-code block (9 lines) in packages/graph/src/dom/extract.js:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbfde49f26534ffc", "name": "Commented-code block (5 lines) in packages/openapi/tests/build-url-base-path.test.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in packages/openapi/tests/build-url-base-path.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79ca1636f8327e26", "name": "Commented-code block (5 lines) in packages/openapi/tests/loadSpec-content-error.test.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in packages/openapi/tests/loadSpec-content-error.test.js: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-c854a6cf8593b5a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/loadSpecEffect.js:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/loadSpecEffect.js:26"}, "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-7de62d67de32893b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/tool-factory/_helpers.js:126", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/tool-factory/_helpers.js:126"}, "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-7b638fc28bb592f9", "name": "Commented-code block (6 lines) in examples/mcp-integration/workflow.tsx:19", "shortDescription": {"text": "Commented-code block (6 lines) in examples/mcp-integration/workflow.tsx: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-44abdd5c9dd722f9", "name": "Commented-code block (7 lines) in examples/defending-code/workflow.jsx:140", "shortDescription": {"text": "Commented-code block (7 lines) in examples/defending-code/workflow.jsx:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-162589dd457e7b9f", "name": "Commented-code block (5 lines) in examples/swe-evo/run.ts:199", "shortDescription": {"text": "Commented-code block (5 lines) in examples/swe-evo/run.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f7e9a45fa913d48", "name": "Commented-code block (5 lines) in examples/swe-evo/workflow/swe-evo.tsx:56", "shortDescription": {"text": "Commented-code block (5 lines) in examples/swe-evo/workflow/swe-evo.tsx: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-26aa2e8168c701c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 examples/swe-evo/dataset/load.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 examples/swe-evo/dataset/load.ts:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-10c161ab3ac41e23", "name": "Legacy-named symbol `parse_log_pytest_v2` in examples/swe-evo/harness/parsers.py:8", "shortDescription": {"text": "Legacy-named symbol `parse_log_pytest_v2` in examples/swe-evo/harness/parsers.py:8"}, "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-394d7134acdc1626", "name": "Commented-code block (9 lines) in e2e/faults/case10-ghost-state-on-unmount.test.ts:294", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/faults/case10-ghost-state-on-unmount.test.ts:294"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-902ca8d72cf9ba05", "name": "Commented-code block (7 lines) in e2e/faults/case14-gateway-rpc-roundtrip.test.ts:854", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/faults/case14-gateway-rpc-roundtrip.test.ts:854"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22f74d086ca9d9f5", "name": "Commented-code block (5 lines) in e2e/faults/case04-restart-waiting-event.test.ts:528", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/faults/case04-restart-waiting-event.test.ts:528"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ee8aed0eb6caa28", "name": "Commented-code block (10 lines) in e2e/faults/case07-continue-as-new-lineage.test.ts:218", "shortDescription": {"text": "Commented-code block (10 lines) in e2e/faults/case07-continue-as-new-lineage.test.ts:218"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-830a0610ac42bdf5", "name": "Commented-code block (9 lines) in e2e/faults/case01-kill-engine-mid-task.test.ts:234", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/faults/case01-kill-engine-mid-task.test.ts:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76f8fa35c616e6a9", "name": "Commented-code block (12 lines) in e2e/faults/case13-collapsed-ancestor-failure-marker.test.ts:462", "shortDescription": {"text": "Commented-code block (12 lines) in e2e/faults/case13-collapsed-ancestor-failure-marker.test.ts:462"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e7393ba16b41e3b", "name": "Commented-code block (11 lines) in e2e/faults/case24-replay-unsafe-approval.test.ts:444", "shortDescription": {"text": "Commented-code block (11 lines) in e2e/faults/case24-replay-unsafe-approval.test.ts:444"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b0b70dcf7ea2992", "name": "Commented-code block (12 lines) in e2e/faults/case17-webhook-bad-signature.test.ts:447", "shortDescription": {"text": "Commented-code block (12 lines) in e2e/faults/case17-webhook-bad-signature.test.ts:447"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9582d4946a272ed3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case17-webhook-bad-signature.test.ts:299", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case17-webhook-bad-signature.test.ts:299"}, "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-fe34bd611b694c4b", "name": "Commented-code block (8 lines) in e2e/faults/case25-approval-scope-denial.test.ts:15", "shortDescription": {"text": "Commented-code block (8 lines) in e2e/faults/case25-approval-scope-denial.test.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da3df0cd8ade7472", "name": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case25-approval-scope-denial.test.ts:127", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case25-approval-scope-denial.test.ts:127"}, "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-ceb3376dfa9a86ce", "name": "Commented-code block (5 lines) in e2e/faults/case03-restart-waiting-approval.test.ts:335", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/faults/case03-restart-waiting-approval.test.ts:335"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85a5995d45a746da", "name": "Commented-code block (9 lines) in e2e/faults/case27-scorer-failure-blocks-downstream.test.ts:434", "shortDescription": {"text": "Commented-code block (9 lines) in e2e/faults/case27-scorer-failure-blocks-downstream.test.ts:434"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40b4b82fafc7cabd", "name": "Commented-code block (8 lines) in e2e/faults/case18-cron-manual-overlap.test.ts:205", "shortDescription": {"text": "Commented-code block (8 lines) in e2e/faults/case18-cron-manual-overlap.test.ts:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b27ed9d85d98c542", "name": "Commented-code block (7 lines) in e2e/faults/case26-diff-review-mode.test.ts:504", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/faults/case26-diff-review-mode.test.ts:504"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5221acb1663f65c2", "name": "Commented-code block (6 lines) in e2e/faults/case05-restart-waiting-timer.test.ts:423", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/faults/case05-restart-waiting-timer.test.ts:423"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79a978ec7b931755", "name": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/listRuns (apps/cli/tests/gateway-command.test.js:87)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/listRuns (apps/cli/tests/gateway-command.test.js:87)"}, "fullDescription": {"text": "`apps/cli/tests/gateway-command.test.js:87` calls `POST http://127.0.0.1:${port}/v1/rpc/listRuns` 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>/v1/rpc/listruns`\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-533c78ca357e2d7b", "name": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (scripts/fetch-jj-binaries.mjs:36)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (scripts/fetch-jj-binaries.mjs:36)"}, "fullDescription": {"text": "`scripts/fetch-jj-binaries.mjs:36` 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-c61aba5a8493dc73", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages/count_tokens (packages/agents/src/diagnostics/getDiagnosticSt", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages/count_tokens (packages/agents/src/diagnostics/getDiagnosticStrategy.js:108)"}, "fullDescription": {"text": "`packages/agents/src/diagnostics/getDiagnosticStrategy.js:108` calls `POST https://api.anthropic.com/v1/messages/count_tokens` 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/count_tokens`\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-459af1a5ca885458", "name": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:206)", "shortDescription": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:206)"}, "fullDescription": {"text": "`packages/agents/src/diagnostics/getDiagnosticStrategy.js:206` calls `GET https://api.openai.com/v1/models` 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.openai.com/v1/models`\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-ac18d71dc7499d05", "name": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:258)", "shortDescription": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:258)"}, "fullDescription": {"text": "`packages/agents/src/diagnostics/getDiagnosticStrategy.js:258` calls `GET https://api.openai.com/v1/models` 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.openai.com/v1/models`\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-0172a71c3ea0acdb", "name": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnost", "shortDescription": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:335)"}, "fullDescription": {"text": "`packages/agents/src/diagnostics/getDiagnosticStrategy.js:335` calls `GET https://generativelanguage.googleapis.com/v1beta/models` 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`\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-8b47b068ac585a3b", "name": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnost", "shortDescription": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:400)"}, "fullDescription": {"text": "`packages/agents/src/diagnostics/getDiagnosticStrategy.js:400` calls `GET https://generativelanguage.googleapis.com/v1beta/models` 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`\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-b23527f12e91ba23", "name": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/server.test.js:31)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/server.test.js:31)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:31` calls `GET http://localhost:${port}${path}` 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:/<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-5311f6847c36cd85", "name": "Dangling fetch: POST http://localhost:${port}/v1/runs (packages/server/tests/server.test.js:236)", "shortDescription": {"text": "Dangling fetch: POST http://localhost:${port}/v1/runs (packages/server/tests/server.test.js:236)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:236` calls `POST http://localhost:${port}/v1/runs` 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:/<p>/v1/runs`\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-6fbccde3bda63e26", "name": "Dangling fetch: GET http://localhost:${port}/v1/runs/${startData.runId}/events (packages/server/tests/server.test.js:476", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/v1/runs/${startData.runId}/events (packages/server/tests/server.test.js:476)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:476` calls `GET http://localhost:${port}/v1/runs/${startData.runId}/events` 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:/<p>/v1/runs/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4474f2744062ea30", "name": "Dangling fetch: GET http://localhost:${port}/v1/runs/non-existent-run-id/events (packages/server/tests/server.test.js:49", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/v1/runs/non-existent-run-id/events (packages/server/tests/server.test.js:491)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:491` calls `GET http://localhost:${port}/v1/runs/non-existent-run-id/events` 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:/<p>/v1/runs/non-existent-run-id/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76df132ac649060e", "name": "Dangling fetch: GET /v1/runs/${runId} (packages/server/tests/server.test.js:74)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/${runId} (packages/server/tests/server.test.js:74)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:74` calls `GET /v1/runs/${runId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<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-cd257ee2fa31d111", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:181)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:181)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:181` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-6515253c1c6145de", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:194)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:194)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:194` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-fbfc791d989eeb0a", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:203)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:203)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:203` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-b07beac7ba6d9615", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:215)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:215)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:215` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-2f5aefafd56aaedb", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:224)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:224)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:224` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-b0e261ad741a1e42", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:250)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:250)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:250` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-8502295c4e4fa9c3", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:263)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:263)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:263` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-f47bbc2274ff53e9", "name": "Dangling fetch: GET /v1/runs/${startData.runId} (packages/server/tests/server.test.js:269)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/${startData.runId} (packages/server/tests/server.test.js:269)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:269` calls `GET /v1/runs/${startData.runId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<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-a4610bb26e715dca", "name": "Dangling fetch: GET /v1/runs/non-existent-run-id (packages/server/tests/server.test.js:278)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/non-existent-run-id (packages/server/tests/server.test.js:278)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:278` calls `GET /v1/runs/non-existent-run-id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id`\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-7ddf3b6b7835433a", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:288)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:288)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:288` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-463f61a2875c8c9e", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:299)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:299)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:299` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-5d10a2258578dadc", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:313)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:313)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:313` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-58759d761647bd1b", "name": "Dangling fetch: POST /v1/runs/${startData.runId}/cancel (packages/server/tests/server.test.js:318)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/cancel (packages/server/tests/server.test.js:318)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:318` calls `POST /v1/runs/${startData.runId}/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/cancel`\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-f2d672531caa4d17", "name": "Dangling fetch: POST /v1/runs/non-existent-run-id/cancel (packages/server/tests/server.test.js:326)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/cancel (packages/server/tests/server.test.js:326)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:326` calls `POST /v1/runs/non-existent-run-id/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/cancel`\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-2f80155b56f8314c", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:338)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:338)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:338` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-edc7127bf911e6b4", "name": "Dangling fetch: POST /v1/runs/${startData.runId}/resume (packages/server/tests/server.test.js:343)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/resume (packages/server/tests/server.test.js:343)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:343` calls `POST /v1/runs/${startData.runId}/resume` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/resume`\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-197c90e40fe95874", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:356)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:356)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:356` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-ed0c2d994a32c24d", "name": "Dangling fetch: GET /v1/runs/${startData.runId}/frames (packages/server/tests/server.test.js:361)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/${startData.runId}/frames (packages/server/tests/server.test.js:361)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:361` calls `GET /v1/runs/${startData.runId}/frames` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/frames`\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-a630b22f66d2c206", "name": "Dangling fetch: GET /v1/runs/non-existent-run-id/frames (packages/server/tests/server.test.js:367)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/non-existent-run-id/frames (packages/server/tests/server.test.js:367)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:367` calls `GET /v1/runs/non-existent-run-id/frames` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/frames`\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-45fb47eff251fc6e", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:375)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:375)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:375` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-d0e603726c163007", "name": "Dangling fetch: GET /v1/runs/${startData.runId}/frames?limit=10&afterFrameNo=0 (packages/server/tests/server.test.js:380", "shortDescription": {"text": "Dangling fetch: GET /v1/runs/${startData.runId}/frames?limit=10&afterFrameNo=0 (packages/server/tests/server.test.js:380)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:380` calls `GET /v1/runs/${startData.runId}/frames?limit=10&afterFrameNo=0` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/frames`\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-e5cf0eeb2202cb35", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:390)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:390)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:390` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-ed65dd457d2cfd7a", "name": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/approve (packages/server/tests/server.test.js:395)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/approve (packages/server/tests/server.test.js:395)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:395` calls `POST /v1/runs/${startData.runId}/nodes/task1/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/nodes/task1/approve`\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-44f8e97002cc169f", "name": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:404)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:404)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:404` calls `POST /v1/runs/non-existent-run-id/nodes/some-node/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/nodes/some-node/approve`\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-0c9a98d56258131e", "name": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:415)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:415)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:415` calls `POST /v1/runs/non-existent-run-id/nodes/some-node/approve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/nodes/some-node/approve`\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-3f7020fc176876a3", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:429)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:429)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:429` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-81acad8e395465cc", "name": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/deny (packages/server/tests/server.test.js:434)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/deny (packages/server/tests/server.test.js:434)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:434` calls `POST /v1/runs/${startData.runId}/nodes/task1/deny` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/<p>/nodes/task1/deny`\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-a50ab69ee57eb3d0", "name": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:443)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:443)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:443` calls `POST /v1/runs/non-existent-run-id/nodes/some-node/deny` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/nodes/some-node/deny`\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-56921ae16bbc7331", "name": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:454)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:454)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:454` calls `POST /v1/runs/non-existent-run-id/nodes/some-node/deny` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs/non-existent-run-id/nodes/some-node/deny`\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-ba8ad8f27d1f0a56", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:468)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:468)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:468` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-a0ff83933836905e", "name": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:500)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:500)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:500` calls `GET /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-a2eea75565d78f9e", "name": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:508)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:508)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:508` calls `GET /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-eaabe9dfe7ccc643", "name": "Dangling fetch: GET /v1/runs?limit=10&status=running (packages/server/tests/server.test.js:517)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs?limit=10&status=running (packages/server/tests/server.test.js:517)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:517` calls `GET /v1/runs?limit=10&status=running` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-10299a492525793e", "name": "Dangling fetch: GET /v1/runs?limit=10 (packages/server/tests/server.test.js:536)", "shortDescription": {"text": "Dangling fetch: GET /v1/runs?limit=10 (packages/server/tests/server.test.js:536)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:536` calls `GET /v1/runs?limit=10` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-4a178b6cf577ef25", "name": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:549)", "shortDescription": {"text": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:549)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:549` calls `GET /v1/approval/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/approval/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-aa1c0a2fdbe2be39", "name": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:611)", "shortDescription": {"text": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:611)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:611` calls `GET /v1/approval/list` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/approval/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-08e7b84fa09d288c", "name": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/server.test.js:634)", "shortDescription": {"text": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/server.test.js:634)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:634` calls `GET /v1/unknown-route` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/unknown-route`\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-f9a8caf01f72cb8f", "name": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:649)", "shortDescription": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:649)"}, "fullDescription": {"text": "`packages/server/tests/server.test.js:649` calls `POST /v1/runs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/runs`\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-ab5007dd585e9d96", "name": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-v1-contract.test.jsx:95)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-v1-contract.test.jsx:95)"}, "fullDescription": {"text": "`packages/server/tests/gateway-v1-contract.test.jsx:95` calls `POST http://127.0.0.1:${port}/v1/rpc/${method}` 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>/v1/rpc/<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-e6e64905ecfbe39b", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:369)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:369)"}, "fullDescription": {"text": "`packages/server/tests/gateway.test.jsx:369` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-b06fcd1edb9cf7fd", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:389)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:389)"}, "fullDescription": {"text": "`packages/server/tests/gateway.test.jsx:389` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-8377d11fa6980ba3", "name": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (packages/server/tests/gateway-webhooks.test.jsx:4", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (packages/server/tests/gateway-webhooks.test.jsx:45)"}, "fullDescription": {"text": "`packages/server/tests/gateway-webhooks.test.jsx:45` calls `POST http://127.0.0.1:${port}/webhooks/${workflowKey}` 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>/webhooks/<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-688a55b791c6352e", "name": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/github (packages/server/tests/gateway-webhooks.test.jsx:135)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/github (packages/server/tests/gateway-webhooks.test.jsx:135)"}, "fullDescription": {"text": "`packages/server/tests/gateway-webhooks.test.jsx:135` calls `POST http://127.0.0.1:${port}/webhooks/github` 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>/webhooks/github`\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-c8de7fdcc1d21454", "name": "Dangling fetch: GET http://127.0.0.1:${port}/metrics (packages/server/tests/gateway-webhooks.test.jsx:152)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/metrics (packages/server/tests/gateway-webhooks.test.jsx:152)"}, "fullDescription": {"text": "`packages/server/tests/gateway-webhooks.test.jsx:152` calls `GET http://127.0.0.1:${port}/metrics` 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>/metrics`\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-ed6256cedb9564b6", "name": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-ui.test.jsx:43)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-ui.test.jsx:43)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:43` calls `POST http://127.0.0.1:${port}/v1/rpc/${method}` 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>/v1/rpc/<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-838f2bc9eaaee806", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:79)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:79)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:79` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-d8cff78b68034177", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:88)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:88` calls `GET http://127.0.0.1:${port}/console/__smithers_ui/client.js` 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>/console/__smithers_ui/client.js`\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-733acd2db1d6c477", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:99)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:99)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:99` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-c68577cb458d68bb", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:107)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:107` calls `GET http://127.0.0.1:${port}/console/__smithers_ui/client.js` 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>/console/__smithers_ui/client.js`\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-7b8176136fc3f33d", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:132)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:132)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:132` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-1b05c0a4619b5fd0", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:140)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:140` calls `GET http://127.0.0.1:${port}/console/__smithers_ui/client.js` 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>/console/__smithers_ui/client.js`\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-6125e4c2536840f5", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:166)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:166)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:166` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-6e9b0a3a30229bd2", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:169)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:169)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:169` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-6974c6f2da8f972d", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:175)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:175` calls `GET http://127.0.0.1:${port}/console/__smithers_ui/client.js` 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>/console/__smithers_ui/client.js`\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-78760597e2babc9a", "name": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:187)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:187)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:187` calls `GET http://127.0.0.1:${port}/console` 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>/console`\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-26189738009051ce", "name": "Dangling fetch: GET http://127.0.0.1:${port}/workflows/deploy (packages/server/tests/gateway-ui.test.jsx:206)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/workflows/deploy (packages/server/tests/gateway-ui.test.jsx:206)"}, "fullDescription": {"text": "`packages/server/tests/gateway-ui.test.jsx:206` calls `GET http://127.0.0.1:${port}/workflows/deploy` 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>/workflows/deploy`\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-4e52b7dbf11e0713", "name": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/serve.test.js:65)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/serve.test.js:65)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:65` calls `GET http://localhost:${port}${path}` 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:/<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-8ae3c1d5d8792df6", "name": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:408)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:408)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:408` calls `GET http://localhost:${port}/events` 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:/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3555127676880517", "name": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:433)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:433)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:433` calls `GET http://localhost:${port}/events` 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:/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a47083c62a59283", "name": "Dangling fetch: GET http://localhost:${port}/events?afterSeq=999999 (packages/server/tests/serve.test.js:468)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/events?afterSeq=999999 (packages/server/tests/serve.test.js:468)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:468` calls `GET http://localhost:${port}/events?afterSeq=999999` 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:/<p>/events`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ac1905d11a85cd6c", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:516)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:516)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:516` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-684aa3cbc61cbdb9", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:544)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:544)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:544` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-5e271ac8a13ad44a", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:568)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:568)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:568` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-c0d94cd776b5d7e2", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:589)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:589)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:589` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-c3d2bcaa8a6bedd8", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:607)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:607)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:607` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-e1824b2d64cefb30", "name": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:618)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:618)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:618` calls `GET http://localhost:${port}/metrics` 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:/<p>/metrics`\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-78d93c203cf01d75", "name": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:340)", "shortDescription": {"text": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:340)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:340` calls `POST /approve/task1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/approve/task1`\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-9580a56c57a80ef3", "name": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:362)", "shortDescription": {"text": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:362)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:362` calls `POST /deny/task1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/deny/task1`\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-9e786fbc88bc5023", "name": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:584)", "shortDescription": {"text": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:584)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:584` calls `POST /approve/task1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/approve/task1`\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-b7c2578b04d508d2", "name": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:602)", "shortDescription": {"text": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:602)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:602` calls `POST /deny/task1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/deny/task1`\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-af620858bd63924d", "name": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/serve.test.js:635)", "shortDescription": {"text": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/serve.test.js:635)"}, "fullDescription": {"text": "`packages/server/tests/serve.test.js:635` calls `GET /v1/unknown-route` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/unknown-route`\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-db4172bb5ac38027", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:159)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:159)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:159` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-6dacf893115a79e0", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:196)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:196)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:196` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-78e7aeda9a1ac909", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:210)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:210)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:210` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-d65426f0d3f593d5", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:265)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:265)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:265` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-415e512666603fc0", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:281)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:281)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:281` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-cd2db518560959f7", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:294)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:294)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:294` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-9b12247a455aa6d2", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:308)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:308)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:308` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-832cc6646bc834d0", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:324)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:324)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:324` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-a35588a5395482cc", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:394)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:394)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:394` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-df534f5fad38336d", "name": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:410)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:410)"}, "fullDescription": {"text": "`packages/server/tests/gateway-http-boundaries.test.js:410` calls `POST http://127.0.0.1:${port}/rpc` 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>/rpc`\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-5e812d509d453cc4", "name": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/plueBridge.spec.ts:22)", "shortDescription": {"text": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/plueBridge.spec.ts:22)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/plueBridge.spec.ts:22` calls `GET /api/user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user`\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-6a7c97d6b14f3930", "name": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/plueBridge.spec.ts:29)", "shortDescription": {"text": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/plueBridge.spec.ts:29)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/plueBridge.spec.ts:29` calls `GET /api/user/repos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/repos`\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-a83ab55db22a3a45", "name": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/plueBridge.spec.ts:43)", "shortDescription": {"text": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/plueBridge.spec.ts:43)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/plueBridge.spec.ts:43` calls `GET /api/repos/fixture/widgets/issues` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/repos/fixture/widgets/issues`\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-ee6a475a48e4a86c", "name": "Dangling fetch: PUT /api/notifications (apps/smithers/tests/e2e/plueBridge.spec.ts:55)", "shortDescription": {"text": "Dangling fetch: PUT /api/notifications (apps/smithers/tests/e2e/plueBridge.spec.ts:55)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/plueBridge.spec.ts:55` calls `PUT /api/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/notifications`\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-a37f2e4280ec1377", "name": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/splitConfig.spec.ts:17)", "shortDescription": {"text": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/splitConfig.spec.ts:17)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/splitConfig.spec.ts:17` calls `GET /api/user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user`\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-ea298610bb708782", "name": "Dangling fetch: GET /api/user/keys (apps/smithers/tests/e2e/splitConfig.spec.ts:34)", "shortDescription": {"text": "Dangling fetch: GET /api/user/keys (apps/smithers/tests/e2e/splitConfig.spec.ts:34)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/splitConfig.spec.ts:34` calls `GET /api/user/keys` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/keys`\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-0c64ea01f429cc3b", "name": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/splitConfig.spec.ts:48)", "shortDescription": {"text": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/splitConfig.spec.ts:48)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/splitConfig.spec.ts:48` calls `GET /api/user/repos` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/repos`\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-63304eb21fb8eeed", "name": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/splitConfig.spec.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/splitConfig.spec.ts:63)"}, "fullDescription": {"text": "`apps/smithers/tests/e2e/splitConfig.spec.ts:63` calls `GET /api/repos/fixture/widgets/issues` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/repos/fixture/widgets/issues`\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-b198579bf6f97f39", "name": "Dangling fetch: POST https://api.freestyle.sh/v1/vms/${vm}/exec-await (apps/smithers/src/pair/pairSyncDO.ts:171)", "shortDescription": {"text": "Dangling fetch: POST https://api.freestyle.sh/v1/vms/${vm}/exec-await (apps/smithers/src/pair/pairSyncDO.ts:171)"}, "fullDescription": {"text": "`apps/smithers/src/pair/pairSyncDO.ts:171` calls `POST https://api.freestyle.sh/v1/vms/${vm}/exec-await` 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.freestyle.sh/v1/vms/<p>/exec-await`\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-f8cff359db2b21b1", "name": "Dangling fetch: POST /sync${path} (apps/smithers/src/pair/PairCoding.tsx:40)", "shortDescription": {"text": "Dangling fetch: POST /sync${path} (apps/smithers/src/pair/PairCoding.tsx:40)"}, "fullDescription": {"text": "`apps/smithers/src/pair/PairCoding.tsx:40` calls `POST /sync${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sync/<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-556006e4e4d591fc", "name": "Dangling fetch: GET /sync/v1/shape?${params} (apps/smithers/src/pair/PairCoding.tsx:87)", "shortDescription": {"text": "Dangling fetch: GET /sync/v1/shape?${params} (apps/smithers/src/pair/PairCoding.tsx:87)"}, "fullDescription": {"text": "`apps/smithers/src/pair/PairCoding.tsx:87` calls `GET /sync/v1/shape?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sync/v1/shape`\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-d24e7fb68a012df4", "name": "Dangling fetch: GET /sync/health (apps/smithers/src/pair/PairCoding.tsx:153)", "shortDescription": {"text": "Dangling fetch: GET /sync/health (apps/smithers/src/pair/PairCoding.tsx:153)"}, "fullDescription": {"text": "`apps/smithers/src/pair/PairCoding.tsx:153` calls `GET /sync/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sync/health`\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-82d6472102d1c5aa", "name": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspaceApi.ts:570)", "shortDescription": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspaceApi.ts:570)"}, "fullDescription": {"text": "`apps/smithers-studio-2/src/workspaceApi.ts:570` calls `GET /__smithers_studio/api${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/__smithers_studio/api/<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-ff24169c32c821cb", "name": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspace/chatApi.ts:47)", "shortDescription": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspace/chatApi.ts:47)"}, "fullDescription": {"text": "`apps/smithers-studio-2/src/workspace/chatApi.ts:47` calls `GET /__smithers_studio/api${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/__smithers_studio/api/<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-7cd876816deeae9a", "name": "Dangling fetch: POST /__smithers_studio/api/chat/message (apps/smithers-studio-2/src/workspace/chatApi.ts:91)", "shortDescription": {"text": "Dangling fetch: POST /__smithers_studio/api/chat/message (apps/smithers-studio-2/src/workspace/chatApi.ts:91)"}, "fullDescription": {"text": "`apps/smithers-studio-2/src/workspace/chatApi.ts:91` calls `POST /__smithers_studio/api/chat/message` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/__smithers_studio/api/chat/message`\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-f07e180b9123ce46", "name": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workflows/workflowsApi.ts:41)", "shortDescription": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workflows/workflowsApi.ts:41)"}, "fullDescription": {"text": "`apps/smithers-studio-2/src/workflows/workflowsApi.ts:41` calls `GET /__smithers_studio/api${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/__smithers_studio/api/<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-fb796f82fb4267c1", "name": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (e2e/faults/case17-webhook-bad-signature.test.ts:2", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (e2e/faults/case17-webhook-bad-signature.test.ts:299)"}, "fullDescription": {"text": "`e2e/faults/case17-webhook-bad-signature.test.ts:299` calls `POST http://127.0.0.1:${port}/webhooks/${workflowKey}` 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>/webhooks/<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-9170af3c9c14b68f", "name": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (e2e/faults/case25-approval-scope-denial.test.ts:127)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (e2e/faults/case25-approval-scope-denial.test.ts:127)"}, "fullDescription": {"text": "`e2e/faults/case25-approval-scope-denial.test.ts:127` calls `POST http://127.0.0.1:${port}/v1/rpc/${method}` 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>/v1/rpc/<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-67d28fa8cd6bb12f", "name": "Unused endpoint: PUT /", "shortDescription": {"text": "Unused endpoint: PUT /"}, "fullDescription": {"text": "`apps/smithers/public/sw.js` declares `PUT /` 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-43269e4e79c2e69e", "name": "Unused endpoint: GET /events", "shortDescription": {"text": "Unused endpoint: GET /events"}, "fullDescription": {"text": "`packages/server/src/serve.js` declares `GET /events` 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-1663792f08ebaecd", "name": "Unused endpoint: POST /approve/:nodeId", "shortDescription": {"text": "Unused endpoint: POST /approve/:nodeId"}, "fullDescription": {"text": "`packages/server/src/serve.js` declares `POST /approve/:nodeId` 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-7007c701da7af27c", "name": "Unused endpoint: POST /deny/:nodeId", "shortDescription": {"text": "Unused endpoint: POST /deny/:nodeId"}, "fullDescription": {"text": "`packages/server/src/serve.js` declares `POST /deny/:nodeId` 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/19944"}, "properties": {"repository": "smithersai/smithers", "repoUrl": "https://github.com/smithersai/smithers", "branch": "main"}, "results": [{"ruleId": "scanner-d66178db19e1f1e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:118"}, "properties": {"repobilityId": "34358f0b4b66e63f", "scanner": "scanner-primary", "fingerprint": "d66178db19e1f1e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c86e59a09b1618e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/setup.js:15"}, "properties": {"repobilityId": "261ce4e8552c12e8", "scanner": "scanner-primary", "fingerprint": "c86e59a09b1618e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d420a097bffa3e48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js:23"}, "properties": {"repobilityId": "396b7f59718ce477", "scanner": "scanner-primary", "fingerprint": "d420a097bffa3e48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84f3c13218a32776", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/cli.js:69"}, "properties": {"repobilityId": "147db407f97bd511", "scanner": "scanner-primary", "fingerprint": "84f3c13218a32776", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3860e7c014013593", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/scripts/gateway-server.js:27"}, "properties": {"repobilityId": "543f5e45f4dd6f58", "scanner": "scanner-primary", "fingerprint": "3860e7c014013593", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-48f54a37c059d987", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runViaGateway.js:163"}, "properties": {"repobilityId": "c366d5421d40feb6", "scanner": "scanner-primary", "fingerprint": "48f54a37c059d987", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a5ab37dfbe48f1d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runBenchmark.js:33"}, "properties": {"repobilityId": "9ed8bcf1200d5132", "scanner": "scanner-primary", "fingerprint": "a5ab37dfbe48f1d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-09865e1279594573", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmarks/swe-bench-pro/src/runInstance.js:56"}, "properties": {"repobilityId": "973cec0af2da8f09", "scanner": "scanner-primary", "fingerprint": "09865e1279594573", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a82b60cbe9b3e4c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/alchemy.run.ts:73"}, "properties": {"repobilityId": "fd06d533aea385bc", "scanner": "scanner-primary", "fingerprint": "a82b60cbe9b3e4c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b033f33315e558f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runAction.ts:32"}, "properties": {"repobilityId": "2f25eb4fda312345", "scanner": "scanner-primary", "fingerprint": "3b033f33315e558f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a55c5c822aa7123e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/action/src/runGate.ts:25"}, "properties": {"repobilityId": "57967df1a5f058c1", "scanner": "scanner-primary", "fingerprint": "a55c5c822aa7123e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7f152f2b5df4c7a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/review/src/cli/main.ts:71"}, "properties": {"repobilityId": "c71ab69ee4120465", "scanner": "scanner-primary", "fingerprint": "c7f152f2b5df4c7a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73bdf3bf05db2d4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/_capture-workflow-ui-screenshots.test.js:116"}, "properties": {"repobilityId": "0af2e846ea9443bf", "scanner": "scanner-primary", "fingerprint": "73bdf3bf05db2d4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e3bcadf24aebe7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/tests/workflow-ui-all.e2e.test.js:165"}, "properties": {"repobilityId": "e3a8b6239f2cc7b6", "scanner": "scanner-primary", "fingerprint": "8e3bcadf24aebe7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c9830525db91bab2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/workflow-pack.js:1722"}, "properties": {"repobilityId": "daf14f6d109969c8", "scanner": "scanner-primary", "fingerprint": "c9830525db91bab2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-443f6e1f58af98cc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/cli/src/index.js:2236"}, "properties": {"repobilityId": "fc480824413b1bc8", "scanner": "scanner-primary", "fingerprint": "443f6e1f58af98cc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-265387b8088ff440", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/alchemy.run.ts:81"}, "properties": {"repobilityId": "3f5a1120927970a0", "scanner": "scanner-primary", "fingerprint": "265387b8088ff440", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f84aa7e96523a0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/fakePlueHost.ts:452"}, "properties": {"repobilityId": "586a32f0dcef07c7", "scanner": "scanner-primary", "fingerprint": "2f84aa7e96523a0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23c3be36b3e157b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/cerebrasUpstream.ts:62"}, "properties": {"repobilityId": "ab5de1b4b3d29809", "scanner": "scanner-primary", "fingerprint": "23c3be36b3e157b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51bef538711003f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/plueFixture.ts:137"}, "properties": {"repobilityId": "0cc88404efcd4791", "scanner": "scanner-primary", "fingerprint": "51bef538711003f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c319b7f2e19a1978", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/workerHost.ts:40"}, "properties": {"repobilityId": "afd51f8456a43c8a", "scanner": "scanner-primary", "fingerprint": "c319b7f2e19a1978", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cb0f1bad1b46c0ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/tests/fixtures/authFixture.ts:64"}, "properties": {"repobilityId": "b9572055f79149af", "scanner": "scanner-primary", "fingerprint": "cb0f1bad1b46c0ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-87e4236954720ba0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/generateSlideshow.ts:402"}, "properties": {"repobilityId": "1888c920383a2acb", "scanner": "scanner-primary", "fingerprint": "87e4236954720ba0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c8a352fda16c7a2a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers/scripts/capture/capture.ts:533"}, "properties": {"repobilityId": "72471b3753f57f72", "scanner": "scanner-primary", "fingerprint": "c8a352fda16c7a2a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-493c9af4a6263c17", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 apps/smithers/src/askme/WorkflowGraph.tsx:57"}, "properties": {"repobilityId": "286cc75f16626ddd", "scanner": "scanner-primary", "fingerprint": "493c9af4a6263c17", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-c579b99ba06e3b8f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/smithers/src/concierge/ConciergeConsole.tsx:33"}, "properties": {"repobilityId": "a845e275f1683928", "scanner": "scanner-primary", "fingerprint": "c579b99ba06e3b8f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-37c0b7f39d514207", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 apps/smithers-demo/src/App.tsx:223"}, "properties": {"repobilityId": "c345c784b87470a9", "scanner": "scanner-primary", "fingerprint": "37c0b7f39d514207", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-7235af462971ca52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/tests/e2e/pty-server.spec.ts:40"}, "properties": {"repobilityId": "12475bad84c10e0c", "scanner": "scanner-primary", "fingerprint": "7235af462971ca52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6885a0aa15b7f8e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/pty-server.ts:595"}, "properties": {"repobilityId": "6d831df72edd7688", "scanner": "scanner-primary", "fingerprint": "f6885a0aa15b7f8e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4dec41b8c50a438e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/smithers-studio-2/scripts/dev.ts:59"}, "properties": {"repobilityId": "ef24033435dba675", "scanner": "scanner-primary", "fingerprint": "4dec41b8c50a438e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-80777eb10fdaed26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sandbox.ts:18"}, "properties": {"repobilityId": "5c4c665b042f1136", "scanner": "scanner-primary", "fingerprint": "80777eb10fdaed26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-998797372fe2edbf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/optimize-llms-full.ts:404"}, "properties": {"repobilityId": "82f4722b02264d49", "scanner": "scanner-primary", "fingerprint": "998797372fe2edbf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-daaf7a44ee6f3d04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-llms.ts:239"}, "properties": {"repobilityId": "66c5183ee35e1fd2", "scanner": "scanner-primary", "fingerprint": "daaf7a44ee6f3d04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3615310f4ea8de9b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize-bunx.ts:136"}, "properties": {"repobilityId": "aa7bed13d8e75ab4", "scanner": "scanner-primary", "fingerprint": "3615310f4ea8de9b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2f61b6d788b042b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/normalize-placeholders.ts:133"}, "properties": {"repobilityId": "5c8ea676d99a1ee1", "scanner": "scanner-primary", "fingerprint": "2f61b6d788b042b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6973fe78578cdd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/build-slideshow.ts:349"}, "properties": {"repobilityId": "84b2df2f80f4e693", "scanner": "scanner-primary", "fingerprint": "f6973fe78578cdd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f692a699ae9487ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/capture-gifs.ts:97"}, "properties": {"repobilityId": "216942b1496a0266", "scanner": "scanner-primary", "fingerprint": "f692a699ae9487ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f09e180e50dba170", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/e2e-real/worker.ts:73"}, "properties": {"repobilityId": "ef9c8a0237291e2c", "scanner": "scanner-primary", "fingerprint": "f09e180e50dba170", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bfa610a81df9bfd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/devtools/src/DevToolsRunStore.js:120"}, "properties": {"repobilityId": "9818211ef81a7080", "scanner": "scanner-primary", "fingerprint": "0bfa610a81df9bfd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-24a02e5ad412ac32", "level": "note", "message": {"text": "React Flow edge with `label=` but no project-wide edge-label CSS override \u2014 packages/accounts/src/parseAccountsFile.js:86"}, "properties": {"repobilityId": "43b67f2a25cb54fb", "scanner": "scanner-primary", "fingerprint": "24a02e5ad412ac32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.edge-label.no-bg"]}}, {"ruleId": "scanner-a0d7b9d0072fe9b6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sandbox/tests/sandbox-isolation.test.js:246"}, "properties": {"repobilityId": "305239544da05123", "scanner": "scanner-primary", "fingerprint": "a0d7b9d0072fe9b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-dac3deb6871cd7ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/opencode-e2e.test.js:45"}, "properties": {"repobilityId": "a00faf11bfcee23e", "scanner": "scanner-primary", "fingerprint": "dac3deb6871cd7ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-51e8fa6432df8464", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/agents/tests/vibe-agent-e2e.test.js:46"}, "properties": {"repobilityId": "2d00036034219cd8", "scanner": "scanner-primary", "fingerprint": "51e8fa6432df8464", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d162d78b5dd3817", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/react-reconciler/src/devtools/SmithersDevTools.js:238"}, "properties": {"repobilityId": "083b08f9ef7a1a02", "scanner": "scanner-primary", "fingerprint": "8d162d78b5dd3817", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0833c06d97cae4d8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/rewindLock-concurrent.test.ts:18"}, "properties": {"repobilityId": "01410e71ee206d8f", "scanner": "scanner-primary", "fingerprint": "0833c06d97cae4d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3f7b2523adaa8bd9", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/time-travel/tests/fork-recovery.test.js:147"}, "properties": {"repobilityId": "ce53e74d82fea027", "scanner": "scanner-primary", "fingerprint": "3f7b2523adaa8bd9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f079ddad5807077f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/db/src/sql-message-storage.js:658"}, "properties": {"repobilityId": "a4e8dc83e7527d1c", "scanner": "scanner-primary", "fingerprint": "f079ddad5807077f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3861c95617524e0f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/graph/src/dom/extract.js:17"}, "properties": {"repobilityId": "da6d0122da629375", "scanner": "scanner-primary", "fingerprint": "3861c95617524e0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0ce648b0537a4d10", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/bun-port-smithers/components/porting-rules.ts:66"}, "properties": {"repobilityId": "0442b543ea659b5f", "scanner": "scanner-primary", "fingerprint": "0ce648b0537a4d10", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a55bc5a922d60f1a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/teardown.js:2"}, "properties": {"repobilityId": "1aefe25bb3e70f6f", "scanner": "scanner-primary", "fingerprint": "a55bc5a922d60f1a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58389a799fab6a6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/build.js:11"}, "properties": {"repobilityId": "89fb1971bdd835ca", "scanner": "scanner-primary", "fingerprint": "58389a799fab6a6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6dc9c239d43d2bf2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/kubernetes/scripts/deploy.js:14"}, "properties": {"repobilityId": "f19b8f97215ec64e", "scanner": "scanner-primary", "fingerprint": "6dc9c239d43d2bf2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a3c3d01938548c37", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/run.ts:262"}, "properties": {"repobilityId": "f669fb22b3110cf8", "scanner": "scanner-primary", "fingerprint": "a3c3d01938548c37", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b343615582d3e9e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/verify-gold.ts:82"}, "properties": {"repobilityId": "71e53e2f62fa7c8b", "scanner": "scanner-primary", "fingerprint": "b343615582d3e9e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-31f8fe4bf1ea77c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/swe-evo/dataset/load.ts:83"}, "properties": {"repobilityId": "64e3104dbf30f4ec", "scanner": "scanner-primary", "fingerprint": "31f8fe4bf1ea77c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc0768e19e34d41d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 e2e/faults/case28-soak-live-stream-rss.test.ts:282"}, "properties": {"repobilityId": "a1681fe132cd7f92", "scanner": "scanner-primary", "fingerprint": "bc0768e19e34d41d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf13ffe6724724c8", "level": "warning", "message": {"text": "Dockerfile runs as root: examples/kubernetes/Dockerfile"}, "properties": {"repobilityId": "1bf441c9d9d7fa8d", "scanner": "scanner-primary", "fingerprint": "cf13ffe6724724c8", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-9b738b105ccb094f", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1.3"}, "properties": {"repobilityId": "9b3ce43df2bb7977", "scanner": "scanner-primary", "fingerprint": "9b738b105ccb094f", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/kubernetes/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0c5d876a1b5c366c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in poc/run-chronicle.html:413"}, "properties": {"repobilityId": "fa6e8040a965d953", "scanner": "scanner-primary", "fingerprint": "0c5d876a1b5c366c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "poc/run-chronicle.html"}, "region": {"startLine": 413}}}]}, {"ruleId": "scanner-1bf0fb36eb929656", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/scripts/setup.js:2"}, "properties": {"repobilityId": "592c4f6ee06bfbb3", "scanner": "scanner-primary", "fingerprint": "1bf0fb36eb929656", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/scripts/setup.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-ce66a02de07d6c8a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runWorkflowForInstance.js:1"}, "properties": {"repobilityId": "0b32a1c25496c2fb", "scanner": "scanner-primary", "fingerprint": "ce66a02de07d6c8a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/src/runWorkflowForInstance.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-686bed10246a58f4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/runViaGateway.js:1"}, "properties": {"repobilityId": "785d5b8aedcdbc7a", "scanner": "scanner-primary", "fingerprint": "686bed10246a58f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/src/runViaGateway.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef150c55e9378abd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/prepareCheckout.js:1"}, "properties": {"repobilityId": "5047a81e66e74b81", "scanner": "scanner-primary", "fingerprint": "ef150c55e9378abd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/src/prepareCheckout.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e8443021cd39703e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/scorePatch.js:1"}, "properties": {"repobilityId": "e29e31ee3bb03b11", "scanner": "scanner-primary", "fingerprint": "e8443021cd39703e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/src/scorePatch.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a8e70616f6c259f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in benchmarks/swe-bench-pro/src/extractPatch.js:1"}, "properties": {"repobilityId": "1cb9b02186248e26", "scanner": "scanner-primary", "fingerprint": "6a8e70616f6c259f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmarks/swe-bench-pro/src/extractPatch.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7d06b7d53f71893", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/review/action/src/runAction.ts:2"}, "properties": {"repobilityId": "3bae538f799c23f5", "scanner": "scanner-primary", "fingerprint": "c7d06b7d53f71893", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/action/src/runAction.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-8144eed7b5f707e1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/review/action/src/runReview.ts:1"}, "properties": {"repobilityId": "2e8553d7feff7233", "scanner": "scanner-primary", "fingerprint": "8144eed7b5f707e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/action/src/runReview.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f57aa8a3f245c36", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/review/src/github/runGh.ts:1"}, "properties": {"repobilityId": "d813aa43a575f065", "scanner": "scanner-primary", "fingerprint": "1f57aa8a3f245c36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/src/github/runGh.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6456cc3220ec6a71", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/review/src/cli/main.ts:2"}, "properties": {"repobilityId": "d58b987b9a2dd381", "scanner": "scanner-primary", "fingerprint": "6456cc3220ec6a71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/src/cli/main.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-e6a70b2f882a64e7", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in apps/review/src/server/d1.ts:35"}, "properties": {"repobilityId": "3966ad74efffb284", "scanner": "scanner-primary", "fingerprint": "e6a70b2f882a64e7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/src/server/d1.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-ac97253d85cf815e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/scheduler.js:1"}, "properties": {"repobilityId": "dac4e864bc91732d", "scanner": "scanner-primary", "fingerprint": "ac97253d85cf815e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/scheduler.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1944cea1cae4226", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/restore.js:5"}, "properties": {"repobilityId": "fe4e28ae8714755b", "scanner": "scanner-primary", "fingerprint": "c1944cea1cae4226", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/restore.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-4de086c5831c8337", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/resume-detached.js:1"}, "properties": {"repobilityId": "4f90715f76b3c45f", "scanner": "scanner-primary", "fingerprint": "4de086c5831c8337", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/resume-detached.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5fd752b748be450f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/workflow-pack.js:1"}, "properties": {"repobilityId": "26bfe23e90e4c236", "scanner": "scanner-primary", "fingerprint": "5fd752b748be450f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/workflow-pack.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79f5952c1379faf9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/agent-detection.js:4"}, "properties": {"repobilityId": "0510a37c12818038", "scanner": "scanner-primary", "fingerprint": "79f5952c1379faf9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/agent-detection.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-0ec050dab86b3a1a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/hijack.js:1"}, "properties": {"repobilityId": "a6406df525e87bc5", "scanner": "scanner-primary", "fingerprint": "0ec050dab86b3a1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/hijack.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b872f42b07fd826e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/index.js:28"}, "properties": {"repobilityId": "3464b429792d5f34", "scanner": "scanner-primary", "fingerprint": "b872f42b07fd826e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/index.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-70c637a588811cf0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/cli/src/agent-commands/runAgentAdd.js:2"}, "properties": {"repobilityId": "d8cab2b758ee89e0", "scanner": "scanner-primary", "fingerprint": "70c637a588811cf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/src/agent-commands/runAgentAdd.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-f72cedbcd1c3bad5", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in apps/smithers/src/gateway/gatewayClient.test.ts:47"}, "properties": {"repobilityId": "e46121686299245d", "scanner": "scanner-primary", "fingerprint": "f72cedbcd1c3bad5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers/src/gateway/gatewayClient.test.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-59af2c25e965ef56", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in apps/smithers/src/pair/pairSyncDO.ts:82"}, "properties": {"repobilityId": "3b1e7dd21963b491", "scanner": "scanner-primary", "fingerprint": "59af2c25e965ef56", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers/src/pair/pairSyncDO.ts"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-92d3a46b002cd444", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/workspaceBackend.ts:1"}, "properties": {"repobilityId": "d587b1353bee63a4", "scanner": "scanner-primary", "fingerprint": "92d3a46b002cd444", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers-studio-2/server/workspaceBackend.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d038d2db99562bb9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in apps/smithers-studio-2/server/runs/launchWorkflowRun.ts:1"}, "properties": {"repobilityId": "56eecbbb7bd9c1ea", "scanner": "scanner-primary", "fingerprint": "d038d2db99562bb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers-studio-2/server/runs/launchWorkflowRun.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eff655d08477b66d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sandbox.ts:2"}, "properties": {"repobilityId": "5fb0128c97bae562", "scanner": "scanner-primary", "fingerprint": "eff655d08477b66d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sandbox.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-dfabf91242be970d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/publish.mjs:15"}, "properties": {"repobilityId": "a6fad257fdfe394a", "scanner": "scanner-primary", "fingerprint": "dfabf91242be970d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/publish.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-a198bc179093a86f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/check-docs.mjs:14"}, "properties": {"repobilityId": "05ea2dbc53755cab", "scanner": "scanner-primary", "fingerprint": "a198bc179093a86f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check-docs.mjs"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-5483d413399bcbed", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fetch-jj-binaries.mjs:15"}, "properties": {"repobilityId": "09d0a08d770706ae", "scanner": "scanner-primary", "fingerprint": "5483d413399bcbed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fetch-jj-binaries.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-0649bd49ab02502c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/bump.mjs:7"}, "properties": {"repobilityId": "6e85ac82c3d0ec64", "scanner": "scanner-primary", "fingerprint": "0649bd49ab02502c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/bump.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-78dfd4ffab6052be", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/check-llms.mjs:2"}, "properties": {"repobilityId": "0ea95daeb5e0d4e2", "scanner": "scanner-primary", "fingerprint": "78dfd4ffab6052be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check-llms.mjs"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-8f98d6f18087f741", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/e2e-real/capture-gifs.ts:1"}, "properties": {"repobilityId": "cdfd874ff602a04d", "scanner": "scanner-primary", "fingerprint": "8f98d6f18087f741", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/e2e-real/capture-gifs.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e96cefbacc321c43", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/usage/src/readClaudeCredentials.js:1"}, "properties": {"repobilityId": "97bd17a44731e64e", "scanner": "scanner-primary", "fingerprint": "e96cefbacc321c43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/usage/src/readClaudeCredentials.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ee5e608e768a5b47", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/driver/src/child-process.js:1"}, "properties": {"repobilityId": "3f765e25d20598a2", "scanner": "scanner-primary", "fingerprint": "ee5e608e768a5b47", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/driver/src/child-process.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e175aa6c428cd46", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/errors/src/smithersErrorDefinitions.js:315"}, "properties": {"repobilityId": "65ba7aeecac1e1a6", "scanner": "scanner-primary", "fingerprint": "4e175aa6c428cd46", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/errors/src/smithersErrorDefinitions.js"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-7e461a2571e145cc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/smithers/src/tools/utils.js:1"}, "properties": {"repobilityId": "936bf52638dd1b9f", "scanner": "scanner-primary", "fingerprint": "7e461a2571e145cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/smithers/src/tools/utils.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-351113e4cd065c07", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/control-plane/src/index.d.ts:4"}, "properties": {"repobilityId": "5996d636235e5922", "scanner": "scanner-primary", "fingerprint": "351113e4cd065c07", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/control-plane/src/index.d.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-ddf7dbef023d7855", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/vcs/src/vcsToolingStatus.js:1"}, "properties": {"repobilityId": "22c0f0d83640a350", "scanner": "scanner-primary", "fingerprint": "ddf7dbef023d7855", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/vcs/src/vcsToolingStatus.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da3fc1681b7dfba2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agents/src/BaseCliAgent/runRpcCommandEffect.js:1"}, "properties": {"repobilityId": "edbebd62fde25eed", "scanner": "scanner-primary", "fingerprint": "da3fc1681b7dfba2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agents/src/BaseCliAgent/runRpcCommandEffect.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed3dbd1f2e939946", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/agents/src/diagnostics/getDiagnosticStrategy.js:1"}, "properties": {"repobilityId": "9aa4b13c5f64f5a4", "scanner": "scanner-primary", "fingerprint": "ed3dbd1f2e939946", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agents/src/diagnostics/getDiagnosticStrategy.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3f359b78a5926e3d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/server/src/gatewayUi/defaultOperatorUi.js:1258"}, "properties": {"repobilityId": "8b7b3fb19e798023", "scanner": "scanner-primary", "fingerprint": "3f359b78a5926e3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/server/src/gatewayUi/defaultOperatorUi.js"}, "region": {"startLine": 1258}}}]}, {"ruleId": "scanner-23228f6524b76204", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/server/src/gatewayRoutes/getNodeDiff.js:1"}, "properties": {"repobilityId": "dad6d7c541ccfd66", "scanner": "scanner-primary", "fingerprint": "23228f6524b76204", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/server/src/gatewayRoutes/getNodeDiff.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-393cf96d92ec1a1b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/engine.js:43"}, "properties": {"repobilityId": "8d88d62ef63b3a01", "scanner": "scanner-primary", "fingerprint": "393cf96d92ec1a1b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/src/engine.js"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-a7f125b6cd5f8770", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/engine/src/effect/diff-bundle.js:2"}, "properties": {"repobilityId": "08ca966942edb0a0", "scanner": "scanner-primary", "fingerprint": "a7f125b6cd5f8770", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/src/effect/diff-bundle.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-c5d41213de1378b4", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in packages/graph/src/dom/extract.js:26"}, "properties": {"repobilityId": "1e0b7366176c5daf", "scanner": "scanner-primary", "fingerprint": "c5d41213de1378b4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/graph/src/dom/extract.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-ba1bb4609d357e32", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in e2e/harness/killProcess.test.ts:2"}, "properties": {"repobilityId": "f27d879a780d32bb", "scanner": "scanner-primary", "fingerprint": "ba1bb4609d357e32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/harness/killProcess.test.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-01e19313bf195095", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "2028d72aa87037c6", "scanner": "scanner-primary", "fingerprint": "01e19313bf195095", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pr-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58bfb293711990aa", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "a14f4d9cc828e969", "scanner": "scanner-primary", "fingerprint": "58bfb293711990aa", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/jj-darwin-x64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f434724052d073ef", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "c396efb668e24155", "scanner": "scanner-primary", "fingerprint": "f434724052d073ef", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/jj-linux-x64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25e478c4f16acb9c", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "29c9780448a15a49", "scanner": "scanner-primary", "fingerprint": "25e478c4f16acb9c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/jj-darwin-arm64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-457ec2ea910f93f0", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "4ff7ac1936b983ea", "scanner": "scanner-primary", "fingerprint": "457ec2ea910f93f0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/jj-linux-arm64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f36fcec0310218b2", "level": "note", "message": {"text": "Very large file: apps/cli/src/workflow-pack.js (4420 lines)"}, "properties": {"repobilityId": "639452b5b0e0b213", "scanner": "scanner-primary", "fingerprint": "f36fcec0310218b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e14b39319ef470fe", "level": "note", "message": {"text": "Very large file: apps/cli/src/index.js (6426 lines)"}, "properties": {"repobilityId": "016fd23af81dc60f", "scanner": "scanner-primary", "fingerprint": "e14b39319ef470fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-325e3ecc78a4a960", "level": "note", "message": {"text": "Very large file: apps/cli/src/mcp/semantic-tools.js (1388 lines)"}, "properties": {"repobilityId": "9fc82a239c1b32a3", "scanner": "scanner-primary", "fingerprint": "325e3ecc78a4a960", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7463818e1b36ff67", "level": "note", "message": {"text": "Very large file: apps/smithers-studio-2/server/workspaceBackend.ts (4721 lines)"}, "properties": {"repobilityId": "ae93ddd334513837", "scanner": "scanner-primary", "fingerprint": "7463818e1b36ff67", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1e106cca61a2ac16", "level": "note", "message": {"text": "Very large file: scripts/check-docs.mjs (3868 lines)"}, "properties": {"repobilityId": "dbd0c6ba30df9362", "scanner": "scanner-primary", "fingerprint": "1e106cca61a2ac16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ba2f0b732fb6d309", "level": "note", "message": {"text": "Very large file: packages/components/src/index.d.ts (1622 lines)"}, "properties": {"repobilityId": "77f373c7b6ee68f0", "scanner": "scanner-primary", "fingerprint": "ba2f0b732fb6d309", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-56286f19c932da6f", "level": "note", "message": {"text": "Very large file: packages/server/src/gateway.js (4983 lines)"}, "properties": {"repobilityId": "c2ca1e94e8451670", "scanner": "scanner-primary", "fingerprint": "56286f19c932da6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f60741ddfa3abc7b", "level": "note", "message": {"text": "Very large file: packages/server/src/index.d.ts (1554 lines)"}, "properties": {"repobilityId": "920e87054cd23643", "scanner": "scanner-primary", "fingerprint": "f60741ddfa3abc7b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-30b403f45204aedb", "level": "note", "message": {"text": "Very large file: packages/server/src/index.js (1248 lines)"}, "properties": {"repobilityId": "5520e89f9689976b", "scanner": "scanner-primary", "fingerprint": "30b403f45204aedb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ef1b90bd4d4d06f", "level": "note", "message": {"text": "Very large file: packages/engine/src/engine.js (7620 lines)"}, "properties": {"repobilityId": "89d11eddcd9a13b5", "scanner": "scanner-primary", "fingerprint": "1ef1b90bd4d4d06f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-31a0c44763ba8b0f", "level": "note", "message": {"text": "Very large file: packages/engine/src/index.d.ts (1685 lines)"}, "properties": {"repobilityId": "86e225316e7a0b21", "scanner": "scanner-primary", "fingerprint": "31a0c44763ba8b0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27c1ad739e655689", "level": "note", "message": {"text": "Very large file: packages/db/src/index.d.ts (5229 lines)"}, "properties": {"repobilityId": "4a221513847a6a71", "scanner": "scanner-primary", "fingerprint": "27c1ad739e655689", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bb8ad842a8a432ee", "level": "note", "message": {"text": "Very large file: packages/db/src/adapter.js (2753 lines)"}, "properties": {"repobilityId": "e8288e5ec7ccc7ce", "scanner": "scanner-primary", "fingerprint": "bb8ad842a8a432ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4cce4ca41373422e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/review/package.json"}, "properties": {"repobilityId": "b853c35dbfee70f5", "scanner": "scanner-primary", "fingerprint": "4cce4ca41373422e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/review/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0165ea166579aa4", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/cli/package.json"}, "properties": {"repobilityId": "027862884b842339", "scanner": "scanner-primary", "fingerprint": "a0165ea166579aa4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed8639bd6c3ad688", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/smithers/package.json"}, "properties": {"repobilityId": "9f41e6aeca594615", "scanner": "scanner-primary", "fingerprint": "ed8639bd6c3ad688", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1b8734959b73063", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/observability/package.json"}, "properties": {"repobilityId": "dec728a8ec91937f", "scanner": "scanner-primary", "fingerprint": "a1b8734959b73063", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/observability/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-435b7bac55ebd876", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-demo/package.json"}, "properties": {"repobilityId": "15ce0b340603c134", "scanner": "scanner-primary", "fingerprint": "435b7bac55ebd876", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers-demo/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-165664eee84e7c93", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-studio-2/package.json"}, "properties": {"repobilityId": "c43e7153406b0c96", "scanner": "scanner-primary", "fingerprint": "165664eee84e7c93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers-studio-2/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1821625a46a11008", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/smithers-tui-demo/package.json"}, "properties": {"repobilityId": "b37368441fa9c680", "scanner": "scanner-primary", "fingerprint": "1821625a46a11008", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/smithers-tui-demo/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-54dcd98423d69cf4", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/gateway-react/package.json"}, "properties": {"repobilityId": "161a4a6b7de3da7b", "scanner": "scanner-primary", "fingerprint": "54dcd98423d69cf4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/gateway-react/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81cb0595a60e8328", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/devtools/package.json"}, "properties": {"repobilityId": "1dd2c31b53870e47", "scanner": "scanner-primary", "fingerprint": "81cb0595a60e8328", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/devtools/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44b6efcbb3cb9d6d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/usage/package.json"}, "properties": {"repobilityId": "034399ecedcd895c", "scanner": "scanner-primary", "fingerprint": "44b6efcbb3cb9d6d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/usage/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28a4196bf5aaf7ec", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/driver/package.json"}, "properties": {"repobilityId": "371d6ec0c5814328", "scanner": "scanner-primary", "fingerprint": "28a4196bf5aaf7ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/driver/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-592524165b9fc40c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/errors/package.json"}, "properties": {"repobilityId": "6af0ef8d92d825b4", "scanner": "scanner-primary", "fingerprint": "592524165b9fc40c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/errors/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9894e3bb45432d03", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/components/package.json"}, "properties": {"repobilityId": "26d7ccba6a49d7f8", "scanner": "scanner-primary", "fingerprint": "9894e3bb45432d03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/components/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-619e1de6fdacf58f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/smithers/package.json"}, "properties": {"repobilityId": "e345e9d72b9b6341", "scanner": "scanner-primary", "fingerprint": "619e1de6fdacf58f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/smithers/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b28590d5fa4d92e2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/accounts/package.json"}, "properties": {"repobilityId": "618925ed0f68325c", "scanner": "scanner-primary", "fingerprint": "b28590d5fa4d92e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/accounts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b72c002eb088638a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/control-plane/package.json"}, "properties": {"repobilityId": "0fb924e41f205d2c", "scanner": "scanner-primary", "fingerprint": "b72c002eb088638a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/control-plane/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eedc0132b559efe0", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/vcs/package.json"}, "properties": {"repobilityId": "d8c8e081f8020588", "scanner": "scanner-primary", "fingerprint": "eedc0132b559efe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/vcs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8cad527fa7b2fdd7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sandbox/package.json"}, "properties": {"repobilityId": "ef462da675e271cd", "scanner": "scanner-primary", "fingerprint": "8cad527fa7b2fdd7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sandbox/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c6f2be45e72de9d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/agents/package.json"}, "properties": {"repobilityId": "22446edcd3e37b9e", "scanner": "scanner-primary", "fingerprint": "3c6f2be45e72de9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/agents/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6980af6f44bc070f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/memory/package.json"}, "properties": {"repobilityId": "56d5fdf0e2264af4", "scanner": "scanner-primary", "fingerprint": "6980af6f44bc070f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/memory/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56d11ce7c09ef03a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/tool-context/package.json"}, "properties": {"repobilityId": "64959a402d534af9", "scanner": "scanner-primary", "fingerprint": "56d11ce7c09ef03a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tool-context/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-599801b287dcdcc0", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/scorers/package.json"}, "properties": {"repobilityId": "9ffcf32862740c9c", "scanner": "scanner-primary", "fingerprint": "599801b287dcdcc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scorers/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b822ec54a081d6c6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/pi-plugin/package.json"}, "properties": {"repobilityId": "b36cdfd8c212c83f", "scanner": "scanner-primary", "fingerprint": "b822ec54a081d6c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/pi-plugin/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea5f771bc2d71789", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/react-reconciler/package.json"}, "properties": {"repobilityId": "f21b05821790b859", "scanner": "scanner-primary", "fingerprint": "ea5f771bc2d71789", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/react-reconciler/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b739f2f2be1d714d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/server/package.json"}, "properties": {"repobilityId": "d7cb4fafc3b292b2", "scanner": "scanner-primary", "fingerprint": "b739f2f2be1d714d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/server/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7092af7719a1a38d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/time-travel/package.json"}, "properties": {"repobilityId": "b7065514ecc97da7", "scanner": "scanner-primary", "fingerprint": "7092af7719a1a38d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/time-travel/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9f13e1418f0ef36", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/engine/package.json"}, "properties": {"repobilityId": "81a373b6a2e74e41", "scanner": "scanner-primary", "fingerprint": "f9f13e1418f0ef36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/engine/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b16ae2bd0fca524", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/db/package.json"}, "properties": {"repobilityId": "2bddd295d559a9b6", "scanner": "scanner-primary", "fingerprint": "7b16ae2bd0fca524", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b3d0fa3fe79a342", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/protocol/package.json"}, "properties": {"repobilityId": "0939d10aef433444", "scanner": "scanner-primary", "fingerprint": "1b3d0fa3fe79a342", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/protocol/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40209380d552b619", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/gateway/package.json"}, "properties": {"repobilityId": "7dae41bc8ba48acd", "scanner": "scanner-primary", "fingerprint": "40209380d552b619", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/gateway/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcc3ab7de11e876c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/scheduler/package.json"}, "properties": {"repobilityId": "db104deea76e44a7", "scanner": "scanner-primary", "fingerprint": "fcc3ab7de11e876c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/scheduler/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b09786dfaec0de7c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/gateway-client/package.json"}, "properties": {"repobilityId": "cc50e8fbebfba868", "scanner": "scanner-primary", "fingerprint": "b09786dfaec0de7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/gateway-client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d7c3f19978cb63d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/graph/package.json"}, "properties": {"repobilityId": "54fe79d9a6f5430c", "scanner": "scanner-primary", "fingerprint": "5d7c3f19978cb63d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/graph/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e52cabd5cdfdc20", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/openapi/package.json"}, "properties": {"repobilityId": "dd7a5e8d6782b253", "scanner": "scanner-primary", "fingerprint": "7e52cabd5cdfdc20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/openapi/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ffcaf0e44327a2b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/dstack/package.json"}, "properties": {"repobilityId": "0e910416e99dad8b", "scanner": "scanner-primary", "fingerprint": "6ffcaf0e44327a2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/dstack/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2e352cff53cc13a8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/kubernetes/package.json"}, "properties": {"repobilityId": "b33b5bb6375007ea", "scanner": "scanner-primary", "fingerprint": "2e352cff53cc13a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/kubernetes/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb850abe5d3c8bc3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: e2e/package.json"}, "properties": {"repobilityId": "4c9201e2b263799e", "scanner": "scanner-primary", "fingerprint": "eb850abe5d3c8bc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2123d9cfaab40703", "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": "762219d5825ef65f", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "c239286f6b2370bf", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "cf63575deff6b32b", "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": "6767dec64ed845fd", "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": "384d0154af0e12c2", "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": "123511b0845be500", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ce858224ceb9a536", "level": "none", "message": {"text": "Commented-code block (7 lines) in benchmarks/claw-eval-live/gateway/src/server.ts:14"}, "properties": {"repobilityId": "c617e7b242beeb97", "scanner": "scanner-primary", "fingerprint": "ce858224ceb9a536", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e96a6a82f28fcb54", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/claw-eval-live/gateway/src/server.ts:86"}, "properties": {"repobilityId": "469d6a9c6bc1dba3", "scanner": "scanner-primary", "fingerprint": "e96a6a82f28fcb54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58b3442de8d6bc59", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmarks/claw-eval-live/gateway/src/mixture.ts:309"}, "properties": {"repobilityId": "a47867395617e252", "scanner": "scanner-primary", "fingerprint": "58b3442de8d6bc59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ee6a4355bbeb304", "level": "note", "message": {"text": "Legacy-named symbol `V_old` in benchmarks/roadmapbench/harness/audit_run.py:16"}, "properties": {"repobilityId": "99254b9ad44f506d", "scanner": "scanner-primary", "fingerprint": "8ee6a4355bbeb304", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c50efb9393d6608f", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmarks/roadmapbench/harness/audit_run.py:140"}, "properties": {"repobilityId": "899abc33d5a047ec", "scanner": "scanner-primary", "fingerprint": "c50efb9393d6608f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c367b8191ea63bf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 benchmarks/roadmapbench/harness/audit_run.py:115"}, "properties": {"repobilityId": "d15d3cf1646608a0", "scanner": "scanner-primary", "fingerprint": "7c367b8191ea63bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-805b78991946ecc0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 benchmarks/swe-bench-pro/scripts/fetch-dataset.js:21"}, "properties": {"repobilityId": "2fa774c9cf1f76a1", "scanner": "scanner-primary", "fingerprint": "805b78991946ecc0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-616ca61540b405bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in benchmarks/swe-bench-pro/src/runViaGateway.js:79"}, "properties": {"repobilityId": "803bfdde9a95e1ee", "scanner": "scanner-primary", "fingerprint": "616ca61540b405bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f030a6f7b9f0be6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in benchmarks/swe-bench-pro/src/scorePatch.js:108"}, "properties": {"repobilityId": "04f3400650ebd76e", "scanner": "scanner-primary", "fingerprint": "f030a6f7b9f0be6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69d6afd8c5f89c98", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/review/src/workflow/createReviewAgents.ts:34"}, "properties": {"repobilityId": "00c23c89d4b34bb5", "scanner": "scanner-primary", "fingerprint": "69d6afd8c5f89c98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90616af2600f556e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/review/src/server/worker.ts:54"}, "properties": {"repobilityId": "a5fd26ffc61f3d2a", "scanner": "scanner-primary", "fingerprint": "90616af2600f556e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e172e614741840a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/tests/ask-human.e2e.test.js:55"}, "properties": {"repobilityId": "ace9d6b0d3971cd7", "scanner": "scanner-primary", "fingerprint": "e172e614741840a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a878c8c71cfbaae7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/cli/tests/docs-public-surface-coverage.test.js:170"}, "properties": {"repobilityId": "24929c4a1ba976c1", "scanner": "scanner-primary", "fingerprint": "a878c8c71cfbaae7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3ec17953daf9c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/cli/tests/init-installed-layout.test.js:3"}, "properties": {"repobilityId": "ffa8c8604165901a", "scanner": "scanner-primary", "fingerprint": "3f3ec17953daf9c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fdc17f7ed9725987", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/tests/bin-delegation-unit.test.js:128"}, "properties": {"repobilityId": "ac2ce62a6384604e", "scanner": "scanner-primary", "fingerprint": "fdc17f7ed9725987", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82ffd230463a5dad", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/tests/_capture-workflow-ui-screenshots.test.js:17"}, "properties": {"repobilityId": "153391be0ea115c0", "scanner": "scanner-primary", "fingerprint": "82ffd230463a5dad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86a89362b94283ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/cli/tests/cli-flag-validation.test.js:3"}, "properties": {"repobilityId": "6c384941ed0f99f4", "scanner": "scanner-primary", "fingerprint": "86a89362b94283ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76bf807f3145d19c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/cli/tests/cli-signals.e2e.test.js:7"}, "properties": {"repobilityId": "f8b91aabfa964b2a", "scanner": "scanner-primary", "fingerprint": "76bf807f3145d19c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c4ec5582042a0b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/cli/src/init-command.js:103"}, "properties": {"repobilityId": "bfabd081da9811dc", "scanner": "scanner-primary", "fingerprint": "9c4ec5582042a0b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4ce94749ec98294", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/cli/src/snapshot-hook.js:1"}, "properties": {"repobilityId": "4a02860ea3352e9f", "scanner": "scanner-primary", "fingerprint": "a4ce94749ec98294", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0f4c514c9b54e1c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/watch.js:83"}, "properties": {"repobilityId": "5f6a62aa93df665e", "scanner": "scanner-primary", "fingerprint": "d0f4c514c9b54e1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-368329b5680daa7d", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/cli/src/index.js:5737"}, "properties": {"repobilityId": "5fb2eaafe52a9796", "scanner": "scanner-primary", "fingerprint": "368329b5680daa7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a12ef9696c369343", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/cli/src/index.js:1945"}, "properties": {"repobilityId": "6e822d0b0aa97c12", "scanner": "scanner-primary", "fingerprint": "a12ef9696c369343", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9c82167964c4860a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers/vite.config.ts:4"}, "properties": {"repobilityId": "f810dc72d9ba7fd0", "scanner": "scanner-primary", "fingerprint": "9c82167964c4860a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24e62c0c3bca48f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers/tests/e2e/plueHarness.spec.ts:194"}, "properties": {"repobilityId": "5aaf812ee38da2b2", "scanner": "scanner-primary", "fingerprint": "24e62c0c3bca48f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dacaf9ee0d321e18", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers/scripts/capture/surfaces.ts:301"}, "properties": {"repobilityId": "8d5cc0035f4a5cb3", "scanner": "scanner-primary", "fingerprint": "dacaf9ee0d321e18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bbed9262ba8c66f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/public/sw.js:67"}, "properties": {"repobilityId": "de8e575d2b6a3297", "scanner": "scanner-primary", "fingerprint": "0bbed9262ba8c66f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6114bed6e311b81d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/env.ts:65"}, "properties": {"repobilityId": "980b87929c419aad", "scanner": "scanner-primary", "fingerprint": "6114bed6e311b81d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6749e3131294a2ee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/workerPlue.test.ts:74"}, "properties": {"repobilityId": "a32f40cf61537ee0", "scanner": "scanner-primary", "fingerprint": "6749e3131294a2ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d68856576953615e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.realkey.test.ts:40"}, "properties": {"repobilityId": "9b74aa18ab95d250", "scanner": "scanner-primary", "fingerprint": "d68856576953615e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8cc093f02e0bfcfd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers/src/main.tsx:38"}, "properties": {"repobilityId": "b3f2e02cc9b0e931", "scanner": "scanner-primary", "fingerprint": "8cc093f02e0bfcfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dcd0dea30d07835", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.test.ts:9"}, "properties": {"repobilityId": "6d5c091dd6194fd9", "scanner": "scanner-primary", "fingerprint": "3dcd0dea30d07835", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4cfdb7bcd0373a95", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers/src/worker.ts:286"}, "properties": {"repobilityId": "e7e3c62230b85e38", "scanner": "scanner-primary", "fingerprint": "4cfdb7bcd0373a95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce05827d20d6d503", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/worker.ts:376"}, "properties": {"repobilityId": "fa713ba505c1eb25", "scanner": "scanner-primary", "fingerprint": "ce05827d20d6d503", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5f6d40adb4868685", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/auth/authClient.ts:238"}, "properties": {"repobilityId": "0d426e74069f7306", "scanner": "scanner-primary", "fingerprint": "5f6d40adb4868685", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9d1e0c0797b901a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/jjhub/platformFetch.ts:17"}, "properties": {"repobilityId": "3c7fc0e6d1933851", "scanner": "scanner-primary", "fingerprint": "9d1e0c0797b901a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-529acd6f7a74786b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/observability/workerMetrics.test.ts:43"}, "properties": {"repobilityId": "2f59c189485f16f0", "scanner": "scanner-primary", "fingerprint": "529acd6f7a74786b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-344603372bc6b54c", "level": "note", "message": {"text": "Legacy-named symbol `sessions_v1` in apps/smithers/src/approvals/approvals.ts:146"}, "properties": {"repobilityId": "271993d18b5311a0", "scanner": "scanner-primary", "fingerprint": "344603372bc6b54c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fdff235316303195", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers/src/prompts/promptsStore.ts:134"}, "properties": {"repobilityId": "d7b77c72a10c6814", "scanner": "scanner-primary", "fingerprint": "fdff235316303195", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-219403204d6ffafa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.ts:81"}, "properties": {"repobilityId": "92932db5e978a75a", "scanner": "scanner-primary", "fingerprint": "219403204d6ffafa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc49e4bfd524e4a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers/src/gateway/gatewayStore.ts:467"}, "properties": {"repobilityId": "a2bb976e6c240429", "scanner": "scanner-primary", "fingerprint": "dc49e4bfd524e4a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f30cbea15e733f43", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/gateway/gatewayClient.test.ts:104"}, "properties": {"repobilityId": "c8fec39597ad5115", "scanner": "scanner-primary", "fingerprint": "f30cbea15e733f43", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-834fb6bb5cd32ccb", "level": "note", "message": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/Diff.ts:7"}, "properties": {"repobilityId": "c07223c3acabbfa4", "scanner": "scanner-primary", "fingerprint": "834fb6bb5cd32ccb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7975133f48c75ffd", "level": "note", "message": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/authRefactorDiff.ts:12"}, "properties": {"repobilityId": "55258d8de2943b47", "scanner": "scanner-primary", "fingerprint": "7975133f48c75ffd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a821fc922f26bc0e", "level": "note", "message": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffPaginateDomain.test.ts:117"}, "properties": {"repobilityId": "d045ebec5c9ece9f", "scanner": "scanner-primary", "fingerprint": "a821fc922f26bc0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57ac18bbe6f4a8a8", "level": "note", "message": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/DiffHunks.tsx:43"}, "properties": {"repobilityId": "2b905ea168f7a8d9", "scanner": "scanner-primary", "fingerprint": "57ac18bbe6f4a8a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b7232b5f81e4802f", "level": "note", "message": {"text": "Legacy-named symbol `lnOld` in apps/smithers/src/diff/diffDomain.test.ts:27"}, "properties": {"repobilityId": "fa1011cd7fd4d7f0", "scanner": "scanner-primary", "fingerprint": "b7232b5f81e4802f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-857bf3608291a9c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers/src/pair/pairSyncDO.ts:171"}, "properties": {"repobilityId": "0f5d2d657cd92f3f", "scanner": "scanner-primary", "fingerprint": "857bf3608291a9c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-12e63e8a4926c452", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/playwright.config.ts:38"}, "properties": {"repobilityId": "1e763c283790d62b", "scanner": "scanner-primary", "fingerprint": "12e63e8a4926c452", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e8d20d735210495", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/vite.config.ts:21"}, "properties": {"repobilityId": "22086e6c0d237673", "scanner": "scanner-primary", "fingerprint": "6e8d20d735210495", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8528150f14074d97", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/electrobun.config.ts:5"}, "properties": {"repobilityId": "f775cdea9dacebbe", "scanner": "scanner-primary", "fingerprint": "8528150f14074d97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0813f843d7e16f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/electrobun/studioRpc.ts:11"}, "properties": {"repobilityId": "335e9f825e4a8d32", "scanner": "scanner-primary", "fingerprint": "e0813f843d7e16f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1b3e0d8d779c419", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/electrobun/studioRpc.ts:21"}, "properties": {"repobilityId": "2b5c05f98d7f2d6e", "scanner": "scanner-primary", "fingerprint": "b1b3e0d8d779c419", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f76f7e19a25da5ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/fixtures/workspaceApiServer.ts:493"}, "properties": {"repobilityId": "4935c13af478a41e", "scanner": "scanner-primary", "fingerprint": "f76f7e19a25da5ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb06a3ba868df0ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/tests/fixtures/gatewayFixture.tsx:65"}, "properties": {"repobilityId": "8769d501cfb759d1", "scanner": "scanner-primary", "fingerprint": "fb06a3ba868df0ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b5517bbed998727", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/server/pty-server.test.ts:444"}, "properties": {"repobilityId": "5bfe1343c4694671", "scanner": "scanner-primary", "fingerprint": "2b5517bbed998727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b68f5b72fb981ac7", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/terminal-lifecycle.spec.ts:49"}, "properties": {"repobilityId": "392a3d1766bcdcad", "scanner": "scanner-primary", "fingerprint": "b68f5b72fb981ac7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-434218b989ad4936", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/terminal.spec.ts:92"}, "properties": {"repobilityId": "277de2e7ff7c7e50", "scanner": "scanner-primary", "fingerprint": "434218b989ad4936", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c86f4984a008983", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/runs.spec.ts:80"}, "properties": {"repobilityId": "b04803d046552bb4", "scanner": "scanner-primary", "fingerprint": "1c86f4984a008983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75562ca717c62a01", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/tests/e2e/runs-live.spec.ts:74"}, "properties": {"repobilityId": "b15bb2a46b3f9d5c", "scanner": "scanner-primary", "fingerprint": "75562ca717c62a01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f86b83e0eba90455", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/tests/e2e/devtools-tree.spec.ts:50"}, "properties": {"repobilityId": "f2e29620465de2f3", "scanner": "scanner-primary", "fingerprint": "f86b83e0eba90455", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a01c1c8e4217119", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/scripts/pty-server.ts:111"}, "properties": {"repobilityId": "5fd6af20c674297a", "scanner": "scanner-primary", "fingerprint": "3a01c1c8e4217119", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89abe66d46f0eaa2", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/smithers-studio-2/scripts/dev.ts:6"}, "properties": {"repobilityId": "064646cdb4d92270", "scanner": "scanner-primary", "fingerprint": "89abe66d46f0eaa2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dc6d35187e1b75e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:451"}, "properties": {"repobilityId": "85cf8192e0f5df54", "scanner": "scanner-primary", "fingerprint": "1dc6d35187e1b75e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b11205a16876116", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/server/createWorkspaceApiServer.test.ts:158"}, "properties": {"repobilityId": "09ca97f06aab4512", "scanner": "scanner-primary", "fingerprint": "3b11205a16876116", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dd10bd4d08af5890", "level": "note", "message": {"text": "Legacy-named symbol `current_working_copy` in apps/smithers-studio-2/server/workspaceBackend.ts:2392"}, "properties": {"repobilityId": "aa9684822d258101", "scanner": "scanner-primary", "fingerprint": "dd10bd4d08af5890", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ae5746b10b09f6c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/server/startGatewayServer.ts:77"}, "properties": {"repobilityId": "45a6e86569ed8e03", "scanner": "scanner-primary", "fingerprint": "ae5746b10b09f6c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47a35a99913e7b32", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/server/chat/streamChatMessage.ts:70"}, "properties": {"repobilityId": "305de60a8a875e1d", "scanner": "scanner-primary", "fingerprint": "47a35a99913e7b32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-601bfabe8bd11f41", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/server/runs/launchWorkflowRun.ts:59"}, "properties": {"repobilityId": "2c9600b1d36107b7", "scanner": "scanner-primary", "fingerprint": "601bfabe8bd11f41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e1555d67b43baba", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/server/queries/querySmithersDb.mjs:18"}, "properties": {"repobilityId": "ee54c867ff5e4355", "scanner": "scanner-primary", "fingerprint": "7e1555d67b43baba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88a429e6c1c0384d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/three.d.ts:1"}, "properties": {"repobilityId": "0751e681662d11e0", "scanner": "scanner-primary", "fingerprint": "88a429e6c1c0384d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34b14ae66eef068a", "level": "note", "message": {"text": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/landings/LandingsPanel.tsx:204"}, "properties": {"repobilityId": "b4933f4291a94815", "scanner": "scanner-primary", "fingerprint": "34b14ae66eef068a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c3092697eded6c09", "level": "note", "message": {"text": "Legacy-named symbol `withoutOld` in apps/smithers-studio-2/src/issues/IssuesPanel.tsx:95"}, "properties": {"repobilityId": "e5965c52dce52af6", "scanner": "scanner-primary", "fingerprint": "c3092697eded6c09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5764c14d236ffa19", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/GhosttyTerminalPane.tsx:185"}, "properties": {"repobilityId": "5385b4f604f3c51b", "scanner": "scanner-primary", "fingerprint": "5764c14d236ffa19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55033ebc1b54b171", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workspace/useAgentChat.ts:41"}, "properties": {"repobilityId": "64ca882513aa1bb6", "scanner": "scanner-primary", "fingerprint": "55033ebc1b54b171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b12ca6b2ad35439d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunsData.ts:57"}, "properties": {"repobilityId": "3a20ad15ed85d105", "scanner": "scanner-primary", "fingerprint": "b12ca6b2ad35439d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70a675e7d0c211e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/smithers-studio-2/src/runs/useRunsData.ts:86"}, "properties": {"repobilityId": "0a587cfa88350108", "scanner": "scanner-primary", "fingerprint": "70a675e7d0c211e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-557190187244adda", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/smithers-studio-2/src/runs/useRunEvents.ts:143"}, "properties": {"repobilityId": "20f539231772eecb", "scanner": "scanner-primary", "fingerprint": "557190187244adda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4eb340cca9b7b82a", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/smithers-studio-2/src/runs/Runs.tsx:38"}, "properties": {"repobilityId": "b8c51c0578bdaa1b", "scanner": "scanner-primary", "fingerprint": "4eb340cca9b7b82a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8846c678a445ff6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/developer/DevToolsNodeInspector.tsx:60"}, "properties": {"repobilityId": "2ab365f27e4a7730", "scanner": "scanner-primary", "fingerprint": "e8846c678a445ff6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac54eaf6c695f188", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/useWorkflowList.ts:49"}, "properties": {"repobilityId": "90fab34fc89cc7ec", "scanner": "scanner-primary", "fingerprint": "ac54eaf6c695f188", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d49a6a9509acd1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/workflows/launchFieldLogic.ts:93"}, "properties": {"repobilityId": "453497defa0c8dd0", "scanner": "scanner-primary", "fingerprint": "2d49a6a9509acd1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e12b5a4c576ce88f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/smithers-studio-2/src/shell/CommandPalette/CommandPalette.tsx:44"}, "properties": {"repobilityId": "40f983b3894bc05e", "scanner": "scanner-primary", "fingerprint": "e12b5a4c576ce88f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0abb9152dbef4c55", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/publish.mjs:6"}, "properties": {"repobilityId": "d35e461c19e17498", "scanner": "scanner-primary", "fingerprint": "0abb9152dbef4c55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e13d4d4382870478", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-jj-binaries.mjs:36"}, "properties": {"repobilityId": "efa2b9182b2c6e09", "scanner": "scanner-primary", "fingerprint": "e13d4d4382870478", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2907dbcb11dd51a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/e2e-real/worker.ts:64"}, "properties": {"repobilityId": "fbc11033b19736ed", "scanner": "scanner-primary", "fingerprint": "2907dbcb11dd51a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6e927635c328cbc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/gateway-react/tests/docsExamplesCompile.test.ts:8"}, "properties": {"repobilityId": "64794b3da98776f5", "scanner": "scanner-primary", "fingerprint": "b6e927635c328cbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb80bfd492aa1cba", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/gateway-react/src/useGatewayRpc.ts:47"}, "properties": {"repobilityId": "0fcd7e964395a9b1", "scanner": "scanner-primary", "fingerprint": "cb80bfd492aa1cba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbdc79a777e74062", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/driver/tests/spawnCaptureEffect.test.js:302"}, "properties": {"repobilityId": "b06e05e5ca391cd4", "scanner": "scanner-primary", "fingerprint": "cbdc79a777e74062", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-960e5a0d1fbd5843", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/components/tests/react-hooks.test.jsx:13"}, "properties": {"repobilityId": "ede4e694b88e0ac7", "scanner": "scanner-primary", "fingerprint": "960e5a0d1fbd5843", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e245903f2dfde37b", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/components/src/components/EscalationChain.js:78"}, "properties": {"repobilityId": "e11c1219e7486682", "scanner": "scanner-primary", "fingerprint": "e245903f2dfde37b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f1e52527e322256", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/smithers/tests/exit-listener-leak-unit.test.js:23"}, "properties": {"repobilityId": "efb0ea8fd117dcac", "scanner": "scanner-primary", "fingerprint": "1f1e52527e322256", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cc14d7d1d77dc8d", "level": "note", "message": {"text": "Legacy-named symbol `org_legacy` in packages/control-plane/tests/control-plane.test.js:316"}, "properties": {"repobilityId": "e1fb12783ca9485d", "scanner": "scanner-primary", "fingerprint": "4cc14d7d1d77dc8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20637fb22074d7d9", "level": "note", "message": {"text": "Legacy-named symbol `_smithers_cp_secret_refs_legacy` in packages/control-plane/src/index.js:184"}, "properties": {"repobilityId": "455e8def31364927", "scanner": "scanner-primary", "fingerprint": "20637fb22074d7d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-19176e03b7b5fea6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/vcs/tests/jj-real-repo.test.js:227"}, "properties": {"repobilityId": "9a8e516b338bc5b7", "scanner": "scanner-primary", "fingerprint": "19176e03b7b5fea6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10272d6a71bf7d7f", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sandbox/tests/sandbox-isolation.test.js:3"}, "properties": {"repobilityId": "ce6bb77974b1fd24", "scanner": "scanner-primary", "fingerprint": "10272d6a71bf7d7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c864e2915f8c040b", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agents/tests/opencode-support.test.js:33"}, "properties": {"repobilityId": "b62d8a993d9b7056", "scanner": "scanner-primary", "fingerprint": "c864e2915f8c040b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ddbdb13ff2a022f", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/agents/tests/run-diagnostics-timeout-cleared.test.js:4"}, "properties": {"repobilityId": "b27593745f4243ca", "scanner": "scanner-primary", "fingerprint": "5ddbdb13ff2a022f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a11a03a3ab9c7197", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agents/tests/run-rpc-command-effect-timers.test.js:68"}, "properties": {"repobilityId": "c3c98179268dfb2f", "scanner": "scanner-primary", "fingerprint": "a11a03a3ab9c7197", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c633e23ca88b765", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agents/src/ClaudeCodeAgent.js:97"}, "properties": {"repobilityId": "308b338398d74251", "scanner": "scanner-primary", "fingerprint": "7c633e23ca88b765", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d2156800b4b9d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/agents/src/KimiAgent.js:454"}, "properties": {"repobilityId": "2a3b27b94b643517", "scanner": "scanner-primary", "fingerprint": "35d2156800b4b9d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceed2debe6393225", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/agents/src/BaseCliAgent/BaseCliAgent.js:929"}, "properties": {"repobilityId": "cd1dc74e9967b1d8", "scanner": "scanner-primary", "fingerprint": "ceed2debe6393225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d4b6deab7cc41b", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/memory/tests/store-concurrent.test.js:3"}, "properties": {"repobilityId": "3599523ccd4e0b47", "scanner": "scanner-primary", "fingerprint": "67d4b6deab7cc41b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bee6596a7431b272", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/server/tests/gateway-extensions-dispatch.test.js:1"}, "properties": {"repobilityId": "8c4f272f6a2c3ac3", "scanner": "scanner-primary", "fingerprint": "bee6596a7431b272", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6d7cb74b277df28", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/server/src/gateway.js:3353"}, "properties": {"repobilityId": "a2f884b0e86f1b70", "scanner": "scanner-primary", "fingerprint": "f6d7cb74b277df28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b775ad1c835d324a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/server/src/gateway.js:1494"}, "properties": {"repobilityId": "f3ed30b711d85a57", "scanner": "scanner-primary", "fingerprint": "b775ad1c835d324a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b4210d098dfc555", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/server/src/GatewayExtensions.js:1"}, "properties": {"repobilityId": "20c8c8e004416e5e", "scanner": "scanner-primary", "fingerprint": "5b4210d098dfc555", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c6cd7b880f8890d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/server/src/gatewayRoutes/getNodeDiff.js:345"}, "properties": {"repobilityId": "0a44ad2acea09768", "scanner": "scanner-primary", "fingerprint": "1c6cd7b880f8890d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ce27983b0e02142", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/time-travel/tests/rewindLock-concurrent.test.ts:3"}, "properties": {"repobilityId": "9e6e0515860adc48", "scanner": "scanner-primary", "fingerprint": "3ce27983b0e02142", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-634a8af64e27e363", "level": "note", "message": {"text": "Legacy-named symbol `out_unused` in packages/time-travel/tests/rewindRollback.test.ts:21"}, "properties": {"repobilityId": "db6106e9c2456186", "scanner": "scanner-primary", "fingerprint": "634a8af64e27e363", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f00497c7721702d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/tests/cli-agent-event-output-capture.test.jsx:8"}, "properties": {"repobilityId": "7629f535eb8d6bce", "scanner": "scanner-primary", "fingerprint": "f00497c7721702d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72d22044bd3fc7eb", "level": "note", "message": {"text": "Legacy-named symbol `working_copy` in packages/engine/tests/workspace-watcher.test.js:60"}, "properties": {"repobilityId": "32ed9f3eea53d26b", "scanner": "scanner-primary", "fingerprint": "72d22044bd3fc7eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-de8b18804fe3e104", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/tests/workspace-watcher.test.js:98"}, "properties": {"repobilityId": "2601d2e2fdc495a3", "scanner": "scanner-primary", "fingerprint": "de8b18804fe3e104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d378ab59c3146ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/tests/events-persist-log-append.test.js:80"}, "properties": {"repobilityId": "387b75c67efea56f", "scanner": "scanner-primary", "fingerprint": "8d378ab59c3146ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-214c971457b49e99", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/tests/diff-bundle.test.js:126"}, "properties": {"repobilityId": "536940ef68007039", "scanner": "scanner-primary", "fingerprint": "214c971457b49e99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c81ca8fc5982ee30", "level": "note", "message": {"text": "Legacy-named symbol `runLegacy` in packages/engine/tests/engine-legacy-mode.test.jsx:24"}, "properties": {"repobilityId": "d80759a9b13a11ac", "scanner": "scanner-primary", "fingerprint": "c81ca8fc5982ee30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33aab4df29275252", "level": "note", "message": {"text": "Legacy-named symbol `runWorkflowBodyLegacy` in packages/engine/src/engine.js:4623"}, "properties": {"repobilityId": "fd5d61b89d019ff4", "scanner": "scanner-primary", "fingerprint": "33aab4df29275252", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-647bcb34e82b4947", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/engine/src/engine.js:2360"}, "properties": {"repobilityId": "c165e4abef1f9913", "scanner": "scanner-primary", "fingerprint": "647bcb34e82b4947", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1aa24a112b9dd4ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/engine/src/durabilityGapSpool.js:1"}, "properties": {"repobilityId": "2d0349f9092173ab", "scanner": "scanner-primary", "fingerprint": "1aa24a112b9dd4ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be23ac1d16f9640e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/db/tests/migrations.test.js:198"}, "properties": {"repobilityId": "7b9c746a0f665249", "scanner": "scanner-primary", "fingerprint": "be23ac1d16f9640e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0477e9face1af070", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/db/tests/db-concurrent.test.js:3"}, "properties": {"repobilityId": "6eea030e7be661a2", "scanner": "scanner-primary", "fingerprint": "0477e9face1af070", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f6486be5a24cac5", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/db/src/adapter.js:2396"}, "properties": {"repobilityId": "335e9a94fd861687", "scanner": "scanner-primary", "fingerprint": "0f6486be5a24cac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-500c814f0d82941d", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/scheduler/src/makeWorkflowSession.js:481"}, "properties": {"repobilityId": "dbfbf0cd6871b26a", "scanner": "scanner-primary", "fingerprint": "500c814f0d82941d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d890a21bbb1bbed7", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/gateway-client/tests/gatewayReconnectResume.test.ts:177"}, "properties": {"repobilityId": "658bc4720c2c6d42", "scanner": "scanner-primary", "fingerprint": "d890a21bbb1bbed7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecf869784611ebc3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/gateway-client/src/sync/SyncCache.ts:9"}, "properties": {"repobilityId": "c09596197613c23d", "scanner": "scanner-primary", "fingerprint": "ecf869784611ebc3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ce93516ac1c79c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/gateway-client/src/sync/SyncSubscriptionHub.ts:237"}, "properties": {"repobilityId": "3d6f932f876bb36e", "scanner": "scanner-primary", "fingerprint": "5ce93516ac1c79c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe75d1c7d990d38e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/graph/src/extract.js:13"}, "properties": {"repobilityId": "a5ab95eb78084670", "scanner": "scanner-primary", "fingerprint": "fe75d1c7d990d38e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c97a378802cb932", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/graph/src/dom/extract.js:17"}, "properties": {"repobilityId": "0fcdee622ae37802", "scanner": "scanner-primary", "fingerprint": "2c97a378802cb932", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbfde49f26534ffc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/openapi/tests/build-url-base-path.test.js:4"}, "properties": {"repobilityId": "b3eab71954cf7c95", "scanner": "scanner-primary", "fingerprint": "cbfde49f26534ffc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79ca1636f8327e26", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/openapi/tests/loadSpec-content-error.test.js:33"}, "properties": {"repobilityId": "2ac0c1d7a6fcb240", "scanner": "scanner-primary", "fingerprint": "79ca1636f8327e26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c854a6cf8593b5a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/loadSpecEffect.js:26"}, "properties": {"repobilityId": "afdf441baabff6e1", "scanner": "scanner-primary", "fingerprint": "c854a6cf8593b5a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7de62d67de32893b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/openapi/src/tool-factory/_helpers.js:126"}, "properties": {"repobilityId": "a26fac3a85896b28", "scanner": "scanner-primary", "fingerprint": "7de62d67de32893b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7b638fc28bb592f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in examples/mcp-integration/workflow.tsx:19"}, "properties": {"repobilityId": "98ea3fcc58eed669", "scanner": "scanner-primary", "fingerprint": "7b638fc28bb592f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44abdd5c9dd722f9", "level": "none", "message": {"text": "Commented-code block (7 lines) in examples/defending-code/workflow.jsx:140"}, "properties": {"repobilityId": "75516dd94ea21fef", "scanner": "scanner-primary", "fingerprint": "44abdd5c9dd722f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-162589dd457e7b9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/swe-evo/run.ts:199"}, "properties": {"repobilityId": "16f3becc0615a444", "scanner": "scanner-primary", "fingerprint": "162589dd457e7b9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f7e9a45fa913d48", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/swe-evo/workflow/swe-evo.tsx:56"}, "properties": {"repobilityId": "aa434a257e7c0d86", "scanner": "scanner-primary", "fingerprint": "8f7e9a45fa913d48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26aa2e8168c701c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 examples/swe-evo/dataset/load.ts:38"}, "properties": {"repobilityId": "619becba61a23619", "scanner": "scanner-primary", "fingerprint": "26aa2e8168c701c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-10c161ab3ac41e23", "level": "note", "message": {"text": "Legacy-named symbol `parse_log_pytest_v2` in examples/swe-evo/harness/parsers.py:8"}, "properties": {"repobilityId": "de351c3f1391e5f9", "scanner": "scanner-primary", "fingerprint": "10c161ab3ac41e23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-394d7134acdc1626", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/faults/case10-ghost-state-on-unmount.test.ts:294"}, "properties": {"repobilityId": "ea52b7a1df1c6e69", "scanner": "scanner-primary", "fingerprint": "394d7134acdc1626", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-902ca8d72cf9ba05", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/faults/case14-gateway-rpc-roundtrip.test.ts:854"}, "properties": {"repobilityId": "db43f687bea0ca0d", "scanner": "scanner-primary", "fingerprint": "902ca8d72cf9ba05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22f74d086ca9d9f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/faults/case04-restart-waiting-event.test.ts:528"}, "properties": {"repobilityId": "34a5c64e14c2315d", "scanner": "scanner-primary", "fingerprint": "22f74d086ca9d9f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ee8aed0eb6caa28", "level": "none", "message": {"text": "Commented-code block (10 lines) in e2e/faults/case07-continue-as-new-lineage.test.ts:218"}, "properties": {"repobilityId": "39f190d99dc71623", "scanner": "scanner-primary", "fingerprint": "8ee8aed0eb6caa28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-830a0610ac42bdf5", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/faults/case01-kill-engine-mid-task.test.ts:234"}, "properties": {"repobilityId": "5c47484aa81f35f9", "scanner": "scanner-primary", "fingerprint": "830a0610ac42bdf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76f8fa35c616e6a9", "level": "none", "message": {"text": "Commented-code block (12 lines) in e2e/faults/case13-collapsed-ancestor-failure-marker.test.ts:462"}, "properties": {"repobilityId": "6a9536c1ee9ecdd0", "scanner": "scanner-primary", "fingerprint": "76f8fa35c616e6a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e7393ba16b41e3b", "level": "none", "message": {"text": "Commented-code block (11 lines) in e2e/faults/case24-replay-unsafe-approval.test.ts:444"}, "properties": {"repobilityId": "bf25214a90e039ff", "scanner": "scanner-primary", "fingerprint": "6e7393ba16b41e3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b0b70dcf7ea2992", "level": "none", "message": {"text": "Commented-code block (12 lines) in e2e/faults/case17-webhook-bad-signature.test.ts:447"}, "properties": {"repobilityId": "bf2d39e06ceda42a", "scanner": "scanner-primary", "fingerprint": "4b0b70dcf7ea2992", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9582d4946a272ed3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case17-webhook-bad-signature.test.ts:299"}, "properties": {"repobilityId": "43937ec5c353b203", "scanner": "scanner-primary", "fingerprint": "9582d4946a272ed3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fe34bd611b694c4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in e2e/faults/case25-approval-scope-denial.test.ts:15"}, "properties": {"repobilityId": "9ff2d955aa14a112", "scanner": "scanner-primary", "fingerprint": "fe34bd611b694c4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da3df0cd8ade7472", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 e2e/faults/case25-approval-scope-denial.test.ts:127"}, "properties": {"repobilityId": "c89c560e297547b8", "scanner": "scanner-primary", "fingerprint": "da3df0cd8ade7472", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ceb3376dfa9a86ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/faults/case03-restart-waiting-approval.test.ts:335"}, "properties": {"repobilityId": "9685b466344a2e80", "scanner": "scanner-primary", "fingerprint": "ceb3376dfa9a86ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85a5995d45a746da", "level": "none", "message": {"text": "Commented-code block (9 lines) in e2e/faults/case27-scorer-failure-blocks-downstream.test.ts:434"}, "properties": {"repobilityId": "cd28b338e8c9b9fe", "scanner": "scanner-primary", "fingerprint": "85a5995d45a746da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40b4b82fafc7cabd", "level": "none", "message": {"text": "Commented-code block (8 lines) in e2e/faults/case18-cron-manual-overlap.test.ts:205"}, "properties": {"repobilityId": "7cae99262abe7c1a", "scanner": "scanner-primary", "fingerprint": "40b4b82fafc7cabd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b27ed9d85d98c542", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/faults/case26-diff-review-mode.test.ts:504"}, "properties": {"repobilityId": "d1a418b588a89a23", "scanner": "scanner-primary", "fingerprint": "b27ed9d85d98c542", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5221acb1663f65c2", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/faults/case05-restart-waiting-timer.test.ts:423"}, "properties": {"repobilityId": "f09936469c78e45f", "scanner": "scanner-primary", "fingerprint": "5221acb1663f65c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79a978ec7b931755", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/listRuns (apps/cli/tests/gateway-command.test.js:87)"}, "properties": {"repobilityId": "1ee03401f524e741", "scanner": "scanner-primary", "fingerprint": "79a978ec7b931755", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-533c78ca357e2d7b", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${REPO}/releases/latest (scripts/fetch-jj-binaries.mjs:36)"}, "properties": {"repobilityId": "7c2d2e5ac6807641", "scanner": "scanner-primary", "fingerprint": "533c78ca357e2d7b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c61aba5a8493dc73", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages/count_tokens (packages/agents/src/diagnostics/getDiagnosticStrategy.js:108)"}, "properties": {"repobilityId": "7266b12c81910b78", "scanner": "scanner-primary", "fingerprint": "c61aba5a8493dc73", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-459af1a5ca885458", "level": "error", "message": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:206)"}, "properties": {"repobilityId": "0e494056c6d872cc", "scanner": "scanner-primary", "fingerprint": "459af1a5ca885458", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac18d71dc7499d05", "level": "error", "message": {"text": "Dangling fetch: GET https://api.openai.com/v1/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:258)"}, "properties": {"repobilityId": "4a061e53a61fe597", "scanner": "scanner-primary", "fingerprint": "ac18d71dc7499d05", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0172a71c3ea0acdb", "level": "error", "message": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:335)"}, "properties": {"repobilityId": "6fd2f6fe7e57369d", "scanner": "scanner-primary", "fingerprint": "0172a71c3ea0acdb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8b47b068ac585a3b", "level": "error", "message": {"text": "Dangling fetch: GET https://generativelanguage.googleapis.com/v1beta/models (packages/agents/src/diagnostics/getDiagnosticStrategy.js:400)"}, "properties": {"repobilityId": "933e695e1ddc0369", "scanner": "scanner-primary", "fingerprint": "8b47b068ac585a3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b23527f12e91ba23", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/server.test.js:31)"}, "properties": {"repobilityId": "ede6c5d829b67c0f", "scanner": "scanner-primary", "fingerprint": "b23527f12e91ba23", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5311f6847c36cd85", "level": "error", "message": {"text": "Dangling fetch: POST http://localhost:${port}/v1/runs (packages/server/tests/server.test.js:236)"}, "properties": {"repobilityId": "2efde2c068cd162b", "scanner": "scanner-primary", "fingerprint": "5311f6847c36cd85", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6fbccde3bda63e26", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/v1/runs/${startData.runId}/events (packages/server/tests/server.test.js:476)"}, "properties": {"repobilityId": "91fdfd7f815474b4", "scanner": "scanner-primary", "fingerprint": "6fbccde3bda63e26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4474f2744062ea30", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/v1/runs/non-existent-run-id/events (packages/server/tests/server.test.js:491)"}, "properties": {"repobilityId": "7158a6959648d206", "scanner": "scanner-primary", "fingerprint": "4474f2744062ea30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76df132ac649060e", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/${runId} (packages/server/tests/server.test.js:74)"}, "properties": {"repobilityId": "eade0cf39593c7f5", "scanner": "scanner-primary", "fingerprint": "76df132ac649060e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cd257ee2fa31d111", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:181)"}, "properties": {"repobilityId": "9c28a58fc1b9be33", "scanner": "scanner-primary", "fingerprint": "cd257ee2fa31d111", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6515253c1c6145de", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:194)"}, "properties": {"repobilityId": "782c2b58f328f2e5", "scanner": "scanner-primary", "fingerprint": "6515253c1c6145de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fbfc791d989eeb0a", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:203)"}, "properties": {"repobilityId": "b6ac6fac06d618ed", "scanner": "scanner-primary", "fingerprint": "fbfc791d989eeb0a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b07beac7ba6d9615", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:215)"}, "properties": {"repobilityId": "fa3463e2e6259630", "scanner": "scanner-primary", "fingerprint": "b07beac7ba6d9615", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f5aefafd56aaedb", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:224)"}, "properties": {"repobilityId": "fa5924c8b183ecd8", "scanner": "scanner-primary", "fingerprint": "2f5aefafd56aaedb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b0e261ad741a1e42", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:250)"}, "properties": {"repobilityId": "5dab44a32718568c", "scanner": "scanner-primary", "fingerprint": "b0e261ad741a1e42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8502295c4e4fa9c3", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:263)"}, "properties": {"repobilityId": "4cd655dca4627c7e", "scanner": "scanner-primary", "fingerprint": "8502295c4e4fa9c3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f47bbc2274ff53e9", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/${startData.runId} (packages/server/tests/server.test.js:269)"}, "properties": {"repobilityId": "c3f7669449c0bec7", "scanner": "scanner-primary", "fingerprint": "f47bbc2274ff53e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a4610bb26e715dca", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/non-existent-run-id (packages/server/tests/server.test.js:278)"}, "properties": {"repobilityId": "1deddd0b77749e6a", "scanner": "scanner-primary", "fingerprint": "a4610bb26e715dca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7ddf3b6b7835433a", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:288)"}, "properties": {"repobilityId": "b088420863beb471", "scanner": "scanner-primary", "fingerprint": "7ddf3b6b7835433a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-463f61a2875c8c9e", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:299)"}, "properties": {"repobilityId": "2403b9549ee36f98", "scanner": "scanner-primary", "fingerprint": "463f61a2875c8c9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d10a2258578dadc", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:313)"}, "properties": {"repobilityId": "d09ef28297badc08", "scanner": "scanner-primary", "fingerprint": "5d10a2258578dadc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-58759d761647bd1b", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/cancel (packages/server/tests/server.test.js:318)"}, "properties": {"repobilityId": "b0d7483b3db1b957", "scanner": "scanner-primary", "fingerprint": "58759d761647bd1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2d672531caa4d17", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/cancel (packages/server/tests/server.test.js:326)"}, "properties": {"repobilityId": "f377224573d37a56", "scanner": "scanner-primary", "fingerprint": "f2d672531caa4d17", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-2f80155b56f8314c", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:338)"}, "properties": {"repobilityId": "f9872e384eb6e565", "scanner": "scanner-primary", "fingerprint": "2f80155b56f8314c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-edc7127bf911e6b4", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/resume (packages/server/tests/server.test.js:343)"}, "properties": {"repobilityId": "601ac3e35f42209f", "scanner": "scanner-primary", "fingerprint": "edc7127bf911e6b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-197c90e40fe95874", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:356)"}, "properties": {"repobilityId": "0bf5dcd722ec0388", "scanner": "scanner-primary", "fingerprint": "197c90e40fe95874", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed0c2d994a32c24d", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/${startData.runId}/frames (packages/server/tests/server.test.js:361)"}, "properties": {"repobilityId": "535b31f10be60e93", "scanner": "scanner-primary", "fingerprint": "ed0c2d994a32c24d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a630b22f66d2c206", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/non-existent-run-id/frames (packages/server/tests/server.test.js:367)"}, "properties": {"repobilityId": "ea1895baa9cd50d1", "scanner": "scanner-primary", "fingerprint": "a630b22f66d2c206", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45fb47eff251fc6e", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:375)"}, "properties": {"repobilityId": "ed211c3930b53c9c", "scanner": "scanner-primary", "fingerprint": "45fb47eff251fc6e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d0e603726c163007", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs/${startData.runId}/frames?limit=10&afterFrameNo=0 (packages/server/tests/server.test.js:380)"}, "properties": {"repobilityId": "05a2edebbdc8c039", "scanner": "scanner-primary", "fingerprint": "d0e603726c163007", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e5cf0eeb2202cb35", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:390)"}, "properties": {"repobilityId": "c9403cff7aef54f9", "scanner": "scanner-primary", "fingerprint": "e5cf0eeb2202cb35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ed65dd457d2cfd7a", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/approve (packages/server/tests/server.test.js:395)"}, "properties": {"repobilityId": "5a17b4da4f2ee061", "scanner": "scanner-primary", "fingerprint": "ed65dd457d2cfd7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-44f8e97002cc169f", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:404)"}, "properties": {"repobilityId": "50a53b337fbdcccb", "scanner": "scanner-primary", "fingerprint": "44f8e97002cc169f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0c9a98d56258131e", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/approve (packages/server/tests/server.test.js:415)"}, "properties": {"repobilityId": "66cc48b9318deda3", "scanner": "scanner-primary", "fingerprint": "0c9a98d56258131e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3f7020fc176876a3", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:429)"}, "properties": {"repobilityId": "17cc02cc24bb692e", "scanner": "scanner-primary", "fingerprint": "3f7020fc176876a3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-81acad8e395465cc", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/${startData.runId}/nodes/task1/deny (packages/server/tests/server.test.js:434)"}, "properties": {"repobilityId": "b235eb313db4199f", "scanner": "scanner-primary", "fingerprint": "81acad8e395465cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a50ab69ee57eb3d0", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:443)"}, "properties": {"repobilityId": "6b2d4d7379c8868a", "scanner": "scanner-primary", "fingerprint": "a50ab69ee57eb3d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56921ae16bbc7331", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs/non-existent-run-id/nodes/some-node/deny (packages/server/tests/server.test.js:454)"}, "properties": {"repobilityId": "825123addc00b09d", "scanner": "scanner-primary", "fingerprint": "56921ae16bbc7331", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ba8ad8f27d1f0a56", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:468)"}, "properties": {"repobilityId": "affc774b116f604a", "scanner": "scanner-primary", "fingerprint": "ba8ad8f27d1f0a56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a0ff83933836905e", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:500)"}, "properties": {"repobilityId": "0ceb6a8c8ee224c6", "scanner": "scanner-primary", "fingerprint": "a0ff83933836905e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-a2eea75565d78f9e", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs (packages/server/tests/server.test.js:508)"}, "properties": {"repobilityId": "0ac8e3eb53dea19f", "scanner": "scanner-primary", "fingerprint": "a2eea75565d78f9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-eaabe9dfe7ccc643", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs?limit=10&status=running (packages/server/tests/server.test.js:517)"}, "properties": {"repobilityId": "cdee86cb5cf73351", "scanner": "scanner-primary", "fingerprint": "eaabe9dfe7ccc643", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-10299a492525793e", "level": "error", "message": {"text": "Dangling fetch: GET /v1/runs?limit=10 (packages/server/tests/server.test.js:536)"}, "properties": {"repobilityId": "7d8ef836fa5f5110", "scanner": "scanner-primary", "fingerprint": "10299a492525793e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a178b6cf577ef25", "level": "error", "message": {"text": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:549)"}, "properties": {"repobilityId": "b906bb3f2a08e108", "scanner": "scanner-primary", "fingerprint": "4a178b6cf577ef25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aa1c0a2fdbe2be39", "level": "error", "message": {"text": "Dangling fetch: GET /v1/approval/list (packages/server/tests/server.test.js:611)"}, "properties": {"repobilityId": "225ee2237c0b1f34", "scanner": "scanner-primary", "fingerprint": "aa1c0a2fdbe2be39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08e7b84fa09d288c", "level": "error", "message": {"text": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/server.test.js:634)"}, "properties": {"repobilityId": "905606d8438412b4", "scanner": "scanner-primary", "fingerprint": "08e7b84fa09d288c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f9a8caf01f72cb8f", "level": "error", "message": {"text": "Dangling fetch: POST /v1/runs (packages/server/tests/server.test.js:649)"}, "properties": {"repobilityId": "360e8d6cd4f86942", "scanner": "scanner-primary", "fingerprint": "f9a8caf01f72cb8f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ab5007dd585e9d96", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-v1-contract.test.jsx:95)"}, "properties": {"repobilityId": "33d6a63be046aeda", "scanner": "scanner-primary", "fingerprint": "ab5007dd585e9d96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e6e64905ecfbe39b", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:369)"}, "properties": {"repobilityId": "08ab4dd064abbe6b", "scanner": "scanner-primary", "fingerprint": "e6e64905ecfbe39b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b06fcd1edb9cf7fd", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway.test.jsx:389)"}, "properties": {"repobilityId": "4dd6a76778f85053", "scanner": "scanner-primary", "fingerprint": "b06fcd1edb9cf7fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8377d11fa6980ba3", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (packages/server/tests/gateway-webhooks.test.jsx:45)"}, "properties": {"repobilityId": "2e0d6c0f1845890d", "scanner": "scanner-primary", "fingerprint": "8377d11fa6980ba3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-688a55b791c6352e", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/github (packages/server/tests/gateway-webhooks.test.jsx:135)"}, "properties": {"repobilityId": "835afeccf653036d", "scanner": "scanner-primary", "fingerprint": "688a55b791c6352e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8de7fdcc1d21454", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/metrics (packages/server/tests/gateway-webhooks.test.jsx:152)"}, "properties": {"repobilityId": "27d216e000ecfcfb", "scanner": "scanner-primary", "fingerprint": "c8de7fdcc1d21454", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ed6256cedb9564b6", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (packages/server/tests/gateway-ui.test.jsx:43)"}, "properties": {"repobilityId": "8416f3f2091b635e", "scanner": "scanner-primary", "fingerprint": "ed6256cedb9564b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-838f2bc9eaaee806", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:79)"}, "properties": {"repobilityId": "be62f933b24bf323", "scanner": "scanner-primary", "fingerprint": "838f2bc9eaaee806", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8cff78b68034177", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:88)"}, "properties": {"repobilityId": "340f0ef6d1d3ff5f", "scanner": "scanner-primary", "fingerprint": "d8cff78b68034177", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-733acd2db1d6c477", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:99)"}, "properties": {"repobilityId": "9c87b75adfe7cedb", "scanner": "scanner-primary", "fingerprint": "733acd2db1d6c477", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c68577cb458d68bb", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:107)"}, "properties": {"repobilityId": "86f9ef639f4500b0", "scanner": "scanner-primary", "fingerprint": "c68577cb458d68bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7b8176136fc3f33d", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:132)"}, "properties": {"repobilityId": "20ccf267923ec715", "scanner": "scanner-primary", "fingerprint": "7b8176136fc3f33d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b05c0a4619b5fd0", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:140)"}, "properties": {"repobilityId": "a037eec0049dca65", "scanner": "scanner-primary", "fingerprint": "1b05c0a4619b5fd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6125e4c2536840f5", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:166)"}, "properties": {"repobilityId": "68fe1ac5d2593fa9", "scanner": "scanner-primary", "fingerprint": "6125e4c2536840f5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e9b0a3a30229bd2", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:169)"}, "properties": {"repobilityId": "a86bed45fab86e54", "scanner": "scanner-primary", "fingerprint": "6e9b0a3a30229bd2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6974c6f2da8f972d", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console/__smithers_ui/client.js (packages/server/tests/gateway-ui.test.jsx:175)"}, "properties": {"repobilityId": "1cb1bc017626262b", "scanner": "scanner-primary", "fingerprint": "6974c6f2da8f972d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78760597e2babc9a", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/console (packages/server/tests/gateway-ui.test.jsx:187)"}, "properties": {"repobilityId": "10c923d48b277779", "scanner": "scanner-primary", "fingerprint": "78760597e2babc9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-26189738009051ce", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/workflows/deploy (packages/server/tests/gateway-ui.test.jsx:206)"}, "properties": {"repobilityId": "e7876ae02dfd4349", "scanner": "scanner-primary", "fingerprint": "26189738009051ce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4e52b7dbf11e0713", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}${path} (packages/server/tests/serve.test.js:65)"}, "properties": {"repobilityId": "b43172c9d5ab4fc3", "scanner": "scanner-primary", "fingerprint": "4e52b7dbf11e0713", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8ae3c1d5d8792df6", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:408)"}, "properties": {"repobilityId": "7f1a75bebbf86ea5", "scanner": "scanner-primary", "fingerprint": "8ae3c1d5d8792df6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3555127676880517", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/events (packages/server/tests/serve.test.js:433)"}, "properties": {"repobilityId": "a8381983b92bf699", "scanner": "scanner-primary", "fingerprint": "3555127676880517", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2a47083c62a59283", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/events?afterSeq=999999 (packages/server/tests/serve.test.js:468)"}, "properties": {"repobilityId": "51f996449043b704", "scanner": "scanner-primary", "fingerprint": "2a47083c62a59283", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ac1905d11a85cd6c", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:516)"}, "properties": {"repobilityId": "1b4c317d6790034a", "scanner": "scanner-primary", "fingerprint": "ac1905d11a85cd6c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-684aa3cbc61cbdb9", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:544)"}, "properties": {"repobilityId": "2126d0a2e6bba043", "scanner": "scanner-primary", "fingerprint": "684aa3cbc61cbdb9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e271ac8a13ad44a", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:568)"}, "properties": {"repobilityId": "f3e2885e34904815", "scanner": "scanner-primary", "fingerprint": "5e271ac8a13ad44a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c0d94cd776b5d7e2", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:589)"}, "properties": {"repobilityId": "88e4d4fe68c1fa8e", "scanner": "scanner-primary", "fingerprint": "c0d94cd776b5d7e2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c3d2bcaa8a6bedd8", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:607)"}, "properties": {"repobilityId": "8226e1da9ae15037", "scanner": "scanner-primary", "fingerprint": "c3d2bcaa8a6bedd8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1824b2d64cefb30", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:${port}/metrics (packages/server/tests/serve.test.js:618)"}, "properties": {"repobilityId": "0bf3c88573205170", "scanner": "scanner-primary", "fingerprint": "e1824b2d64cefb30", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78d93c203cf01d75", "level": "error", "message": {"text": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:340)"}, "properties": {"repobilityId": "b9c85d1a8d37b5a4", "scanner": "scanner-primary", "fingerprint": "78d93c203cf01d75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9580a56c57a80ef3", "level": "error", "message": {"text": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:362)"}, "properties": {"repobilityId": "0b0daa4bbfac7bda", "scanner": "scanner-primary", "fingerprint": "9580a56c57a80ef3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9e786fbc88bc5023", "level": "error", "message": {"text": "Dangling fetch: POST /approve/task1 (packages/server/tests/serve.test.js:584)"}, "properties": {"repobilityId": "a8d2148167398ad5", "scanner": "scanner-primary", "fingerprint": "9e786fbc88bc5023", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b7c2578b04d508d2", "level": "error", "message": {"text": "Dangling fetch: POST /deny/task1 (packages/server/tests/serve.test.js:602)"}, "properties": {"repobilityId": "d27b20074c1a9d2c", "scanner": "scanner-primary", "fingerprint": "b7c2578b04d508d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-af620858bd63924d", "level": "error", "message": {"text": "Dangling fetch: GET /v1/unknown-route (packages/server/tests/serve.test.js:635)"}, "properties": {"repobilityId": "670dbb2207ae4f65", "scanner": "scanner-primary", "fingerprint": "af620858bd63924d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db4172bb5ac38027", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:159)"}, "properties": {"repobilityId": "c0fbc597f40c9c85", "scanner": "scanner-primary", "fingerprint": "db4172bb5ac38027", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6dacf893115a79e0", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:196)"}, "properties": {"repobilityId": "aed295e5a78c3042", "scanner": "scanner-primary", "fingerprint": "6dacf893115a79e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78e7aeda9a1ac909", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:210)"}, "properties": {"repobilityId": "6414615a39e2c80e", "scanner": "scanner-primary", "fingerprint": "78e7aeda9a1ac909", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d65426f0d3f593d5", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:265)"}, "properties": {"repobilityId": "3ce7ec8457711274", "scanner": "scanner-primary", "fingerprint": "d65426f0d3f593d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-415e512666603fc0", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:281)"}, "properties": {"repobilityId": "d9d4ca359ba2a1e0", "scanner": "scanner-primary", "fingerprint": "415e512666603fc0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd2db518560959f7", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:294)"}, "properties": {"repobilityId": "78481f7f6a21fbe4", "scanner": "scanner-primary", "fingerprint": "cd2db518560959f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9b12247a455aa6d2", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:308)"}, "properties": {"repobilityId": "07506ee027691560", "scanner": "scanner-primary", "fingerprint": "9b12247a455aa6d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-832cc6646bc834d0", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:324)"}, "properties": {"repobilityId": "343d7fe19d5e6b2b", "scanner": "scanner-primary", "fingerprint": "832cc6646bc834d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a35588a5395482cc", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:394)"}, "properties": {"repobilityId": "ffb8207bcb3abb4c", "scanner": "scanner-primary", "fingerprint": "a35588a5395482cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-df534f5fad38336d", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/rpc (packages/server/tests/gateway-http-boundaries.test.js:410)"}, "properties": {"repobilityId": "a3aba1e557fd3fa8", "scanner": "scanner-primary", "fingerprint": "df534f5fad38336d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5e812d509d453cc4", "level": "error", "message": {"text": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/plueBridge.spec.ts:22)"}, "properties": {"repobilityId": "d6f54a63fffe44b3", "scanner": "scanner-primary", "fingerprint": "5e812d509d453cc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6a7c97d6b14f3930", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/plueBridge.spec.ts:29)"}, "properties": {"repobilityId": "718f72f08670dfb9", "scanner": "scanner-primary", "fingerprint": "6a7c97d6b14f3930", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a83ab55db22a3a45", "level": "error", "message": {"text": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/plueBridge.spec.ts:43)"}, "properties": {"repobilityId": "1b7e6f2d68576931", "scanner": "scanner-primary", "fingerprint": "a83ab55db22a3a45", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee6a475a48e4a86c", "level": "error", "message": {"text": "Dangling fetch: PUT /api/notifications (apps/smithers/tests/e2e/plueBridge.spec.ts:55)"}, "properties": {"repobilityId": "6bd7a83756a76620", "scanner": "scanner-primary", "fingerprint": "ee6a475a48e4a86c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a37f2e4280ec1377", "level": "error", "message": {"text": "Dangling fetch: GET /api/user (apps/smithers/tests/e2e/splitConfig.spec.ts:17)"}, "properties": {"repobilityId": "42c3ed1257511d11", "scanner": "scanner-primary", "fingerprint": "a37f2e4280ec1377", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ea298610bb708782", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/keys (apps/smithers/tests/e2e/splitConfig.spec.ts:34)"}, "properties": {"repobilityId": "d13128fc45a74762", "scanner": "scanner-primary", "fingerprint": "ea298610bb708782", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0c64ea01f429cc3b", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/repos (apps/smithers/tests/e2e/splitConfig.spec.ts:48)"}, "properties": {"repobilityId": "b4c3a31b455cb901", "scanner": "scanner-primary", "fingerprint": "0c64ea01f429cc3b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63304eb21fb8eeed", "level": "error", "message": {"text": "Dangling fetch: GET /api/repos/fixture/widgets/issues (apps/smithers/tests/e2e/splitConfig.spec.ts:63)"}, "properties": {"repobilityId": "6df77f698bb9fe1b", "scanner": "scanner-primary", "fingerprint": "63304eb21fb8eeed", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b198579bf6f97f39", "level": "error", "message": {"text": "Dangling fetch: POST https://api.freestyle.sh/v1/vms/${vm}/exec-await (apps/smithers/src/pair/pairSyncDO.ts:171)"}, "properties": {"repobilityId": "24e1e24b55713811", "scanner": "scanner-primary", "fingerprint": "b198579bf6f97f39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f8cff359db2b21b1", "level": "error", "message": {"text": "Dangling fetch: POST /sync${path} (apps/smithers/src/pair/PairCoding.tsx:40)"}, "properties": {"repobilityId": "4b877e1edbd1c111", "scanner": "scanner-primary", "fingerprint": "f8cff359db2b21b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-556006e4e4d591fc", "level": "error", "message": {"text": "Dangling fetch: GET /sync/v1/shape?${params} (apps/smithers/src/pair/PairCoding.tsx:87)"}, "properties": {"repobilityId": "d706c1b03b7c484b", "scanner": "scanner-primary", "fingerprint": "556006e4e4d591fc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d24e7fb68a012df4", "level": "error", "message": {"text": "Dangling fetch: GET /sync/health (apps/smithers/src/pair/PairCoding.tsx:153)"}, "properties": {"repobilityId": "13064de81436437f", "scanner": "scanner-primary", "fingerprint": "d24e7fb68a012df4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-82d6472102d1c5aa", "level": "error", "message": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspaceApi.ts:570)"}, "properties": {"repobilityId": "18b4998a2095241d", "scanner": "scanner-primary", "fingerprint": "82d6472102d1c5aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff24169c32c821cb", "level": "error", "message": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workspace/chatApi.ts:47)"}, "properties": {"repobilityId": "fc7f367e78aea140", "scanner": "scanner-primary", "fingerprint": "ff24169c32c821cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7cd876816deeae9a", "level": "error", "message": {"text": "Dangling fetch: POST /__smithers_studio/api/chat/message (apps/smithers-studio-2/src/workspace/chatApi.ts:91)"}, "properties": {"repobilityId": "a21216197e51fa6f", "scanner": "scanner-primary", "fingerprint": "7cd876816deeae9a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f07e180b9123ce46", "level": "error", "message": {"text": "Dangling fetch: GET /__smithers_studio/api${path} (apps/smithers-studio-2/src/workflows/workflowsApi.ts:41)"}, "properties": {"repobilityId": "b724491eaedb2229", "scanner": "scanner-primary", "fingerprint": "f07e180b9123ce46", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb796f82fb4267c1", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/webhooks/${workflowKey} (e2e/faults/case17-webhook-bad-signature.test.ts:299)"}, "properties": {"repobilityId": "a30e729a9c26c2fb", "scanner": "scanner-primary", "fingerprint": "fb796f82fb4267c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9170af3c9c14b68f", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/v1/rpc/${method} (e2e/faults/case25-approval-scope-denial.test.ts:127)"}, "properties": {"repobilityId": "09aa42dfba8ec2e3", "scanner": "scanner-primary", "fingerprint": "9170af3c9c14b68f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67d28fa8cd6bb12f", "level": "note", "message": {"text": "Unused endpoint: PUT /"}, "properties": {"repobilityId": "458546d36da9e0cc", "scanner": "scanner-primary", "fingerprint": "67d28fa8cd6bb12f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-43269e4e79c2e69e", "level": "note", "message": {"text": "Unused endpoint: GET /events"}, "properties": {"repobilityId": "a14aeb193dd08677", "scanner": "scanner-primary", "fingerprint": "43269e4e79c2e69e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1663792f08ebaecd", "level": "note", "message": {"text": "Unused endpoint: POST /approve/:nodeId"}, "properties": {"repobilityId": "5c521f485c5c8bda", "scanner": "scanner-primary", "fingerprint": "1663792f08ebaecd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7007c701da7af27c", "level": "note", "message": {"text": "Unused endpoint: POST /deny/:nodeId"}, "properties": {"repobilityId": "2f104b22b3ee591b", "scanner": "scanner-primary", "fingerprint": "7007c701da7af27c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}