{"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": "foundry_unresolved_feedback", "name": "Foundry mined unresolved feedback: UstaLabs/supermux", "shortDescription": {"text": "Foundry mined unresolved feedback: UstaLabs/supermux"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: UstaLabs/supermux", "shortDescription": {"text": "Foundry mined blueprint gap alignment: UstaLabs/supermux"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: UstaLabs/supermux", "shortDescription": {"text": "Foundry mined bad chains: UstaLabs/supermux"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-82e47d1e077d95ae\",\n    \"kind\": \"issue_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/UstaLabs/supermux/issues/1\",\n    \"text\": \"GitHub feedback: ui_work"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25e295cb35144a78", "name": "Stray `console.log` in TS/JS \u2014 tests/ui/push-banner.spec.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/push-banner.spec.ts: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-0b74a9ff3d094273", "name": "Stray `console.log` in TS/JS \u2014 tests/ui/voice-recorder.spec.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/voice-recorder.spec.ts: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-a1ef19dc27d1fe50", "name": "Stray `console.log` in TS/JS \u2014 tests/ui/composer-attachment.spec.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/composer-attachment.spec.ts: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-12a1189609bb0541", "name": "Stray `console.log` in TS/JS \u2014 scripts/plugin.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plugin.ts:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4767cac67465d1fb", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-versions-json.ts:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-versions-json.ts:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d951c03c4fece77", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-to-mux.ts:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-to-mux.ts:119"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4895ebf8678df93d", "name": "Stray `console.log` in TS/JS \u2014 scripts/reclaim-agent-homes.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reclaim-agent-homes.ts: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-4af12a04b7b57e77", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-logo-assets.ts:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-logo-assets.ts: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-cbb3db61cceabdf8", "name": "Stray `console.log` in TS/JS \u2014 scripts/asset-probe.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/asset-probe.ts:56"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-603f6c3a003d348c", "name": "Stray `console.log` in TS/JS \u2014 scripts/dump-ws-frames.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dump-ws-frames.ts: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-f45156ed099d9104", "name": "Stray `console.log` in TS/JS \u2014 scripts/migrate-from-running-broker.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-from-running-broker.ts:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-007d50dc89a1d69b", "name": "Stray `console.log` in TS/JS \u2014 scripts/pair.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pair.ts:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c831c5bafe994a6a", "name": "Stray `console.log` in TS/JS \u2014 scripts/revoke.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/revoke.ts:11"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-875cec8f725aee52", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-static-manifest.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-static-manifest.ts:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1dd6305db27df11", "name": "Stray `console.log` in TS/JS \u2014 scripts/dump-last-24h.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dump-last-24h.ts: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-5e70dc1a164a7782", "name": "Stray `console.log` in TS/JS \u2014 src/cli.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli.ts: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-fdff47e2115ec238", "name": "Stray `console.log` in TS/JS \u2014 src/web-app/scripts/check-bundle-size.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/web-app/scripts/check-bundle-size.ts: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-7a91dc70e88f9563", "name": "Stray `console.log` in TS/JS \u2014 src/core/lsp/install-dart-sdk.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/core/lsp/install-dart-sdk.ts: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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fff85edbbb8c52b", "name": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1"}, "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-785d5fd8fc78e8ed", "name": "Insecure pattern 'node_child_process' in scripts/reclaim-agent-homes.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/reclaim-agent-homes.ts:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ccdd1f58d9f037e8", "name": "Insecure pattern 'node_child_process' in scripts/migrate-from-running-broker.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/migrate-from-running-broker.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be48187e9f9ba0d2", "name": "Insecure pattern 'node_child_process' in src/main.ts:66", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/main.ts:66"}, "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-f35bcc75c63069ca", "name": "Insecure pattern 'node_child_process' in src/shared/preflight.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/shared/preflight.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e20200e7d2417849", "name": "Insecure pattern 'node_child_process' in src/web-app/vite.config.ts:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/web-app/vite.config.ts:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a801d597c456f9ab", "name": "Insecure pattern 'vue_v_html' in src/web-app/src/components/MessageText.vue:24", "shortDescription": {"text": "Insecure pattern 'vue_v_html' in src/web-app/src/components/MessageText.vue:24"}, "fullDescription": {"text": "Found a known-risky pattern (vue_v_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bedb80ec7f823906", "name": "Insecure pattern 'node_child_process' in src/core/models/discovery.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/models/discovery.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7bf43f5863b86e75", "name": "Insecure pattern 'node_child_process' in src/core/slash-commands/providers/claude.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/slash-commands/providers/claude.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae780c691367a378", "name": "Insecure pattern 'node_child_process' in src/core/review/anchor.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/review/anchor.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e968306669b924b", "name": "Insecure pattern 'node_child_process' in src/core/review/anchor.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/review/anchor.test.ts:3"}, "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-1882f93e2346279c", "name": "Insecure pattern 'node_child_process' in src/core/git/repo-info.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/repo-info.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b5a580a942a67e20", "name": "Insecure pattern 'node_child_process' in src/core/git/branches.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/branches.test.ts:3"}, "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-a8541b07016916e2", "name": "Insecure pattern 'node_child_process' in src/core/git/integrate.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/integrate.test.ts:3"}, "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-d83ff404205dcd6e", "name": "Insecure pattern 'node_child_process' in src/core/git/branches.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/branches.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ec6b0f36bb76d4c", "name": "Insecure pattern 'node_child_process' in src/core/git/remote.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/remote.test.ts:3"}, "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-831ab02e1b5d56bf", "name": "Insecure pattern 'node_child_process' in src/core/git/repo-info.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/repo-info.test.ts:3"}, "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-deed9ba502924455", "name": "Insecure pattern 'node_child_process' in src/core/git/integrate.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/integrate.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-49164043afb813ae", "name": "Insecure pattern 'node_child_process' in src/core/git/remote.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/git/remote.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08890fb0ec1838e8", "name": "Insecure pattern 'node_child_process' in src/core/agents/opencode/spawn.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/agents/opencode/spawn.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-877d28787d095d50", "name": "Insecure pattern 'node_child_process' in src/core/agents/codex/spawn.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/agents/codex/spawn.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c57b50c6c5f0db9", "name": "Insecure pattern 'node_child_process' in src/core/agents/cursor/runner.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/agents/cursor/runner.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e24fe408388e4365", "name": "Insecure pattern 'node_child_process' in src/core/agents/claude/hooks-settings.test.ts:34", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/agents/claude/hooks-settings.test.ts:34"}, "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-5e66974a7a1252ab", "name": "Insecure pattern 'node_child_process' in src/core/worktree/manager.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/manager.test.ts:3"}, "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-2c376c6fdf3e38d5", "name": "Insecure pattern 'node_child_process' in src/core/worktree/gc.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/gc.test.ts:3"}, "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-afd317fec31b8482", "name": "Insecure pattern 'node_child_process' in src/core/worktree/finish.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/finish.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c62cc6b5f7ae1a6", "name": "Insecure pattern 'node_child_process' in src/core/worktree/manager.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/manager.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d5dc7e44a5abd5a", "name": "Insecure pattern 'node_child_process' in src/core/worktree/finish.test.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/finish.test.ts:3"}, "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-723b5f7d5950cf0c", "name": "Insecure pattern 'node_child_process' in src/core/worktree/gc.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/gc.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9632f83298c48524", "name": "Insecure pattern 'node_child_process' in src/core/worktree/verify.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/verify.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f219d494a9f061e0", "name": "Insecure pattern 'node_child_process' in src/core/session-manager/tmux.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/tmux.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-726400d75f617ac3", "name": "Insecure pattern 'node_child_process' in src/core/session-manager/spawn-helper.ts:28", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/spawn-helper.ts: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-7828a9a22f7ea192", "name": "Insecure pattern 'node_child_process' in src/core/session-manager/post-spawn-keys.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/post-spawn-keys.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96e07ee2c1b7ee64", "name": "Insecure pattern 'node_child_process' in src/core/editor/workdir-diff.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/editor/workdir-diff.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b470a0fdcba2144", "name": "Insecure pattern 'node_child_process' in src/core/editor/repo-scanner.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/editor/repo-scanner.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a062980d3a30361", "name": "Insecure pattern 'node_child_process' in src/core/editor/fs-service.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/editor/fs-service.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-294f672760f01dce", "name": "Insecure pattern 'node_child_process' in src/core/lsp/server.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/lsp/server.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e01473917453a043", "name": "Insecure pattern 'node_child_process' in src/core/lsp/install.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/lsp/install.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-238173c945972aa9", "name": "Insecure pattern 'node_child_process' in src/core/plugins/lifecycle.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/plugins/lifecycle.ts:3"}, "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-491d207cd1e3d490", "name": "Insecure pattern 'node_child_process' in src/core/plugins/adapters/codex.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/core/plugins/adapters/codex.ts:3"}, "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-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/login-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d71d6559b0728729", "name": "Very large file: src/main.ts (2931 lines)", "shortDescription": {"text": "Very large file: src/main.ts (2931 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-872b7f8029bedbce", "name": "Very large file: src/channels/web/index.ts (1882 lines)", "shortDescription": {"text": "Very large file: src/channels/web/index.ts (1882 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-b3ed68815bca2f8c", "name": "Node manifest has dependencies but no lockfile: package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: 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 62 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-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-320f5b3dc4341ed8", "name": "Commented-code block (5 lines) in tests/transform-outbound.test.ts:60", "shortDescription": {"text": "Commented-code block (5 lines) in tests/transform-outbound.test.ts:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d125fc0e5dd51de2", "name": "Legacy-named symbol `oauth_copy` in tests/spawn-pa.test.ts:84", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in tests/spawn-pa.test.ts:84"}, "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-76bebb7eeaca6087", "name": "Commented-code block (5 lines) in tests/web-system-restart.test.ts:67", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web-system-restart.test.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-915dbfefe2359d97", "name": "Commented-code block (6 lines) in tests/migration-sessions-rebuild.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in tests/migration-sessions-rebuild.test.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d56a899ee831ad8d", "name": "Legacy-named symbol `oauth_copy` in tests/supervisor.test.ts:75", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in tests/supervisor.test.ts:75"}, "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-b41f2ca1782c875a", "name": "Commented-code block (5 lines) in tests/opencode-providers-rest.test.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in tests/opencode-providers-rest.test.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92e5cd6c9886a780", "name": "Commented-code block (6 lines) in tests/spawn-command.test.ts:105", "shortDescription": {"text": "Commented-code block (6 lines) in tests/spawn-command.test.ts:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc8fecd4d021d3d1", "name": "Commented-code block (7 lines) in tests/socket-transport.test.ts:55", "shortDescription": {"text": "Commented-code block (7 lines) in tests/socket-transport.test.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d95688c2384f98d", "name": "Legacy-named symbol `oauth_copy` in tests/spawn-codex-attachments.test.ts:28", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in tests/spawn-codex-attachments.test.ts:28"}, "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-d5fa7dc808088888", "name": "Commented-code block (7 lines) in tests/registry.test.ts:363", "shortDescription": {"text": "Commented-code block (7 lines) in tests/registry.test.ts:363"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47a91f6594756c2f", "name": "Commented-code block (5 lines) in tests/spawn-opencode.test.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in tests/spawn-opencode.test.ts: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-9b71c73c441ada24", "name": "Legacy-named symbol `oauth_copy` in tests/agents/codex-auth.test.ts:31", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in tests/agents/codex-auth.test.ts: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-326066ed46a82026", "name": "Legacy-named symbol `oauth_copy` in tests/agents/cursor-auth.test.ts:35", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in tests/agents/cursor-auth.test.ts: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-6e050ff8e36a0088", "name": "Commented-code block (5 lines) in scripts/generate-versions-json.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/generate-versions-json.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70b24c4fc7717c8c", "name": "Legacy-named symbol `coreLegacy` in scripts/migrate-to-mux.ts:66", "shortDescription": {"text": "Legacy-named symbol `coreLegacy` in scripts/migrate-to-mux.ts:66"}, "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-5b8fde8993f9e40d", "name": "Commented-code block (6 lines) in scripts/migrate-to-mux.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/migrate-to-mux.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82c9fd44f2282747", "name": "Commented-code block (7 lines) in scripts/reclaim-agent-homes.ts:2", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/reclaim-agent-homes.ts: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-028021ae9f6e4840", "name": "Commented-code block (6 lines) in scripts/asset-probe.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/asset-probe.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ba102044d3deca1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/migrate-from-running-broker.ts:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/migrate-from-running-broker.ts:73"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae40369b40f99b07", "name": "Commented-code block (6 lines) in scripts/generate-static-manifest.ts:32", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/generate-static-manifest.ts: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-7619d4f8bf65bf53", "name": "Commented-code block (5 lines) in src/cli-setup.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/cli-setup.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19af94e2ba5139ac", "name": "Commented-code block (5 lines) in src/main.ts:461", "shortDescription": {"text": "Commented-code block (5 lines) in src/main.ts:461"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c8471f5cbb148e0", "name": "Commented-code block (8 lines) in src/cli.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/cli.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abb4e8edc54cf8e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli-update.test.ts:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli-update.test.ts:53"}, "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-842c0ac41899a8d4", "name": "Commented-code block (5 lines) in src/types/assets.d.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/types/assets.d.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6f7e9933e54a21a", "name": "Commented-code block (5 lines) in src/shared/build-info.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/shared/build-info.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc28504305c15a23", "name": "Commented-code block (5 lines) in src/shim/socket-client.ts:78", "shortDescription": {"text": "Commented-code block (5 lines) in src/shim/socket-client.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59922085ce117ca8", "name": "Commented-code block (5 lines) in src/shim/index.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in src/shim/index.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9f836f5de5cb532", "name": "Commented-code block (8 lines) in src/web-app/sw.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/web-app/sw.ts:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6fa0ab7f66a9732", "name": "Commented-code block (5 lines) in src/web-app/src/stores/sessions.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in src/web-app/src/stores/sessions.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7663ce21e009405b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/api/client.ts:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/api/client.ts:180"}, "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-b6bfc83d42cdb579", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/composables/useNotifications.ts:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/composables/useNotifications.ts:86"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f9ba35a08c65359", "name": "Commented-code block (7 lines) in src/channels/web/update-routes.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/channels/web/update-routes.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d52abd12f7446af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/channels/web/update-routes.test.ts:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/channels/web/update-routes.test.ts:69"}, "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-cd1c59fae22ee591", "name": "Commented-code block (7 lines) in src/channels/web/static-manifest.generated.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/channels/web/static-manifest.generated.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d277621c2965e7ed", "name": "Commented-code block (7 lines) in src/channels/web/static-serve.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/channels/web/static-serve.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8455688c9539b2b", "name": "Commented-code block (7 lines) in src/channels/web/index.ts:327", "shortDescription": {"text": "Commented-code block (7 lines) in src/channels/web/index.ts:327"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d013b513916f3259", "name": "Commented-code block (7 lines) in src/channels/web/cookies.ts:74", "shortDescription": {"text": "Commented-code block (7 lines) in src/channels/web/cookies.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f41d43c72b817c97", "name": "Commented-code block (5 lines) in src/channels/web/inbound-handler.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/channels/web/inbound-handler.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f892cbb41e0eb0e7", "name": "Commented-code block (8 lines) in src/core/runtime-assets.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/runtime-assets.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a07ba0ae70682224", "name": "Commented-code block (6 lines) in src/core/runtime-assets.test.ts:40", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/runtime-assets.test.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f8fd7ed1da9cd47", "name": "Commented-code block (6 lines) in src/core/display/providers/linux-xvfb.ts:48", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/display/providers/linux-xvfb.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd433c2d7ce6f03a", "name": "Commented-code block (5 lines) in src/core/routing/transform-outbound.ts:52", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/routing/transform-outbound.ts: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-4cbf4ddcd2e9125b", "name": "Commented-code block (6 lines) in src/core/usage/index.ts:207", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/usage/index.ts:207"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5014b0e0d2bb3790", "name": "Commented-code block (6 lines) in src/core/slash-commands/providers/claude.ts:38", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/slash-commands/providers/claude.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f8efccbb2cfb9ef", "name": "Commented-code block (5 lines) in src/core/agents/agent-header.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/agent-header.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e45dfd0b186d2d33", "name": "Commented-code block (5 lines) in src/core/agents/environment.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/environment.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c81f5d7c7c024b0e", "name": "Commented-code block (5 lines) in src/core/agents/detect.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/detect.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe61729f90abb2f2", "name": "Commented-code block (6 lines) in src/core/agents/opencode/adapter.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/agents/opencode/adapter.ts: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-56411e0979a042ee", "name": "Commented-code block (6 lines) in src/core/agents/opencode/spawn.ts:118", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/agents/opencode/spawn.ts:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7da76f9795fd09a0", "name": "Legacy-named symbol `oauth_copy` in src/core/agents/codex/auth.ts:6", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in src/core/agents/codex/auth.ts: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-c8a5e33743922ac0", "name": "Commented-code block (5 lines) in src/core/agents/codex/spawn.ts:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/codex/spawn.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aab709b8d775b7fa", "name": "Commented-code block (8 lines) in src/core/agents/codex/preamble-writer.ts:15", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/agents/codex/preamble-writer.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50b763712d22ca40", "name": "Legacy-named symbol `oauth_copy` in src/core/agents/cursor/auth.ts:8", "shortDescription": {"text": "Legacy-named symbol `oauth_copy` in src/core/agents/cursor/auth.ts: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-0136f3003b8abed7", "name": "Commented-code block (9 lines) in src/core/agents/cursor/auth.ts:10", "shortDescription": {"text": "Commented-code block (9 lines) in src/core/agents/cursor/auth.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8ee0b3c9566ce6f", "name": "Commented-code block (5 lines) in src/core/agents/cursor/adapter.ts:162", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/cursor/adapter.ts:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98e603ce097c2da6", "name": "Commented-code block (5 lines) in src/core/agents/cursor/preamble-writer.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/agents/cursor/preamble-writer.ts: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-022f0a78a5c9b5a8", "name": "Commented-code block (6 lines) in src/core/agents/claude/state-projection.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/agents/claude/state-projection.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f824ff1f45c82c39", "name": "Commented-code block (5 lines) in src/core/memory/preamble.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/memory/preamble.ts: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-4ff7cb50a782e990", "name": "Commented-code block (5 lines) in src/core/memory/init.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/memory/init.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-017b84fa04a03bfe", "name": "Commented-code block (5 lines) in src/core/worktree/finish.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/worktree/finish.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07e5a4e5b73563f2", "name": "Commented-code block (5 lines) in src/core/session-manager/shim-spawn.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/session-manager/shim-spawn.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f63da5ea03e2ecfc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/session-manager/download.ts:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/session-manager/download.ts:57"}, "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-edb407ae110fe421", "name": "Commented-code block (5 lines) in src/core/session-manager/trust.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/session-manager/trust.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ba0987050a17af8", "name": "Commented-code block (5 lines) in src/core/session-manager/registry.ts:120", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/session-manager/registry.ts:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b68a29dfee8157df", "name": "Commented-code block (6 lines) in src/core/session-manager/messages.ts:71", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/session-manager/messages.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-574410dd0fd9df60", "name": "Commented-code block (7 lines) in src/core/session-manager/inbound-delivery.ts:15", "shortDescription": {"text": "Commented-code block (7 lines) in src/core/session-manager/inbound-delivery.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7ee67143a1b91fc", "name": "Commented-code block (5 lines) in src/core/session-manager/agent-state-store.ts:59", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/session-manager/agent-state-store.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b2241d7ef8ec23d", "name": "Commented-code block (6 lines) in src/core/session-manager/spawn-helper.ts:99", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/session-manager/spawn-helper.ts:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ab5b7ae58356539", "name": "Commented-code block (8 lines) in src/core/session-manager/socket-server.ts:32", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/session-manager/socket-server.ts: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-49dca53d18330a33", "name": "Commented-code block (5 lines) in src/core/session-manager/post-spawn-keys.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/session-manager/post-spawn-keys.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f44172ffec847ddb", "name": "Commented-code block (8 lines) in src/core/session-manager/spawn-command.ts:14", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/session-manager/spawn-command.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc3b2933984bdb72", "name": "Commented-code block (6 lines) in src/core/session-manager/supervisor.ts:258", "shortDescription": {"text": "Commented-code block (6 lines) in src/core/session-manager/supervisor.ts:258"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-295cc37fb395b2b1", "name": "Commented-code block (5 lines) in src/core/editor/workdir-diff.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/editor/workdir-diff.ts: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-1c17cdd4b3e06872", "name": "Commented-code block (9 lines) in src/core/update/apply.test.ts:348", "shortDescription": {"text": "Commented-code block (9 lines) in src/core/update/apply.test.ts:348"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1ac2bc57ed3cafb", "name": "Commented-code block (5 lines) in src/core/update/checker.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/update/checker.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-800d97db6a7edf86", "name": "Commented-code block (10 lines) in src/core/update/apply.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in src/core/update/apply.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0f60af8218895c4", "name": "Commented-code block (5 lines) in src/core/lsp/bridge.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/core/lsp/bridge.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-077b1ad8b4fd5299", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/lsp/install-dart-sdk.ts:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/lsp/install-dart-sdk.ts:31"}, "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-f45ec3c622657e74", "name": "Commented-code block (8 lines) in src/core/plugins/adapters/codex.ts:13", "shortDescription": {"text": "Commented-code block (8 lines) in src/core/plugins/adapters/codex.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52e658a828501ff5", "name": "Commented-code block (7 lines) in src/core/storage/db.ts:44", "shortDescription": {"text": "Commented-code block (7 lines) in src/core/storage/db.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6adfe3d30ee9355f", "name": "40 env vars used in code but missing from .env.example", "shortDescription": {"text": "40 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BUN_INSTALL`, `CLAUDE_SESSION_ID`, `CURATOR_WINDOW_HOURS`, `CURSOR_API_KEY`, `FLUTTER_ROOT`, `HOME`, `INVOCATION_ID`, `MUX_AGENT_KIND` + 32 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}}]}}, "automationDetails": {"id": "repobility/22004"}, "properties": {"repository": "UstaLabs/supermux", "repoUrl": "https://github.com/UstaLabs/supermux", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: UstaLabs/supermux"}, "properties": {"repobilityId": 423506, "scanner": "foundry_dataset", "fingerprint": "200e4b00bebdebaece38b093fc53fe40419cfe26c7ef37c5960c02b0f72fca3a", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "UstaLabs/supermux#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "UstaLabs/supermux", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f589691999c94911", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/UstaLabs/supermux", "source_id": "graph-query-motif_query-8098989a862fb094", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "UstaLabs/supermux", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: UstaLabs/supermux"}, "properties": {"repobilityId": 395381, "scanner": "foundry_dataset", "fingerprint": "044fca3cd13c00bd3e5383240c87eb5bb72c9839dca9ba538b02977cc5b75e1f", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"ui_workflow_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 15, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 12, "node_types": {"repo": 1, "thread": 1, "comment": 1, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "UstaLabs/supermux#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "UstaLabs/supermux", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-ded16dbbe84d4fea", "graph_gold_label": "assumption_check", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 12\nEdges: 15\nNode types: {'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'ui_workflow_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/UstaLabs/supermux", "source_id": "graph-query-motif_query-c5ab1bfbf0161768", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "UstaLabs/supermux", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: UstaLabs/supermux"}, "properties": {"repobilityId": 386388, "scanner": "foundry_dataset", "fingerprint": "9d2a4c2188b8ba804bda7829082567b5e0ce93c7f62d16182aba1e590f092e32", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "UstaLabs/supermux#1", "human_labels": ["ui_workflow_gap"], "issue_number": "1", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "UstaLabs/supermux", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-487ef30e2ad9e0a1", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 2, "docs": 6}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: UstaLabs/supermux\nThread: UstaLabs/supermux#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved\nChain evidence:\nIssue/PR evidence chain: UstaLabs/supermux#1\nRepo: UstaLabs/supermux\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-82e47d1e077d95ae\",\n    \"kind\": \"issue_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/UstaLabs/supermux/issues/1\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: issue_body\\nRepo: UstaLabs/supermux\\nAuthor: yasinemreturhan (User)\\nURL: https://github.com/UstaLabs/supermux/issues/1\\nTitle: Blank screen for several seconds on Android Chrome before app renders\\nBody:\\n## Summary\\n\\nOn Android Chrome, the app shows a completely blank/white screen for several seconds before rendering. This happens consistently on every page load.\\n\\n## Affected Devices\\n\\n| Device | Android | OS | Chrome |\\n|--------|---------|-----|--------|\\n| Xiaomi 17 | 16 | HyperOS 3.0.302.0 | 149.0.7827.60 |\\n| Xiaomi 13T | 15 | HyperOS 2.0.209.0 | (not recorded) |\\n\\n## Steps to Reproduce\\n\\n1. Open the app URL in Chrome on an affected device\\n2. Observe a blank screen for ~1\u20133 min\\n3. App eventually renders normally without any interaction\\n\\n## Expected Behavior\\n\\nApp renders immediately (or shows a loading indicator) on page load.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-20224fb30213b08e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: UstaLabs/supermux\nGraph label: source_backed_multi_signal_graph\nNodes: 16\nEdges: 24\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 8, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 6, \"artifact_supports_verification\": 2, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 8, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 2, \"docs\": 6}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_graph_pattern_bundle\": 1}\nCo-occurrence labels: {\"curriculum_gap_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/UstaLabs/supermux", "source_id": "comment-chain-pattern-bad_chains-b44b7342d7f2487e", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "UstaLabs/supermux", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-25e295cb35144a78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/push-banner.spec.ts:33"}, "properties": {"repobilityId": "816c593a82480578", "scanner": "scanner-primary", "fingerprint": "25e295cb35144a78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b74a9ff3d094273", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/voice-recorder.spec.ts:28"}, "properties": {"repobilityId": "151fb803745a5566", "scanner": "scanner-primary", "fingerprint": "0b74a9ff3d094273", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1ef19dc27d1fe50", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/ui/composer-attachment.spec.ts:47"}, "properties": {"repobilityId": "e286df9b4f4da5c0", "scanner": "scanner-primary", "fingerprint": "a1ef19dc27d1fe50", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12a1189609bb0541", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/plugin.ts:44"}, "properties": {"repobilityId": "677bf33f51e2d3bf", "scanner": "scanner-primary", "fingerprint": "12a1189609bb0541", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4767cac67465d1fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-versions-json.ts:12"}, "properties": {"repobilityId": "04e27648dbb750e8", "scanner": "scanner-primary", "fingerprint": "4767cac67465d1fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d951c03c4fece77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-to-mux.ts:119"}, "properties": {"repobilityId": "c78e552b9fb17840", "scanner": "scanner-primary", "fingerprint": "1d951c03c4fece77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4895ebf8678df93d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/reclaim-agent-homes.ts:30"}, "properties": {"repobilityId": "35ff67a7dfc0675f", "scanner": "scanner-primary", "fingerprint": "4895ebf8678df93d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4af12a04b7b57e77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-logo-assets.ts:72"}, "properties": {"repobilityId": "083cc4082671a1b6", "scanner": "scanner-primary", "fingerprint": "4af12a04b7b57e77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbb3db61cceabdf8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/asset-probe.ts:56"}, "properties": {"repobilityId": "992de9972e00d9fd", "scanner": "scanner-primary", "fingerprint": "cbb3db61cceabdf8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-603f6c3a003d348c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dump-ws-frames.ts:53"}, "properties": {"repobilityId": "47e1708ad000cbe6", "scanner": "scanner-primary", "fingerprint": "603f6c3a003d348c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f45156ed099d9104", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/migrate-from-running-broker.ts:43"}, "properties": {"repobilityId": "70d23f9546585117", "scanner": "scanner-primary", "fingerprint": "f45156ed099d9104", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-007d50dc89a1d69b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pair.ts:31"}, "properties": {"repobilityId": "cdc42374752caab9", "scanner": "scanner-primary", "fingerprint": "007d50dc89a1d69b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c831c5bafe994a6a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/revoke.ts:11"}, "properties": {"repobilityId": "332206f3b18b63df", "scanner": "scanner-primary", "fingerprint": "c831c5bafe994a6a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-875cec8f725aee52", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-static-manifest.ts:44"}, "properties": {"repobilityId": "689cae4c9b4437b2", "scanner": "scanner-primary", "fingerprint": "875cec8f725aee52", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1dd6305db27df11", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/dump-last-24h.ts:16"}, "properties": {"repobilityId": "5edb2b1d56c35346", "scanner": "scanner-primary", "fingerprint": "f1dd6305db27df11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e70dc1a164a7782", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli.ts:35"}, "properties": {"repobilityId": "435b83b5315abc65", "scanner": "scanner-primary", "fingerprint": "5e70dc1a164a7782", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fdff47e2115ec238", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/web-app/scripts/check-bundle-size.ts:13"}, "properties": {"repobilityId": "cb119f2de83165bd", "scanner": "scanner-primary", "fingerprint": "fdff47e2115ec238", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a91dc70e88f9563", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/core/lsp/install-dart-sdk.ts:22"}, "properties": {"repobilityId": "61aedcfe778e0df2", "scanner": "scanner-primary", "fingerprint": "7a91dc70e88f9563", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-9fff85edbbb8c52b", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: oven/bun:1"}, "properties": {"repobilityId": "e57da77424c47fd9", "scanner": "scanner-primary", "fingerprint": "9fff85edbbb8c52b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-e2f1cddf8cbe14d3", "level": "error", "message": {"text": "Dockerfile pipes a remote installer into a shell"}, "properties": {"repobilityId": "694bfbf159b344fe", "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": 46}}}]}, {"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-785d5fd8fc78e8ed", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/reclaim-agent-homes.ts:11"}, "properties": {"repobilityId": "44ebac76bf518af4", "scanner": "scanner-primary", "fingerprint": "785d5fd8fc78e8ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reclaim-agent-homes.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-ccdd1f58d9f037e8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/migrate-from-running-broker.ts:19"}, "properties": {"repobilityId": "7517dd4ef849fb64", "scanner": "scanner-primary", "fingerprint": "ccdd1f58d9f037e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/migrate-from-running-broker.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-be48187e9f9ba0d2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/main.ts:66"}, "properties": {"repobilityId": "e6de1468d12f5e0c", "scanner": "scanner-primary", "fingerprint": "be48187e9f9ba0d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/main.ts"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-f35bcc75c63069ca", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/shared/preflight.ts:1"}, "properties": {"repobilityId": "7a4a71785f5d3342", "scanner": "scanner-primary", "fingerprint": "f35bcc75c63069ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/shared/preflight.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e20200e7d2417849", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/web-app/vite.config.ts:5"}, "properties": {"repobilityId": "fc753baf13c15dad", "scanner": "scanner-primary", "fingerprint": "e20200e7d2417849", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/web-app/vite.config.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-a801d597c456f9ab", "level": "warning", "message": {"text": "Insecure pattern 'vue_v_html' in src/web-app/src/components/MessageText.vue:24"}, "properties": {"repobilityId": "df159381913613c7", "scanner": "scanner-primary", "fingerprint": "a801d597c456f9ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "vue_v_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/web-app/src/components/MessageText.vue"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-bedb80ec7f823906", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/models/discovery.ts:4"}, "properties": {"repobilityId": "8b238a9df97110f4", "scanner": "scanner-primary", "fingerprint": "bedb80ec7f823906", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/models/discovery.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-7bf43f5863b86e75", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/slash-commands/providers/claude.ts:1"}, "properties": {"repobilityId": "2494528ae3ad7165", "scanner": "scanner-primary", "fingerprint": "7bf43f5863b86e75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/slash-commands/providers/claude.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae780c691367a378", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/review/anchor.ts:2"}, "properties": {"repobilityId": "7737b7acae14e347", "scanner": "scanner-primary", "fingerprint": "ae780c691367a378", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/review/anchor.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-1e968306669b924b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/review/anchor.test.ts:3"}, "properties": {"repobilityId": "22fb2322502e69b7", "scanner": "scanner-primary", "fingerprint": "1e968306669b924b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/review/anchor.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-1882f93e2346279c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/repo-info.ts:2"}, "properties": {"repobilityId": "52ff889d05d6270e", "scanner": "scanner-primary", "fingerprint": "1882f93e2346279c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/repo-info.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-b5a580a942a67e20", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/branches.test.ts:3"}, "properties": {"repobilityId": "24a685a35f5554eb", "scanner": "scanner-primary", "fingerprint": "b5a580a942a67e20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/branches.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-a8541b07016916e2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/integrate.test.ts:3"}, "properties": {"repobilityId": "e3b494a442432f00", "scanner": "scanner-primary", "fingerprint": "a8541b07016916e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/integrate.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-d83ff404205dcd6e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/branches.ts:2"}, "properties": {"repobilityId": "040dbefb7362f78d", "scanner": "scanner-primary", "fingerprint": "d83ff404205dcd6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/branches.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-7ec6b0f36bb76d4c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/remote.test.ts:3"}, "properties": {"repobilityId": "37a268efb529d109", "scanner": "scanner-primary", "fingerprint": "7ec6b0f36bb76d4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/remote.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-831ab02e1b5d56bf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/repo-info.test.ts:3"}, "properties": {"repobilityId": "efbc366f96d98509", "scanner": "scanner-primary", "fingerprint": "831ab02e1b5d56bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/repo-info.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-deed9ba502924455", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/integrate.ts:2"}, "properties": {"repobilityId": "306d6385f6d88aaa", "scanner": "scanner-primary", "fingerprint": "deed9ba502924455", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/integrate.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-49164043afb813ae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/git/remote.ts:2"}, "properties": {"repobilityId": "478a541b45590526", "scanner": "scanner-primary", "fingerprint": "49164043afb813ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/git/remote.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-08890fb0ec1838e8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/agents/opencode/spawn.ts:1"}, "properties": {"repobilityId": "6f94523bebd27785", "scanner": "scanner-primary", "fingerprint": "08890fb0ec1838e8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/agents/opencode/spawn.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-877d28787d095d50", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/agents/codex/spawn.ts:1"}, "properties": {"repobilityId": "078fd6e1c70b3202", "scanner": "scanner-primary", "fingerprint": "877d28787d095d50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/agents/codex/spawn.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8c57b50c6c5f0db9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/agents/cursor/runner.ts:1"}, "properties": {"repobilityId": "44b39c57c3b9095a", "scanner": "scanner-primary", "fingerprint": "8c57b50c6c5f0db9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/agents/cursor/runner.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e24fe408388e4365", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/agents/claude/hooks-settings.test.ts:34"}, "properties": {"repobilityId": "b6d5d45418bfadaa", "scanner": "scanner-primary", "fingerprint": "e24fe408388e4365", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/agents/claude/hooks-settings.test.ts"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-5e66974a7a1252ab", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/manager.test.ts:3"}, "properties": {"repobilityId": "515b5e0bfad89a7d", "scanner": "scanner-primary", "fingerprint": "5e66974a7a1252ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/manager.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-2c376c6fdf3e38d5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/gc.test.ts:3"}, "properties": {"repobilityId": "15a37f4359e028bd", "scanner": "scanner-primary", "fingerprint": "2c376c6fdf3e38d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/gc.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-afd317fec31b8482", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/finish.ts:2"}, "properties": {"repobilityId": "5caaec1b6078518e", "scanner": "scanner-primary", "fingerprint": "afd317fec31b8482", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/finish.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-8c62cc6b5f7ae1a6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/manager.ts:2"}, "properties": {"repobilityId": "9a13808d252b3487", "scanner": "scanner-primary", "fingerprint": "8c62cc6b5f7ae1a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/manager.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-9d5dc7e44a5abd5a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/finish.test.ts:3"}, "properties": {"repobilityId": "05f8eefa33a3fb43", "scanner": "scanner-primary", "fingerprint": "9d5dc7e44a5abd5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/finish.test.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-723b5f7d5950cf0c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/gc.ts:2"}, "properties": {"repobilityId": "41efd4434f5b0c3e", "scanner": "scanner-primary", "fingerprint": "723b5f7d5950cf0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/gc.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-9632f83298c48524", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/worktree/verify.ts:2"}, "properties": {"repobilityId": "e3adcda3babbd288", "scanner": "scanner-primary", "fingerprint": "9632f83298c48524", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/worktree/verify.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-f219d494a9f061e0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/tmux.ts:1"}, "properties": {"repobilityId": "ba5dfda9d924b137", "scanner": "scanner-primary", "fingerprint": "f219d494a9f061e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/session-manager/tmux.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-726400d75f617ac3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/spawn-helper.ts:28"}, "properties": {"repobilityId": "ed87e4cd3d642a98", "scanner": "scanner-primary", "fingerprint": "726400d75f617ac3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/session-manager/spawn-helper.ts"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-7828a9a22f7ea192", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/session-manager/post-spawn-keys.ts:2"}, "properties": {"repobilityId": "87bd44caae62ed0e", "scanner": "scanner-primary", "fingerprint": "7828a9a22f7ea192", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/session-manager/post-spawn-keys.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-96e07ee2c1b7ee64", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/editor/workdir-diff.ts:2"}, "properties": {"repobilityId": "35f20211f6bae90b", "scanner": "scanner-primary", "fingerprint": "96e07ee2c1b7ee64", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/editor/workdir-diff.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-6b470a0fdcba2144", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/editor/repo-scanner.ts:4"}, "properties": {"repobilityId": "ee55fb2ebb8b424d", "scanner": "scanner-primary", "fingerprint": "6b470a0fdcba2144", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/editor/repo-scanner.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-7a062980d3a30361", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/editor/fs-service.ts:4"}, "properties": {"repobilityId": "65c5c302e3c8d1be", "scanner": "scanner-primary", "fingerprint": "7a062980d3a30361", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/editor/fs-service.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-294f672760f01dce", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/lsp/server.ts:1"}, "properties": {"repobilityId": "ba22989f2d8d35d8", "scanner": "scanner-primary", "fingerprint": "294f672760f01dce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/lsp/server.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e01473917453a043", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/lsp/install.ts:1"}, "properties": {"repobilityId": "d8716baf42205f7a", "scanner": "scanner-primary", "fingerprint": "e01473917453a043", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/lsp/install.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-238173c945972aa9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/plugins/lifecycle.ts:3"}, "properties": {"repobilityId": "626b1a6f406740cf", "scanner": "scanner-primary", "fingerprint": "238173c945972aa9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/plugins/lifecycle.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-491d207cd1e3d490", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/core/plugins/adapters/codex.ts:3"}, "properties": {"repobilityId": "da5104caec4be8f0", "scanner": "scanner-primary", "fingerprint": "491d207cd1e3d490", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/core/plugins/adapters/codex.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c71c4053464cd39c", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "632563f5562f1eb0", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d08151bb856f4436", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d71d6559b0728729", "level": "note", "message": {"text": "Very large file: src/main.ts (2931 lines)"}, "properties": {"repobilityId": "ee45022efe610d16", "scanner": "scanner-primary", "fingerprint": "d71d6559b0728729", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-872b7f8029bedbce", "level": "note", "message": {"text": "Very large file: src/channels/web/index.ts (1882 lines)"}, "properties": {"repobilityId": "864fef02bb56b094", "scanner": "scanner-primary", "fingerprint": "872b7f8029bedbce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b3ed68815bca2f8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "properties": {"repobilityId": "7edae0550c126386", "scanner": "scanner-primary", "fingerprint": "b3ed68815bca2f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "36cffada00f0cb2b", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "3559cd9353233a1c", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "c4ed8881e71ab144", "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": "5066bbdcc9e5ca42", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-320f5b3dc4341ed8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/transform-outbound.test.ts:60"}, "properties": {"repobilityId": "defb6e246a5c64fa", "scanner": "scanner-primary", "fingerprint": "320f5b3dc4341ed8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d125fc0e5dd51de2", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in tests/spawn-pa.test.ts:84"}, "properties": {"repobilityId": "024ad9641e885a04", "scanner": "scanner-primary", "fingerprint": "d125fc0e5dd51de2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-76bebb7eeaca6087", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web-system-restart.test.ts:67"}, "properties": {"repobilityId": "9319d7d5d2fb1490", "scanner": "scanner-primary", "fingerprint": "76bebb7eeaca6087", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-915dbfefe2359d97", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/migration-sessions-rebuild.test.ts:5"}, "properties": {"repobilityId": "32ba6b0870938476", "scanner": "scanner-primary", "fingerprint": "915dbfefe2359d97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d56a899ee831ad8d", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in tests/supervisor.test.ts:75"}, "properties": {"repobilityId": "3c64522bfc15bf6f", "scanner": "scanner-primary", "fingerprint": "d56a899ee831ad8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b41f2ca1782c875a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/opencode-providers-rest.test.ts:33"}, "properties": {"repobilityId": "7cc8a620598fe0fd", "scanner": "scanner-primary", "fingerprint": "b41f2ca1782c875a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92e5cd6c9886a780", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/spawn-command.test.ts:105"}, "properties": {"repobilityId": "3dcd9f549965d26d", "scanner": "scanner-primary", "fingerprint": "92e5cd6c9886a780", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc8fecd4d021d3d1", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/socket-transport.test.ts:55"}, "properties": {"repobilityId": "45bf91a69007bf78", "scanner": "scanner-primary", "fingerprint": "dc8fecd4d021d3d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d95688c2384f98d", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in tests/spawn-codex-attachments.test.ts:28"}, "properties": {"repobilityId": "370a2ffd1a9356cb", "scanner": "scanner-primary", "fingerprint": "4d95688c2384f98d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d5fa7dc808088888", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/registry.test.ts:363"}, "properties": {"repobilityId": "44114cc5ae695ca0", "scanner": "scanner-primary", "fingerprint": "d5fa7dc808088888", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47a91f6594756c2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/spawn-opencode.test.ts:7"}, "properties": {"repobilityId": "6121d9a11968f216", "scanner": "scanner-primary", "fingerprint": "47a91f6594756c2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b71c73c441ada24", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in tests/agents/codex-auth.test.ts:31"}, "properties": {"repobilityId": "d6dfa18379f1d1f2", "scanner": "scanner-primary", "fingerprint": "9b71c73c441ada24", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-326066ed46a82026", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in tests/agents/cursor-auth.test.ts:35"}, "properties": {"repobilityId": "543e32f2973c8e22", "scanner": "scanner-primary", "fingerprint": "326066ed46a82026", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e050ff8e36a0088", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/generate-versions-json.ts:1"}, "properties": {"repobilityId": "292ce4ded2f2c8f6", "scanner": "scanner-primary", "fingerprint": "6e050ff8e36a0088", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70b24c4fc7717c8c", "level": "note", "message": {"text": "Legacy-named symbol `coreLegacy` in scripts/migrate-to-mux.ts:66"}, "properties": {"repobilityId": "3d9f98ed3b3114cf", "scanner": "scanner-primary", "fingerprint": "70b24c4fc7717c8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5b8fde8993f9e40d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/migrate-to-mux.ts:5"}, "properties": {"repobilityId": "9b10e66b215f9e4d", "scanner": "scanner-primary", "fingerprint": "5b8fde8993f9e40d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82c9fd44f2282747", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/reclaim-agent-homes.ts:2"}, "properties": {"repobilityId": "9eb7c0ce1d797d04", "scanner": "scanner-primary", "fingerprint": "82c9fd44f2282747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-028021ae9f6e4840", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/asset-probe.ts:3"}, "properties": {"repobilityId": "f9c8e63fe9bfc265", "scanner": "scanner-primary", "fingerprint": "028021ae9f6e4840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ba102044d3deca1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/migrate-from-running-broker.ts:73"}, "properties": {"repobilityId": "dacb709cea7a4ee6", "scanner": "scanner-primary", "fingerprint": "3ba102044d3deca1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae40369b40f99b07", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/generate-static-manifest.ts:32"}, "properties": {"repobilityId": "c8732ab4cae7c3c1", "scanner": "scanner-primary", "fingerprint": "ae40369b40f99b07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7619d4f8bf65bf53", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/cli-setup.ts:4"}, "properties": {"repobilityId": "01b20aa1d38dd9a8", "scanner": "scanner-primary", "fingerprint": "7619d4f8bf65bf53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19af94e2ba5139ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/main.ts:461"}, "properties": {"repobilityId": "24a29cf13d824183", "scanner": "scanner-primary", "fingerprint": "19af94e2ba5139ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c8471f5cbb148e0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/cli.ts:4"}, "properties": {"repobilityId": "41f75c5ed762222c", "scanner": "scanner-primary", "fingerprint": "3c8471f5cbb148e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abb4e8edc54cf8e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli-update.test.ts:53"}, "properties": {"repobilityId": "d438f59cef4b83a4", "scanner": "scanner-primary", "fingerprint": "abb4e8edc54cf8e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-842c0ac41899a8d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/types/assets.d.ts:1"}, "properties": {"repobilityId": "d52eed4356d3f857", "scanner": "scanner-primary", "fingerprint": "842c0ac41899a8d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6f7e9933e54a21a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/shared/build-info.ts:1"}, "properties": {"repobilityId": "3930bf94ef34ecf3", "scanner": "scanner-primary", "fingerprint": "d6f7e9933e54a21a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc28504305c15a23", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/shim/socket-client.ts:78"}, "properties": {"repobilityId": "adf7c15b63d91bbb", "scanner": "scanner-primary", "fingerprint": "bc28504305c15a23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59922085ce117ca8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/shim/index.ts:17"}, "properties": {"repobilityId": "d03b6dd88868467d", "scanner": "scanner-primary", "fingerprint": "59922085ce117ca8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9f836f5de5cb532", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/web-app/sw.ts:5"}, "properties": {"repobilityId": "e594848c2458fdc8", "scanner": "scanner-primary", "fingerprint": "a9f836f5de5cb532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6fa0ab7f66a9732", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/web-app/src/stores/sessions.ts:44"}, "properties": {"repobilityId": "e7079ee4b0ffa8bf", "scanner": "scanner-primary", "fingerprint": "b6fa0ab7f66a9732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7663ce21e009405b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/api/client.ts:180"}, "properties": {"repobilityId": "5237f782e3269234", "scanner": "scanner-primary", "fingerprint": "7663ce21e009405b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6bfc83d42cdb579", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/web-app/src/composables/useNotifications.ts:86"}, "properties": {"repobilityId": "fe2222cc15044dad", "scanner": "scanner-primary", "fingerprint": "b6bfc83d42cdb579", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f9ba35a08c65359", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/channels/web/update-routes.test.ts:3"}, "properties": {"repobilityId": "7a7ef417d2b25f4a", "scanner": "scanner-primary", "fingerprint": "6f9ba35a08c65359", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d52abd12f7446af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/channels/web/update-routes.test.ts:69"}, "properties": {"repobilityId": "0d0af3e95485dac3", "scanner": "scanner-primary", "fingerprint": "6d52abd12f7446af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd1c59fae22ee591", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/channels/web/static-manifest.generated.ts:1"}, "properties": {"repobilityId": "991f7754aa837043", "scanner": "scanner-primary", "fingerprint": "cd1c59fae22ee591", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d277621c2965e7ed", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/channels/web/static-serve.ts:1"}, "properties": {"repobilityId": "3631c221fa549e72", "scanner": "scanner-primary", "fingerprint": "d277621c2965e7ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8455688c9539b2b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/channels/web/index.ts:327"}, "properties": {"repobilityId": "d841c8355e80480c", "scanner": "scanner-primary", "fingerprint": "a8455688c9539b2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d013b513916f3259", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/channels/web/cookies.ts:74"}, "properties": {"repobilityId": "98c0342f13b7d097", "scanner": "scanner-primary", "fingerprint": "d013b513916f3259", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f41d43c72b817c97", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/channels/web/inbound-handler.ts:3"}, "properties": {"repobilityId": "81477c15ec727065", "scanner": "scanner-primary", "fingerprint": "f41d43c72b817c97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f892cbb41e0eb0e7", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/runtime-assets.ts:1"}, "properties": {"repobilityId": "10ac3393f4d9ae04", "scanner": "scanner-primary", "fingerprint": "f892cbb41e0eb0e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a07ba0ae70682224", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/runtime-assets.test.ts:40"}, "properties": {"repobilityId": "ca143b16d8b9df6b", "scanner": "scanner-primary", "fingerprint": "a07ba0ae70682224", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f8fd7ed1da9cd47", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/display/providers/linux-xvfb.ts:48"}, "properties": {"repobilityId": "99cb0b19784e0ed4", "scanner": "scanner-primary", "fingerprint": "3f8fd7ed1da9cd47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd433c2d7ce6f03a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/routing/transform-outbound.ts:52"}, "properties": {"repobilityId": "5d4002a9dfd1f109", "scanner": "scanner-primary", "fingerprint": "fd433c2d7ce6f03a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cbf4ddcd2e9125b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/usage/index.ts:207"}, "properties": {"repobilityId": "40806a3cfda66f78", "scanner": "scanner-primary", "fingerprint": "4cbf4ddcd2e9125b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5014b0e0d2bb3790", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/slash-commands/providers/claude.ts:38"}, "properties": {"repobilityId": "71d8333b1a7ec1b4", "scanner": "scanner-primary", "fingerprint": "5014b0e0d2bb3790", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f8efccbb2cfb9ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/agent-header.ts:4"}, "properties": {"repobilityId": "d7ff43d01549f900", "scanner": "scanner-primary", "fingerprint": "6f8efccbb2cfb9ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e45dfd0b186d2d33", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/environment.ts:8"}, "properties": {"repobilityId": "5cdc8cdb224c1ef7", "scanner": "scanner-primary", "fingerprint": "e45dfd0b186d2d33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c81f5d7c7c024b0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/detect.ts:1"}, "properties": {"repobilityId": "2641128427eb5d82", "scanner": "scanner-primary", "fingerprint": "c81f5d7c7c024b0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe61729f90abb2f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/agents/opencode/adapter.ts:7"}, "properties": {"repobilityId": "8e919923fed38dfc", "scanner": "scanner-primary", "fingerprint": "fe61729f90abb2f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56411e0979a042ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/agents/opencode/spawn.ts:118"}, "properties": {"repobilityId": "f85a90ada4396a24", "scanner": "scanner-primary", "fingerprint": "56411e0979a042ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7da76f9795fd09a0", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in src/core/agents/codex/auth.ts:6"}, "properties": {"repobilityId": "15034df7d24aba0a", "scanner": "scanner-primary", "fingerprint": "7da76f9795fd09a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c8a5e33743922ac0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/codex/spawn.ts:37"}, "properties": {"repobilityId": "cdc562f25ece834e", "scanner": "scanner-primary", "fingerprint": "c8a5e33743922ac0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aab709b8d775b7fa", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/agents/codex/preamble-writer.ts:15"}, "properties": {"repobilityId": "138624487d90e2a3", "scanner": "scanner-primary", "fingerprint": "aab709b8d775b7fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50b763712d22ca40", "level": "note", "message": {"text": "Legacy-named symbol `oauth_copy` in src/core/agents/cursor/auth.ts:8"}, "properties": {"repobilityId": "ec1ebdef8fcaf652", "scanner": "scanner-primary", "fingerprint": "50b763712d22ca40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0136f3003b8abed7", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/core/agents/cursor/auth.ts:10"}, "properties": {"repobilityId": "c3c9273ca48cece0", "scanner": "scanner-primary", "fingerprint": "0136f3003b8abed7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8ee0b3c9566ce6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/cursor/adapter.ts:162"}, "properties": {"repobilityId": "fc247c1a648caf5a", "scanner": "scanner-primary", "fingerprint": "c8ee0b3c9566ce6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98e603ce097c2da6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/agents/cursor/preamble-writer.ts:7"}, "properties": {"repobilityId": "c9b190d3aa9d2445", "scanner": "scanner-primary", "fingerprint": "98e603ce097c2da6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-022f0a78a5c9b5a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/agents/claude/state-projection.ts:3"}, "properties": {"repobilityId": "381ce9b8bef42bb4", "scanner": "scanner-primary", "fingerprint": "022f0a78a5c9b5a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f824ff1f45c82c39", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/memory/preamble.ts:16"}, "properties": {"repobilityId": "459b7df1014bfcc4", "scanner": "scanner-primary", "fingerprint": "f824ff1f45c82c39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ff7cb50a782e990", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/memory/init.ts:46"}, "properties": {"repobilityId": "d073ba5576a3a57e", "scanner": "scanner-primary", "fingerprint": "4ff7cb50a782e990", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-017b84fa04a03bfe", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/worktree/finish.ts:36"}, "properties": {"repobilityId": "b82d0f9becf57bfa", "scanner": "scanner-primary", "fingerprint": "017b84fa04a03bfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07e5a4e5b73563f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/session-manager/shim-spawn.ts:1"}, "properties": {"repobilityId": "8319633b2ebd800e", "scanner": "scanner-primary", "fingerprint": "07e5a4e5b73563f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f63da5ea03e2ecfc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/session-manager/download.ts:57"}, "properties": {"repobilityId": "7d24b5c95a4700e9", "scanner": "scanner-primary", "fingerprint": "f63da5ea03e2ecfc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-edb407ae110fe421", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/session-manager/trust.ts:8"}, "properties": {"repobilityId": "fb3fb9bfd4b4b350", "scanner": "scanner-primary", "fingerprint": "edb407ae110fe421", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ba0987050a17af8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/session-manager/registry.ts:120"}, "properties": {"repobilityId": "f2506625f3a38f1b", "scanner": "scanner-primary", "fingerprint": "8ba0987050a17af8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b68a29dfee8157df", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/session-manager/messages.ts:71"}, "properties": {"repobilityId": "42b0bb77055ccfda", "scanner": "scanner-primary", "fingerprint": "b68a29dfee8157df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-574410dd0fd9df60", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/core/session-manager/inbound-delivery.ts:15"}, "properties": {"repobilityId": "01a47b0481400497", "scanner": "scanner-primary", "fingerprint": "574410dd0fd9df60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7ee67143a1b91fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/session-manager/agent-state-store.ts:59"}, "properties": {"repobilityId": "beff717007c23e97", "scanner": "scanner-primary", "fingerprint": "a7ee67143a1b91fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b2241d7ef8ec23d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/session-manager/spawn-helper.ts:99"}, "properties": {"repobilityId": "f971912ed3089b5d", "scanner": "scanner-primary", "fingerprint": "2b2241d7ef8ec23d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ab5b7ae58356539", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/session-manager/socket-server.ts:32"}, "properties": {"repobilityId": "0cf913b7254d412e", "scanner": "scanner-primary", "fingerprint": "5ab5b7ae58356539", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49dca53d18330a33", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/session-manager/post-spawn-keys.ts:19"}, "properties": {"repobilityId": "a5b061a62df76c8b", "scanner": "scanner-primary", "fingerprint": "49dca53d18330a33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f44172ffec847ddb", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/session-manager/spawn-command.ts:14"}, "properties": {"repobilityId": "620ca4bf069b7ae1", "scanner": "scanner-primary", "fingerprint": "f44172ffec847ddb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc3b2933984bdb72", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/core/session-manager/supervisor.ts:258"}, "properties": {"repobilityId": "b2f7c6de5884c096", "scanner": "scanner-primary", "fingerprint": "bc3b2933984bdb72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-295cc37fb395b2b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/editor/workdir-diff.ts:25"}, "properties": {"repobilityId": "7f6853bb822602f8", "scanner": "scanner-primary", "fingerprint": "295cc37fb395b2b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c17cdd4b3e06872", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/core/update/apply.test.ts:348"}, "properties": {"repobilityId": "ada70d7a5910b820", "scanner": "scanner-primary", "fingerprint": "1c17cdd4b3e06872", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1ac2bc57ed3cafb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/update/checker.ts:1"}, "properties": {"repobilityId": "b0e652d8455b4ebc", "scanner": "scanner-primary", "fingerprint": "c1ac2bc57ed3cafb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-800d97db6a7edf86", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/core/update/apply.ts:3"}, "properties": {"repobilityId": "e03806437805e08d", "scanner": "scanner-primary", "fingerprint": "800d97db6a7edf86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0f60af8218895c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/core/lsp/bridge.ts:20"}, "properties": {"repobilityId": "84b849c8db474365", "scanner": "scanner-primary", "fingerprint": "a0f60af8218895c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077b1ad8b4fd5299", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/core/lsp/install-dart-sdk.ts:31"}, "properties": {"repobilityId": "38701efaeef4dae9", "scanner": "scanner-primary", "fingerprint": "077b1ad8b4fd5299", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f45ec3c622657e74", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/core/plugins/adapters/codex.ts:13"}, "properties": {"repobilityId": "b535fa851fa23276", "scanner": "scanner-primary", "fingerprint": "f45ec3c622657e74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52e658a828501ff5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/core/storage/db.ts:44"}, "properties": {"repobilityId": "39e4a37423a9e8bb", "scanner": "scanner-primary", "fingerprint": "52e658a828501ff5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6adfe3d30ee9355f", "level": "note", "message": {"text": "40 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a58f987b7fee95b4", "scanner": "scanner-primary", "fingerprint": "6adfe3d30ee9355f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}