{"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-414a8ce4d97557c9", "name": "Stray `console.log` in TS/JS \u2014 server.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server.js:121"}, "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-c6d44b4bdf1d4e7c", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/settings.js:120", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/settings.js:120"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2133e342022f8656", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/costs.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/costs.js:35"}, "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-f73b40eaf29ce7c5", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/review.js:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/review.js:57"}, "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-9ba8b045a09dbae1", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/sidebar.js:295", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sidebar.js:295"}, "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-38cef865baf47c09", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/app.js:728", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/app.js:728"}, "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-aa186d28ca80f9e2", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/conversation.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/conversation.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-524ebcbbb1bcfad4", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/commits.js:298", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/commits.js:298"}, "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-c8a5a88bf5fe617b", "name": "Insecure pattern 'node_child_process' in src/worktrees.js:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/worktrees.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aecb307165afe55f", "name": "Insecure pattern 'node_child_process' in src/ttsInstall.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/ttsInstall.js:11"}, "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-d96fcf0f4405677c", "name": "Insecure pattern 'node_child_process' in src/restart.js:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/restart.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08980caa56e7ae7f", "name": "Insecure pattern 'node_child_process' in src/whisperInstall.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/whisperInstall.js:11"}, "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-35573c976ecb7afd", "name": "Insecure pattern 'node_child_process' in src/instances.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/instances.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-0399a070e99edb15", "name": "Insecure pattern 'node_child_process' in src/health.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/health.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af7f13c568605c5d", "name": "Insecure pattern 'node_child_process' in src/transcribe.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/transcribe.js:11"}, "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-d379cbb2edf8edae", "name": "Insecure pattern 'node_child_process' in src/tts.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/tts.js: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-f4a3d0d5c5c19f38", "name": "Insecure pattern 'node_child_process' in src/mcp/handlers.js:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/mcp/handlers.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-097ae650723c6ed7", "name": "Very large file: tests/instances.test.mjs (1358 lines)", "shortDescription": {"text": "Very large file: tests/instances.test.mjs (1358 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-99697bda9f87e0e3", "name": "Very large file: tests/rendering.test.mjs (1490 lines)", "shortDescription": {"text": "Very large file: tests/rendering.test.mjs (1490 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-0406ab17e5bbbea7", "name": "Very large file: tests/mcp.test.mjs (1034 lines)", "shortDescription": {"text": "Very large file: tests/mcp.test.mjs (1034 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-c99e7959e4f5a0bf", "name": "Very large file: public/app.js (2194 lines)", "shortDescription": {"text": "Very large file: public/app.js (2194 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-bc3cdfd991334a85", "name": "Very large file: src/instances.js (1572 lines)", "shortDescription": {"text": "Very large file: src/instances.js (1572 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-7f71c0a3998673eb", "name": "Very large file: src/mcp/handlers.js (1248 lines)", "shortDescription": {"text": "Very large file: src/mcp/handlers.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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 21 placeholder/mock markers across 12 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci. 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-7a96ccb8a107882d", "name": "Commented-code block (5 lines) in server.js:42", "shortDescription": {"text": "Commented-code block (5 lines) in server.js:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec74072ebc653d32", "name": "Commented-code block (5 lines) in tests/fake-piper-synth.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/fake-piper-synth.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b87cadd68402390", "name": "Commented-code block (8 lines) in tests/run.mjs:13", "shortDescription": {"text": "Commented-code block (8 lines) in tests/run.mjs: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-3c5b889c860df7c1", "name": "Commented-code block (5 lines) in tests/compact-window-spawn.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/compact-window-spawn.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-429ab2277f2487e9", "name": "Commented-code block (5 lines) in tests/mcp-subscribe-to-idle.test.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/mcp-subscribe-to-idle.test.mjs: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-7c6255382c53428a", "name": "Commented-code block (6 lines) in tests/ws.test.mjs:243", "shortDescription": {"text": "Commented-code block (6 lines) in tests/ws.test.mjs:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-492672c54178d18c", "name": "Commented-code block (5 lines) in tests/rewind.test.mjs:204", "shortDescription": {"text": "Commented-code block (5 lines) in tests/rewind.test.mjs:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41fc92536c613c9b", "name": "Commented-code block (6 lines) in tests/resume-after-restart.test.mjs:375", "shortDescription": {"text": "Commented-code block (6 lines) in tests/resume-after-restart.test.mjs:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97082a69bbb6c1cc", "name": "Commented-code block (5 lines) in tests/helpers.mjs:19", "shortDescription": {"text": "Commented-code block (5 lines) in tests/helpers.mjs: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-d04de28f359671f4", "name": "Commented-code block (5 lines) in tests/sidebar-conduct-row.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/sidebar-conduct-row.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2982fa87411ff90", "name": "Commented-code block (5 lines) in tests/instances.test.mjs:276", "shortDescription": {"text": "Commented-code block (5 lines) in tests/instances.test.mjs:276"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-292d7973a76b9f5d", "name": "Commented-code block (5 lines) in tests/session-edit.test.mjs:241", "shortDescription": {"text": "Commented-code block (5 lines) in tests/session-edit.test.mjs:241"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eadbfd5136982793", "name": "Commented-code block (5 lines) in tests/model-resume.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/model-resume.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ff383ba55f6d57d", "name": "Commented-code block (5 lines) in tests/settings-toggle.test.mjs:184", "shortDescription": {"text": "Commented-code block (5 lines) in tests/settings-toggle.test.mjs:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cae14b91725358ac", "name": "Legacy-named symbol `mOld` in tests/lazy-load-rendering.test.mjs:36", "shortDescription": {"text": "Legacy-named symbol `mOld` in tests/lazy-load-rendering.test.mjs:36"}, "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-ec5d8a6541e63510", "name": "Commented-code block (5 lines) in tests/lazy-load-rendering.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/lazy-load-rendering.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48f0b6d684521f97", "name": "Commented-code block (8 lines) in tests/mcp-contract.test.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/mcp-contract.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a94060dbf0e8d76", "name": "Commented-code block (5 lines) in tests/cost-tracking.test.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/cost-tracking.test.mjs: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-e44ac344fe71c4db", "name": "Commented-code block (10 lines) in tests/scroll-anchor.test.mjs:7", "shortDescription": {"text": "Commented-code block (10 lines) in tests/scroll-anchor.test.mjs: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-0c3005ae8d356dbe", "name": "Commented-code block (5 lines) in tests/rendering.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/rendering.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4dfaedef4ae8fbd", "name": "Commented-code block (6 lines) in tests/mcp-recent-disk.test.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/mcp-recent-disk.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7a98338c1b7c5bb", "name": "Commented-code block (5 lines) in tests/events-endpoint.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/events-endpoint.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9be7986d5392070d", "name": "Commented-code block (6 lines) in tests/server-restart.test.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in tests/server-restart.test.mjs: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-65710c9ae0f66e83", "name": "Commented-code block (5 lines) in tests/soft-interrupt-filter.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/soft-interrupt-filter.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d588dbedc2d4467c", "name": "Commented-code block (6 lines) in tests/temp-session-list-filter.test.mjs:12", "shortDescription": {"text": "Commented-code block (6 lines) in tests/temp-session-list-filter.test.mjs:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76267f2c4c438740", "name": "Commented-code block (5 lines) in tests/attachments.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/attachments.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fec34aa67baac3f0", "name": "Commented-code block (5 lines) in tests/projects-cache.test.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in tests/projects-cache.test.mjs: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-6aed50ca235da7ca", "name": "Commented-code block (5 lines) in tests/hook-callback.test.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/hook-callback.test.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7eeea7a3ef7c96d1", "name": "Commented-code block (5 lines) in tests/smoke.real.test.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in tests/smoke.real.test.mjs: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-eb238130f1365f1a", "name": "Commented-code block (5 lines) in tests/parser.test.mjs:115", "shortDescription": {"text": "Commented-code block (5 lines) in tests/parser.test.mjs:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa9a2edc1eb07f5e", "name": "Commented-code block (6 lines) in tests/restart-temp-cleanup.test.mjs:17", "shortDescription": {"text": "Commented-code block (6 lines) in tests/restart-temp-cleanup.test.mjs: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-625cf1e41ff9df7e", "name": "Commented-code block (5 lines) in tests/mcp.test.mjs:243", "shortDescription": {"text": "Commented-code block (5 lines) in tests/mcp.test.mjs:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40522a4e94361132", "name": "Commented-code block (5 lines) in public/models.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/models.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-f2f83a6c03f81a34", "name": "Commented-code block (5 lines) in public/blocks.js:150", "shortDescription": {"text": "Commented-code block (5 lines) in public/blocks.js:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30efb978f7c93255", "name": "Commented-code block (6 lines) in public/usage.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in public/usage.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-91a5181c694b8fb7", "name": "Commented-code block (5 lines) in public/review.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/review.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-07e4a6bcef783b6c", "name": "Commented-code block (5 lines) in public/sw.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/sw.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-3b9401bcc9f746a5", "name": "Commented-code block (5 lines) in public/sidebar.js:21", "shortDescription": {"text": "Commented-code block (5 lines) in public/sidebar.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-709412b4e9c9db9d", "name": "Commented-code block (5 lines) in public/notifications.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in public/notifications.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8c840cc8b88cdea", "name": "Commented-code block (9 lines) in public/lazyHistory.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in public/lazyHistory.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-473aceabef3df4e4", "name": "Commented-code block (6 lines) in public/anchor.js:38", "shortDescription": {"text": "Commented-code block (6 lines) in public/anchor.js: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-cc115a392bf08ca5", "name": "Commented-code block (7 lines) in public/app.js:177", "shortDescription": {"text": "Commented-code block (7 lines) in public/app.js: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-d64f5b74b885dada", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/app.js:1285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/app.js:1285"}, "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-ed9e894c02bf0be8", "name": "Commented-code block (5 lines) in public/composer.js:31", "shortDescription": {"text": "Commented-code block (5 lines) in public/composer.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc85360df90ceb15", "name": "Commented-code block (8 lines) in public/conversation.js:47", "shortDescription": {"text": "Commented-code block (8 lines) in public/conversation.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7222615aa10ea92a", "name": "Commented-code block (5 lines) in public/external-links.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in public/external-links.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-ee88f0edc0d8d37d", "name": "Commented-code block (7 lines) in public/tasks.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in public/tasks.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-91d8a601bf44bc06", "name": "Commented-code block (11 lines) in public/markdown.js:9", "shortDescription": {"text": "Commented-code block (11 lines) in public/markdown.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9a325c44e01c6a9", "name": "Commented-code block (5 lines) in public/tts.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in public/tts.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-0d937fd7b3cedc80", "name": "Commented-code block (5 lines) in public/commits.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in public/commits.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-db696719902c3caa", "name": "Commented-code block (7 lines) in migrations/0005-rename-conducted-marker.mjs:4", "shortDescription": {"text": "Commented-code block (7 lines) in migrations/0005-rename-conducted-marker.mjs: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-9b163e21e13533eb", "name": "Commented-code block (6 lines) in migrations/0006-init-cost-tracking.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/0006-init-cost-tracking.mjs: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-a159f3d470b7cf74", "name": "Commented-code block (8 lines) in migrations/0004-relocate-av-installs.mjs:5", "shortDescription": {"text": "Commented-code block (8 lines) in migrations/0004-relocate-av-installs.mjs: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-a167e38b009e574d", "name": "Commented-code block (5 lines) in migrations/index.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in migrations/index.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75b63aedde0ac5a9", "name": "Commented-code block (6 lines) in migrations/0002-rename-group-to-workspace.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/0002-rename-group-to-workspace.mjs: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-806f0a6d2c9e4d08", "name": "Commented-code block (6 lines) in migrations/0003-conduct-md-symlink.mjs:4", "shortDescription": {"text": "Commented-code block (6 lines) in migrations/0003-conduct-md-symlink.mjs: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-6af931a1b46dd854", "name": "Commented-code block (5 lines) in debug/snap.mjs:12", "shortDescription": {"text": "Commented-code block (5 lines) in debug/snap.mjs:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e14157bccd1f6aa3", "name": "Commented-code block (5 lines) in debug/boot-orch.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in debug/boot-orch.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2294d5b4bb651df1", "name": "Commented-code block (8 lines) in src/settings.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/settings.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-5d86784d558e4720", "name": "Commented-code block (6 lines) in src/whisperModels.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/whisperModels.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-525368c9292ec787", "name": "Commented-code block (6 lines) in src/transcript.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in src/transcript.js:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a39901cc97acdb8c", "name": "Commented-code block (6 lines) in src/sessionEdit.js:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/sessionEdit.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e832092e677da3ec", "name": "Commented-code block (6 lines) in src/worktrees.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/worktrees.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-e270a1bfd24ed4a8", "name": "Commented-code block (6 lines) in src/routes.js:150", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes.js:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f24e34bb98502c4c", "name": "Commented-code block (5 lines) in src/projectsCache.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/projectsCache.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-5c658bdc0de6ea87", "name": "Commented-code block (6 lines) in src/tempCleanup.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/tempCleanup.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-d9103ad484cbde26", "name": "Commented-code block (6 lines) in src/ttsModels.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/ttsModels.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-2d6197a4edf4880d", "name": "Commented-code block (9 lines) in src/wsHub.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in src/wsHub.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-1ab55b7e97f6b93b", "name": "Commented-code block (5 lines) in src/conduct.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/conduct.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-fe640be48a68fed1", "name": "Commented-code block (6 lines) in src/hookBroker.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/hookBroker.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-74d1bb19c193ecdd", "name": "Commented-code block (14 lines) in src/restart.js:6", "shortDescription": {"text": "Commented-code block (14 lines) in src/restart.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad200ac076b2445f", "name": "Commented-code block (6 lines) in src/modelVersions.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/modelVersions.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-8eb21f199c858aaf", "name": "Commented-code block (5 lines) in src/rootClaudeMd.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/rootClaudeMd.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-f4512dc8e6b27092", "name": "Commented-code block (6 lines) in src/conductedSessions.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/conductedSessions.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-6ccf3e9e892c2cc7", "name": "Commented-code block (5 lines) in src/eventArchive.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/eventArchive.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-47ab1de5ed4e0e0d", "name": "Commented-code block (6 lines) in src/planApproval.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/planApproval.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-7607b493e6386553", "name": "Commented-code block (5 lines) in src/projects.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/projects.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31bf85430a5cced9", "name": "Commented-code block (5 lines) in src/appSettings.js:76", "shortDescription": {"text": "Commented-code block (5 lines) in src/appSettings.js:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-466ce9d3a2178b49", "name": "Commented-code block (8 lines) in src/instances.js:24", "shortDescription": {"text": "Commented-code block (8 lines) in src/instances.js:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a769dae2570d5b25", "name": "Commented-code block (16 lines) in src/parser.js:8", "shortDescription": {"text": "Commented-code block (16 lines) in src/parser.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c54a6a2f893ac38", "name": "Commented-code block (5 lines) in src/resumeManifest.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/resumeManifest.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-254a36cd7b4de13a", "name": "Commented-code block (12 lines) in src/resumeRestart.js:3", "shortDescription": {"text": "Commented-code block (12 lines) in src/resumeRestart.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-8cf6cd6b0231353a", "name": "Commented-code block (5 lines) in src/transcribe.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/transcribe.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36a1eaa8465da7eb", "name": "Commented-code block (8 lines) in src/tts.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/tts.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-5303eef093543c38", "name": "Commented-code block (7 lines) in src/mcp/content.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/mcp/content.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-9b9887e69827019c", "name": "Commented-code block (6 lines) in src/mcp/server.js:28", "shortDescription": {"text": "Commented-code block (6 lines) in src/mcp/server.js:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ff2f01358591aff", "name": "Commented-code block (12 lines) in src/mcp/handlers.js:189", "shortDescription": {"text": "Commented-code block (12 lines) in src/mcp/handlers.js:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-058722c47ce24c20", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:61)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:61)"}, "fullDescription": {"text": "`tests/server-restart.test.mjs:61` calls `GET http://127.0.0.1:${port}/api/projects` 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>/api/projects`\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-ad95dddebec120a8", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:108)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:108)"}, "fullDescription": {"text": "`tests/server-restart.test.mjs:108` calls `POST http://127.0.0.1:${port}/api/admin/restart` 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>/api/admin/restart`\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-7bf97dfcee49ee3f", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:135)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:135)"}, "fullDescription": {"text": "`tests/server-restart.test.mjs:135` calls `GET http://127.0.0.1:${port}/api/projects` 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>/api/projects`\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-b4107437c5b007a4", "name": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:207)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:207)"}, "fullDescription": {"text": "`tests/server-restart.test.mjs:207` calls `POST http://127.0.0.1:${port}/api/admin/restart` 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>/api/admin/restart`\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-a71d8397ece69d50", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:54)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:54)"}, "fullDescription": {"text": "`tests/eaddrinuse-retry.test.mjs:54` calls `GET http://127.0.0.1:${port}/api/projects` 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>/api/projects`\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-421fb7c57343882a", "name": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:130)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:130)"}, "fullDescription": {"text": "`tests/eaddrinuse-retry.test.mjs:130` calls `GET http://127.0.0.1:${port}/api/projects` 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>/api/projects`\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-9097fa20123b9786", "name": "Dangling fetch: GET /api/projects/.conduct/sessions (public/app.js:1488)", "shortDescription": {"text": "Dangling fetch: GET /api/projects/.conduct/sessions (public/app.js:1488)"}, "fullDescription": {"text": "`public/app.js:1488` calls `GET /api/projects/.conduct/sessions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/projects/.conduct/sessions`\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-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`server.js` declares `USE /api` 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-95e266019920938e", "name": "Unused endpoint: USE /mcp", "shortDescription": {"text": "Unused endpoint: USE /mcp"}, "fullDescription": {"text": "`server.js` declares `USE /mcp` 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-15c9c2b4bbfa99d7", "name": "Unused endpoint: GET /projects/:name/sessions", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/sessions"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/sessions` 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-f4f6c0512f51268e", "name": "Unused endpoint: GET /projects/:name/worktrees", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/worktrees"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/worktrees` 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-1a204f3ae19f317b", "name": "Unused endpoint: DELETE /projects/:name/sessions/:sid", "shortDescription": {"text": "Unused endpoint: DELETE /projects/:name/sessions/:sid"}, "fullDescription": {"text": "`src/routes.js` declares `DELETE /projects/:name/sessions/:sid` 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-7a9d3bce4918fa31", "name": "Unused endpoint: DELETE /projects/:name/worktrees/:wt/sessions/:sid", "shortDescription": {"text": "Unused endpoint: DELETE /projects/:name/worktrees/:wt/sessions/:sid"}, "fullDescription": {"text": "`src/routes.js` declares `DELETE /projects/:name/worktrees/:wt/sessions/:sid` 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-a916056641b33bb0", "name": "Unused endpoint: POST /projects/:name/sessions/:sid/archive", "shortDescription": {"text": "Unused endpoint: POST /projects/:name/sessions/:sid/archive"}, "fullDescription": {"text": "`src/routes.js` declares `POST /projects/:name/sessions/:sid/archive` 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-ca36ab0804e0868c", "name": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/archive", "shortDescription": {"text": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/archive"}, "fullDescription": {"text": "`src/routes.js` declares `POST /projects/:name/worktrees/:wt/sessions/:sid/archive` 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-58815361ed80f565", "name": "Unused endpoint: POST /projects/:name/sessions/:sid/restore", "shortDescription": {"text": "Unused endpoint: POST /projects/:name/sessions/:sid/restore"}, "fullDescription": {"text": "`src/routes.js` declares `POST /projects/:name/sessions/:sid/restore` 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-774fc33c821492e8", "name": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/restore", "shortDescription": {"text": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/restore"}, "fullDescription": {"text": "`src/routes.js` declares `POST /projects/:name/worktrees/:wt/sessions/:sid/restore` 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-1aa2c5a26552447f", "name": "Unused endpoint: GET /projects/:name/worktrees/:wt/sessions", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/worktrees/:wt/sessions"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/worktrees/:wt/sessions` 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-6d7c9bad5d426084", "name": "Unused endpoint: GET /projects/:name/worktrees/:wt/diff", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/worktrees/:wt/diff"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/worktrees/:wt/diff` 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-5cc9ee18613ad598", "name": "Unused endpoint: GET /projects/:name/commits/uncommitted/diff", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/commits/uncommitted/diff"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/commits/uncommitted/diff` 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-66a29ecb460b9649", "name": "Unused endpoint: GET /projects/:name/commits/:sha/diff", "shortDescription": {"text": "Unused endpoint: GET /projects/:name/commits/:sha/diff"}, "fullDescription": {"text": "`src/routes.js` declares `GET /projects/:name/commits/:sha/diff` 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-e8243fa08958b99a", "name": "Unused endpoint: GET /instances/:id/attachments/:filename", "shortDescription": {"text": "Unused endpoint: GET /instances/:id/attachments/:filename"}, "fullDescription": {"text": "`src/routes.js` declares `GET /instances/:id/attachments/:filename` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82ddc72cd5bd0550", "name": "Unused endpoint: POST /instances/:id/hook-callback", "shortDescription": {"text": "Unused endpoint: POST /instances/:id/hook-callback"}, "fullDescription": {"text": "`src/routes.js` declares `POST /instances/:id/hook-callback` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`src/mcp/server.js` declares `POST /` 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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/mcp/server.js` declares `GET /` 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/21898"}, "properties": {"repository": "UnmanagedCode/code-conductor", "repoUrl": "https://github.com/UnmanagedCode/code-conductor", "branch": "main"}, "results": [{"ruleId": "scanner-414a8ce4d97557c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server.js:121"}, "properties": {"repobilityId": "a9deebb5fdc93edc", "scanner": "scanner-primary", "fingerprint": "414a8ce4d97557c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6d44b4bdf1d4e7c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/settings.js:120"}, "properties": {"repobilityId": "27fe037464f3d178", "scanner": "scanner-primary", "fingerprint": "c6d44b4bdf1d4e7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/settings.js"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-2133e342022f8656", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/costs.js:35"}, "properties": {"repobilityId": "fca21ecf0280db09", "scanner": "scanner-primary", "fingerprint": "2133e342022f8656", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/costs.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-f73b40eaf29ce7c5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/review.js:57"}, "properties": {"repobilityId": "933fa1c45025a135", "scanner": "scanner-primary", "fingerprint": "f73b40eaf29ce7c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/review.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-9ba8b045a09dbae1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/sidebar.js:295"}, "properties": {"repobilityId": "fd38ba90d1c9568e", "scanner": "scanner-primary", "fingerprint": "9ba8b045a09dbae1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/sidebar.js"}, "region": {"startLine": 295}}}]}, {"ruleId": "scanner-38cef865baf47c09", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/app.js:728"}, "properties": {"repobilityId": "5192b9054ebe3f07", "scanner": "scanner-primary", "fingerprint": "38cef865baf47c09", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/app.js"}, "region": {"startLine": 728}}}]}, {"ruleId": "scanner-aa186d28ca80f9e2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/conversation.js:101"}, "properties": {"repobilityId": "e25622e6fdfe646f", "scanner": "scanner-primary", "fingerprint": "aa186d28ca80f9e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/conversation.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-524ebcbbb1bcfad4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/commits.js:298"}, "properties": {"repobilityId": "4d21db419484e066", "scanner": "scanner-primary", "fingerprint": "524ebcbbb1bcfad4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/commits.js"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-c8a5a88bf5fe617b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/worktrees.js:8"}, "properties": {"repobilityId": "f02538e24387225b", "scanner": "scanner-primary", "fingerprint": "c8a5a88bf5fe617b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/worktrees.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-aecb307165afe55f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/ttsInstall.js:11"}, "properties": {"repobilityId": "1d26d431ddd18f4c", "scanner": "scanner-primary", "fingerprint": "aecb307165afe55f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/ttsInstall.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-d96fcf0f4405677c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/restart.js:20"}, "properties": {"repobilityId": "3f295c9aa10127bc", "scanner": "scanner-primary", "fingerprint": "d96fcf0f4405677c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/restart.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-08980caa56e7ae7f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/whisperInstall.js:11"}, "properties": {"repobilityId": "50c7969e88e37a32", "scanner": "scanner-primary", "fingerprint": "08980caa56e7ae7f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/whisperInstall.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-35573c976ecb7afd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/instances.js:1"}, "properties": {"repobilityId": "5aed2f94c817092e", "scanner": "scanner-primary", "fingerprint": "35573c976ecb7afd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/instances.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0399a070e99edb15", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/health.js:7"}, "properties": {"repobilityId": "772f15fbb0a4dd74", "scanner": "scanner-primary", "fingerprint": "0399a070e99edb15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/health.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-af7f13c568605c5d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/transcribe.js:11"}, "properties": {"repobilityId": "82e917727c1a0b0d", "scanner": "scanner-primary", "fingerprint": "af7f13c568605c5d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/transcribe.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-d379cbb2edf8edae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/tts.js:15"}, "properties": {"repobilityId": "7f202ee75f92f6fe", "scanner": "scanner-primary", "fingerprint": "d379cbb2edf8edae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/tts.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-f4a3d0d5c5c19f38", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/mcp/handlers.js:7"}, "properties": {"repobilityId": "fd7d9b02524302f6", "scanner": "scanner-primary", "fingerprint": "f4a3d0d5c5c19f38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/mcp/handlers.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-097ae650723c6ed7", "level": "note", "message": {"text": "Very large file: tests/instances.test.mjs (1358 lines)"}, "properties": {"repobilityId": "614f4f01f798ae07", "scanner": "scanner-primary", "fingerprint": "097ae650723c6ed7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99697bda9f87e0e3", "level": "note", "message": {"text": "Very large file: tests/rendering.test.mjs (1490 lines)"}, "properties": {"repobilityId": "3894161c2e8cf1d3", "scanner": "scanner-primary", "fingerprint": "99697bda9f87e0e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0406ab17e5bbbea7", "level": "note", "message": {"text": "Very large file: tests/mcp.test.mjs (1034 lines)"}, "properties": {"repobilityId": "2d34a051d1175611", "scanner": "scanner-primary", "fingerprint": "0406ab17e5bbbea7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c99e7959e4f5a0bf", "level": "note", "message": {"text": "Very large file: public/app.js (2194 lines)"}, "properties": {"repobilityId": "ce805b07178bda03", "scanner": "scanner-primary", "fingerprint": "c99e7959e4f5a0bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc3cdfd991334a85", "level": "note", "message": {"text": "Very large file: src/instances.js (1572 lines)"}, "properties": {"repobilityId": "4efbc7713b5b2dc3", "scanner": "scanner-primary", "fingerprint": "bc3cdfd991334a85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f71c0a3998673eb", "level": "note", "message": {"text": "Very large file: src/mcp/handlers.js (1248 lines)"}, "properties": {"repobilityId": "d774bc9e431e4284", "scanner": "scanner-primary", "fingerprint": "7f71c0a3998673eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "156abfee1f2b7ed3", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "161cadb6df7e1cf3", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "fffb644040a7c00b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "073bc4ecf682a42b", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "f035eced12dcbb11", "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": "a2297cfd642e2440", "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": "bddea9f72c6f7cf9", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-7a96ccb8a107882d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server.js:42"}, "properties": {"repobilityId": "31f55a2bec70603a", "scanner": "scanner-primary", "fingerprint": "7a96ccb8a107882d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec74072ebc653d32", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/fake-piper-synth.mjs:1"}, "properties": {"repobilityId": "6c3e56106db79b10", "scanner": "scanner-primary", "fingerprint": "ec74072ebc653d32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b87cadd68402390", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/run.mjs:13"}, "properties": {"repobilityId": "20784bd669dfd776", "scanner": "scanner-primary", "fingerprint": "9b87cadd68402390", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c5b889c860df7c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/compact-window-spawn.test.mjs:1"}, "properties": {"repobilityId": "cd14b88e23f22bf7", "scanner": "scanner-primary", "fingerprint": "3c5b889c860df7c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-429ab2277f2487e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/mcp-subscribe-to-idle.test.mjs:3"}, "properties": {"repobilityId": "7f9d6f0a1bddc276", "scanner": "scanner-primary", "fingerprint": "429ab2277f2487e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c6255382c53428a", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/ws.test.mjs:243"}, "properties": {"repobilityId": "757a17aad4801c00", "scanner": "scanner-primary", "fingerprint": "7c6255382c53428a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-492672c54178d18c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/rewind.test.mjs:204"}, "properties": {"repobilityId": "016e2792a19fd965", "scanner": "scanner-primary", "fingerprint": "492672c54178d18c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41fc92536c613c9b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/resume-after-restart.test.mjs:375"}, "properties": {"repobilityId": "dfc14d1056033059", "scanner": "scanner-primary", "fingerprint": "41fc92536c613c9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97082a69bbb6c1cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/helpers.mjs:19"}, "properties": {"repobilityId": "d2d086856fca6645", "scanner": "scanner-primary", "fingerprint": "97082a69bbb6c1cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d04de28f359671f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/sidebar-conduct-row.test.mjs:1"}, "properties": {"repobilityId": "a81f085db12c3075", "scanner": "scanner-primary", "fingerprint": "d04de28f359671f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2982fa87411ff90", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/instances.test.mjs:276"}, "properties": {"repobilityId": "e938fe4e798d8836", "scanner": "scanner-primary", "fingerprint": "a2982fa87411ff90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-292d7973a76b9f5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/session-edit.test.mjs:241"}, "properties": {"repobilityId": "bfd36719782e0883", "scanner": "scanner-primary", "fingerprint": "292d7973a76b9f5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eadbfd5136982793", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/model-resume.test.mjs:1"}, "properties": {"repobilityId": "348c8a308c1731e0", "scanner": "scanner-primary", "fingerprint": "eadbfd5136982793", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ff383ba55f6d57d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/settings-toggle.test.mjs:184"}, "properties": {"repobilityId": "b92b06b617d8a8fb", "scanner": "scanner-primary", "fingerprint": "6ff383ba55f6d57d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cae14b91725358ac", "level": "note", "message": {"text": "Legacy-named symbol `mOld` in tests/lazy-load-rendering.test.mjs:36"}, "properties": {"repobilityId": "bc08c3514441e785", "scanner": "scanner-primary", "fingerprint": "cae14b91725358ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ec5d8a6541e63510", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/lazy-load-rendering.test.mjs:1"}, "properties": {"repobilityId": "a3d91daff59fc389", "scanner": "scanner-primary", "fingerprint": "ec5d8a6541e63510", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48f0b6d684521f97", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/mcp-contract.test.mjs:1"}, "properties": {"repobilityId": "6926f55069bd74bd", "scanner": "scanner-primary", "fingerprint": "48f0b6d684521f97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a94060dbf0e8d76", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/cost-tracking.test.mjs:3"}, "properties": {"repobilityId": "642fcece3255b6da", "scanner": "scanner-primary", "fingerprint": "6a94060dbf0e8d76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e44ac344fe71c4db", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/scroll-anchor.test.mjs:7"}, "properties": {"repobilityId": "1c045cc8f1b5f8b9", "scanner": "scanner-primary", "fingerprint": "e44ac344fe71c4db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c3005ae8d356dbe", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/rendering.test.mjs:1"}, "properties": {"repobilityId": "94af7611531011fc", "scanner": "scanner-primary", "fingerprint": "0c3005ae8d356dbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4dfaedef4ae8fbd", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/mcp-recent-disk.test.mjs:1"}, "properties": {"repobilityId": "1be1a95c8419e329", "scanner": "scanner-primary", "fingerprint": "f4dfaedef4ae8fbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7a98338c1b7c5bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/events-endpoint.test.mjs:1"}, "properties": {"repobilityId": "61867f6d22431bfc", "scanner": "scanner-primary", "fingerprint": "c7a98338c1b7c5bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9be7986d5392070d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/server-restart.test.mjs:3"}, "properties": {"repobilityId": "0890f45c2abbbd1c", "scanner": "scanner-primary", "fingerprint": "9be7986d5392070d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65710c9ae0f66e83", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/soft-interrupt-filter.test.mjs:1"}, "properties": {"repobilityId": "202b28ac5be2e316", "scanner": "scanner-primary", "fingerprint": "65710c9ae0f66e83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d588dbedc2d4467c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/temp-session-list-filter.test.mjs:12"}, "properties": {"repobilityId": "6d044b6bdc18fd2d", "scanner": "scanner-primary", "fingerprint": "d588dbedc2d4467c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76267f2c4c438740", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/attachments.test.mjs:1"}, "properties": {"repobilityId": "24853130fb773cb2", "scanner": "scanner-primary", "fingerprint": "76267f2c4c438740", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fec34aa67baac3f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/projects-cache.test.mjs:4"}, "properties": {"repobilityId": "13714c706e866342", "scanner": "scanner-primary", "fingerprint": "fec34aa67baac3f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aed50ca235da7ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/hook-callback.test.mjs:1"}, "properties": {"repobilityId": "01854fed44c2d7cd", "scanner": "scanner-primary", "fingerprint": "6aed50ca235da7ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7eeea7a3ef7c96d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/smoke.real.test.mjs:3"}, "properties": {"repobilityId": "91bb837a25a9154f", "scanner": "scanner-primary", "fingerprint": "7eeea7a3ef7c96d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb238130f1365f1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/parser.test.mjs:115"}, "properties": {"repobilityId": "96409879cb2df520", "scanner": "scanner-primary", "fingerprint": "eb238130f1365f1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa9a2edc1eb07f5e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/restart-temp-cleanup.test.mjs:17"}, "properties": {"repobilityId": "615c93cca3bd9fb7", "scanner": "scanner-primary", "fingerprint": "fa9a2edc1eb07f5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-625cf1e41ff9df7e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/mcp.test.mjs:243"}, "properties": {"repobilityId": "a0b8a843be3e7a84", "scanner": "scanner-primary", "fingerprint": "625cf1e41ff9df7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40522a4e94361132", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/models.js:1"}, "properties": {"repobilityId": "607af34e0b8a6e80", "scanner": "scanner-primary", "fingerprint": "40522a4e94361132", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2f83a6c03f81a34", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/blocks.js:150"}, "properties": {"repobilityId": "03e05d0ff2f033d5", "scanner": "scanner-primary", "fingerprint": "f2f83a6c03f81a34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30efb978f7c93255", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/usage.js:1"}, "properties": {"repobilityId": "241e13ffbdb5b296", "scanner": "scanner-primary", "fingerprint": "30efb978f7c93255", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91a5181c694b8fb7", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/review.js:1"}, "properties": {"repobilityId": "a224b936b32482ff", "scanner": "scanner-primary", "fingerprint": "91a5181c694b8fb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07e4a6bcef783b6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/sw.js:1"}, "properties": {"repobilityId": "cdf86ddfbbf4ba1a", "scanner": "scanner-primary", "fingerprint": "07e4a6bcef783b6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b9401bcc9f746a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/sidebar.js:21"}, "properties": {"repobilityId": "3b01431928ac097a", "scanner": "scanner-primary", "fingerprint": "3b9401bcc9f746a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-709412b4e9c9db9d", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/notifications.js:32"}, "properties": {"repobilityId": "47b5bac44eb4890f", "scanner": "scanner-primary", "fingerprint": "709412b4e9c9db9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8c840cc8b88cdea", "level": "none", "message": {"text": "Commented-code block (9 lines) in public/lazyHistory.js:1"}, "properties": {"repobilityId": "311d0e49161f5d4a", "scanner": "scanner-primary", "fingerprint": "f8c840cc8b88cdea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-473aceabef3df4e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/anchor.js:38"}, "properties": {"repobilityId": "ad4189d0778567c3", "scanner": "scanner-primary", "fingerprint": "473aceabef3df4e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc115a392bf08ca5", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/app.js:177"}, "properties": {"repobilityId": "049f539d4c938493", "scanner": "scanner-primary", "fingerprint": "cc115a392bf08ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d64f5b74b885dada", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/app.js:1285"}, "properties": {"repobilityId": "7639c9f334dce626", "scanner": "scanner-primary", "fingerprint": "d64f5b74b885dada", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed9e894c02bf0be8", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/composer.js:31"}, "properties": {"repobilityId": "b0b71c4541192f46", "scanner": "scanner-primary", "fingerprint": "ed9e894c02bf0be8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc85360df90ceb15", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/conversation.js:47"}, "properties": {"repobilityId": "32af6acf20630c98", "scanner": "scanner-primary", "fingerprint": "bc85360df90ceb15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7222615aa10ea92a", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/external-links.js:3"}, "properties": {"repobilityId": "3ce6d938f80addc3", "scanner": "scanner-primary", "fingerprint": "7222615aa10ea92a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee88f0edc0d8d37d", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/tasks.js:1"}, "properties": {"repobilityId": "fc384dcc0c3a86e1", "scanner": "scanner-primary", "fingerprint": "ee88f0edc0d8d37d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91d8a601bf44bc06", "level": "none", "message": {"text": "Commented-code block (11 lines) in public/markdown.js:9"}, "properties": {"repobilityId": "1fd0e1b5e0424d0c", "scanner": "scanner-primary", "fingerprint": "91d8a601bf44bc06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9a325c44e01c6a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/tts.js:4"}, "properties": {"repobilityId": "1e1bb8a0bff00a03", "scanner": "scanner-primary", "fingerprint": "d9a325c44e01c6a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d937fd7b3cedc80", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/commits.js:1"}, "properties": {"repobilityId": "2cb04c4834ce19d3", "scanner": "scanner-primary", "fingerprint": "0d937fd7b3cedc80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db696719902c3caa", "level": "none", "message": {"text": "Commented-code block (7 lines) in migrations/0005-rename-conducted-marker.mjs:4"}, "properties": {"repobilityId": "eee157954e260be9", "scanner": "scanner-primary", "fingerprint": "db696719902c3caa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b163e21e13533eb", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/0006-init-cost-tracking.mjs:3"}, "properties": {"repobilityId": "e3fcc8a568ae3cad", "scanner": "scanner-primary", "fingerprint": "9b163e21e13533eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a159f3d470b7cf74", "level": "none", "message": {"text": "Commented-code block (8 lines) in migrations/0004-relocate-av-installs.mjs:5"}, "properties": {"repobilityId": "c0e29f81fbb8b957", "scanner": "scanner-primary", "fingerprint": "a159f3d470b7cf74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a167e38b009e574d", "level": "none", "message": {"text": "Commented-code block (5 lines) in migrations/index.mjs:1"}, "properties": {"repobilityId": "fd9fa15e98e8350a", "scanner": "scanner-primary", "fingerprint": "a167e38b009e574d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75b63aedde0ac5a9", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/0002-rename-group-to-workspace.mjs:4"}, "properties": {"repobilityId": "9153c21641f11f98", "scanner": "scanner-primary", "fingerprint": "75b63aedde0ac5a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-806f0a6d2c9e4d08", "level": "none", "message": {"text": "Commented-code block (6 lines) in migrations/0003-conduct-md-symlink.mjs:4"}, "properties": {"repobilityId": "6b3adf4575c77611", "scanner": "scanner-primary", "fingerprint": "806f0a6d2c9e4d08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6af931a1b46dd854", "level": "none", "message": {"text": "Commented-code block (5 lines) in debug/snap.mjs:12"}, "properties": {"repobilityId": "2cf6b586a165213f", "scanner": "scanner-primary", "fingerprint": "6af931a1b46dd854", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e14157bccd1f6aa3", "level": "none", "message": {"text": "Commented-code block (5 lines) in debug/boot-orch.mjs:1"}, "properties": {"repobilityId": "9eaba4444b2ed610", "scanner": "scanner-primary", "fingerprint": "e14157bccd1f6aa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2294d5b4bb651df1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/settings.js:4"}, "properties": {"repobilityId": "79504991ee8494c0", "scanner": "scanner-primary", "fingerprint": "2294d5b4bb651df1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d86784d558e4720", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/whisperModels.js:1"}, "properties": {"repobilityId": "82ca1ad34296ea67", "scanner": "scanner-primary", "fingerprint": "5d86784d558e4720", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-525368c9292ec787", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/transcript.js:16"}, "properties": {"repobilityId": "b75e285278ae24b3", "scanner": "scanner-primary", "fingerprint": "525368c9292ec787", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a39901cc97acdb8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sessionEdit.js:10"}, "properties": {"repobilityId": "6dce69c8296150df", "scanner": "scanner-primary", "fingerprint": "a39901cc97acdb8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e832092e677da3ec", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/worktrees.js:1"}, "properties": {"repobilityId": "4fa7a8323fa08666", "scanner": "scanner-primary", "fingerprint": "e832092e677da3ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e270a1bfd24ed4a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes.js:150"}, "properties": {"repobilityId": "38a924333a984516", "scanner": "scanner-primary", "fingerprint": "e270a1bfd24ed4a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f24e34bb98502c4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/projectsCache.js:3"}, "properties": {"repobilityId": "5069b0e1c3a13215", "scanner": "scanner-primary", "fingerprint": "f24e34bb98502c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c658bdc0de6ea87", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/tempCleanup.js:3"}, "properties": {"repobilityId": "a00712f96db83aea", "scanner": "scanner-primary", "fingerprint": "5c658bdc0de6ea87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9103ad484cbde26", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/ttsModels.js:1"}, "properties": {"repobilityId": "38c7dde6c971e3ef", "scanner": "scanner-primary", "fingerprint": "d9103ad484cbde26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d6197a4edf4880d", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/wsHub.js:3"}, "properties": {"repobilityId": "ec3d78f067ab7285", "scanner": "scanner-primary", "fingerprint": "2d6197a4edf4880d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ab55b7e97f6b93b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/conduct.js:1"}, "properties": {"repobilityId": "ae1d93061fae6ce7", "scanner": "scanner-primary", "fingerprint": "1ab55b7e97f6b93b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe640be48a68fed1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/hookBroker.js:1"}, "properties": {"repobilityId": "7842423336f6255c", "scanner": "scanner-primary", "fingerprint": "fe640be48a68fed1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74d1bb19c193ecdd", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/restart.js:6"}, "properties": {"repobilityId": "1e019f9ede49652e", "scanner": "scanner-primary", "fingerprint": "74d1bb19c193ecdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad200ac076b2445f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/modelVersions.js:1"}, "properties": {"repobilityId": "77d7b8befb8de566", "scanner": "scanner-primary", "fingerprint": "ad200ac076b2445f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eb21f199c858aaf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/rootClaudeMd.js:1"}, "properties": {"repobilityId": "49cc703635022e8c", "scanner": "scanner-primary", "fingerprint": "8eb21f199c858aaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4512dc8e6b27092", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/conductedSessions.js:1"}, "properties": {"repobilityId": "04513452325dee5e", "scanner": "scanner-primary", "fingerprint": "f4512dc8e6b27092", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ccf3e9e892c2cc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/eventArchive.js:1"}, "properties": {"repobilityId": "54348b0b81e3df6e", "scanner": "scanner-primary", "fingerprint": "6ccf3e9e892c2cc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47ab1de5ed4e0e0d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/planApproval.js:1"}, "properties": {"repobilityId": "a65613160b36a32d", "scanner": "scanner-primary", "fingerprint": "47ab1de5ed4e0e0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7607b493e6386553", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/projects.js:10"}, "properties": {"repobilityId": "f3cff5aedfcfcc23", "scanner": "scanner-primary", "fingerprint": "7607b493e6386553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31bf85430a5cced9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/appSettings.js:76"}, "properties": {"repobilityId": "cf9842748cb9c3f2", "scanner": "scanner-primary", "fingerprint": "31bf85430a5cced9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-466ce9d3a2178b49", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/instances.js:24"}, "properties": {"repobilityId": "b9b2addfaf027d1c", "scanner": "scanner-primary", "fingerprint": "466ce9d3a2178b49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a769dae2570d5b25", "level": "none", "message": {"text": "Commented-code block (16 lines) in src/parser.js:8"}, "properties": {"repobilityId": "c38617cb9ddbd98e", "scanner": "scanner-primary", "fingerprint": "a769dae2570d5b25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c54a6a2f893ac38", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/resumeManifest.js:3"}, "properties": {"repobilityId": "9d6c74e49b0771f8", "scanner": "scanner-primary", "fingerprint": "6c54a6a2f893ac38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-254a36cd7b4de13a", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/resumeRestart.js:3"}, "properties": {"repobilityId": "58a27fe95389cad7", "scanner": "scanner-primary", "fingerprint": "254a36cd7b4de13a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cf6cd6b0231353a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/transcribe.js:20"}, "properties": {"repobilityId": "5da48069df51d40a", "scanner": "scanner-primary", "fingerprint": "8cf6cd6b0231353a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36a1eaa8465da7eb", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/tts.js:1"}, "properties": {"repobilityId": "1fbdebe29806d0cf", "scanner": "scanner-primary", "fingerprint": "36a1eaa8465da7eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5303eef093543c38", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/mcp/content.js:1"}, "properties": {"repobilityId": "4b2a844de1a113e8", "scanner": "scanner-primary", "fingerprint": "5303eef093543c38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b9887e69827019c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/mcp/server.js:28"}, "properties": {"repobilityId": "e3a8a26d999f702d", "scanner": "scanner-primary", "fingerprint": "9b9887e69827019c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ff2f01358591aff", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/mcp/handlers.js:189"}, "properties": {"repobilityId": "4de7f6c4c018942d", "scanner": "scanner-primary", "fingerprint": "9ff2f01358591aff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-058722c47ce24c20", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:61)"}, "properties": {"repobilityId": "55d25c9c1a58a85e", "scanner": "scanner-primary", "fingerprint": "058722c47ce24c20", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ad95dddebec120a8", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:108)"}, "properties": {"repobilityId": "2dfeae3f9d6c9fff", "scanner": "scanner-primary", "fingerprint": "ad95dddebec120a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7bf97dfcee49ee3f", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/server-restart.test.mjs:135)"}, "properties": {"repobilityId": "1fadaff91bebe366", "scanner": "scanner-primary", "fingerprint": "7bf97dfcee49ee3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4107437c5b007a4", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${port}/api/admin/restart (tests/server-restart.test.mjs:207)"}, "properties": {"repobilityId": "49655415757b8400", "scanner": "scanner-primary", "fingerprint": "b4107437c5b007a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a71d8397ece69d50", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:54)"}, "properties": {"repobilityId": "e9506f12688df273", "scanner": "scanner-primary", "fingerprint": "a71d8397ece69d50", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-421fb7c57343882a", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/api/projects (tests/eaddrinuse-retry.test.mjs:130)"}, "properties": {"repobilityId": "b64c9937ff90abf8", "scanner": "scanner-primary", "fingerprint": "421fb7c57343882a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9097fa20123b9786", "level": "error", "message": {"text": "Dangling fetch: GET /api/projects/.conduct/sessions (public/app.js:1488)"}, "properties": {"repobilityId": "1993b57ef72af0e4", "scanner": "scanner-primary", "fingerprint": "9097fa20123b9786", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "a3eddf5065ffbf6c", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-95e266019920938e", "level": "note", "message": {"text": "Unused endpoint: USE /mcp"}, "properties": {"repobilityId": "c1a02c7258440ac3", "scanner": "scanner-primary", "fingerprint": "95e266019920938e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15c9c2b4bbfa99d7", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/sessions"}, "properties": {"repobilityId": "3a834a2fc1169488", "scanner": "scanner-primary", "fingerprint": "15c9c2b4bbfa99d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f4f6c0512f51268e", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/worktrees"}, "properties": {"repobilityId": "0d5026a1882748b0", "scanner": "scanner-primary", "fingerprint": "f4f6c0512f51268e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a204f3ae19f317b", "level": "note", "message": {"text": "Unused endpoint: DELETE /projects/:name/sessions/:sid"}, "properties": {"repobilityId": "816a2b2d92606e0c", "scanner": "scanner-primary", "fingerprint": "1a204f3ae19f317b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a9d3bce4918fa31", "level": "note", "message": {"text": "Unused endpoint: DELETE /projects/:name/worktrees/:wt/sessions/:sid"}, "properties": {"repobilityId": "339a2ae698a6eb02", "scanner": "scanner-primary", "fingerprint": "7a9d3bce4918fa31", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a916056641b33bb0", "level": "note", "message": {"text": "Unused endpoint: POST /projects/:name/sessions/:sid/archive"}, "properties": {"repobilityId": "5a3bbb28626db2d3", "scanner": "scanner-primary", "fingerprint": "a916056641b33bb0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca36ab0804e0868c", "level": "note", "message": {"text": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/archive"}, "properties": {"repobilityId": "ebfa824d102048e4", "scanner": "scanner-primary", "fingerprint": "ca36ab0804e0868c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-58815361ed80f565", "level": "note", "message": {"text": "Unused endpoint: POST /projects/:name/sessions/:sid/restore"}, "properties": {"repobilityId": "75907ad2396e1941", "scanner": "scanner-primary", "fingerprint": "58815361ed80f565", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-774fc33c821492e8", "level": "note", "message": {"text": "Unused endpoint: POST /projects/:name/worktrees/:wt/sessions/:sid/restore"}, "properties": {"repobilityId": "4e50893b145e0efd", "scanner": "scanner-primary", "fingerprint": "774fc33c821492e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1aa2c5a26552447f", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/worktrees/:wt/sessions"}, "properties": {"repobilityId": "18822a11205f8366", "scanner": "scanner-primary", "fingerprint": "1aa2c5a26552447f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d7c9bad5d426084", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/worktrees/:wt/diff"}, "properties": {"repobilityId": "c34a5c548c9b6852", "scanner": "scanner-primary", "fingerprint": "6d7c9bad5d426084", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5cc9ee18613ad598", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/commits/uncommitted/diff"}, "properties": {"repobilityId": "113fc8efa0d3da7d", "scanner": "scanner-primary", "fingerprint": "5cc9ee18613ad598", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-66a29ecb460b9649", "level": "note", "message": {"text": "Unused endpoint: GET /projects/:name/commits/:sha/diff"}, "properties": {"repobilityId": "56a480e4f4eb1e33", "scanner": "scanner-primary", "fingerprint": "66a29ecb460b9649", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8243fa08958b99a", "level": "note", "message": {"text": "Unused endpoint: GET /instances/:id/attachments/:filename"}, "properties": {"repobilityId": "4061b9f676a726b5", "scanner": "scanner-primary", "fingerprint": "e8243fa08958b99a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-82ddc72cd5bd0550", "level": "note", "message": {"text": "Unused endpoint: POST /instances/:id/hook-callback"}, "properties": {"repobilityId": "6c11ee6bcc3f30f1", "scanner": "scanner-primary", "fingerprint": "82ddc72cd5bd0550", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "01fe88b6c97213bf", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "971284cfa89e53c2", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}