{"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-29a560511dfd7e59", "name": "Possibly dead Python function: make_agent_with_mcp_discovery", "shortDescription": {"text": "Possibly dead Python function: make_agent_with_mcp_discovery"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af1a8351c1544143", "name": "Possibly dead Python function: prompt_submit_tee_transport", "shortDescription": {"text": "Possibly dead Python function: prompt_submit_tee_transport"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-389c952fd209c158", "name": "Possibly dead Python function: render_visible_notice", "shortDescription": {"text": "Possibly dead Python function: render_visible_notice"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ed09a61c8bbfebe4", "name": "Possibly dead Python function: bind_visible_transport", "shortDescription": {"text": "Possibly dead Python function: bind_visible_transport"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d889d30630277604", "name": "Possibly dead Python function: launch_tui_with_active_file", "shortDescription": {"text": "Possibly dead Python function: launch_tui_with_active_file"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-791bdf5db135f822", "name": "Possibly dead Python function: mkstemp_for_wrapper_file", "shortDescription": {"text": "Possibly dead Python function: mkstemp_for_wrapper_file"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-efd8ce5a9bf376be", "name": "Possibly dead Python function: preserve_wrapper_file", "shortDescription": {"text": "Possibly dead Python function: preserve_wrapper_file"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb290b0a76a9934f", "name": "Possibly dead Python function: patch_codex_runtime", "shortDescription": {"text": "Possibly dead Python function: patch_codex_runtime"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f77723fa93eb775", "name": "Possibly dead Python function: transform_stream", "shortDescription": {"text": "Possibly dead Python function: transform_stream"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-44f6c030fc5d7074", "name": "Possibly dead Python function: transform_fallback", "shortDescription": {"text": "Possibly dead Python function: transform_fallback"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b5daea246cff9e25", "name": "Possibly dead Python function: service_info", "shortDescription": {"text": "Possibly dead Python function: service_info"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dcfeed677380b924", "name": "Possibly dead Python function: gpu_status", "shortDescription": {"text": "Possibly dead Python function: gpu_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4af0ff0b2f98729b", "name": "Possibly dead Python function: active_count", "shortDescription": {"text": "Possibly dead Python function: active_count"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-26e78968d613f795", "name": "Possibly dead Python function: resolve_url", "shortDescription": {"text": "Possibly dead Python function: resolve_url"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e409c3eaf100ad1", "name": "TODO/FIXME marker in shipping code \u2014 integrations/openclaw/index.ts:106", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 integrations/openclaw/index.ts:106"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ec71e2a6c1c166c", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/notify-check.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/notify-check.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e64493eaa7ebd562", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/tokenize-command-string.test.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/tokenize-command-string.test.js:73"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5034fd1a7a61974", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-url-fallback.test.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-url-fallback.test.js:22"}, "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-34ca3fdbfb9cf801", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-runtime.test.js:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-runtime.test.js:100"}, "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-d65bb7b83e454860", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-child-env.test.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-child-env.test.js:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4aa73317e8288256", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-survives-restart.test.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-survives-restart.test.js:42"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28b1acedc75eb0b1", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-claude-permissions.test.js:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-claude-permissions.test.js:78"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e0547528dec5183d", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-config.test.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-config.test.js:72"}, "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-4b6306e1d3174371", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-register-guard.test.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-register-guard.test.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-192b1fa403b94749", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/transcript-activity.test.js:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/transcript-activity.test.js:96"}, "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-80d6211a8ae7dddb", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-feedback-loop.test.js:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-feedback-loop.test.js:101"}, "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-d1ad68811bd83470", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/cwd-normalization.test.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/cwd-normalization.test.js:60"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e2b12d486718ce0", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-message-prompts.test.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-message-prompts.test.js:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83c9682b31fd0ab4", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-hermes-turn-detector.test.js:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-hermes-turn-detector.test.js:204"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4dffe48642e3a1a7", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:53"}, "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-98b1a5690332d344", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-native-capabilities.test.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-native-capabilities.test.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e487109a7bd7682", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-boot-reap.test.js:256", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-boot-reap.test.js:256"}, "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-0a66c5984d1054aa", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/opencode-permissions.test.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/opencode-permissions.test.js:30"}, "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-e9a71f5abf0a0859", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/binding-file.test.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/binding-file.test.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b163987913f0995", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-permissions.test.js:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-permissions.test.js:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-930dd73eb236cb7f", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/executable-resolution.test.js:115", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/executable-resolution.test.js:115"}, "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-9b84f2b7d45c40f5", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-kill-by-pid.test.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-kill-by-pid.test.js:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36f83c0eaac6ee52", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-spinner.test.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-spinner.test.js:77"}, "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-021f65828fd3dd4a", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-marker-sync.test.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-marker-sync.test.js:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-26b0d05863e76f26", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-live-thread-discovery.test.js:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-live-thread-discovery.test.js:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a8cd3fa1ec81233", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-execution.test.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-execution.test.js:70"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-905610bdfb8c028e", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-transcript-tail.test.js:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-transcript-tail.test.js:152"}, "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-50833004a42dd058", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-state.test.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-state.test.js:45"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d8fa431becac421", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-print-disabled.test.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-print-disabled.test.js:39"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cb870b424fe9846", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-tools.test.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-tools.test.js:86"}, "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-945d7641b4211285", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-end-detector.test.js:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-end-detector.test.js:145"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0942f659775876f3", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-control.test.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-control.test.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c91353991474d9e0", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-env.test.js:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-env.test.js:123"}, "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-6d2ad7b85040f800", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-busy.test.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-busy.test.js:47"}, "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-68b98044efc71f09", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-acp-protocol.test.js:199", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-acp-protocol.test.js:199"}, "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-cd8cbe9a94c4d53c", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/session-fixes.test.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/session-fixes.test.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3d35c278a277482", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-clean-exit-lost.test.js:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-clean-exit-lost.test.js:113"}, "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-e15e21acedc307b6", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:151"}, "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-472eb9f5f1ed0986", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-stop-triad-teardown.test.js:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-stop-triad-teardown.test.js:135"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-adf8d38479a15322", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-parent-guard.test.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-parent-guard.test.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-ebbb3052c885c5d6", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-session-in-use.test.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-session-in-use.test.js:61"}, "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-ec53baf42e4712d7", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/native-managed-sync.test.js:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/native-managed-sync.test.js:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17f8b10d35437ed7", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-claude.test.js:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-claude.test.js:111"}, "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-879291fdf493f12f", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-class.test.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-class.test.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-062bcadd9a0d6615", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-pty-kill.test.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-pty-kill.test.js:16"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05675159202405dd", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/wrapper-pool.test.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/wrapper-pool.test.js:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca2e24b6c8ca3b84", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-gateway-shutdown-all.test.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-gateway-shutdown-all.test.js:10"}, "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-55076f1a21ac7cc5", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-shutdown-all.test.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-shutdown-all.test.js:10"}, "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-3a584a110f7a333b", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-durable-marker.test.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-durable-marker.test.js:58"}, "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-6d3c8d375dcc945b", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-cwd-transform.test.js:113", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-cwd-transform.test.js:113"}, "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-89b80d8c7c1e89c5", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-runtime.test.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-runtime.test.js:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a3fd18f09a39429", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/msys-pid-bug.test.js:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/msys-pid-bug.test.js:76"}, "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-0253b353da0633fa", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-session-acp.test.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-session-acp.test.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b27f37e8a9b08f69", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/compact-mode-contract.test.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/compact-mode-contract.test.js:22"}, "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-6abb168d1bf44a05", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-prompts.test.js:165", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-prompts.test.js:165"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-215d6cbce8a906d2", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-working-pulse.test.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-working-pulse.test.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3b1895313e1748d", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-marker-binding.test.js:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-marker-binding.test.js:47"}, "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-5664c527038ca288", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/environment-runtimes.test.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/environment-runtimes.test.js:30"}, "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-43fdd08f24fdc3a2", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/comms-contracts-defaults.test.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/comms-contracts-defaults.test.js:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f2238eff56aa36b", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-thread-import.test.js:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-thread-import.test.js:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e703daa6963fc7a1", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-survivors.test.js:262", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-survivors.test.js:262"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77cc9a0ff2bd165e", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-session-terminal.test.js:208", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-session-terminal.test.js:208"}, "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-527aec2e0634a330", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-runtime-fatal-log.test.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-runtime-fatal-log.test.js:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-113b7fb877f50527", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/process-tree.test.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/process-tree.test.js:28"}, "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-38b202b6ef78487b", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-resume-failure.test.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-resume-failure.test.js:102"}, "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-a8cf07acb2cd27e4", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-state.test.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-state.test.js:41"}, "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-db56fecd9f9d3bd2", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-register-fresh-handle.test.js:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-register-fresh-handle.test.js:49"}, "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-c5cb886843ac0bdc", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-terminal-input.test.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-terminal-input.test.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-b757423d4686c84c", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-shutdown-all.test.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-shutdown-all.test.js:13"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41bd440c01ab57ec", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-shutdown-teardown.test.js:76", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-shutdown-teardown.test.js:76"}, "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-7513cb8937d19ed9", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-session.test.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-session.test.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e10bfb78e15dd6c9", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/rpc-child-bridge-disabled.test.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/rpc-child-bridge-disabled.test.js:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32af43e09808eab9", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-auto-answer.test.js:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-auto-answer.test.js:72"}, "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-dd76ce340d6f9bea", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime.test.js:242", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime.test.js:242"}, "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-32c20111a2762fa4", "name": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-wrapper-stdin.test.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-wrapper-stdin.test.js:51"}, "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-4af875dc4eeba202", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de3c1f217d72a063", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2f1cddf8cbe14d3", "name": "Dockerfile pipes a remote installer into a shell", "shortDescription": {"text": "Dockerfile pipes a remote installer into a shell"}, "fullDescription": {"text": "Executing downloaded code during image build gives the remote endpoint build-time code execution. Prefer pinned packages or verify downloaded installers by checksum/signature."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be9d8027c6f6d1b0", "name": "Insecure pattern 'exec_used' in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:356", "shortDescription": {"text": "Insecure pattern 'exec_used' in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:356"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f892bd82b49f6234", "name": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-host.js:37", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-host.js:37"}, "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-947985a6af65eba5", "name": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-survivors.js:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-survivors.js:29"}, "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-8d3b184983352eef", "name": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-daemon.js:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-daemon.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1320024467accfdf", "name": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-claude.js:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-claude.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f77c8b716b7d210a", "name": "Insecure pattern 'node_child_process' in mcp/stdio/runtimes.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/runtimes.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-b0e778c90479c857", "name": "Insecure pattern 'node_child_process' in mcp/stdio/server.js:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/server.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a3a908e69d72d6f", "name": "Insecure pattern 'node_child_process' in mcp/stdio/terminal-runtime.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/terminal-runtime.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-a351d326cade734c", "name": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-gateway-session.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-gateway-session.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-0beef922fc02700a", "name": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-session.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-session.js:12"}, "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-7c5dd94077ca9489", "name": "Insecure pattern 'direct_innerhtml_assignment' in service/dashboard.html:2266", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in service/dashboard.html:2266"}, "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-ebeea5d3d6dca42c", "name": "Insecure pattern 'local_storage_auth_token' in service/dashboard.html:5392", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in service/dashboard.html:5392"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d73b60e383183ac3", "name": "Insecure pattern 'new_function_used' in service/new_dashboard/app.test.mjs:25", "shortDescription": {"text": "Insecure pattern 'new_function_used' in service/new_dashboard/app.test.mjs:25"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-607cdda395be9691", "name": "Insecure pattern 'direct_innerhtml_assignment' in service/new_dashboard/app.js:399", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in service/new_dashboard/app.js:399"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-2ac4e73f0791e558", "name": "Very large file: install.sh (3958 lines)", "shortDescription": {"text": "Very large file: install.sh (3958 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-49f2983fa0f7e38a", "name": "Very large file: mcp/stdio/hermes-managed-host.js (2667 lines)", "shortDescription": {"text": "Very large file: mcp/stdio/hermes-managed-host.js (2667 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-1db854a7e238cd8a", "name": "Very large file: mcp/stdio/runtimes.js (2173 lines)", "shortDescription": {"text": "Very large file: mcp/stdio/runtimes.js (2173 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-39a0a52f4766ae09", "name": "Very large file: mcp/stdio/server.js (5732 lines)", "shortDescription": {"text": "Very large file: mcp/stdio/server.js (5732 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-fab99c011645a6b7", "name": "Very large file: mcp/stdio/tests/hermes-managed-host.test.js (2732 lines)", "shortDescription": {"text": "Very large file: mcp/stdio/tests/hermes-managed-host.test.js (2732 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-130389cf00876a18", "name": "Very large file: service/new_dashboard/app.js (2209 lines)", "shortDescription": {"text": "Very large file: service/new_dashboard/app.js (2209 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-b312cd48691f7b2c", "name": "Very large file: service/tests/test_api_v2_regressions.py (14616 lines)", "shortDescription": {"text": "Very large file: service/tests/test_api_v2_regressions.py (14616 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-0ecbad2f5ba7852c", "name": "Very large file: service/routers/api_v2.py (20369 lines)", "shortDescription": {"text": "Very large file: service/routers/api_v2.py (20369 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-ae79ec4886d9ec02", "name": "Node manifest has dependencies but no lockfile: mcp/stdio/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: mcp/stdio/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 16 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 33 placeholder/mock markers across 9 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, lockfile. 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": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81df1d18a3ae686f", "name": "Agent authority lacks a verifier contract: config/workspace/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: config/workspace/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a90288ea30acf4df", "name": "Commented-code block (9 lines) in integrations/openclaw/index.ts:109", "shortDescription": {"text": "Commented-code block (9 lines) in integrations/openclaw/index.ts:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0c135886dfd8877", "name": "`fetch()` without try/.catch or AbortSignal \u2014 integrations/openclaw/index.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 integrations/openclaw/index.ts:47"}, "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-59bc852c56d0f0b8", "name": "Commented-code block (9 lines) in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:55", "shortDescription": {"text": "Commented-code block (9 lines) in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-054b48ea30161da3", "name": "Commented-code block (7 lines) in mcp/sse_server.py:423", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/sse_server.py:423"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccf67a0f2f0a0379", "name": "Commented-code block (20 lines) in mcp/stdio/hermes-managed-host.js:4", "shortDescription": {"text": "Commented-code block (20 lines) in mcp/stdio/hermes-managed-host.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-ce00d01f8937815d", "name": "Commented-code block (7 lines) in mcp/stdio/hermes-loop-ready.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/hermes-loop-ready.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-3a152e6fdd436f13", "name": "Commented-code block (6 lines) in mcp/stdio/reap-managed-survivors.js:6", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/reap-managed-survivors.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-8a7ed17c54345e76", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-channel.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-channel.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e5a039cbc42a891", "name": "Commented-code block (16 lines) in mcp/stdio/claude-turn-end-detector.js:5", "shortDescription": {"text": "Commented-code block (16 lines) in mcp/stdio/claude-turn-end-detector.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f06f066b2d939490", "name": "Legacy-named symbol `api_v2` in mcp/stdio/dispatch-execution.js:3", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/dispatch-execution.js:3"}, "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-4ff0033b138f2d60", "name": "Commented-code block (9 lines) in mcp/stdio/dispatch-execution.js:2", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/dispatch-execution.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15598b3db6d93a58", "name": "Commented-code block (5 lines) in mcp/stdio/turn-busy-heartbeat.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/turn-busy-heartbeat.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-f9c7304964b22b1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/turn-busy-heartbeat.js:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/turn-busy-heartbeat.js:58"}, "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-0610cd786f14f091", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-daemon.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-daemon.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e3cc361edb05aa2", "name": "Commented-code block (8 lines) in mcp/stdio/claude-session-store.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/claude-session-store.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-115f61556de739ab", "name": "Commented-code block (6 lines) in mcp/stdio/register-helpers.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/register-helpers.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab9684fbc5eef7b4", "name": "Commented-code block (6 lines) in mcp/stdio/codex-errors.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/codex-errors.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aedd21dbd710c033", "name": "Commented-code block (5 lines) in mcp/stdio/claude-console-prompts.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/claude-console-prompts.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-e8dcd97da9064bf1", "name": "Commented-code block (9 lines) in mcp/stdio/hermes-acp-protocol.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/hermes-acp-protocol.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-bb36a5977e120a5e", "name": "Commented-code block (8 lines) in mcp/stdio/hermes-gateway-liveness.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/hermes-gateway-liveness.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-2a93b63b1d7c263c", "name": "Commented-code block (7 lines) in mcp/stdio/claude-session-hook.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/claude-session-hook.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5bec4b79d6de4d4", "name": "Commented-code block (6 lines) in mcp/stdio/reap-managed-claude.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/reap-managed-claude.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-79ad7ec7dbd3db95", "name": "Commented-code block (5 lines) in mcp/stdio/turn-end-detector.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/turn-end-detector.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b524431575defd0e", "name": "Commented-code block (5 lines) in mcp/stdio/codex-session.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/codex-session.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-6bd48ed564bf3645", "name": "Commented-code block (5 lines) in mcp/stdio/notify-check.js:84", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/notify-check.js:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f65ae0f38e59ef24", "name": "Commented-code block (7 lines) in mcp/stdio/terminal-control.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/terminal-control.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-39d84cda696213a5", "name": "Commented-code block (5 lines) in mcp/stdio/hermes-apiserver-client.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/hermes-apiserver-client.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-b0680cd1ee333264", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-endpoint.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-endpoint.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-35d360cc83fc7229", "name": "Commented-code block (9 lines) in mcp/stdio/runtimes.js:56", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/runtimes.js:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f74c7ce67d34f94", "name": "Commented-code block (8 lines) in mcp/stdio/transcript-activity.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/transcript-activity.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-848374e0b007b04d", "name": "Commented-code block (6 lines) in mcp/stdio/claude-console-spinner.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/claude-console-spinner.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-0d5bdc3e1b6061c8", "name": "Commented-code block (5 lines) in mcp/stdio/session-handle-heartbeat.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/session-handle-heartbeat.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-5051b0c0c8386a55", "name": "Legacy-named symbol `api_v2` in mcp/stdio/claude-channel.js:274", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/claude-channel.js:274"}, "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-b9eec93e6ab3e1f5", "name": "Commented-code block (8 lines) in mcp/stdio/claude-channel.js:64", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/claude-channel.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90f538e8f7101afc", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-gateway-protocol.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-gateway-protocol.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-f402d51002a42ff6", "name": "Legacy-named symbol `api_v2` in mcp/stdio/server.js:768", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/server.js:768"}, "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-d544193a1391016e", "name": "Commented-code block (7 lines) in mcp/stdio/server.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/server.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7a9358c8db8c767", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/server.js:4967", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/server.js:4967"}, "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-46d8af2a511097c3", "name": "Commented-code block (9 lines) in mcp/stdio/hermes-gateway-turn-detector.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/hermes-gateway-turn-detector.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77b453f057cb99c2", "name": "Commented-code block (10 lines) in mcp/stdio/hermes-turn-repulse.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in mcp/stdio/hermes-turn-repulse.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-5f9ad6d26da11ca6", "name": "Commented-code block (6 lines) in mcp/stdio/wrapper-pool.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/wrapper-pool.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-54f5a1d4bbc1ea85", "name": "Commented-code block (5 lines) in mcp/stdio/terminal-runtime.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/terminal-runtime.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-264ee21e17dd9c71", "name": "Commented-code block (5 lines) in mcp/stdio/virtual-terminal-input.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/virtual-terminal-input.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-a976c7e01094fc6f", "name": "Commented-code block (7 lines) in mcp/stdio/dead-pty-reporter.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/dead-pty-reporter.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-7de4758aacff812b", "name": "Commented-code block (5 lines) in mcp/stdio/runtimes-helpers.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/runtimes-helpers.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-05f1e0a054b045d9", "name": "Commented-code block (11 lines) in mcp/stdio/pi-session.js:145", "shortDescription": {"text": "Commented-code block (11 lines) in mcp/stdio/pi-session.js:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-608ec333d13b9df6", "name": "Commented-code block (5 lines) in mcp/stdio/hermes-version.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/hermes-version.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-0f68d0b540379042", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-managed-gateway-session.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-managed-gateway-session.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-875772eae63f29fa", "name": "Commented-code block (7 lines) in mcp/stdio/hermes-daemon-cli.js:9", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/hermes-daemon-cli.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-d11e696a86d9b80b", "name": "Commented-code block (6 lines) in mcp/stdio/hermes-session.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-session.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-4788276b7dda6b5b", "name": "Commented-code block (5 lines) in mcp/stdio/adapters/claude.js:27", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/adapters/claude.js:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2e99020b2826b6e", "name": "Commented-code block (9 lines) in mcp/stdio/adapters/pi.js:26", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/pi.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-724baa41d8db0c4c", "name": "Commented-code block (7 lines) in mcp/stdio/adapters/opencode.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/adapters/opencode.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eab8fd1b7b2868e", "name": "Commented-code block (12 lines) in mcp/stdio/adapters/codex.js:24", "shortDescription": {"text": "Commented-code block (12 lines) in mcp/stdio/adapters/codex.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-2d9feac30cdb6da1", "name": "Legacy-named symbol `api_v2` in mcp/stdio/adapters/base.js:114", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/adapters/base.js:114"}, "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-ea46b7732ad5ed96", "name": "Commented-code block (6 lines) in mcp/stdio/adapters/base.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/adapters/base.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-0af195286d5fa908", "name": "Commented-code block (9 lines) in mcp/stdio/adapters/hermes.js:11", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/hermes.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c3d0cf75dc2c2e4", "name": "Commented-code block (9 lines) in mcp/stdio/adapters/index.js:7", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/index.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-037730be586e8fd8", "name": "Commented-code block (6 lines) in mcp/stdio/tests/auto-register-discover-priority.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/auto-register-discover-priority.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-919d62a2ec06166a", "name": "Legacy-named symbol `createPiControllerLegacy` in mcp/stdio/tests/pi-runtime.test.js:485", "shortDescription": {"text": "Legacy-named symbol `createPiControllerLegacy` in mcp/stdio/tests/pi-runtime.test.js:485"}, "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-63707ad20fd268e6", "name": "Commented-code block (5 lines) in mcp/stdio/tests/pi-runtime.test.js:28", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/pi-runtime.test.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-2e640d148f64c66b", "name": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-resume-survives-restart.test.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-resume-survives-restart.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da87e334654837a5", "name": "Commented-code block (5 lines) in mcp/stdio/tests/managed-codex-config.test.js:28", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-codex-config.test.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-e65d07d88e59343b", "name": "Commented-code block (6 lines) in mcp/stdio/tests/adapter-resume-contract.test.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/adapter-resume-contract.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-591e81e1571598d0", "name": "Commented-code block (6 lines) in mcp/stdio/tests/claude-channel-feedback-loop.test.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-channel-feedback-loop.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49e5df9b7e3a378d", "name": "Commented-code block (5 lines) in mcp/stdio/tests/managed-message-prompts.test.js:19", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-message-prompts.test.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83edd20e40a6ccfe", "name": "Commented-code block (8 lines) in mcp/stdio/tests/resident-hermes-turn-detector.test.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/resident-hermes-turn-detector.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3889e70fe4af0406", "name": "Legacy-named symbol `api_v2` in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:32", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:32"}, "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-3e48116facb17e53", "name": "Commented-code block (8 lines) in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:2", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad772878ca4acfd1", "name": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-native-capabilities.test.js:9", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-native-capabilities.test.js:9"}, "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-9b0131a2bce78f0b", "name": "Commented-code block (5 lines) in mcp/stdio/tests/managed-native-capabilities.test.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-native-capabilities.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43902619154ec47c", "name": "Commented-code block (10 lines) in mcp/stdio/tests/server-boot-reap.test.js:9", "shortDescription": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/server-boot-reap.test.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-574ea22baf4b61f9", "name": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution.test.js:28", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution.test.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-f20b2835b360863e", "name": "Commented-code block (5 lines) in mcp/stdio/tests/codex-aify-fallback.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/codex-aify-fallback.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f5637ac2e09a056", "name": "Commented-code block (6 lines) in mcp/stdio/tests/claude-transcript-tail.test.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-transcript-tail.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c2ef237457ed0c3", "name": "Commented-code block (6 lines) in mcp/stdio/tests/notify-check-no-turnbusy.test.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/notify-check-no-turnbusy.test.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39c3118a0bf01b41", "name": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-turn-detector.test.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-turn-detector.test.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-26426ec8a7e677ed", "name": "Commented-code block (6 lines) in mcp/stdio/tests/channel-bridge-id.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/channel-bridge-id.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-072e14d662da34dc", "name": "Commented-code block (5 lines) in mcp/stdio/tests/install-claude-strict-mcp.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/install-claude-strict-mcp.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74862ef245da1866", "name": "Commented-code block (5 lines) in mcp/stdio/tests/claude-print-disabled.test.js:31", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/claude-print-disabled.test.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a447c7c36c15298", "name": "Commented-code block (5 lines) in mcp/stdio/tests/turn-end-detector.test.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/turn-end-detector.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f88767f98f711591", "name": "Commented-code block (6 lines) in mcp/stdio/tests/managed-via-wrapper-routing.test.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/managed-via-wrapper-routing.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42d5c39d914437bb", "name": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-adapter.test.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-adapter.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-192df63c0f512cac", "name": "Commented-code block (5 lines) in mcp/stdio/tests/adapter-register-payload.test.js:30", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/adapter-register-payload.test.js:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6ccbe1d9ca3ec89", "name": "Commented-code block (7 lines) in mcp/stdio/tests/hermes-acp-protocol.test.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/hermes-acp-protocol.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d1f20f716ce9038", "name": "Commented-code block (6 lines) in mcp/stdio/tests/session-fixes.test.js:322", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/session-fixes.test.js:322"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-322a619b7aec67f9", "name": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-managed-host.test.js:4", "shortDescription": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-managed-host.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc93a599a68e11b7", "name": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-channel-delivery.test.js:4", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-channel-delivery.test.js:4"}, "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-6367d06aba28c428", "name": "Commented-code block (11 lines) in mcp/stdio/tests/managed-channel-delivery.test.js:4", "shortDescription": {"text": "Commented-code block (11 lines) in mcp/stdio/tests/managed-channel-delivery.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32ca0dfd3b670f6a", "name": "Commented-code block (5 lines) in mcp/stdio/tests/resident-clean-exit-lost.test.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/resident-clean-exit-lost.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ff9e1c565a32e91", "name": "Commented-code block (6 lines) in mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:114", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32ef344607ebc9ec", "name": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-stop-triad-teardown.test.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-stop-triad-teardown.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fcd66e138f90037", "name": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-wrapper-determinism.test.js:5", "shortDescription": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-wrapper-determinism.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2cc30b034ebfe411", "name": "Legacy-named symbol `api_v2` in mcp/stdio/tests/native-managed-sync.test.js:5", "shortDescription": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/native-managed-sync.test.js:5"}, "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-472d52c1f2bd1f70", "name": "Commented-code block (7 lines) in mcp/stdio/tests/native-managed-sync.test.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/native-managed-sync.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-465a2795cf193d3e", "name": "Commented-code block (13 lines) in mcp/stdio/tests/codex-wrapper-determinism.test.js:5", "shortDescription": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/codex-wrapper-determinism.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e09417610bedf0b0", "name": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/codex-resident-dispatch.test.js:2", "shortDescription": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/codex-resident-dispatch.test.js:2"}, "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-b7096142c6bb55e1", "name": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-loop-ready.test.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-loop-ready.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f71facd428bb3ec7", "name": "Commented-code block (10 lines) in mcp/stdio/tests/codex-cwd-transform.test.js:5", "shortDescription": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/codex-cwd-transform.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c11c9c64f87eda42", "name": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-version.test.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-version.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c2e99d87964b086", "name": "Commented-code block (10 lines) in mcp/stdio/tests/msys-pid-bug.test.js:4", "shortDescription": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/msys-pid-bug.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b59f5837a750dec", "name": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-session-acp.test.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-session-acp.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bac2d380c7a43bce", "name": "Commented-code block (6 lines) in mcp/stdio/tests/claude-console-prompts.test.js:110", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-console-prompts.test.js:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b0549dd14e2269a", "name": "Commented-code block (9 lines) in mcp/stdio/tests/claude-turn-end-loop.test.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/claude-turn-end-loop.test.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9c9f6e3a2865d16", "name": "Commented-code block (5 lines) in mcp/stdio/tests/session-handle-heartbeat-priority.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/session-handle-heartbeat-priority.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89d122da254fefc7", "name": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-port.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-port.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-239832e88e23f037", "name": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-endpoint.test.js:112", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-endpoint.test.js:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2dc4586281ec1248", "name": "Commented-code block (8 lines) in mcp/stdio/tests/adapter-contract-symmetry.test.js:4", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/adapter-contract-symmetry.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-332e42b5e6a0e1ed", "name": "Commented-code block (5 lines) in mcp/stdio/tests/reap-managed-survivors.test.js:189", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/reap-managed-survivors.test.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-0bb607873f024f4c", "name": "Legacy-named symbol `20260603_090000_old` in mcp/stdio/tests/hermes-gateway-protocol.test.js:243", "shortDescription": {"text": "Legacy-named symbol `20260603_090000_old` in mcp/stdio/tests/hermes-gateway-protocol.test.js:243"}, "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-27d3e8f34cb37457", "name": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-gateway-protocol.test.js:143", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-gateway-protocol.test.js:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e31704c9e4a06d2", "name": "Commented-code block (5 lines) in mcp/stdio/tests/codex-runtime-fatal-log.test.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/codex-runtime-fatal-log.test.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-841cc8cc41cf7056", "name": "Commented-code block (5 lines) in mcp/stdio/tests/machine-id-casing.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/machine-id-casing.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b12b7136714b400", "name": "Commented-code block (5 lines) in mcp/stdio/tests/server-shutdown-teardown.test.js:52", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/server-shutdown-teardown.test.js:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c26d6c8065dbbe1d", "name": "Commented-code block (8 lines) in mcp/stdio/tests/codex-session.test.js:148", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/codex-session.test.js:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5e81d90fe93c29b", "name": "Commented-code block (5 lines) in mcp/stdio/tests/rpc-child-bridge-disabled.test.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/rpc-child-bridge-disabled.test.js:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-036dc97e282096a6", "name": "Commented-code block (9 lines) in mcp/stdio/tests/hermes-channel.test.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/hermes-channel.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-897aa95e45886405", "name": "Commented-code block (5 lines) in mcp/stdio/tests/terminal-runtime.test.js:14", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/terminal-runtime.test.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1b4c268e9461f23", "name": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution-channel-claim.test.js:60", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution-channel-claim.test.js:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9fc684a146d5ed9", "name": "Commented-code block (5 lines) in mcp/stdio/tests/adapters/claude.test.js:64", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/adapters/claude.test.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-14e9dbb63c87a668", "name": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs:6", "shortDescription": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs:6"}, "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-f47c1dba64595c7f", "name": "Commented-code block (7 lines) in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs:10", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs: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-63a6794e7272fc42", "name": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-acp.mjs:6", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-acp.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be61f82c01b08498", "name": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-apiserver.mjs:6", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-apiserver.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3af4d4090400338f", "name": "Commented-code block (9 lines) in mcp/stdio/scripts/dump-capabilities.mjs:7", "shortDescription": {"text": "Commented-code block (9 lines) in mcp/stdio/scripts/dump-capabilities.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-c46039d01ca2ba7a", "name": "Commented-code block (6 lines) in mcp/stdio/controllers/hermes-managed-controller.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in mcp/stdio/controllers/hermes-managed-controller.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-ceeaed49ea426d68", "name": "Commented-code block (7 lines) in mcp/stdio/controllers/base-controller.js:44", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/controllers/base-controller.js:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13a6d3b745f4a5e6", "name": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-helpers.js:1", "shortDescription": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-helpers.js:1"}, "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-d085dceb8d27bf38", "name": "Commented-code block (8 lines) in mcp/stdio/controllers/codex-controller.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in mcp/stdio/controllers/codex-controller.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fee48055551954e", "name": "Commented-code block (15 lines) in mcp/stdio/controllers/hermes-controller.js:5", "shortDescription": {"text": "Commented-code block (15 lines) in mcp/stdio/controllers/hermes-controller.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ca3441f70579529", "name": "Commented-code block (7 lines) in mcp/stdio/controllers/claude-controller.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in mcp/stdio/controllers/claude-controller.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-0d3ead5ed4040979", "name": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-controller.js:1", "shortDescription": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-controller.js:1"}, "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-cf21c0d455ffdac4", "name": "Commented-code block (5 lines) in mcp/stdio/controllers/codex-legacy-controller.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in mcp/stdio/controllers/codex-legacy-controller.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-5e94ff69cfcde6f3", "name": "Legacy-named symbol `import_v2` in service/import_v2.py:5", "shortDescription": {"text": "Legacy-named symbol `import_v2` in service/import_v2.py:5"}, "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-96155b2f8cd315da", "name": "Legacy-named symbol `api_v2` in service/db.py:618", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/db.py:618"}, "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-6df5f46361c25852", "name": "Commented-code block (5 lines) in service/db.py:454", "shortDescription": {"text": "Commented-code block (5 lines) in service/db.py:454"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd7cc545ee672d70", "name": "Commented-code block (7 lines) in service/models.py:53", "shortDescription": {"text": "Commented-code block (7 lines) in service/models.py:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01cc43cf80a526bf", "name": "Legacy-named symbol `api_v2` in service/status_engine.py:7", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/status_engine.py:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e1aaa739875e3c9", "name": "Legacy-named symbol `api_v2` in service/main.py:20", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/main.py:20"}, "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-a98283812e0586d6", "name": "Commented-code block (5 lines) in service/main.py:106", "shortDescription": {"text": "Commented-code block (5 lines) in service/main.py:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89886efe8a0fb778", "name": "Legacy-named symbol `export_v1` in service/export_v1.py:5", "shortDescription": {"text": "Legacy-named symbol `export_v1` in service/export_v1.py:5"}, "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-f7b7dd56e0074398", "name": "Legacy-named symbol `api_v2` in service/new_dashboard/app.test.mjs:197", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/new_dashboard/app.test.mjs:197"}, "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-87fbf9b92a2cb9cb", "name": "Commented-code block (5 lines) in service/new_dashboard/app.test.mjs:196", "shortDescription": {"text": "Commented-code block (5 lines) in service/new_dashboard/app.test.mjs:196"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1a2cf2f2ad54b90", "name": "Legacy-named symbol `api_v2` in service/new_dashboard/app.js:795", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/new_dashboard/app.js:795"}, "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-060f92b5a20c6594", "name": "Commented-code block (8 lines) in service/new_dashboard/app.js:767", "shortDescription": {"text": "Commented-code block (8 lines) in service/new_dashboard/app.js:767"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bf7f2c5aad52102", "name": "`fetch()` without try/.catch or AbortSignal \u2014 service/new_dashboard/app.js:186", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 service/new_dashboard/app.js:186"}, "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-914bf99172fdf17d", "name": "Legacy-named symbol `api_v2` in service/tests/test_synth_terminal_deprecation.py:15", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_synth_terminal_deprecation.py:15"}, "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-7881a3d12acf16ef", "name": "Legacy-named symbol `api_v2` in service/tests/test_managed_via_wrapper_adapter.py:14", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_managed_via_wrapper_adapter.py:14"}, "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-c8c191da79d5a1c3", "name": "Legacy-named symbol `api_v2` in service/tests/test_reply_reminders.py:29", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_reply_reminders.py:29"}, "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-de47dc8b215c025a", "name": "Legacy-named symbol `api_v2` in service/tests/test_lifecycle_phase7.py:14", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_lifecycle_phase7.py:14"}, "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-9a4029668c2c5630", "name": "Commented-code block (7 lines) in service/tests/test_lifecycle_phase7.py:157", "shortDescription": {"text": "Commented-code block (7 lines) in service/tests/test_lifecycle_phase7.py:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c433fe1128f1b8f", "name": "Legacy-named symbol `api_v2` in service/tests/test_resident_gate_restored.py:16", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_gate_restored.py:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a008fe31c8c521e4", "name": "Legacy-named symbol `api_v2` in service/tests/_base.py:37", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/_base.py:37"}, "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-9e5fb759b483827c", "name": "Legacy-named symbol `api_v2` in service/tests/test_status_taxonomy.py:13", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_status_taxonomy.py:13"}, "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-6578c92800ed285a", "name": "Commented-code block (6 lines) in service/tests/test_install_hermes_session_rediscover.py:22", "shortDescription": {"text": "Commented-code block (6 lines) in service/tests/test_install_hermes_session_rediscover.py:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd6b0e5722f25c59", "name": "Legacy-named symbol `api_v2` in service/tests/test_machine_id_casing.py:21", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_machine_id_casing.py:21"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a87ae4f5d7f2453", "name": "Legacy-named symbol `api_v2` in service/tests/test_pi_resident_flip.py:24", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_pi_resident_flip.py:24"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5041bc25f8fb825", "name": "Legacy-named symbol `api_v2` in service/tests/test_session_identity_sticky.py:32", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_session_identity_sticky.py:32"}, "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-740776c263ee5ba6", "name": "Commented-code block (5 lines) in service/tests/test_session_identity_sticky.py:128", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_session_identity_sticky.py:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc92bdef76808232", "name": "Legacy-named symbol `api_v2` in service/tests/test_session_mode_fsm.py:31", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_session_mode_fsm.py:31"}, "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-62faf445dcad1743", "name": "Commented-code block (9 lines) in service/tests/test_session_mode_fsm.py:199", "shortDescription": {"text": "Commented-code block (9 lines) in service/tests/test_session_mode_fsm.py:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6178d0ccbf549f5f", "name": "Legacy-named symbol `api_v2` in service/tests/test_resident_registration_session.py:11", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_registration_session.py:11"}, "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-371a2455d7bbfad8", "name": "Legacy-named symbol `api_v2` in service/tests/test_native_managed_runtimes_parity.py:2", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_native_managed_runtimes_parity.py:2"}, "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-9de863497051bcc7", "name": "Legacy-named symbol `api_v2` in service/tests/test_prune_terminal_controls.py:14", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_prune_terminal_controls.py:14"}, "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-e5b6facd5eac69df", "name": "Legacy-named symbol `api_v2` in service/tests/test_rate_limit_sender_notice.py:8", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_rate_limit_sender_notice.py:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-956baa0d346d5727", "name": "Legacy-named symbol `api_v2` in service/tests/test_reply_bypasses_live_gate.py:18", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_reply_bypasses_live_gate.py:18"}, "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-7987a6b567ef14a7", "name": "Legacy-named symbol `api_v2` in service/tests/test_console_working_lease.py:7", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_console_working_lease.py:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1536c725d0e9f572", "name": "Commented-code block (5 lines) in service/tests/test_console_working_lease.py:44", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_console_working_lease.py:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e61fe88fca8a0c8", "name": "Legacy-named symbol `api_v2` in service/tests/test_agent_status_read_gate.py:35", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_agent_status_read_gate.py:35"}, "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-a2b8b8f412932de2", "name": "Legacy-named symbol `api_v2` in service/tests/test_api_v2_regressions.py:17", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_api_v2_regressions.py:17"}, "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-6a2e3c7465f4f8d8", "name": "Commented-code block (8 lines) in service/tests/test_api_v2_regressions.py:28", "shortDescription": {"text": "Commented-code block (8 lines) in service/tests/test_api_v2_regressions.py: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-4e5d9887039012e1", "name": "Legacy-named symbol `api_v2` in service/tests/test_registration_live_state_invalidation.py:20", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_registration_live_state_invalidation.py:20"}, "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-4895b42c50940e5c", "name": "Commented-code block (5 lines) in service/tests/test_install_hermes_prebuild.py:135", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_install_hermes_prebuild.py:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc189e857e2be559", "name": "Legacy-named symbol `api_v2` in service/tests/test_hermes_remove_triad_reap.py:20", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_remove_triad_reap.py:20"}, "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-dab064b4b1fb4241", "name": "Commented-code block (7 lines) in service/tests/test_hermes_remove_triad_reap.py:148", "shortDescription": {"text": "Commented-code block (7 lines) in service/tests/test_hermes_remove_triad_reap.py:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-084ea4d2de6d5549", "name": "Legacy-named symbol `api_v2` in service/tests/test_resident_bridge_liveness.py:16", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_bridge_liveness.py:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2107057cbb142f1", "name": "Commented-code block (5 lines) in service/tests/test_new_dashboard_session_mode_switch.py:116", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_new_dashboard_session_mode_switch.py:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37918b15b7b4628b", "name": "Legacy-named symbol `api_v2` in service/tests/test_resurrect_managed_console.py:15", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resurrect_managed_console.py:15"}, "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-f2199f51b7ed61e2", "name": "Legacy-named symbol `api_v2` in service/tests/test_terminal_awaiting_input_hint.py:11", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_terminal_awaiting_input_hint.py:11"}, "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-78eb2afcfb6ec753", "name": "Legacy-named symbol `api_v2` in service/tests/test_claimer_lease.py:32", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_claimer_lease.py:32"}, "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-b5c75fbf122265ec", "name": "Legacy-named symbol `api_v2` in service/tests/test_agent_session_mode_switch.py:32", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_agent_session_mode_switch.py:32"}, "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-453853118ab7af52", "name": "Legacy-named symbol `api_v2` in service/tests/test_status_deliverability.py:39", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_status_deliverability.py:39"}, "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-93ab2184db217962", "name": "Commented-code block (5 lines) in service/tests/test_status_deliverability.py:282", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_status_deliverability.py:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3685e15428866383", "name": "Legacy-named symbol `api_v2` in service/tests/test_ready_status_endpoint.py:22", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_ready_status_endpoint.py:22"}, "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-d8e148f7200f7dc7", "name": "Legacy-named symbol `api_v2` in service/tests/test_default_capabilities_adapter.py:13", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_default_capabilities_adapter.py:13"}, "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-693f3943ab3f6c14", "name": "Legacy-named symbol `test_status_engine_setting_defaults_old` in service/tests/test_status_engine_integration.py:27", "shortDescription": {"text": "Legacy-named symbol `test_status_engine_setting_defaults_old` in service/tests/test_status_engine_integration.py:27"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3f7e3bf443e0f66e", "name": "Commented-code block (5 lines) in service/tests/test_status_engine_integration.py:89", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_status_engine_integration.py:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bd3910ca38af8af", "name": "Legacy-named symbol `api_v2` in service/tests/test_hermes_channel_routing.py:12", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_channel_routing.py:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76948f90ef4d242f", "name": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_channel_claim.py:20", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_channel_claim.py:20"}, "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-3bec2b841dd11d5a", "name": "Commented-code block (5 lines) in service/tests/test_dispatch_channel_claim.py:132", "shortDescription": {"text": "Commented-code block (5 lines) in service/tests/test_dispatch_channel_claim.py:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f39da8c211f43dc", "name": "Legacy-named symbol `api_v2` in service/tests/test_hermes_visible_tui_delivery_routing.py:47", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_visible_tui_delivery_routing.py:47"}, "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-6b40e2d95b05474b", "name": "Legacy-named symbol `api_v2` in service/tests/test_console_command_resume.py:12", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_console_command_resume.py:12"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9aa75fa3af305540", "name": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_endpoint_wrapper_backed.py:6", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_endpoint_wrapper_backed.py:6"}, "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-78a16955fa1b8ad8", "name": "Legacy-named symbol `api_v2` in service/tests/test_hermes_stale_bridge_claim_guard.py:19", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_stale_bridge_claim_guard.py:19"}, "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-c4824d4c4d07f24e", "name": "Legacy-named symbol `api_v2` in service/tests/test_default_settings_plan4.py:10", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_default_settings_plan4.py:10"}, "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-01ff21da737a6a85", "name": "Legacy-named symbol `api_v2` in service/tests/test_settings_manual_mode.py:8", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_settings_manual_mode.py:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a7e4738be4069a3", "name": "Legacy-named symbol `api_v2` in service/tests/test_hermes_session_resume_removed.py:19", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_session_resume_removed.py:19"}, "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-8ae6e91306eb7639", "name": "Legacy-named symbol `api_v2` in service/tests/test_trim_terminal_output.py:4", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/tests/test_trim_terminal_output.py:4"}, "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-3b59a4c817a36e09", "name": "Commented-code block (5 lines) in service/runtimes/pi.py:49", "shortDescription": {"text": "Commented-code block (5 lines) in service/runtimes/pi.py:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcd62eef426b0e0d", "name": "Commented-code block (6 lines) in service/runtimes/hermes.py:25", "shortDescription": {"text": "Commented-code block (6 lines) in service/runtimes/hermes.py:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b35638165648ffbc", "name": "Commented-code block (6 lines) in service/runtimes/claude.py:46", "shortDescription": {"text": "Commented-code block (6 lines) in service/runtimes/claude.py:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6e0b5574b27a0fe", "name": "Legacy-named symbol `api_v2` in service/routers/api_v2.py:46", "shortDescription": {"text": "Legacy-named symbol `api_v2` in service/routers/api_v2.py:46"}, "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-af5152b387311054", "name": "Commented-code block (9 lines) in service/routers/api_v2.py:125", "shortDescription": {"text": "Commented-code block (9 lines) in service/routers/api_v2.py:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afebdb5a563aa21d", "name": "121 env vars used in code but missing from .env.example", "shortDescription": {"text": "121 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AIFY_AGENT_CWD`, `AIFY_AGENT_ID`, `AIFY_AGENT_NAME`, `AIFY_AGENT_ROLE`, `AIFY_AGENT_RUNTIME`, `AIFY_API_KEY`, `AIFY_BRIDGE_DISABLED`, `AIFY_CHANNELS_ENABLED` + 113 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmcp/sse_server.py:comms_send, mcp/sse_server.py:comms_dispatch\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nservice/routers/api_v2.py:send_terminal_input, service/routers/api_v2.py:resize_terminal, service/routers/api_v2.py:stop_terminal\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-204f81aa64826bc3", "name": "FastAPI POST `start_container` without auth dependency \u2014 service/routers/containers.py:48", "shortDescription": {"text": "FastAPI POST `start_container` without auth dependency \u2014 service/routers/containers.py:48"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f1a8d78800e49a58", "name": "FastAPI POST `stop_container` without auth dependency \u2014 service/routers/containers.py:65", "shortDescription": {"text": "FastAPI POST `stop_container` without auth dependency \u2014 service/routers/containers.py:65"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d423a43396838f6", "name": "FastAPI POST `restart_container` without auth dependency \u2014 service/routers/containers.py:75", "shortDescription": {"text": "FastAPI POST `restart_container` without auth dependency \u2014 service/routers/containers.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aeef1774af94e8cf", "name": "FastAPI POST `pull_image` without auth dependency \u2014 service/routers/containers.py:95", "shortDescription": {"text": "FastAPI POST `pull_image` without auth dependency \u2014 service/routers/containers.py:95"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`service/new_dashboard_app.py` 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}}, {"id": "scanner-d504b80adc9409ec", "name": "Unused endpoint: GET /dashboard", "shortDescription": {"text": "Unused endpoint: GET /dashboard"}, "fullDescription": {"text": "`service/new_dashboard_app.py` declares `GET /dashboard` 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-4c063354a4d178f9", "name": "Unused endpoint: GET /favicon.svg", "shortDescription": {"text": "Unused endpoint: GET /favicon.svg"}, "fullDescription": {"text": "`service/new_dashboard_app.py` declares `GET /favicon.svg` 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-f162aeb700a94e70", "name": "Unused endpoint: GET /api/v1/containers", "shortDescription": {"text": "Unused endpoint: GET /api/v1/containers"}, "fullDescription": {"text": "`service/routers/containers.py` declares `GET /api/v1/containers` 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-1c586bebdf73b1c9", "name": "Unused endpoint: GET /api/v1/containers/{name}", "shortDescription": {"text": "Unused endpoint: GET /api/v1/containers/{name}"}, "fullDescription": {"text": "`service/routers/containers.py` declares `GET /api/v1/containers/{name}` 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-74ad6dd3ea2dbf5f", "name": "Unused endpoint: POST /api/v1/containers/{name}/start", "shortDescription": {"text": "Unused endpoint: POST /api/v1/containers/{name}/start"}, "fullDescription": {"text": "`service/routers/containers.py` declares `POST /api/v1/containers/{name}/start` 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-c5bb88407d9084b6", "name": "Unused endpoint: POST /api/v1/containers/{name}/stop", "shortDescription": {"text": "Unused endpoint: POST /api/v1/containers/{name}/stop"}, "fullDescription": {"text": "`service/routers/containers.py` declares `POST /api/v1/containers/{name}/stop` 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-9f666769b7e38d27", "name": "Unused endpoint: POST /api/v1/containers/{name}/restart", "shortDescription": {"text": "Unused endpoint: POST /api/v1/containers/{name}/restart"}, "fullDescription": {"text": "`service/routers/containers.py` declares `POST /api/v1/containers/{name}/restart` 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-dfbbc8c506ce8ed6", "name": "Unused endpoint: GET /api/v1/containers/{name}/logs", "shortDescription": {"text": "Unused endpoint: GET /api/v1/containers/{name}/logs"}, "fullDescription": {"text": "`service/routers/containers.py` declares `GET /api/v1/containers/{name}/logs` 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-f2fdab7f10408290", "name": "Unused endpoint: POST /api/v1/containers/{name}/pull", "shortDescription": {"text": "Unused endpoint: POST /api/v1/containers/{name}/pull"}, "fullDescription": {"text": "`service/routers/containers.py` declares `POST /api/v1/containers/{name}/pull` 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-6dea82ec5fd07ff5", "name": "Unused endpoint: GET /api/v1/gpu", "shortDescription": {"text": "Unused endpoint: GET /api/v1/gpu"}, "fullDescription": {"text": "`service/routers/containers.py` declares `GET /api/v1/gpu` 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-9e4a005911cd674b", "name": "Unused endpoint: ANY /route/{name}/{path:path}", "shortDescription": {"text": "Unused endpoint: ANY /route/{name}/{path:path}"}, "fullDescription": {"text": "`service/routers/containers.py` declares `ANY /route/{name}/{path:path}` 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-8c236625afb6a8cb", "name": "Unused endpoint: GET /ready", "shortDescription": {"text": "Unused endpoint: GET /ready"}, "fullDescription": {"text": "`service/routers/health.py` declares `GET /ready` 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-906c11eb45896c63", "name": "Unused endpoint: GET /environments", "shortDescription": {"text": "Unused endpoint: GET /environments"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /environments` 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-5048a0c54f413719", "name": "Unused endpoint: POST /environments/heartbeat", "shortDescription": {"text": "Unused endpoint: POST /environments/heartbeat"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /environments/heartbeat` 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-e44fc03d6411a62d", "name": "Unused endpoint: PATCH /environments/{environment_id:path}/roots", "shortDescription": {"text": "Unused endpoint: PATCH /environments/{environment_id:path}/roots"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /environments/{environment_id:path}/roots` 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-d2556ba40ccd221d", "name": "Unused endpoint: GET /spawn-requests", "shortDescription": {"text": "Unused endpoint: GET /spawn-requests"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /spawn-requests` 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-3d3a8e8182ee66d7", "name": "Unused endpoint: POST /environments/{environment_id:path}/control", "shortDescription": {"text": "Unused endpoint: POST /environments/{environment_id:path}/control"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /environments/{environment_id:path}/control` 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-4c30f08ca9dcc97f", "name": "Unused endpoint: POST /environments/controls/claim", "shortDescription": {"text": "Unused endpoint: POST /environments/controls/claim"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /environments/controls/claim` 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-1add972ee2ed1b49", "name": "Unused endpoint: PATCH /environments/controls/{control_id}", "shortDescription": {"text": "Unused endpoint: PATCH /environments/controls/{control_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /environments/controls/{control_id}` 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-666fd1d5902cb976", "name": "Unused endpoint: POST /spawn-requests", "shortDescription": {"text": "Unused endpoint: POST /spawn-requests"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /spawn-requests` 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-d8fbc2fd2f9ae0e0", "name": "Unused endpoint: POST /spawn-requests/claim", "shortDescription": {"text": "Unused endpoint: POST /spawn-requests/claim"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /spawn-requests/claim` 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-8ed6100c909b2ed0", "name": "Unused endpoint: PATCH /spawn-requests/{spawn_request_id}", "shortDescription": {"text": "Unused endpoint: PATCH /spawn-requests/{spawn_request_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /spawn-requests/{spawn_request_id}` 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-b15d518d538de57d", "name": "Unused endpoint: GET /sessions", "shortDescription": {"text": "Unused endpoint: GET /sessions"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /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-bc3d6e76da5fb9df", "name": "Unused endpoint: POST /sessions/{session_id}/console/start", "shortDescription": {"text": "Unused endpoint: POST /sessions/{session_id}/console/start"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /sessions/{session_id}/console/start` 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-2d1cd02caeee31b3", "name": "Unused endpoint: GET /agents/{agent_id}/pi-session-state", "shortDescription": {"text": "Unused endpoint: GET /agents/{agent_id}/pi-session-state"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /agents/{agent_id}/pi-session-state` 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-a6786d8e42ea3f21", "name": "Unused endpoint: POST /agents/{agent_id}/virtual-terminal/ensure", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/virtual-terminal/ensure"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/virtual-terminal/ensure` 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-b26ecbe975c0677a", "name": "Unused endpoint: GET /terminals/{terminal_id}", "shortDescription": {"text": "Unused endpoint: GET /terminals/{terminal_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /terminals/{terminal_id}` 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-1befb31206691944", "name": "Unused endpoint: POST /terminals/{terminal_id}/output", "shortDescription": {"text": "Unused endpoint: POST /terminals/{terminal_id}/output"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/{terminal_id}/output` 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-fbe12ca97ece03da", "name": "Unused endpoint: POST /terminals/{terminal_id}/input", "shortDescription": {"text": "Unused endpoint: POST /terminals/{terminal_id}/input"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/{terminal_id}/input` 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-2055325197f42146", "name": "Unused endpoint: POST /terminals/{terminal_id}/resize", "shortDescription": {"text": "Unused endpoint: POST /terminals/{terminal_id}/resize"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/{terminal_id}/resize` 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-2b22015c44f184f9", "name": "Unused endpoint: POST /terminals/{terminal_id}/stop", "shortDescription": {"text": "Unused endpoint: POST /terminals/{terminal_id}/stop"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/{terminal_id}/stop` 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-fa8f5f6606ffaf70", "name": "Unused endpoint: POST /terminals/{terminal_id}/report-dead", "shortDescription": {"text": "Unused endpoint: POST /terminals/{terminal_id}/report-dead"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/{terminal_id}/report-dead` 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-505a89e80c312aac", "name": "Unused endpoint: POST /terminals/controls/claim", "shortDescription": {"text": "Unused endpoint: POST /terminals/controls/claim"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /terminals/controls/claim` 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-954f0244ef652a40", "name": "Unused endpoint: PATCH /terminals/controls/{control_id}", "shortDescription": {"text": "Unused endpoint: PATCH /terminals/controls/{control_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /terminals/controls/{control_id}` 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-70d9b0f571e7c1a1", "name": "Unused endpoint: POST /sessions/{session_id}/control", "shortDescription": {"text": "Unused endpoint: POST /sessions/{session_id}/control"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /sessions/{session_id}/control` 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-c23a06033f5185b9", "name": "Unused endpoint: DELETE /sessions/{session_id}", "shortDescription": {"text": "Unused endpoint: DELETE /sessions/{session_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `DELETE /sessions/{session_id}` 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-3140e61d7cac5091", "name": "Unused endpoint: GET /agents", "shortDescription": {"text": "Unused endpoint: GET /agents"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /agents` 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-2f3fa31f1e9b1b90", "name": "Unused endpoint: POST /agents", "shortDescription": {"text": "Unused endpoint: POST /agents"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents` 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-b30cbdd177c13681", "name": "Unused endpoint: GET /agents/{agent_id}", "shortDescription": {"text": "Unused endpoint: GET /agents/{agent_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /agents/{agent_id}` 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-04260cdb8bc1d6cc", "name": "Unused endpoint: GET /agents/{agent_id}/console", "shortDescription": {"text": "Unused endpoint: GET /agents/{agent_id}/console"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `GET /agents/{agent_id}/console` 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-e57bbd76426a21a7", "name": "Unused endpoint: POST /agents/{agent_id}/console/input", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/console/input"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/console/input` 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-74ba93ee471f2438", "name": "Unused endpoint: POST /agents/{agent_id}/rename", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/rename"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/rename` 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-a2b6f2a8ebe3a177", "name": "Unused endpoint: POST /agents/{agent_id}/environment", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/environment"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/environment` 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-c3b90085b95f0071", "name": "Unused endpoint: DELETE /agents/{agent_id}", "shortDescription": {"text": "Unused endpoint: DELETE /agents/{agent_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `DELETE /agents/{agent_id}` 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-7371de05c946672b", "name": "Unused endpoint: POST /agents/{agent_id}/control", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/control"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/control` 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-c938812a5876d202", "name": "Unused endpoint: PATCH /agents/{agent_id}", "shortDescription": {"text": "Unused endpoint: PATCH /agents/{agent_id}"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /agents/{agent_id}` 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-b04d74da4dee3059", "name": "Unused endpoint: PATCH /agents/{agent_id}/session-handle", "shortDescription": {"text": "Unused endpoint: PATCH /agents/{agent_id}/session-handle"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `PATCH /agents/{agent_id}/session-handle` 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-986f970319490cf4", "name": "Unused endpoint: POST /agents/{agent_id}/session/confirm", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/session/confirm"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/session/confirm` 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-6c248c06ae6ce422", "name": "Unused endpoint: POST /agents/{agent_id}/session/keep", "shortDescription": {"text": "Unused endpoint: POST /agents/{agent_id}/session/keep"}, "fullDescription": {"text": "`service/routers/api_v2.py` declares `POST /agents/{agent_id}/session/keep` 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/23664"}, "properties": {"repository": "zimdin12/aify-comms", "repoUrl": "https://github.com/zimdin12/aify-comms", "branch": "main"}, "results": [{"ruleId": "scanner-29a560511dfd7e59", "level": "note", "message": {"text": "Possibly dead Python function: make_agent_with_mcp_discovery"}, "properties": {"repobilityId": "d58c4aa168632962", "scanner": "scanner-primary", "fingerprint": "29a560511dfd7e59", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af1a8351c1544143", "level": "note", "message": {"text": "Possibly dead Python function: prompt_submit_tee_transport"}, "properties": {"repobilityId": "ee4c2cf792502677", "scanner": "scanner-primary", "fingerprint": "af1a8351c1544143", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-389c952fd209c158", "level": "note", "message": {"text": "Possibly dead Python function: render_visible_notice"}, "properties": {"repobilityId": "70fbd36412ea6124", "scanner": "scanner-primary", "fingerprint": "389c952fd209c158", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:187"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed09a61c8bbfebe4", "level": "note", "message": {"text": "Possibly dead Python function: bind_visible_transport"}, "properties": {"repobilityId": "99a129ed1942adb3", "scanner": "scanner-primary", "fingerprint": "ed09a61c8bbfebe4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:239"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d889d30630277604", "level": "note", "message": {"text": "Possibly dead Python function: launch_tui_with_active_file"}, "properties": {"repobilityId": "8d3f61315c6bc181", "scanner": "scanner-primary", "fingerprint": "d889d30630277604", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:298"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-791bdf5db135f822", "level": "note", "message": {"text": "Possibly dead Python function: mkstemp_for_wrapper_file"}, "properties": {"repobilityId": "adc7119ee8123c8a", "scanner": "scanner-primary", "fingerprint": "791bdf5db135f822", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:308"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efd8ce5a9bf376be", "level": "note", "message": {"text": "Possibly dead Python function: preserve_wrapper_file"}, "properties": {"repobilityId": "f0b998b3d3c2ce0f", "scanner": "scanner-primary", "fingerprint": "efd8ce5a9bf376be", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:327"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb290b0a76a9934f", "level": "note", "message": {"text": "Possibly dead Python function: patch_codex_runtime"}, "properties": {"repobilityId": "81e0a4a6aa0b85b8", "scanner": "scanner-primary", "fingerprint": "eb290b0a76a9934f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:363"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f77723fa93eb775", "level": "note", "message": {"text": "Possibly dead Python function: transform_stream"}, "properties": {"repobilityId": "29511baf893b4d73", "scanner": "scanner-primary", "fingerprint": "5f77723fa93eb775", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:366"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44f6c030fc5d7074", "level": "note", "message": {"text": "Possibly dead Python function: transform_fallback"}, "properties": {"repobilityId": "d4b598e082ba4ef7", "scanner": "scanner-primary", "fingerprint": "44f6c030fc5d7074", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:398"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5daea246cff9e25", "level": "note", "message": {"text": "Possibly dead Python function: service_info"}, "properties": {"repobilityId": "b8374b90d40ecefc", "scanner": "scanner-primary", "fingerprint": "b5daea246cff9e25", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/open-webui/tool.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dcfeed677380b924", "level": "note", "message": {"text": "Possibly dead Python function: gpu_status"}, "properties": {"repobilityId": "2c80805eaf544068", "scanner": "scanner-primary", "fingerprint": "dcfeed677380b924", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/open-webui/tool.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4af0ff0b2f98729b", "level": "note", "message": {"text": "Possibly dead Python function: active_count"}, "properties": {"repobilityId": "d1a4f1fea963d7c5", "scanner": "scanner-primary", "fingerprint": "4af0ff0b2f98729b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/ws.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26e78968d613f795", "level": "note", "message": {"text": "Possibly dead Python function: resolve_url"}, "properties": {"repobilityId": "b8c2242f128b3fc8", "scanner": "scanner-primary", "fingerprint": "26e78968d613f795", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/containers/manager.py:94"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e409c3eaf100ad1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 integrations/openclaw/index.ts:106"}, "properties": {"repobilityId": "c022c2758f326225", "scanner": "scanner-primary", "fingerprint": "0e409c3eaf100ad1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4ec71e2a6c1c166c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/notify-check.js:46"}, "properties": {"repobilityId": "5220923f9644c781", "scanner": "scanner-primary", "fingerprint": "4ec71e2a6c1c166c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e64493eaa7ebd562", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/tokenize-command-string.test.js:73"}, "properties": {"repobilityId": "417bf35b76f070d6", "scanner": "scanner-primary", "fingerprint": "e64493eaa7ebd562", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5034fd1a7a61974", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-url-fallback.test.js:22"}, "properties": {"repobilityId": "56e71d1dfab9ce2f", "scanner": "scanner-primary", "fingerprint": "e5034fd1a7a61974", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34ca3fdbfb9cf801", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-runtime.test.js:100"}, "properties": {"repobilityId": "21f92389a8627bd0", "scanner": "scanner-primary", "fingerprint": "34ca3fdbfb9cf801", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d65bb7b83e454860", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-child-env.test.js:25"}, "properties": {"repobilityId": "7880563f7532b074", "scanner": "scanner-primary", "fingerprint": "d65bb7b83e454860", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4aa73317e8288256", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-survives-restart.test.js:42"}, "properties": {"repobilityId": "70e0a883b395ece5", "scanner": "scanner-primary", "fingerprint": "4aa73317e8288256", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28b1acedc75eb0b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-claude-permissions.test.js:78"}, "properties": {"repobilityId": "7a379315034d09a9", "scanner": "scanner-primary", "fingerprint": "28b1acedc75eb0b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e0547528dec5183d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-config.test.js:72"}, "properties": {"repobilityId": "7339ee9730771124", "scanner": "scanner-primary", "fingerprint": "e0547528dec5183d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b6306e1d3174371", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-register-guard.test.js:23"}, "properties": {"repobilityId": "8ae80c8f0093a6e1", "scanner": "scanner-primary", "fingerprint": "4b6306e1d3174371", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-192b1fa403b94749", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/transcript-activity.test.js:96"}, "properties": {"repobilityId": "65a35ba6624b6d6a", "scanner": "scanner-primary", "fingerprint": "192b1fa403b94749", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-80d6211a8ae7dddb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-feedback-loop.test.js:101"}, "properties": {"repobilityId": "9ef710065fc14ce2", "scanner": "scanner-primary", "fingerprint": "80d6211a8ae7dddb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1ad68811bd83470", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/cwd-normalization.test.js:60"}, "properties": {"repobilityId": "d3ce0abc72357cf9", "scanner": "scanner-primary", "fingerprint": "d1ad68811bd83470", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e2b12d486718ce0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-message-prompts.test.js:69"}, "properties": {"repobilityId": "145514e65ca892e0", "scanner": "scanner-primary", "fingerprint": "6e2b12d486718ce0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83c9682b31fd0ab4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-hermes-turn-detector.test.js:204"}, "properties": {"repobilityId": "f28d46443d8d2d8b", "scanner": "scanner-primary", "fingerprint": "83c9682b31fd0ab4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4dffe48642e3a1a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:53"}, "properties": {"repobilityId": "45599ba1ca1c0a7a", "scanner": "scanner-primary", "fingerprint": "4dffe48642e3a1a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-98b1a5690332d344", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-native-capabilities.test.js:29"}, "properties": {"repobilityId": "913c0a18b6663828", "scanner": "scanner-primary", "fingerprint": "98b1a5690332d344", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e487109a7bd7682", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-boot-reap.test.js:256"}, "properties": {"repobilityId": "db357e58cc32833f", "scanner": "scanner-primary", "fingerprint": "3e487109a7bd7682", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a66c5984d1054aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/opencode-permissions.test.js:30"}, "properties": {"repobilityId": "ce315a0bfb0fe63b", "scanner": "scanner-primary", "fingerprint": "0a66c5984d1054aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9a71f5abf0a0859", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/binding-file.test.js:33"}, "properties": {"repobilityId": "11d331e0e0a4492d", "scanner": "scanner-primary", "fingerprint": "e9a71f5abf0a0859", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b163987913f0995", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/managed-codex-permissions.test.js:34"}, "properties": {"repobilityId": "a82ff2c88aacd421", "scanner": "scanner-primary", "fingerprint": "2b163987913f0995", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-930dd73eb236cb7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/executable-resolution.test.js:115"}, "properties": {"repobilityId": "429643b3c93f3ebf", "scanner": "scanner-primary", "fingerprint": "930dd73eb236cb7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9b84f2b7d45c40f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-kill-by-pid.test.js:82"}, "properties": {"repobilityId": "d4bea481f9c5db49", "scanner": "scanner-primary", "fingerprint": "9b84f2b7d45c40f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36f83c0eaac6ee52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-spinner.test.js:77"}, "properties": {"repobilityId": "ec5136ae6b0b7fcc", "scanner": "scanner-primary", "fingerprint": "36f83c0eaac6ee52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-021f65828fd3dd4a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-resume-marker-sync.test.js:69"}, "properties": {"repobilityId": "f3b7c8613c624b6a", "scanner": "scanner-primary", "fingerprint": "021f65828fd3dd4a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-26b0d05863e76f26", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-live-thread-discovery.test.js:50"}, "properties": {"repobilityId": "442c92291559f226", "scanner": "scanner-primary", "fingerprint": "26b0d05863e76f26", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a8cd3fa1ec81233", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-execution.test.js:70"}, "properties": {"repobilityId": "5bbc51975069c7cd", "scanner": "scanner-primary", "fingerprint": "5a8cd3fa1ec81233", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-905610bdfb8c028e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-transcript-tail.test.js:152"}, "properties": {"repobilityId": "dac013dbbab45003", "scanner": "scanner-primary", "fingerprint": "905610bdfb8c028e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-50833004a42dd058", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/dispatch-state.test.js:45"}, "properties": {"repobilityId": "3d13a71be3261491", "scanner": "scanner-primary", "fingerprint": "50833004a42dd058", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d8fa431becac421", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-print-disabled.test.js:39"}, "properties": {"repobilityId": "201ace5a44fde2b8", "scanner": "scanner-primary", "fingerprint": "9d8fa431becac421", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9cb870b424fe9846", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-tools.test.js:86"}, "properties": {"repobilityId": "8639ccd52c941789", "scanner": "scanner-primary", "fingerprint": "9cb870b424fe9846", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-945d7641b4211285", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-end-detector.test.js:145"}, "properties": {"repobilityId": "14ce8366dc1e5664", "scanner": "scanner-primary", "fingerprint": "945d7641b4211285", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0942f659775876f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-control.test.js:29"}, "properties": {"repobilityId": "0c6035fc9582833a", "scanner": "scanner-primary", "fingerprint": "0942f659775876f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c91353991474d9e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-env.test.js:123"}, "properties": {"repobilityId": "0eaa430c9d46a566", "scanner": "scanner-primary", "fingerprint": "c91353991474d9e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d2ad7b85040f800", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/turn-busy.test.js:47"}, "properties": {"repobilityId": "32b0f2b6eff35692", "scanner": "scanner-primary", "fingerprint": "6d2ad7b85040f800", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68b98044efc71f09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-acp-protocol.test.js:199"}, "properties": {"repobilityId": "4002bddc1e26d421", "scanner": "scanner-primary", "fingerprint": "68b98044efc71f09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cd8cbe9a94c4d53c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/session-fixes.test.js:46"}, "properties": {"repobilityId": "0d35421cc4110668", "scanner": "scanner-primary", "fingerprint": "cd8cbe9a94c4d53c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3d35c278a277482", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/resident-clean-exit-lost.test.js:113"}, "properties": {"repobilityId": "c820d8fc68ce24da", "scanner": "scanner-primary", "fingerprint": "c3d35c278a277482", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e15e21acedc307b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:151"}, "properties": {"repobilityId": "a34afa02e84fda12", "scanner": "scanner-primary", "fingerprint": "e15e21acedc307b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-472eb9f5f1ed0986", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-stop-triad-teardown.test.js:135"}, "properties": {"repobilityId": "6ee639ae9fff8e22", "scanner": "scanner-primary", "fingerprint": "472eb9f5f1ed0986", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-adf8d38479a15322", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-parent-guard.test.js:121"}, "properties": {"repobilityId": "cc3c3784b518628d", "scanner": "scanner-primary", "fingerprint": "adf8d38479a15322", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ebbb3052c885c5d6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-session-in-use.test.js:61"}, "properties": {"repobilityId": "26a13f2313dc0151", "scanner": "scanner-primary", "fingerprint": "ebbb3052c885c5d6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec53baf42e4712d7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/native-managed-sync.test.js:64"}, "properties": {"repobilityId": "8c86c9ef982347b3", "scanner": "scanner-primary", "fingerprint": "ec53baf42e4712d7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17f8b10d35437ed7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-claude.test.js:111"}, "properties": {"repobilityId": "81571896da7cd2ae", "scanner": "scanner-primary", "fingerprint": "17f8b10d35437ed7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-879291fdf493f12f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-console-class.test.js:23"}, "properties": {"repobilityId": "18264d45f8333633", "scanner": "scanner-primary", "fingerprint": "879291fdf493f12f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-062bcadd9a0d6615", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-pty-kill.test.js:16"}, "properties": {"repobilityId": "c76b4a9cb5059481", "scanner": "scanner-primary", "fingerprint": "062bcadd9a0d6615", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-05675159202405dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/wrapper-pool.test.js:92"}, "properties": {"repobilityId": "1d153d1403303b35", "scanner": "scanner-primary", "fingerprint": "05675159202405dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca2e24b6c8ca3b84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-gateway-shutdown-all.test.js:10"}, "properties": {"repobilityId": "c190e40eeca702ce", "scanner": "scanner-primary", "fingerprint": "ca2e24b6c8ca3b84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55076f1a21ac7cc5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-shutdown-all.test.js:10"}, "properties": {"repobilityId": "a70b1720314e7b03", "scanner": "scanner-primary", "fingerprint": "55076f1a21ac7cc5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a584a110f7a333b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-durable-marker.test.js:58"}, "properties": {"repobilityId": "9b4a4b7242f4465d", "scanner": "scanner-primary", "fingerprint": "3a584a110f7a333b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d3c8d375dcc945b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-cwd-transform.test.js:113"}, "properties": {"repobilityId": "9dc51a3cd9be3880", "scanner": "scanner-primary", "fingerprint": "6d3c8d375dcc945b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89b80d8c7c1e89c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-runtime.test.js:68"}, "properties": {"repobilityId": "8208ccf393a0e040", "scanner": "scanner-primary", "fingerprint": "89b80d8c7c1e89c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a3fd18f09a39429", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/msys-pid-bug.test.js:76"}, "properties": {"repobilityId": "b4e99bdff0b05c99", "scanner": "scanner-primary", "fingerprint": "9a3fd18f09a39429", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0253b353da0633fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-session-acp.test.js:35"}, "properties": {"repobilityId": "56a3d97771bb7803", "scanner": "scanner-primary", "fingerprint": "0253b353da0633fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b27f37e8a9b08f69", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/compact-mode-contract.test.js:22"}, "properties": {"repobilityId": "757d9d698a801ab1", "scanner": "scanner-primary", "fingerprint": "b27f37e8a9b08f69", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6abb168d1bf44a05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-console-prompts.test.js:165"}, "properties": {"repobilityId": "2e7f47f7d2ca3d8d", "scanner": "scanner-primary", "fingerprint": "6abb168d1bf44a05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-215d6cbce8a906d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/console-working-pulse.test.js:38"}, "properties": {"repobilityId": "44cb8d0fc88793e2", "scanner": "scanner-primary", "fingerprint": "215d6cbce8a906d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3b1895313e1748d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/claude-channel-marker-binding.test.js:47"}, "properties": {"repobilityId": "f6f12a41d9b0ca13", "scanner": "scanner-primary", "fingerprint": "e3b1895313e1748d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5664c527038ca288", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/environment-runtimes.test.js:30"}, "properties": {"repobilityId": "f26446704530265c", "scanner": "scanner-primary", "fingerprint": "5664c527038ca288", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43fdd08f24fdc3a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/comms-contracts-defaults.test.js:23"}, "properties": {"repobilityId": "1a77c41d36461fd5", "scanner": "scanner-primary", "fingerprint": "43fdd08f24fdc3a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f2238eff56aa36b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-thread-import.test.js:66"}, "properties": {"repobilityId": "dae5c7db05c00f1d", "scanner": "scanner-primary", "fingerprint": "9f2238eff56aa36b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e703daa6963fc7a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/reap-managed-survivors.test.js:262"}, "properties": {"repobilityId": "4b41d055efe81adb", "scanner": "scanner-primary", "fingerprint": "e703daa6963fc7a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-77cc9a0ff2bd165e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/pi-session-terminal.test.js:208"}, "properties": {"repobilityId": "bf328fa459225b52", "scanner": "scanner-primary", "fingerprint": "77cc9a0ff2bd165e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-527aec2e0634a330", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-runtime-fatal-log.test.js:19"}, "properties": {"repobilityId": "5b090a461998bbd9", "scanner": "scanner-primary", "fingerprint": "527aec2e0634a330", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-113b7fb877f50527", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/process-tree.test.js:28"}, "properties": {"repobilityId": "7e5ae8ba954e59f1", "scanner": "scanner-primary", "fingerprint": "113b7fb877f50527", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-38b202b6ef78487b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-resume-failure.test.js:102"}, "properties": {"repobilityId": "d559dc25393f2bb6", "scanner": "scanner-primary", "fingerprint": "38b202b6ef78487b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a8cf07acb2cd27e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/runtime-state.test.js:41"}, "properties": {"repobilityId": "ac4d6b2394c2b3b0", "scanner": "scanner-primary", "fingerprint": "a8cf07acb2cd27e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db56fecd9f9d3bd2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/hermes-register-fresh-handle.test.js:49"}, "properties": {"repobilityId": "d6e111bec24a1b71", "scanner": "scanner-primary", "fingerprint": "db56fecd9f9d3bd2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c5cb886843ac0bdc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/virtual-terminal-input.test.js:121"}, "properties": {"repobilityId": "0e86d21c139835a4", "scanner": "scanner-primary", "fingerprint": "c5cb886843ac0bdc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b757423d4686c84c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-shutdown-all.test.js:13"}, "properties": {"repobilityId": "2e2e93703eb62c02", "scanner": "scanner-primary", "fingerprint": "b757423d4686c84c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41bd440c01ab57ec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/server-shutdown-teardown.test.js:76"}, "properties": {"repobilityId": "aa740825f8147a6d", "scanner": "scanner-primary", "fingerprint": "41bd440c01ab57ec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7513cb8937d19ed9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-session.test.js:35"}, "properties": {"repobilityId": "d0fafda07a675715", "scanner": "scanner-primary", "fingerprint": "7513cb8937d19ed9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e10bfb78e15dd6c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/rpc-child-bridge-disabled.test.js:69"}, "properties": {"repobilityId": "e0c544a8dcbfc93e", "scanner": "scanner-primary", "fingerprint": "e10bfb78e15dd6c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32af43e09808eab9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime-auto-answer.test.js:72"}, "properties": {"repobilityId": "12810282476eb583", "scanner": "scanner-primary", "fingerprint": "32af43e09808eab9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dd76ce340d6f9bea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/terminal-runtime.test.js:242"}, "properties": {"repobilityId": "2ba6d010a55c76ec", "scanner": "scanner-primary", "fingerprint": "dd76ce340d6f9bea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32c20111a2762fa4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mcp/stdio/tests/codex-wrapper-stdin.test.js:51"}, "properties": {"repobilityId": "7c1f5c118a7a7b5b", "scanner": "scanner-primary", "fingerprint": "32c20111a2762fa4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4af875dc4eeba202", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "4af875dc4eeba202", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "install.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de3c1f217d72a063", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim"}, "properties": {"repobilityId": "1de0ecd007803dbd", "scanner": "scanner-primary", "fingerprint": "de3c1f217d72a063", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e2f1cddf8cbe14d3", "level": "error", "message": {"text": "Dockerfile pipes a remote installer into a shell"}, "properties": {"repobilityId": "9b1a77a6f42a4896", "scanner": "scanner-primary", "fingerprint": "e2f1cddf8cbe14d3", "layer": "hardware", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "docker", "remote-installer"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-be9d8027c6f6d1b0", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:356"}, "properties": {"repobilityId": "89ac336088b80512", "scanner": "scanner-primary", "fingerprint": "be9d8027c6f6d1b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py"}, "region": {"startLine": 356}}}]}, {"ruleId": "scanner-f892bd82b49f6234", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-host.js:37"}, "properties": {"repobilityId": "003d93c7dc2fe9f7", "scanner": "scanner-primary", "fingerprint": "f892bd82b49f6234", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/hermes-managed-host.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-947985a6af65eba5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-survivors.js:29"}, "properties": {"repobilityId": "c223e092f3f8ca03", "scanner": "scanner-primary", "fingerprint": "947985a6af65eba5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/reap-managed-survivors.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-8d3b184983352eef", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-daemon.js:21"}, "properties": {"repobilityId": "32d6f3d80b2eabff", "scanner": "scanner-primary", "fingerprint": "8d3b184983352eef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/hermes-daemon.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-1320024467accfdf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/reap-managed-claude.js:28"}, "properties": {"repobilityId": "5b912bc3736d98e0", "scanner": "scanner-primary", "fingerprint": "1320024467accfdf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/reap-managed-claude.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-f77c8b716b7d210a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/runtimes.js:1"}, "properties": {"repobilityId": "eb16cc3fc459a5fc", "scanner": "scanner-primary", "fingerprint": "f77c8b716b7d210a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/runtimes.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0e778c90479c857", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/server.js:18"}, "properties": {"repobilityId": "89dd7975424a135e", "scanner": "scanner-primary", "fingerprint": "b0e778c90479c857", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/server.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-1a3a908e69d72d6f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/terminal-runtime.js:1"}, "properties": {"repobilityId": "083c9db37bb31a18", "scanner": "scanner-primary", "fingerprint": "1a3a908e69d72d6f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/terminal-runtime.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a351d326cade734c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-managed-gateway-session.js:15"}, "properties": {"repobilityId": "8b4ee3d2f752ce8f", "scanner": "scanner-primary", "fingerprint": "a351d326cade734c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/hermes-managed-gateway-session.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-0beef922fc02700a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in mcp/stdio/hermes-session.js:12"}, "properties": {"repobilityId": "b9d2e2ae69585cde", "scanner": "scanner-primary", "fingerprint": "0beef922fc02700a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/hermes-session.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-7c5dd94077ca9489", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in service/dashboard.html:2266"}, "properties": {"repobilityId": "8aa03920e909e4c5", "scanner": "scanner-primary", "fingerprint": "7c5dd94077ca9489", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/dashboard.html"}, "region": {"startLine": 2266}}}]}, {"ruleId": "scanner-ebeea5d3d6dca42c", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in service/dashboard.html:5392"}, "properties": {"repobilityId": "30aa0d2c08cb1770", "scanner": "scanner-primary", "fingerprint": "ebeea5d3d6dca42c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/dashboard.html"}, "region": {"startLine": 5392}}}]}, {"ruleId": "scanner-d73b60e383183ac3", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in service/new_dashboard/app.test.mjs:25"}, "properties": {"repobilityId": "dd5480f9425483ae", "scanner": "scanner-primary", "fingerprint": "d73b60e383183ac3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/new_dashboard/app.test.mjs"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-607cdda395be9691", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in service/new_dashboard/app.js:399"}, "properties": {"repobilityId": "6683eca260501c33", "scanner": "scanner-primary", "fingerprint": "607cdda395be9691", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/new_dashboard/app.js"}, "region": {"startLine": 399}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-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-2ac4e73f0791e558", "level": "note", "message": {"text": "Very large file: install.sh (3958 lines)"}, "properties": {"repobilityId": "642d236e3dbb2bb8", "scanner": "scanner-primary", "fingerprint": "2ac4e73f0791e558", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49f2983fa0f7e38a", "level": "note", "message": {"text": "Very large file: mcp/stdio/hermes-managed-host.js (2667 lines)"}, "properties": {"repobilityId": "0e4f74d42dddc906", "scanner": "scanner-primary", "fingerprint": "49f2983fa0f7e38a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1db854a7e238cd8a", "level": "note", "message": {"text": "Very large file: mcp/stdio/runtimes.js (2173 lines)"}, "properties": {"repobilityId": "26bab51e1a22c621", "scanner": "scanner-primary", "fingerprint": "1db854a7e238cd8a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39a0a52f4766ae09", "level": "note", "message": {"text": "Very large file: mcp/stdio/server.js (5732 lines)"}, "properties": {"repobilityId": "83b0e914c8bbfb42", "scanner": "scanner-primary", "fingerprint": "39a0a52f4766ae09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fab99c011645a6b7", "level": "note", "message": {"text": "Very large file: mcp/stdio/tests/hermes-managed-host.test.js (2732 lines)"}, "properties": {"repobilityId": "6225e1e1d3038612", "scanner": "scanner-primary", "fingerprint": "fab99c011645a6b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-130389cf00876a18", "level": "note", "message": {"text": "Very large file: service/new_dashboard/app.js (2209 lines)"}, "properties": {"repobilityId": "1c5c7a32c198e9b0", "scanner": "scanner-primary", "fingerprint": "130389cf00876a18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b312cd48691f7b2c", "level": "note", "message": {"text": "Very large file: service/tests/test_api_v2_regressions.py (14616 lines)"}, "properties": {"repobilityId": "d2ce4d072c5291bd", "scanner": "scanner-primary", "fingerprint": "b312cd48691f7b2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ecbad2f5ba7852c", "level": "note", "message": {"text": "Very large file: service/routers/api_v2.py (20369 lines)"}, "properties": {"repobilityId": "6ea6956ec462dd1d", "scanner": "scanner-primary", "fingerprint": "0ecbad2f5ba7852c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "6be7550dd3144b39", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ae79ec4886d9ec02", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: mcp/stdio/package.json"}, "properties": {"repobilityId": "9b9987923eec63e1", "scanner": "scanner-primary", "fingerprint": "ae79ec4886d9ec02", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mcp/stdio/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b7c102188f3d8821", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "46cfc24428f9166e", "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": "a396231cf7a600b1", "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": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b45cf8b9dbb49435", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "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": "bdc44c2962b40352", "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": "323f1f15012b20ab", "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": "cfd8a2fd1afefc21", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-81df1d18a3ae686f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: config/workspace/AGENTS.md"}, "properties": {"repobilityId": "dc4fcca1a59add99", "scanner": "scanner-primary", "fingerprint": "81df1d18a3ae686f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/workspace/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a90288ea30acf4df", "level": "none", "message": {"text": "Commented-code block (9 lines) in integrations/openclaw/index.ts:109"}, "properties": {"repobilityId": "b6533bc7c8b401a7", "scanner": "scanner-primary", "fingerprint": "a90288ea30acf4df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0c135886dfd8877", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 integrations/openclaw/index.ts:47"}, "properties": {"repobilityId": "f5d47e284ad4c338", "scanner": "scanner-primary", "fingerprint": "f0c135886dfd8877", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59bc852c56d0f0b8", "level": "none", "message": {"text": "Commented-code block (9 lines) in integrations/hermes-aify-plugin/aify_hermes_plugin/patches.py:55"}, "properties": {"repobilityId": "cc3f42bb73b0f85f", "scanner": "scanner-primary", "fingerprint": "59bc852c56d0f0b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-054b48ea30161da3", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/sse_server.py:423"}, "properties": {"repobilityId": "eff94833e7a0cf07", "scanner": "scanner-primary", "fingerprint": "054b48ea30161da3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccf67a0f2f0a0379", "level": "none", "message": {"text": "Commented-code block (20 lines) in mcp/stdio/hermes-managed-host.js:4"}, "properties": {"repobilityId": "45608fd5c094c67a", "scanner": "scanner-primary", "fingerprint": "ccf67a0f2f0a0379", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce00d01f8937815d", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/hermes-loop-ready.js:4"}, "properties": {"repobilityId": "a0f8e2f621a8cb2e", "scanner": "scanner-primary", "fingerprint": "ce00d01f8937815d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a152e6fdd436f13", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/reap-managed-survivors.js:6"}, "properties": {"repobilityId": "f23d3f31d79fa871", "scanner": "scanner-primary", "fingerprint": "3a152e6fdd436f13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a7ed17c54345e76", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-channel.js:5"}, "properties": {"repobilityId": "379984c147215345", "scanner": "scanner-primary", "fingerprint": "8a7ed17c54345e76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e5a039cbc42a891", "level": "none", "message": {"text": "Commented-code block (16 lines) in mcp/stdio/claude-turn-end-detector.js:5"}, "properties": {"repobilityId": "ed4263ad9646cd32", "scanner": "scanner-primary", "fingerprint": "8e5a039cbc42a891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f06f066b2d939490", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/dispatch-execution.js:3"}, "properties": {"repobilityId": "d98ac5ca082e509f", "scanner": "scanner-primary", "fingerprint": "f06f066b2d939490", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4ff0033b138f2d60", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/dispatch-execution.js:2"}, "properties": {"repobilityId": "6ec023867ad71228", "scanner": "scanner-primary", "fingerprint": "4ff0033b138f2d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15598b3db6d93a58", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/turn-busy-heartbeat.js:1"}, "properties": {"repobilityId": "9ab6937c93f3ff17", "scanner": "scanner-primary", "fingerprint": "15598b3db6d93a58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9c7304964b22b1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/turn-busy-heartbeat.js:58"}, "properties": {"repobilityId": "13c8512c99c51630", "scanner": "scanner-primary", "fingerprint": "f9c7304964b22b1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0610cd786f14f091", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-daemon.js:5"}, "properties": {"repobilityId": "f3573c06cc3048f3", "scanner": "scanner-primary", "fingerprint": "0610cd786f14f091", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e3cc361edb05aa2", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/claude-session-store.js:5"}, "properties": {"repobilityId": "46f3314f0cc3f5b7", "scanner": "scanner-primary", "fingerprint": "9e3cc361edb05aa2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-115f61556de739ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/register-helpers.js:7"}, "properties": {"repobilityId": "d38077c91c5adb34", "scanner": "scanner-primary", "fingerprint": "115f61556de739ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab9684fbc5eef7b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/codex-errors.js:11"}, "properties": {"repobilityId": "97781a52303bcd8b", "scanner": "scanner-primary", "fingerprint": "ab9684fbc5eef7b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aedd21dbd710c033", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/claude-console-prompts.js:8"}, "properties": {"repobilityId": "d75db1230b5abd0d", "scanner": "scanner-primary", "fingerprint": "aedd21dbd710c033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8dcd97da9064bf1", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/hermes-acp-protocol.js:4"}, "properties": {"repobilityId": "6042634e5c69a3a7", "scanner": "scanner-primary", "fingerprint": "e8dcd97da9064bf1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb36a5977e120a5e", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/hermes-gateway-liveness.js:3"}, "properties": {"repobilityId": "b6c3cbff5ad0fcf6", "scanner": "scanner-primary", "fingerprint": "bb36a5977e120a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a93b63b1d7c263c", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/claude-session-hook.js:5"}, "properties": {"repobilityId": "a75733062965f24b", "scanner": "scanner-primary", "fingerprint": "2a93b63b1d7c263c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5bec4b79d6de4d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/reap-managed-claude.js:4"}, "properties": {"repobilityId": "8f0c8156d4eed11a", "scanner": "scanner-primary", "fingerprint": "f5bec4b79d6de4d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79ad7ec7dbd3db95", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/turn-end-detector.js:5"}, "properties": {"repobilityId": "3a83dbff59229358", "scanner": "scanner-primary", "fingerprint": "79ad7ec7dbd3db95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b524431575defd0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/codex-session.js:1"}, "properties": {"repobilityId": "9ac6d5ab5d8a3528", "scanner": "scanner-primary", "fingerprint": "b524431575defd0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bd48ed564bf3645", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/notify-check.js:84"}, "properties": {"repobilityId": "362e212db20e5703", "scanner": "scanner-primary", "fingerprint": "6bd48ed564bf3645", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f65ae0f38e59ef24", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/terminal-control.js:1"}, "properties": {"repobilityId": "1f9403d8e3e82b46", "scanner": "scanner-primary", "fingerprint": "f65ae0f38e59ef24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39d84cda696213a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/hermes-apiserver-client.js:32"}, "properties": {"repobilityId": "5473eee02bfa8cd4", "scanner": "scanner-primary", "fingerprint": "39d84cda696213a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0680cd1ee333264", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-endpoint.js:4"}, "properties": {"repobilityId": "324d232dae346ec1", "scanner": "scanner-primary", "fingerprint": "b0680cd1ee333264", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d360cc83fc7229", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/runtimes.js:56"}, "properties": {"repobilityId": "aa9830a080b78cf2", "scanner": "scanner-primary", "fingerprint": "35d360cc83fc7229", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f74c7ce67d34f94", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/transcript-activity.js:3"}, "properties": {"repobilityId": "28152d2894594d9f", "scanner": "scanner-primary", "fingerprint": "0f74c7ce67d34f94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-848374e0b007b04d", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/claude-console-spinner.js:1"}, "properties": {"repobilityId": "f702cd4eb46b8b22", "scanner": "scanner-primary", "fingerprint": "848374e0b007b04d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d5bdc3e1b6061c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/session-handle-heartbeat.js:1"}, "properties": {"repobilityId": "7712660a6cf9aa85", "scanner": "scanner-primary", "fingerprint": "0d5bdc3e1b6061c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5051b0c0c8386a55", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/claude-channel.js:274"}, "properties": {"repobilityId": "9a811d4cb0579bc9", "scanner": "scanner-primary", "fingerprint": "5051b0c0c8386a55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b9eec93e6ab3e1f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/claude-channel.js:64"}, "properties": {"repobilityId": "83d6884d69ce77bd", "scanner": "scanner-primary", "fingerprint": "b9eec93e6ab3e1f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90f538e8f7101afc", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-gateway-protocol.js:1"}, "properties": {"repobilityId": "2602583c5e1c046b", "scanner": "scanner-primary", "fingerprint": "90f538e8f7101afc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f402d51002a42ff6", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/server.js:768"}, "properties": {"repobilityId": "3c852171794b5907", "scanner": "scanner-primary", "fingerprint": "f402d51002a42ff6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d544193a1391016e", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/server.js:5"}, "properties": {"repobilityId": "ab80d573a6bbee5c", "scanner": "scanner-primary", "fingerprint": "d544193a1391016e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7a9358c8db8c767", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mcp/stdio/server.js:4967"}, "properties": {"repobilityId": "e3afdd38e89e36d2", "scanner": "scanner-primary", "fingerprint": "b7a9358c8db8c767", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46d8af2a511097c3", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/hermes-gateway-turn-detector.js:5"}, "properties": {"repobilityId": "397bdef89db17170", "scanner": "scanner-primary", "fingerprint": "46d8af2a511097c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77b453f057cb99c2", "level": "none", "message": {"text": "Commented-code block (10 lines) in mcp/stdio/hermes-turn-repulse.js:3"}, "properties": {"repobilityId": "13ad73bd60801755", "scanner": "scanner-primary", "fingerprint": "77b453f057cb99c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f9ad6d26da11ca6", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/wrapper-pool.js:3"}, "properties": {"repobilityId": "cf11acbda44866ae", "scanner": "scanner-primary", "fingerprint": "5f9ad6d26da11ca6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54f5a1d4bbc1ea85", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/terminal-runtime.js:9"}, "properties": {"repobilityId": "95b7177cafc1ba2e", "scanner": "scanner-primary", "fingerprint": "54f5a1d4bbc1ea85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-264ee21e17dd9c71", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/virtual-terminal-input.js:3"}, "properties": {"repobilityId": "7defee6150c76b07", "scanner": "scanner-primary", "fingerprint": "264ee21e17dd9c71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a976c7e01094fc6f", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/dead-pty-reporter.js:4"}, "properties": {"repobilityId": "9322a566ea3981b1", "scanner": "scanner-primary", "fingerprint": "a976c7e01094fc6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7de4758aacff812b", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/runtimes-helpers.js:3"}, "properties": {"repobilityId": "5006a817138993ab", "scanner": "scanner-primary", "fingerprint": "7de4758aacff812b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05f1e0a054b045d9", "level": "none", "message": {"text": "Commented-code block (11 lines) in mcp/stdio/pi-session.js:145"}, "properties": {"repobilityId": "49154b43dde62303", "scanner": "scanner-primary", "fingerprint": "05f1e0a054b045d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-608ec333d13b9df6", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/hermes-version.js:4"}, "properties": {"repobilityId": "00866d4414462b69", "scanner": "scanner-primary", "fingerprint": "608ec333d13b9df6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f68d0b540379042", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-managed-gateway-session.js:1"}, "properties": {"repobilityId": "8386e48b112e4637", "scanner": "scanner-primary", "fingerprint": "0f68d0b540379042", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-875772eae63f29fa", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/hermes-daemon-cli.js:9"}, "properties": {"repobilityId": "efe0062d19f888a0", "scanner": "scanner-primary", "fingerprint": "875772eae63f29fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d11e696a86d9b80b", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/hermes-session.js:1"}, "properties": {"repobilityId": "cf7f2c3e9c248796", "scanner": "scanner-primary", "fingerprint": "d11e696a86d9b80b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4788276b7dda6b5b", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/adapters/claude.js:27"}, "properties": {"repobilityId": "ab9a4971360662c5", "scanner": "scanner-primary", "fingerprint": "4788276b7dda6b5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2e99020b2826b6e", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/pi.js:26"}, "properties": {"repobilityId": "beeb98f270244ef7", "scanner": "scanner-primary", "fingerprint": "f2e99020b2826b6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-724baa41d8db0c4c", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/adapters/opencode.js:19"}, "properties": {"repobilityId": "a1447f2f904460fc", "scanner": "scanner-primary", "fingerprint": "724baa41d8db0c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eab8fd1b7b2868e", "level": "none", "message": {"text": "Commented-code block (12 lines) in mcp/stdio/adapters/codex.js:24"}, "properties": {"repobilityId": "5034739ef6e5ef87", "scanner": "scanner-primary", "fingerprint": "3eab8fd1b7b2868e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d9feac30cdb6da1", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/adapters/base.js:114"}, "properties": {"repobilityId": "adfa04acba75b4b7", "scanner": "scanner-primary", "fingerprint": "2d9feac30cdb6da1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea46b7732ad5ed96", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/adapters/base.js:1"}, "properties": {"repobilityId": "67482482296f10f1", "scanner": "scanner-primary", "fingerprint": "ea46b7732ad5ed96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0af195286d5fa908", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/hermes.js:11"}, "properties": {"repobilityId": "32a35ca59b3bd2de", "scanner": "scanner-primary", "fingerprint": "0af195286d5fa908", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c3d0cf75dc2c2e4", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/adapters/index.js:7"}, "properties": {"repobilityId": "07f5182bc8a20b23", "scanner": "scanner-primary", "fingerprint": "3c3d0cf75dc2c2e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-037730be586e8fd8", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/auto-register-discover-priority.test.js:1"}, "properties": {"repobilityId": "07b46f8c57d56088", "scanner": "scanner-primary", "fingerprint": "037730be586e8fd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919d62a2ec06166a", "level": "note", "message": {"text": "Legacy-named symbol `createPiControllerLegacy` in mcp/stdio/tests/pi-runtime.test.js:485"}, "properties": {"repobilityId": "527e549534f56fa5", "scanner": "scanner-primary", "fingerprint": "919d62a2ec06166a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-63707ad20fd268e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/pi-runtime.test.js:28"}, "properties": {"repobilityId": "a82aa65422e5f949", "scanner": "scanner-primary", "fingerprint": "63707ad20fd268e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e640d148f64c66b", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-resume-survives-restart.test.js:2"}, "properties": {"repobilityId": "1e57986e7a5e9abc", "scanner": "scanner-primary", "fingerprint": "2e640d148f64c66b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da87e334654837a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-codex-config.test.js:28"}, "properties": {"repobilityId": "fecf75595f86ce1e", "scanner": "scanner-primary", "fingerprint": "da87e334654837a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e65d07d88e59343b", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/adapter-resume-contract.test.js:2"}, "properties": {"repobilityId": "90b612dacc887496", "scanner": "scanner-primary", "fingerprint": "e65d07d88e59343b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-591e81e1571598d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-channel-feedback-loop.test.js:2"}, "properties": {"repobilityId": "526218598375379d", "scanner": "scanner-primary", "fingerprint": "591e81e1571598d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49e5df9b7e3a378d", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-message-prompts.test.js:19"}, "properties": {"repobilityId": "ea8c48ba447ea791", "scanner": "scanner-primary", "fingerprint": "49e5df9b7e3a378d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83edd20e40a6ccfe", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/resident-hermes-turn-detector.test.js:4"}, "properties": {"repobilityId": "c428ffa0819ba354", "scanner": "scanner-primary", "fingerprint": "83edd20e40a6ccfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3889e70fe4af0406", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:32"}, "properties": {"repobilityId": "98bbcb81739aadd5", "scanner": "scanner-primary", "fingerprint": "3889e70fe4af0406", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3e48116facb17e53", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/virtual-rpc-runtimes-sync.test.js:2"}, "properties": {"repobilityId": "934d5ca91fe7060f", "scanner": "scanner-primary", "fingerprint": "3e48116facb17e53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad772878ca4acfd1", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-native-capabilities.test.js:9"}, "properties": {"repobilityId": "3f9abdaf8d045bb2", "scanner": "scanner-primary", "fingerprint": "ad772878ca4acfd1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b0131a2bce78f0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/managed-native-capabilities.test.js:5"}, "properties": {"repobilityId": "395b93cdc5d92888", "scanner": "scanner-primary", "fingerprint": "9b0131a2bce78f0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43902619154ec47c", "level": "none", "message": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/server-boot-reap.test.js:9"}, "properties": {"repobilityId": "2a3259466390d650", "scanner": "scanner-primary", "fingerprint": "43902619154ec47c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-574ea22baf4b61f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution.test.js:28"}, "properties": {"repobilityId": "04041d0a1934f7a4", "scanner": "scanner-primary", "fingerprint": "574ea22baf4b61f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f20b2835b360863e", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/codex-aify-fallback.test.js:1"}, "properties": {"repobilityId": "f76922d6c8a00036", "scanner": "scanner-primary", "fingerprint": "f20b2835b360863e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f5637ac2e09a056", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-transcript-tail.test.js:2"}, "properties": {"repobilityId": "8e44d837aef381c8", "scanner": "scanner-primary", "fingerprint": "6f5637ac2e09a056", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c2ef237457ed0c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/notify-check-no-turnbusy.test.js:7"}, "properties": {"repobilityId": "edb4511d0c89d46b", "scanner": "scanner-primary", "fingerprint": "5c2ef237457ed0c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39c3118a0bf01b41", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-turn-detector.test.js:16"}, "properties": {"repobilityId": "a85e685ef765fd73", "scanner": "scanner-primary", "fingerprint": "39c3118a0bf01b41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26426ec8a7e677ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/channel-bridge-id.test.js:1"}, "properties": {"repobilityId": "00f24edbed108b2a", "scanner": "scanner-primary", "fingerprint": "26426ec8a7e677ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-072e14d662da34dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/install-claude-strict-mcp.test.js:1"}, "properties": {"repobilityId": "0152445d3463f7bf", "scanner": "scanner-primary", "fingerprint": "072e14d662da34dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74862ef245da1866", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/claude-print-disabled.test.js:31"}, "properties": {"repobilityId": "ab5acdc701b05f91", "scanner": "scanner-primary", "fingerprint": "74862ef245da1866", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a447c7c36c15298", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/turn-end-detector.test.js:2"}, "properties": {"repobilityId": "ae7fe9d66d73bdff", "scanner": "scanner-primary", "fingerprint": "5a447c7c36c15298", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f88767f98f711591", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/managed-via-wrapper-routing.test.js:2"}, "properties": {"repobilityId": "0b74f70734b57ba6", "scanner": "scanner-primary", "fingerprint": "f88767f98f711591", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42d5c39d914437bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-adapter.test.js:4"}, "properties": {"repobilityId": "323f41b77afd0acb", "scanner": "scanner-primary", "fingerprint": "42d5c39d914437bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-192df63c0f512cac", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/adapter-register-payload.test.js:30"}, "properties": {"repobilityId": "243178eb36502fd6", "scanner": "scanner-primary", "fingerprint": "192df63c0f512cac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6ccbe1d9ca3ec89", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/hermes-acp-protocol.test.js:2"}, "properties": {"repobilityId": "3034dc6e2e15e170", "scanner": "scanner-primary", "fingerprint": "a6ccbe1d9ca3ec89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d1f20f716ce9038", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/session-fixes.test.js:322"}, "properties": {"repobilityId": "70167c8333ae8525", "scanner": "scanner-primary", "fingerprint": "5d1f20f716ce9038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-322a619b7aec67f9", "level": "none", "message": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-managed-host.test.js:4"}, "properties": {"repobilityId": "65371a73435c5920", "scanner": "scanner-primary", "fingerprint": "322a619b7aec67f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc93a599a68e11b7", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/managed-channel-delivery.test.js:4"}, "properties": {"repobilityId": "2cfd3e108bb6fec4", "scanner": "scanner-primary", "fingerprint": "cc93a599a68e11b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6367d06aba28c428", "level": "none", "message": {"text": "Commented-code block (11 lines) in mcp/stdio/tests/managed-channel-delivery.test.js:4"}, "properties": {"repobilityId": "c839ae87a554edcf", "scanner": "scanner-primary", "fingerprint": "6367d06aba28c428", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32ca0dfd3b670f6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/resident-clean-exit-lost.test.js:5"}, "properties": {"repobilityId": "df3cbd80ac25f012", "scanner": "scanner-primary", "fingerprint": "32ca0dfd3b670f6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ff9e1c565a32e91", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/terminal-runtime-console-keepalive.test.js:114"}, "properties": {"repobilityId": "86e30efee643becb", "scanner": "scanner-primary", "fingerprint": "3ff9e1c565a32e91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32ef344607ebc9ec", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-stop-triad-teardown.test.js:2"}, "properties": {"repobilityId": "cc22152a3199cb0d", "scanner": "scanner-primary", "fingerprint": "32ef344607ebc9ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fcd66e138f90037", "level": "none", "message": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/hermes-wrapper-determinism.test.js:5"}, "properties": {"repobilityId": "6ffcb29e6f23f2b5", "scanner": "scanner-primary", "fingerprint": "5fcd66e138f90037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cc30b034ebfe411", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in mcp/stdio/tests/native-managed-sync.test.js:5"}, "properties": {"repobilityId": "658c044efa0cc20a", "scanner": "scanner-primary", "fingerprint": "2cc30b034ebfe411", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-472d52c1f2bd1f70", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/native-managed-sync.test.js:2"}, "properties": {"repobilityId": "a6ffdc4ed9c29bc0", "scanner": "scanner-primary", "fingerprint": "472d52c1f2bd1f70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-465a2795cf193d3e", "level": "none", "message": {"text": "Commented-code block (13 lines) in mcp/stdio/tests/codex-wrapper-determinism.test.js:5"}, "properties": {"repobilityId": "4d5becd67a4461d3", "scanner": "scanner-primary", "fingerprint": "465a2795cf193d3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e09417610bedf0b0", "level": "note", "message": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/codex-resident-dispatch.test.js:2"}, "properties": {"repobilityId": "713e9ebf4b295103", "scanner": "scanner-primary", "fingerprint": "e09417610bedf0b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b7096142c6bb55e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-loop-ready.test.js:5"}, "properties": {"repobilityId": "c6dd6f6902e72390", "scanner": "scanner-primary", "fingerprint": "b7096142c6bb55e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f71facd428bb3ec7", "level": "none", "message": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/codex-cwd-transform.test.js:5"}, "properties": {"repobilityId": "2881a5a9d1dc265f", "scanner": "scanner-primary", "fingerprint": "f71facd428bb3ec7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c11c9c64f87eda42", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-version.test.js:2"}, "properties": {"repobilityId": "fba498623f7b2f2f", "scanner": "scanner-primary", "fingerprint": "c11c9c64f87eda42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c2e99d87964b086", "level": "none", "message": {"text": "Commented-code block (10 lines) in mcp/stdio/tests/msys-pid-bug.test.js:4"}, "properties": {"repobilityId": "b6f46296829b6760", "scanner": "scanner-primary", "fingerprint": "3c2e99d87964b086", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b59f5837a750dec", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-session-acp.test.js:4"}, "properties": {"repobilityId": "d1aa5181984d4eaf", "scanner": "scanner-primary", "fingerprint": "1b59f5837a750dec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bac2d380c7a43bce", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/claude-console-prompts.test.js:110"}, "properties": {"repobilityId": "36c0d8304d437311", "scanner": "scanner-primary", "fingerprint": "bac2d380c7a43bce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b0549dd14e2269a", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/claude-turn-end-loop.test.js:5"}, "properties": {"repobilityId": "6d25b8809c876382", "scanner": "scanner-primary", "fingerprint": "0b0549dd14e2269a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9c9f6e3a2865d16", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/session-handle-heartbeat-priority.test.js:1"}, "properties": {"repobilityId": "56132e2de6bebc7a", "scanner": "scanner-primary", "fingerprint": "f9c9f6e3a2865d16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89d122da254fefc7", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/hermes-gateway-port.test.js:1"}, "properties": {"repobilityId": "47043db8c16f8988", "scanner": "scanner-primary", "fingerprint": "89d122da254fefc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-239832e88e23f037", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-endpoint.test.js:112"}, "properties": {"repobilityId": "73dc1f5c776998d8", "scanner": "scanner-primary", "fingerprint": "239832e88e23f037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dc4586281ec1248", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/adapter-contract-symmetry.test.js:4"}, "properties": {"repobilityId": "3828887c00bb1a6b", "scanner": "scanner-primary", "fingerprint": "2dc4586281ec1248", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-332e42b5e6a0e1ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/reap-managed-survivors.test.js:189"}, "properties": {"repobilityId": "c42dfa497c7875a7", "scanner": "scanner-primary", "fingerprint": "332e42b5e6a0e1ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bb607873f024f4c", "level": "note", "message": {"text": "Legacy-named symbol `20260603_090000_old` in mcp/stdio/tests/hermes-gateway-protocol.test.js:243"}, "properties": {"repobilityId": "f80fb50bd471f113", "scanner": "scanner-primary", "fingerprint": "0bb607873f024f4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-27d3e8f34cb37457", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/hermes-gateway-protocol.test.js:143"}, "properties": {"repobilityId": "5c061761c0bdfac4", "scanner": "scanner-primary", "fingerprint": "27d3e8f34cb37457", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e31704c9e4a06d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/codex-runtime-fatal-log.test.js:10"}, "properties": {"repobilityId": "eba18b2a590d0d6e", "scanner": "scanner-primary", "fingerprint": "3e31704c9e4a06d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-841cc8cc41cf7056", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/machine-id-casing.test.js:1"}, "properties": {"repobilityId": "6b15dbee698df22a", "scanner": "scanner-primary", "fingerprint": "841cc8cc41cf7056", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b12b7136714b400", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/server-shutdown-teardown.test.js:52"}, "properties": {"repobilityId": "ccc946774d0bc5aa", "scanner": "scanner-primary", "fingerprint": "4b12b7136714b400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c26d6c8065dbbe1d", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/tests/codex-session.test.js:148"}, "properties": {"repobilityId": "3c2afba9e8bd22e2", "scanner": "scanner-primary", "fingerprint": "c26d6c8065dbbe1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5e81d90fe93c29b", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/rpc-child-bridge-disabled.test.js:2"}, "properties": {"repobilityId": "3b6dee2d3385376f", "scanner": "scanner-primary", "fingerprint": "e5e81d90fe93c29b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-036dc97e282096a6", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/hermes-channel.test.js:4"}, "properties": {"repobilityId": "76b0e42d0ed16d70", "scanner": "scanner-primary", "fingerprint": "036dc97e282096a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-897aa95e45886405", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/terminal-runtime.test.js:14"}, "properties": {"repobilityId": "4f524256452777eb", "scanner": "scanner-primary", "fingerprint": "897aa95e45886405", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1b4c268e9461f23", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/tests/dispatch-execution-channel-claim.test.js:60"}, "properties": {"repobilityId": "887f0be5d2e31952", "scanner": "scanner-primary", "fingerprint": "a1b4c268e9461f23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9fc684a146d5ed9", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/tests/adapters/claude.test.js:64"}, "properties": {"repobilityId": "10b5de57ff981f09", "scanner": "scanner-primary", "fingerprint": "b9fc684a146d5ed9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14e9dbb63c87a668", "level": "note", "message": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs:6"}, "properties": {"repobilityId": "043caefc777e208d", "scanner": "scanner-primary", "fingerprint": "14e9dbb63c87a668", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f47c1dba64595c7f", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/tests/fixtures/fake-codex-app-server.mjs:10"}, "properties": {"repobilityId": "a117fef0afef14a9", "scanner": "scanner-primary", "fingerprint": "f47c1dba64595c7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63a6794e7272fc42", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-acp.mjs:6"}, "properties": {"repobilityId": "85192d93057425c9", "scanner": "scanner-primary", "fingerprint": "63a6794e7272fc42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be61f82c01b08498", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/tests/fixtures/fake-hermes-apiserver.mjs:6"}, "properties": {"repobilityId": "77fbb64588861b82", "scanner": "scanner-primary", "fingerprint": "be61f82c01b08498", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3af4d4090400338f", "level": "none", "message": {"text": "Commented-code block (9 lines) in mcp/stdio/scripts/dump-capabilities.mjs:7"}, "properties": {"repobilityId": "e034ce6cdca32d32", "scanner": "scanner-primary", "fingerprint": "3af4d4090400338f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c46039d01ca2ba7a", "level": "none", "message": {"text": "Commented-code block (6 lines) in mcp/stdio/controllers/hermes-managed-controller.js:4"}, "properties": {"repobilityId": "47ba76f3bcad3d07", "scanner": "scanner-primary", "fingerprint": "c46039d01ca2ba7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceeaed49ea426d68", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/controllers/base-controller.js:44"}, "properties": {"repobilityId": "487c8f334b5541ce", "scanner": "scanner-primary", "fingerprint": "ceeaed49ea426d68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13a6d3b745f4a5e6", "level": "note", "message": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-helpers.js:1"}, "properties": {"repobilityId": "cee59a4cdfec82ec", "scanner": "scanner-primary", "fingerprint": "13a6d3b745f4a5e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d085dceb8d27bf38", "level": "none", "message": {"text": "Commented-code block (8 lines) in mcp/stdio/controllers/codex-controller.js:5"}, "properties": {"repobilityId": "b047f962ac2496dc", "scanner": "scanner-primary", "fingerprint": "d085dceb8d27bf38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fee48055551954e", "level": "none", "message": {"text": "Commented-code block (15 lines) in mcp/stdio/controllers/hermes-controller.js:5"}, "properties": {"repobilityId": "ea13228a30c6570c", "scanner": "scanner-primary", "fingerprint": "4fee48055551954e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ca3441f70579529", "level": "none", "message": {"text": "Commented-code block (7 lines) in mcp/stdio/controllers/claude-controller.js:4"}, "properties": {"repobilityId": "67bc5b5dbc5ba4ea", "scanner": "scanner-primary", "fingerprint": "8ca3441f70579529", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d3ead5ed4040979", "level": "note", "message": {"text": "Legacy-named symbol `createCodexControllerLegacy` in mcp/stdio/controllers/codex-legacy-controller.js:1"}, "properties": {"repobilityId": "9fa3e137412abeda", "scanner": "scanner-primary", "fingerprint": "0d3ead5ed4040979", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cf21c0d455ffdac4", "level": "none", "message": {"text": "Commented-code block (5 lines) in mcp/stdio/controllers/codex-legacy-controller.js:6"}, "properties": {"repobilityId": "499d80f01edbb874", "scanner": "scanner-primary", "fingerprint": "cf21c0d455ffdac4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e94ff69cfcde6f3", "level": "note", "message": {"text": "Legacy-named symbol `import_v2` in service/import_v2.py:5"}, "properties": {"repobilityId": "15a1002492cd3f74", "scanner": "scanner-primary", "fingerprint": "5e94ff69cfcde6f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-96155b2f8cd315da", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/db.py:618"}, "properties": {"repobilityId": "cdda82297d0e7c41", "scanner": "scanner-primary", "fingerprint": "96155b2f8cd315da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6df5f46361c25852", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/db.py:454"}, "properties": {"repobilityId": "233bf4f5c65257f5", "scanner": "scanner-primary", "fingerprint": "6df5f46361c25852", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd7cc545ee672d70", "level": "none", "message": {"text": "Commented-code block (7 lines) in service/models.py:53"}, "properties": {"repobilityId": "74987563192dcc7b", "scanner": "scanner-primary", "fingerprint": "bd7cc545ee672d70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01cc43cf80a526bf", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/status_engine.py:7"}, "properties": {"repobilityId": "6b06c4b58de83727", "scanner": "scanner-primary", "fingerprint": "01cc43cf80a526bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e1aaa739875e3c9", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/main.py:20"}, "properties": {"repobilityId": "bed121bd95788c51", "scanner": "scanner-primary", "fingerprint": "1e1aaa739875e3c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a98283812e0586d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/main.py:106"}, "properties": {"repobilityId": "50b3390a54a1757c", "scanner": "scanner-primary", "fingerprint": "a98283812e0586d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89886efe8a0fb778", "level": "note", "message": {"text": "Legacy-named symbol `export_v1` in service/export_v1.py:5"}, "properties": {"repobilityId": "c76105bdec2f86c8", "scanner": "scanner-primary", "fingerprint": "89886efe8a0fb778", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7b7dd56e0074398", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/new_dashboard/app.test.mjs:197"}, "properties": {"repobilityId": "20d6598a2f7cc4bc", "scanner": "scanner-primary", "fingerprint": "f7b7dd56e0074398", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-87fbf9b92a2cb9cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/new_dashboard/app.test.mjs:196"}, "properties": {"repobilityId": "358a71731b33989c", "scanner": "scanner-primary", "fingerprint": "87fbf9b92a2cb9cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1a2cf2f2ad54b90", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/new_dashboard/app.js:795"}, "properties": {"repobilityId": "555f2593fd6f4a9b", "scanner": "scanner-primary", "fingerprint": "c1a2cf2f2ad54b90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-060f92b5a20c6594", "level": "none", "message": {"text": "Commented-code block (8 lines) in service/new_dashboard/app.js:767"}, "properties": {"repobilityId": "c6d6cfb834b99bc0", "scanner": "scanner-primary", "fingerprint": "060f92b5a20c6594", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bf7f2c5aad52102", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 service/new_dashboard/app.js:186"}, "properties": {"repobilityId": "9a21fd56685230e9", "scanner": "scanner-primary", "fingerprint": "6bf7f2c5aad52102", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-914bf99172fdf17d", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_synth_terminal_deprecation.py:15"}, "properties": {"repobilityId": "3c01afed58fc22b1", "scanner": "scanner-primary", "fingerprint": "914bf99172fdf17d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7881a3d12acf16ef", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_managed_via_wrapper_adapter.py:14"}, "properties": {"repobilityId": "5d644709faab17b9", "scanner": "scanner-primary", "fingerprint": "7881a3d12acf16ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c8c191da79d5a1c3", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_reply_reminders.py:29"}, "properties": {"repobilityId": "2c1d489079a6f2c3", "scanner": "scanner-primary", "fingerprint": "c8c191da79d5a1c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-de47dc8b215c025a", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_lifecycle_phase7.py:14"}, "properties": {"repobilityId": "704fe30fa16ae2c7", "scanner": "scanner-primary", "fingerprint": "de47dc8b215c025a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9a4029668c2c5630", "level": "none", "message": {"text": "Commented-code block (7 lines) in service/tests/test_lifecycle_phase7.py:157"}, "properties": {"repobilityId": "f8084c8f776f2e67", "scanner": "scanner-primary", "fingerprint": "9a4029668c2c5630", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c433fe1128f1b8f", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_gate_restored.py:16"}, "properties": {"repobilityId": "25c151f64a4c4af9", "scanner": "scanner-primary", "fingerprint": "4c433fe1128f1b8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a008fe31c8c521e4", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/_base.py:37"}, "properties": {"repobilityId": "163718c49d114077", "scanner": "scanner-primary", "fingerprint": "a008fe31c8c521e4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e5fb759b483827c", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_status_taxonomy.py:13"}, "properties": {"repobilityId": "b70ce17dc5a8ce25", "scanner": "scanner-primary", "fingerprint": "9e5fb759b483827c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6578c92800ed285a", "level": "none", "message": {"text": "Commented-code block (6 lines) in service/tests/test_install_hermes_session_rediscover.py:22"}, "properties": {"repobilityId": "37d1d8a17ff8b411", "scanner": "scanner-primary", "fingerprint": "6578c92800ed285a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd6b0e5722f25c59", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_machine_id_casing.py:21"}, "properties": {"repobilityId": "bd1004c62faae3a1", "scanner": "scanner-primary", "fingerprint": "bd6b0e5722f25c59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a87ae4f5d7f2453", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_pi_resident_flip.py:24"}, "properties": {"repobilityId": "790537d50c60ce9f", "scanner": "scanner-primary", "fingerprint": "3a87ae4f5d7f2453", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c5041bc25f8fb825", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_session_identity_sticky.py:32"}, "properties": {"repobilityId": "adc18afca733d639", "scanner": "scanner-primary", "fingerprint": "c5041bc25f8fb825", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-740776c263ee5ba6", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_session_identity_sticky.py:128"}, "properties": {"repobilityId": "061360531715db9f", "scanner": "scanner-primary", "fingerprint": "740776c263ee5ba6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc92bdef76808232", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_session_mode_fsm.py:31"}, "properties": {"repobilityId": "db6b15773a2e0d7f", "scanner": "scanner-primary", "fingerprint": "bc92bdef76808232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-62faf445dcad1743", "level": "none", "message": {"text": "Commented-code block (9 lines) in service/tests/test_session_mode_fsm.py:199"}, "properties": {"repobilityId": "b8652328b51c7d95", "scanner": "scanner-primary", "fingerprint": "62faf445dcad1743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6178d0ccbf549f5f", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_registration_session.py:11"}, "properties": {"repobilityId": "f94be2b56f022e6b", "scanner": "scanner-primary", "fingerprint": "6178d0ccbf549f5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-371a2455d7bbfad8", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_native_managed_runtimes_parity.py:2"}, "properties": {"repobilityId": "7925284d6c357538", "scanner": "scanner-primary", "fingerprint": "371a2455d7bbfad8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9de863497051bcc7", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_prune_terminal_controls.py:14"}, "properties": {"repobilityId": "a972e08e887aca80", "scanner": "scanner-primary", "fingerprint": "9de863497051bcc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e5b6facd5eac69df", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_rate_limit_sender_notice.py:8"}, "properties": {"repobilityId": "d34b598678bb8800", "scanner": "scanner-primary", "fingerprint": "e5b6facd5eac69df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-956baa0d346d5727", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_reply_bypasses_live_gate.py:18"}, "properties": {"repobilityId": "7a2cfe2ab292adf2", "scanner": "scanner-primary", "fingerprint": "956baa0d346d5727", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7987a6b567ef14a7", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_console_working_lease.py:7"}, "properties": {"repobilityId": "7be74521371e06d2", "scanner": "scanner-primary", "fingerprint": "7987a6b567ef14a7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1536c725d0e9f572", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_console_working_lease.py:44"}, "properties": {"repobilityId": "562373be1760b63e", "scanner": "scanner-primary", "fingerprint": "1536c725d0e9f572", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e61fe88fca8a0c8", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_agent_status_read_gate.py:35"}, "properties": {"repobilityId": "c3ff380761427099", "scanner": "scanner-primary", "fingerprint": "3e61fe88fca8a0c8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a2b8b8f412932de2", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_api_v2_regressions.py:17"}, "properties": {"repobilityId": "4cd4a5b3ee73070a", "scanner": "scanner-primary", "fingerprint": "a2b8b8f412932de2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a2e3c7465f4f8d8", "level": "none", "message": {"text": "Commented-code block (8 lines) in service/tests/test_api_v2_regressions.py:28"}, "properties": {"repobilityId": "d39d2915272ba1c9", "scanner": "scanner-primary", "fingerprint": "6a2e3c7465f4f8d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e5d9887039012e1", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_registration_live_state_invalidation.py:20"}, "properties": {"repobilityId": "96a7d8f8d92fd08b", "scanner": "scanner-primary", "fingerprint": "4e5d9887039012e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4895b42c50940e5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_install_hermes_prebuild.py:135"}, "properties": {"repobilityId": "70ada2b97b2e7e17", "scanner": "scanner-primary", "fingerprint": "4895b42c50940e5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc189e857e2be559", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_remove_triad_reap.py:20"}, "properties": {"repobilityId": "444dbe2ecc74defd", "scanner": "scanner-primary", "fingerprint": "cc189e857e2be559", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dab064b4b1fb4241", "level": "none", "message": {"text": "Commented-code block (7 lines) in service/tests/test_hermes_remove_triad_reap.py:148"}, "properties": {"repobilityId": "a422a8d47a466e78", "scanner": "scanner-primary", "fingerprint": "dab064b4b1fb4241", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-084ea4d2de6d5549", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resident_bridge_liveness.py:16"}, "properties": {"repobilityId": "4105a7562e2116be", "scanner": "scanner-primary", "fingerprint": "084ea4d2de6d5549", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d2107057cbb142f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_new_dashboard_session_mode_switch.py:116"}, "properties": {"repobilityId": "4b027aa54a7a57ca", "scanner": "scanner-primary", "fingerprint": "d2107057cbb142f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37918b15b7b4628b", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_resurrect_managed_console.py:15"}, "properties": {"repobilityId": "5ec6ef58e4c78333", "scanner": "scanner-primary", "fingerprint": "37918b15b7b4628b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f2199f51b7ed61e2", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_terminal_awaiting_input_hint.py:11"}, "properties": {"repobilityId": "2fd838e1cdfd1252", "scanner": "scanner-primary", "fingerprint": "f2199f51b7ed61e2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-78eb2afcfb6ec753", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_claimer_lease.py:32"}, "properties": {"repobilityId": "73edf5e51df7184e", "scanner": "scanner-primary", "fingerprint": "78eb2afcfb6ec753", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b5c75fbf122265ec", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_agent_session_mode_switch.py:32"}, "properties": {"repobilityId": "8bdfd1af5c829d82", "scanner": "scanner-primary", "fingerprint": "b5c75fbf122265ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-453853118ab7af52", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_status_deliverability.py:39"}, "properties": {"repobilityId": "e0f5e1f59c2df4d8", "scanner": "scanner-primary", "fingerprint": "453853118ab7af52", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93ab2184db217962", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_status_deliverability.py:282"}, "properties": {"repobilityId": "eeac9b968c86f8d1", "scanner": "scanner-primary", "fingerprint": "93ab2184db217962", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3685e15428866383", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_ready_status_endpoint.py:22"}, "properties": {"repobilityId": "05da674d308c99b7", "scanner": "scanner-primary", "fingerprint": "3685e15428866383", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d8e148f7200f7dc7", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_default_capabilities_adapter.py:13"}, "properties": {"repobilityId": "34fef866e5c72b70", "scanner": "scanner-primary", "fingerprint": "d8e148f7200f7dc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-693f3943ab3f6c14", "level": "note", "message": {"text": "Legacy-named symbol `test_status_engine_setting_defaults_old` in service/tests/test_status_engine_integration.py:27"}, "properties": {"repobilityId": "1712101953c10569", "scanner": "scanner-primary", "fingerprint": "693f3943ab3f6c14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f7e3bf443e0f66e", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_status_engine_integration.py:89"}, "properties": {"repobilityId": "b68833263b06444d", "scanner": "scanner-primary", "fingerprint": "3f7e3bf443e0f66e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bd3910ca38af8af", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_channel_routing.py:12"}, "properties": {"repobilityId": "e0dada4abe9867c7", "scanner": "scanner-primary", "fingerprint": "7bd3910ca38af8af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-76948f90ef4d242f", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_channel_claim.py:20"}, "properties": {"repobilityId": "8f2a10ee91647b14", "scanner": "scanner-primary", "fingerprint": "76948f90ef4d242f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3bec2b841dd11d5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/tests/test_dispatch_channel_claim.py:132"}, "properties": {"repobilityId": "a04f66ee318899eb", "scanner": "scanner-primary", "fingerprint": "3bec2b841dd11d5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f39da8c211f43dc", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_visible_tui_delivery_routing.py:47"}, "properties": {"repobilityId": "3769e50b479190c9", "scanner": "scanner-primary", "fingerprint": "5f39da8c211f43dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b40e2d95b05474b", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_console_command_resume.py:12"}, "properties": {"repobilityId": "e35e02f13ae1dfb0", "scanner": "scanner-primary", "fingerprint": "6b40e2d95b05474b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9aa75fa3af305540", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_dispatch_endpoint_wrapper_backed.py:6"}, "properties": {"repobilityId": "acfd58eafc3595fb", "scanner": "scanner-primary", "fingerprint": "9aa75fa3af305540", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-78a16955fa1b8ad8", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_stale_bridge_claim_guard.py:19"}, "properties": {"repobilityId": "4c9e16a21bf7d6f6", "scanner": "scanner-primary", "fingerprint": "78a16955fa1b8ad8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c4824d4c4d07f24e", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_default_settings_plan4.py:10"}, "properties": {"repobilityId": "41fb9e5b70bb95c8", "scanner": "scanner-primary", "fingerprint": "c4824d4c4d07f24e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01ff21da737a6a85", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_settings_manual_mode.py:8"}, "properties": {"repobilityId": "28e95cee46088462", "scanner": "scanner-primary", "fingerprint": "01ff21da737a6a85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a7e4738be4069a3", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_hermes_session_resume_removed.py:19"}, "properties": {"repobilityId": "c5e955050739e779", "scanner": "scanner-primary", "fingerprint": "3a7e4738be4069a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ae6e91306eb7639", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/tests/test_trim_terminal_output.py:4"}, "properties": {"repobilityId": "4cf15188b0796fed", "scanner": "scanner-primary", "fingerprint": "8ae6e91306eb7639", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3b59a4c817a36e09", "level": "none", "message": {"text": "Commented-code block (5 lines) in service/runtimes/pi.py:49"}, "properties": {"repobilityId": "d891f5a8f8e2f581", "scanner": "scanner-primary", "fingerprint": "3b59a4c817a36e09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcd62eef426b0e0d", "level": "none", "message": {"text": "Commented-code block (6 lines) in service/runtimes/hermes.py:25"}, "properties": {"repobilityId": "49ac7f484001f777", "scanner": "scanner-primary", "fingerprint": "bcd62eef426b0e0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b35638165648ffbc", "level": "none", "message": {"text": "Commented-code block (6 lines) in service/runtimes/claude.py:46"}, "properties": {"repobilityId": "f858bfb3f6e4e7ea", "scanner": "scanner-primary", "fingerprint": "b35638165648ffbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6e0b5574b27a0fe", "level": "note", "message": {"text": "Legacy-named symbol `api_v2` in service/routers/api_v2.py:46"}, "properties": {"repobilityId": "4271f31fbf50978b", "scanner": "scanner-primary", "fingerprint": "b6e0b5574b27a0fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af5152b387311054", "level": "none", "message": {"text": "Commented-code block (9 lines) in service/routers/api_v2.py:125"}, "properties": {"repobilityId": "7ba9e33013876e31", "scanner": "scanner-primary", "fingerprint": "af5152b387311054", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afebdb5a563aa21d", "level": "note", "message": {"text": "121 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "ac042559807ae47d", "scanner": "scanner-primary", "fingerprint": "afebdb5a563aa21d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2ebc64f188f1ece1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a06b94670531ee4e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "b641232d4e80086e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "364158bed55c1595", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "33dd7a6f0c6edad6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-204f81aa64826bc3", "level": "error", "message": {"text": "FastAPI POST `start_container` without auth dependency \u2014 service/routers/containers.py:48"}, "properties": {"repobilityId": "3cd3fc49e41729f8", "scanner": "scanner-primary", "fingerprint": "204f81aa64826bc3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/routers/containers.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-f1a8d78800e49a58", "level": "error", "message": {"text": "FastAPI POST `stop_container` without auth dependency \u2014 service/routers/containers.py:65"}, "properties": {"repobilityId": "8fa3331d2d463298", "scanner": "scanner-primary", "fingerprint": "f1a8d78800e49a58", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/routers/containers.py"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-0d423a43396838f6", "level": "error", "message": {"text": "FastAPI POST `restart_container` without auth dependency \u2014 service/routers/containers.py:75"}, "properties": {"repobilityId": "e3f986647aa1d043", "scanner": "scanner-primary", "fingerprint": "0d423a43396838f6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/routers/containers.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-aeef1774af94e8cf", "level": "error", "message": {"text": "FastAPI POST `pull_image` without auth dependency \u2014 service/routers/containers.py:95"}, "properties": {"repobilityId": "f1c4666a79ac7ee5", "scanner": "scanner-primary", "fingerprint": "aeef1774af94e8cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "service/routers/containers.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "cbe54cc38d351afb", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d504b80adc9409ec", "level": "note", "message": {"text": "Unused endpoint: GET /dashboard"}, "properties": {"repobilityId": "e1df272ea3959a75", "scanner": "scanner-primary", "fingerprint": "d504b80adc9409ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c063354a4d178f9", "level": "note", "message": {"text": "Unused endpoint: GET /favicon.svg"}, "properties": {"repobilityId": "0738dca9f0d899e8", "scanner": "scanner-primary", "fingerprint": "4c063354a4d178f9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f162aeb700a94e70", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/containers"}, "properties": {"repobilityId": "391e887296426ef8", "scanner": "scanner-primary", "fingerprint": "f162aeb700a94e70", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c586bebdf73b1c9", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/containers/{name}"}, "properties": {"repobilityId": "f6b75e170770de7f", "scanner": "scanner-primary", "fingerprint": "1c586bebdf73b1c9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74ad6dd3ea2dbf5f", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/containers/{name}/start"}, "properties": {"repobilityId": "33397e9daec1c64b", "scanner": "scanner-primary", "fingerprint": "74ad6dd3ea2dbf5f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c5bb88407d9084b6", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/containers/{name}/stop"}, "properties": {"repobilityId": "2319244b1001cfdc", "scanner": "scanner-primary", "fingerprint": "c5bb88407d9084b6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9f666769b7e38d27", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/containers/{name}/restart"}, "properties": {"repobilityId": "18e822da324fbc77", "scanner": "scanner-primary", "fingerprint": "9f666769b7e38d27", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfbbc8c506ce8ed6", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/containers/{name}/logs"}, "properties": {"repobilityId": "73c492d9b363f1ca", "scanner": "scanner-primary", "fingerprint": "dfbbc8c506ce8ed6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f2fdab7f10408290", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/containers/{name}/pull"}, "properties": {"repobilityId": "dab7a6c358868bd4", "scanner": "scanner-primary", "fingerprint": "f2fdab7f10408290", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6dea82ec5fd07ff5", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/gpu"}, "properties": {"repobilityId": "05d083de8ac31c8b", "scanner": "scanner-primary", "fingerprint": "6dea82ec5fd07ff5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9e4a005911cd674b", "level": "note", "message": {"text": "Unused endpoint: ANY /route/{name}/{path:path}"}, "properties": {"repobilityId": "7ef913c8152a2142", "scanner": "scanner-primary", "fingerprint": "9e4a005911cd674b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8c236625afb6a8cb", "level": "note", "message": {"text": "Unused endpoint: GET /ready"}, "properties": {"repobilityId": "f4c239b3422dbc85", "scanner": "scanner-primary", "fingerprint": "8c236625afb6a8cb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-906c11eb45896c63", "level": "note", "message": {"text": "Unused endpoint: GET /environments"}, "properties": {"repobilityId": "a81fabfabab7f5b9", "scanner": "scanner-primary", "fingerprint": "906c11eb45896c63", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5048a0c54f413719", "level": "note", "message": {"text": "Unused endpoint: POST /environments/heartbeat"}, "properties": {"repobilityId": "283ea3129a29c3af", "scanner": "scanner-primary", "fingerprint": "5048a0c54f413719", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e44fc03d6411a62d", "level": "note", "message": {"text": "Unused endpoint: PATCH /environments/{environment_id:path}/roots"}, "properties": {"repobilityId": "b75bd12d877ca75e", "scanner": "scanner-primary", "fingerprint": "e44fc03d6411a62d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2556ba40ccd221d", "level": "note", "message": {"text": "Unused endpoint: GET /spawn-requests"}, "properties": {"repobilityId": "0259b8e177c96f8a", "scanner": "scanner-primary", "fingerprint": "d2556ba40ccd221d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d3a8e8182ee66d7", "level": "note", "message": {"text": "Unused endpoint: POST /environments/{environment_id:path}/control"}, "properties": {"repobilityId": "61b76882bece7131", "scanner": "scanner-primary", "fingerprint": "3d3a8e8182ee66d7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c30f08ca9dcc97f", "level": "note", "message": {"text": "Unused endpoint: POST /environments/controls/claim"}, "properties": {"repobilityId": "b4ad7cf7701e2bc5", "scanner": "scanner-primary", "fingerprint": "4c30f08ca9dcc97f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1add972ee2ed1b49", "level": "note", "message": {"text": "Unused endpoint: PATCH /environments/controls/{control_id}"}, "properties": {"repobilityId": "679cf3ed5ee71fba", "scanner": "scanner-primary", "fingerprint": "1add972ee2ed1b49", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-666fd1d5902cb976", "level": "note", "message": {"text": "Unused endpoint: POST /spawn-requests"}, "properties": {"repobilityId": "c636d642866633ee", "scanner": "scanner-primary", "fingerprint": "666fd1d5902cb976", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d8fbc2fd2f9ae0e0", "level": "note", "message": {"text": "Unused endpoint: POST /spawn-requests/claim"}, "properties": {"repobilityId": "5f381fedcac447a4", "scanner": "scanner-primary", "fingerprint": "d8fbc2fd2f9ae0e0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ed6100c909b2ed0", "level": "note", "message": {"text": "Unused endpoint: PATCH /spawn-requests/{spawn_request_id}"}, "properties": {"repobilityId": "805666a45bd0716b", "scanner": "scanner-primary", "fingerprint": "8ed6100c909b2ed0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b15d518d538de57d", "level": "note", "message": {"text": "Unused endpoint: GET /sessions"}, "properties": {"repobilityId": "93dfeacc84a309a6", "scanner": "scanner-primary", "fingerprint": "b15d518d538de57d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc3d6e76da5fb9df", "level": "note", "message": {"text": "Unused endpoint: POST /sessions/{session_id}/console/start"}, "properties": {"repobilityId": "5d9eeeb1581f7f6d", "scanner": "scanner-primary", "fingerprint": "bc3d6e76da5fb9df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2d1cd02caeee31b3", "level": "note", "message": {"text": "Unused endpoint: GET /agents/{agent_id}/pi-session-state"}, "properties": {"repobilityId": "c2ae00da594cdba0", "scanner": "scanner-primary", "fingerprint": "2d1cd02caeee31b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a6786d8e42ea3f21", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/virtual-terminal/ensure"}, "properties": {"repobilityId": "0bee5840cfe149c8", "scanner": "scanner-primary", "fingerprint": "a6786d8e42ea3f21", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b26ecbe975c0677a", "level": "note", "message": {"text": "Unused endpoint: GET /terminals/{terminal_id}"}, "properties": {"repobilityId": "9fed9e150533ddca", "scanner": "scanner-primary", "fingerprint": "b26ecbe975c0677a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1befb31206691944", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/{terminal_id}/output"}, "properties": {"repobilityId": "492e0a11fa5f9a48", "scanner": "scanner-primary", "fingerprint": "1befb31206691944", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fbe12ca97ece03da", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/{terminal_id}/input"}, "properties": {"repobilityId": "704899d4072ce0f3", "scanner": "scanner-primary", "fingerprint": "fbe12ca97ece03da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2055325197f42146", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/{terminal_id}/resize"}, "properties": {"repobilityId": "850e485fe2e9f53f", "scanner": "scanner-primary", "fingerprint": "2055325197f42146", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b22015c44f184f9", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/{terminal_id}/stop"}, "properties": {"repobilityId": "4242113617c65d48", "scanner": "scanner-primary", "fingerprint": "2b22015c44f184f9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fa8f5f6606ffaf70", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/{terminal_id}/report-dead"}, "properties": {"repobilityId": "28c970f43c61beb8", "scanner": "scanner-primary", "fingerprint": "fa8f5f6606ffaf70", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-505a89e80c312aac", "level": "note", "message": {"text": "Unused endpoint: POST /terminals/controls/claim"}, "properties": {"repobilityId": "a0e759a2d8baaa35", "scanner": "scanner-primary", "fingerprint": "505a89e80c312aac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-954f0244ef652a40", "level": "note", "message": {"text": "Unused endpoint: PATCH /terminals/controls/{control_id}"}, "properties": {"repobilityId": "a37ebbd45cc38a2d", "scanner": "scanner-primary", "fingerprint": "954f0244ef652a40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70d9b0f571e7c1a1", "level": "note", "message": {"text": "Unused endpoint: POST /sessions/{session_id}/control"}, "properties": {"repobilityId": "23f763fa0270e2f9", "scanner": "scanner-primary", "fingerprint": "70d9b0f571e7c1a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c23a06033f5185b9", "level": "note", "message": {"text": "Unused endpoint: DELETE /sessions/{session_id}"}, "properties": {"repobilityId": "d604a4f55d649ad2", "scanner": "scanner-primary", "fingerprint": "c23a06033f5185b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3140e61d7cac5091", "level": "note", "message": {"text": "Unused endpoint: GET /agents"}, "properties": {"repobilityId": "d5daf79c3c4338c9", "scanner": "scanner-primary", "fingerprint": "3140e61d7cac5091", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f3fa31f1e9b1b90", "level": "note", "message": {"text": "Unused endpoint: POST /agents"}, "properties": {"repobilityId": "4e33e2ad57334509", "scanner": "scanner-primary", "fingerprint": "2f3fa31f1e9b1b90", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b30cbdd177c13681", "level": "note", "message": {"text": "Unused endpoint: GET /agents/{agent_id}"}, "properties": {"repobilityId": "76e656bd54915ae3", "scanner": "scanner-primary", "fingerprint": "b30cbdd177c13681", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-04260cdb8bc1d6cc", "level": "note", "message": {"text": "Unused endpoint: GET /agents/{agent_id}/console"}, "properties": {"repobilityId": "0ddc8d2735f4c20f", "scanner": "scanner-primary", "fingerprint": "04260cdb8bc1d6cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e57bbd76426a21a7", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/console/input"}, "properties": {"repobilityId": "a91772ae20eba639", "scanner": "scanner-primary", "fingerprint": "e57bbd76426a21a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74ba93ee471f2438", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/rename"}, "properties": {"repobilityId": "631fc4e3aea6285c", "scanner": "scanner-primary", "fingerprint": "74ba93ee471f2438", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a2b6f2a8ebe3a177", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/environment"}, "properties": {"repobilityId": "98f5a66e5984e9b2", "scanner": "scanner-primary", "fingerprint": "a2b6f2a8ebe3a177", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c3b90085b95f0071", "level": "note", "message": {"text": "Unused endpoint: DELETE /agents/{agent_id}"}, "properties": {"repobilityId": "4729e9066fa412f6", "scanner": "scanner-primary", "fingerprint": "c3b90085b95f0071", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7371de05c946672b", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/control"}, "properties": {"repobilityId": "bc3b7582e354fe2d", "scanner": "scanner-primary", "fingerprint": "7371de05c946672b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c938812a5876d202", "level": "note", "message": {"text": "Unused endpoint: PATCH /agents/{agent_id}"}, "properties": {"repobilityId": "77dffb039c29f390", "scanner": "scanner-primary", "fingerprint": "c938812a5876d202", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b04d74da4dee3059", "level": "note", "message": {"text": "Unused endpoint: PATCH /agents/{agent_id}/session-handle"}, "properties": {"repobilityId": "cb43d31b34c2cab1", "scanner": "scanner-primary", "fingerprint": "b04d74da4dee3059", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-986f970319490cf4", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/session/confirm"}, "properties": {"repobilityId": "1f61b6aaf79d0b6a", "scanner": "scanner-primary", "fingerprint": "986f970319490cf4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c248c06ae6ce422", "level": "note", "message": {"text": "Unused endpoint: POST /agents/{agent_id}/session/keep"}, "properties": {"repobilityId": "87a142ad29380a61", "scanner": "scanner-primary", "fingerprint": "6c248c06ae6ce422", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}