{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-1f2fefa048b6cea0", "name": "Stray `console.log` in TS/JS \u2014 tests/chaos/supervisor-bounce-survival.test.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/chaos/supervisor-bounce-survival.test.ts:207"}, "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-fe7f4921a978c0c5", "name": "Stray `console.log` in TS/JS \u2014 apps/web/scripts/generate-tokens.ts:389", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/scripts/generate-tokens.ts:389"}, "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-0c115c553951c2e4", "name": "Stray `console.log` in TS/JS \u2014 scripts/validate-catalog.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-catalog.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-0e945965515355e1", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke-http-mcp.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-http-mcp.ts:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65d4b119153cf8b4", "name": "Stray `console.log` in TS/JS \u2014 scripts/manual-wire-pub.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/manual-wire-pub.ts:37"}, "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-3cf40690c4b21020", "name": "Stray `console.log` in TS/JS \u2014 scripts/smoke/walkthrough-cheap-model.ts:357", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke/walkthrough-cheap-model.ts:357"}, "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-64ac8939def8adb6", "name": "Stray `console.log` in TS/JS \u2014 src/cli/usage-formatter.ts:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/usage-formatter.ts:70"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c8f92bda15ac5b3", "name": "Stray `console.log` in TS/JS \u2014 src/cli/main.ts:239", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/main.ts:239"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5090d2c65997b6c8", "name": "Stray `console.log` in TS/JS \u2014 src/runtime/onboarding/preview.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/runtime/onboarding/preview.ts:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dacf08a2297c2e53", "name": "Insecure pattern 'node_child_process' in src/runtime/install/update.ts:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/update.ts:27"}, "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-813de0cf380e2e8d", "name": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-trigger.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-trigger.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36d53895b25b689c", "name": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-runner.ts:30", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-runner.ts:30"}, "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-4d73ec79a3491316", "name": "Insecure pattern 'node_child_process' in src/runtime/connectors/gateway-manager.ts:22", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/connectors/gateway-manager.ts:22"}, "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-20f1f3644af16a26", "name": "Insecure pattern 'node_child_process' in src/runtime/supervisor/daemon.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/supervisor/daemon.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-ffb63daf71c70a0e", "name": "Insecure pattern 'node_child_process' in src/runtime/extensions/source.ts:38", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/source.ts:38"}, "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-d2fce54d0c1763d2", "name": "Insecure pattern 'node_child_process' in src/runtime/extensions/hooks.ts:48", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/hooks.ts:48"}, "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-44728720ddf0b52e", "name": "Insecure pattern 'node_child_process' in src/runtime/extensions/install-pipeline.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/install-pipeline.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b9919906a56cc43", "name": "Insecure pattern 'node_child_process' in src/runtime/tools/baseline/shell.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/runtime/tools/baseline/shell.ts:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ecdc3efdd4aa236", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "contributor-assistant/github-action@v2.6.1 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-2fdcc3aac10df7e9", "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v6 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": "low", "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": "actions/checkout@v6 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": "low", "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-15235f7efa7574fb", "name": "Very large file: apps/web/src/lib/api.ts (1960 lines)", "shortDescription": {"text": "Very large file: apps/web/src/lib/api.ts (1960 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-09a34b31cc78539a", "name": "Very large file: src/cli/main.ts (4814 lines)", "shortDescription": {"text": "Very large file: src/cli/main.ts (4814 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-d8eaaad42efa3092", "name": "Very large file: src/runtime/supervisor/supervisor.ts (4103 lines)", "shortDescription": {"text": "Very large file: src/runtime/supervisor/supervisor.ts (4103 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-48a7f6192d8d02e5", "name": "Very large file: src/runtime/agent/loop.ts (2243 lines)", "shortDescription": {"text": "Very large file: src/runtime/agent/loop.ts (2243 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-3175aba1553182de", "name": "Very large file: src/runtime/http/server.ts (6676 lines)", "shortDescription": {"text": "Very large file: src/runtime/http/server.ts (6676 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-3cd7ac8ac7e42deb", "name": "Very large file: src/runtime/onboarding/starter-pack.ts (1532 lines)", "shortDescription": {"text": "Very large file: src/runtime/onboarding/starter-pack.ts (1532 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-57ae48dea9732fa6", "name": "Node manifest has dependencies but no lockfile: apps/discord-connector/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/discord-connector/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-63300588a30a6722", "name": "Node manifest has dependencies but no lockfile: apps/whatsapp-connector/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/whatsapp-connector/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-4a9eb7dc7c6e3880", "name": "Node manifest has dependencies but no lockfile: apps/web/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/web/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 543 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 93 placeholder/mock markers across 49 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb2ddc642c71d527", "name": "Commented-code block (5 lines) in tsup.config.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in tsup.config.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf0e6c4f5a5c7d02", "name": "Commented-code block (5 lines) in tests/integration/poe-smoke.test.ts:197", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/poe-smoke.test.ts:197"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43fb2fff0ce94748", "name": "Commented-code block (5 lines) in tests/cli/load-cli-env-files.test.ts:103", "shortDescription": {"text": "Commented-code block (5 lines) in tests/cli/load-cli-env-files.test.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16bcbc380a6fb2d9", "name": "Commented-code block (9 lines) in tests/runtime/install/upgrade-trigger.test.ts:125", "shortDescription": {"text": "Commented-code block (9 lines) in tests/runtime/install/upgrade-trigger.test.ts:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a5413479720e720", "name": "Commented-code block (5 lines) in tests/runtime/install/first-run.test.ts:92", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/install/first-run.test.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84f939221b7a7a7c", "name": "Commented-code block (9 lines) in tests/runtime/supervisor/agent-pub-identity.test.ts:167", "shortDescription": {"text": "Commented-code block (9 lines) in tests/runtime/supervisor/agent-pub-identity.test.ts:167"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8dff25f0db0498e7", "name": "Commented-code block (5 lines) in tests/runtime/supervisor/daemon.test.ts:44", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/daemon.test.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-27aa1854f2d226cd", "name": "Commented-code block (5 lines) in tests/runtime/supervisor/stop-agent-orphans.test.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/stop-agent-orphans.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a9c224f3b7a9ad5", "name": "Commented-code block (5 lines) in tests/runtime/supervisor/scheduler-integration.test.ts:131", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/scheduler-integration.test.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-123cf48233df1b0b", "name": "Commented-code block (5 lines) in tests/runtime/agent/loop.test.ts:195", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/agent/loop.test.ts:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2014b0578737192e", "name": "Commented-code block (5 lines) in tests/runtime/agent/incomplete-turn-integration.test.ts:193", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/agent/incomplete-turn-integration.test.ts:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2582a46b47139c2f", "name": "Commented-code block (5 lines) in tests/runtime/agent/audit/kick-back.test.ts:253", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/agent/audit/kick-back.test.ts:253"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-267335c1ff2d3290", "name": "Commented-code block (8 lines) in tests/runtime/http/server.test.ts:424", "shortDescription": {"text": "Commented-code block (8 lines) in tests/runtime/http/server.test.ts:424"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86e4ed27e1c43130", "name": "Commented-code block (6 lines) in tests/runtime/onboarding/session.test.ts:545", "shortDescription": {"text": "Commented-code block (6 lines) in tests/runtime/onboarding/session.test.ts:545"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e7b0d6a044d2c45", "name": "Commented-code block (7 lines) in tests/runtime/tools/dispatcher.test.ts:212", "shortDescription": {"text": "Commented-code block (7 lines) in tests/runtime/tools/dispatcher.test.ts:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad5a013feaf59b2f", "name": "Commented-code block (19 lines) in tests/runtime/tools/baseline.test.ts:58", "shortDescription": {"text": "Commented-code block (19 lines) in tests/runtime/tools/baseline.test.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12795d34c36ea6fe", "name": "Commented-code block (5 lines) in tests/runtime/tools/baseline/http.test.ts:190", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/tools/baseline/http.test.ts:190"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b19d96982390240", "name": "Legacy-named symbol `credential_request_v1` in tests/runtime/tools/baseline/credential.test.ts:298", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in tests/runtime/tools/baseline/credential.test.ts:298"}, "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-1091f2b0fd349e2b", "name": "Commented-code block (7 lines) in tests/runtime/scheduler/service.test.ts:235", "shortDescription": {"text": "Commented-code block (7 lines) in tests/runtime/scheduler/service.test.ts:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab41c13a1d4681fc", "name": "Legacy-named symbol `credential_request_v1` in tests/runtime/credentials/requests.test.ts:314", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in tests/runtime/credentials/requests.test.ts:314"}, "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-14eb838edb59ff4d", "name": "Commented-code block (5 lines) in tests/runtime/llm/pricing.test.ts:172", "shortDescription": {"text": "Commented-code block (5 lines) in tests/runtime/llm/pricing.test.ts:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89f1796efeb4aeea", "name": "Commented-code block (5 lines) in tests/chaos/supervisor-bounce-survival.test.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in tests/chaos/supervisor-bounce-survival.test.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d964d2191c0adcc", "name": "Commented-code block (5 lines) in apps/discord-connector/src/gateway.ts:187", "shortDescription": {"text": "Commented-code block (5 lines) in apps/discord-connector/src/gateway.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f683edc80bb529d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/discord-connector/src/gateway.ts:254", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/discord-connector/src/gateway.ts:254"}, "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-5f360f2df0a7abc3", "name": "Commented-code block (6 lines) in apps/web/eslint.config.js:34", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/eslint.config.js:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c61c40d903dbed01", "name": "Commented-code block (5 lines) in apps/web/src/screens/settings/SystemUpdateSection.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/screens/settings/SystemUpdateSection.tsx: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-0ba28a391ee4b4f3", "name": "Commented-code block (6 lines) in apps/web/src/screens/settings/EndpointsSection.tsx:146", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/screens/settings/EndpointsSection.tsx:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fdbc7cf080f80e8", "name": "Commented-code block (5 lines) in apps/web/src/screens/budget/BudgetScreen.tsx:70", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/screens/budget/BudgetScreen.tsx:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-729dcafc253d2546", "name": "Commented-code block (6 lines) in apps/web/src/screens/agent/ModelPicker.tsx:127", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/screens/agent/ModelPicker.tsx:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b233991b30f26a9", "name": "Commented-code block (5 lines) in apps/web/src/screens/agent/AgentDetailScreen.tsx:106", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/screens/agent/AgentDetailScreen.tsx:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fd6bdc5eaf0cfaf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/screens/agent/AgentDetailScreen.tsx:933", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/screens/agent/AgentDetailScreen.tsx:933"}, "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-56f86f138fd2adf1", "name": "Commented-code block (6 lines) in apps/web/src/screens/extensions/ExtensionsScreen.tsx:459", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/screens/extensions/ExtensionsScreen.tsx:459"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a78d6baacba867e2", "name": "Commented-code block (5 lines) in apps/web/src/screens/onboarding/OnboardingScreen.tsx:90", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/screens/onboarding/OnboardingScreen.tsx:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2133d1f2bffd3e9", "name": "Commented-code block (5 lines) in apps/web/src/screens/studio/StudioScreen.tsx:514", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/screens/studio/StudioScreen.tsx:514"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-032735678c55eb91", "name": "Legacy-named symbol `credential_request_v1` in apps/web/src/chat/CredentialRequestCard.tsx:342", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in apps/web/src/chat/CredentialRequestCard.tsx:342"}, "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-26874330ea81bfa3", "name": "Commented-code block (8 lines) in apps/web/src/chat/CredentialRequestCard.tsx:80", "shortDescription": {"text": "Commented-code block (8 lines) in apps/web/src/chat/CredentialRequestCard.tsx:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-428164a65723ce09", "name": "Legacy-named symbol `audit_card_v1` in apps/web/src/chat/AuditCard.tsx:92", "shortDescription": {"text": "Legacy-named symbol `audit_card_v1` in apps/web/src/chat/AuditCard.tsx:92"}, "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-468d3cc127e582d2", "name": "Commented-code block (6 lines) in apps/web/src/ws/useLiveSignal.tsx:95", "shortDescription": {"text": "Commented-code block (6 lines) in apps/web/src/ws/useLiveSignal.tsx:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56765f6c1947e463", "name": "Legacy-named symbol `audit_card_v1` in apps/web/src/lib/api.ts:451", "shortDescription": {"text": "Legacy-named symbol `audit_card_v1` in apps/web/src/lib/api.ts:451"}, "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-6b2782be8c25ebe3", "name": "Commented-code block (5 lines) in apps/web/src/favicon/LiveFavicon.tsx:53", "shortDescription": {"text": "Commented-code block (5 lines) in apps/web/src/favicon/LiveFavicon.tsx:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e35f553312a6a3b2", "name": "Commented-code block (8 lines) in scripts/bundle-connectors.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/bundle-connectors.mjs:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-160835bdf3b798db", "name": "Commented-code block (7 lines) in scripts/smoke/walkthrough-cheap-model.ts:181", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/smoke/walkthrough-cheap-model.ts:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-325dbbb1c282c964", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke/walkthrough-cheap-model.ts:156", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke/walkthrough-cheap-model.ts:156"}, "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-c03a993d0fbe5b6f", "name": "Commented-code block (7 lines) in src/index.ts:20", "shortDescription": {"text": "Commented-code block (7 lines) in src/index.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-9524f0ea71a00f4d", "name": "Commented-code block (7 lines) in src/cli/main.ts:195", "shortDescription": {"text": "Commented-code block (7 lines) in src/cli/main.ts:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6125d4b09554c08", "name": "Commented-code block (6 lines) in src/runtime/pub/wake-source.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/pub/wake-source.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ead37cefa6b6ac3", "name": "Commented-code block (6 lines) in src/runtime/pub/identity-client.ts:243", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/pub/identity-client.ts:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd49048226df2780", "name": "Commented-code block (9 lines) in src/runtime/pub/keypair.ts:265", "shortDescription": {"text": "Commented-code block (9 lines) in src/runtime/pub/keypair.ts:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7e3dd7bc4ea5aab", "name": "Commented-code block (6 lines) in src/runtime/pub/client.ts:278", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/pub/client.ts:278"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-856c71b9b44de53c", "name": "Commented-code block (7 lines) in src/runtime/pub/directed-to.ts:126", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/pub/directed-to.ts:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c4c59b1f5f60f9b", "name": "Commented-code block (5 lines) in src/runtime/install/first-run.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/install/first-run.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a9aaf51e4e56c6a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/first-run.ts:563", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/first-run.ts:563"}, "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-358bb3f8a6b8b46b", "name": "Commented-code block (5 lines) in src/runtime/install/quick-setup.ts:179", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/install/quick-setup.ts:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6aff22672d87acfa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/upgrade-trigger.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/upgrade-trigger.ts:64"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81dc1975399c1b9a", "name": "Commented-code block (6 lines) in src/runtime/mcp/restart-manager.ts:177", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/mcp/restart-manager.ts:177"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44d68725e1a800af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/mcp/http-transport.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/mcp/http-transport.ts:46"}, "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-c85587bc1df5689e", "name": "Commented-code block (8 lines) in src/runtime/mcp/stdio-transport.ts:137", "shortDescription": {"text": "Commented-code block (8 lines) in src/runtime/mcp/stdio-transport.ts:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edac9d7e11886c31", "name": "Commented-code block (5 lines) in src/runtime/mcp/connector/work-package.ts:131", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/mcp/connector/work-package.ts:131"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80549440ec1c04ed", "name": "Commented-code block (8 lines) in src/runtime/mcp/connector/listener.ts:63", "shortDescription": {"text": "Commented-code block (8 lines) in src/runtime/mcp/connector/listener.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3f7ba828bd52b80", "name": "Commented-code block (6 lines) in src/runtime/mcp/connector/contributions.ts:146", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/contributions.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b17081f74d4fc7c", "name": "Commented-code block (6 lines) in src/runtime/mcp/connector/server.ts:277", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/server.ts:277"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93acdd9a32885dc3", "name": "Commented-code block (6 lines) in src/runtime/mcp/connector/fleet-context.ts:186", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/fleet-context.ts:186"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51a986fd02781771", "name": "Commented-code block (6 lines) in src/runtime/mcp/connector/oauth/server.ts:81", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/oauth/server.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4969fd3284176e79", "name": "Commented-code block (7 lines) in src/runtime/supervisor/pub-bridge.ts:201", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/supervisor/pub-bridge.ts:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be6b836a51d4e0cb", "name": "Commented-code block (11 lines) in src/runtime/supervisor/pub-lifecycle.ts:116", "shortDescription": {"text": "Commented-code block (11 lines) in src/runtime/supervisor/pub-lifecycle.ts:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3cb9db85e679ca6", "name": "Legacy-named symbol `isLegacy` in src/runtime/supervisor/daemon.ts:196", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in src/runtime/supervisor/daemon.ts:196"}, "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-3a7d4aa9f94b8c94", "name": "Commented-code block (6 lines) in src/runtime/supervisor/daemon.ts:90", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/supervisor/daemon.ts:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a44fe466241461f", "name": "Commented-code block (6 lines) in src/runtime/supervisor/bootstrap.ts:141", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/supervisor/bootstrap.ts:141"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d7ad588889bc848", "name": "Legacy-named symbol `credential_request_v1` in src/runtime/supervisor/supervisor.ts:3224", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/supervisor/supervisor.ts:3224"}, "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-ecb1a481569f9724", "name": "Commented-code block (8 lines) in src/runtime/supervisor/supervisor.ts:533", "shortDescription": {"text": "Commented-code block (8 lines) in src/runtime/supervisor/supervisor.ts:533"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78c0871500ba2b8b", "name": "Commented-code block (7 lines) in src/runtime/agent/loop.ts:100", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/agent/loop.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20203c6dc4a253aa", "name": "Commented-code block (6 lines) in src/runtime/agent/bootstrap.ts:44", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/agent/bootstrap.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-23bd6874b7b11198", "name": "Commented-code block (5 lines) in src/runtime/agent/process.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/agent/process.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56c819d91b76a931", "name": "Legacy-named symbol `audit_card_v1` in src/runtime/http/server.ts:6576", "shortDescription": {"text": "Legacy-named symbol `audit_card_v1` in src/runtime/http/server.ts:6576"}, "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-160c0f3ba9da5c1f", "name": "Commented-code block (8 lines) in src/runtime/http/server.ts:224", "shortDescription": {"text": "Commented-code block (8 lines) in src/runtime/http/server.ts:224"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-473ba7651103c262", "name": "Commented-code block (5 lines) in src/runtime/migration/openclaw.ts:118", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/migration/openclaw.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-5aaa7f713edb5235", "name": "Commented-code block (6 lines) in src/runtime/migration/orchestrator.ts:160", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/migration/orchestrator.ts:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e3ce529f2f9f60a", "name": "Commented-code block (5 lines) in src/runtime/migration/identity-from-handoff.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/migration/identity-from-handoff.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-054afa731982056d", "name": "Commented-code block (5 lines) in src/runtime/oauth/device-flow.ts:156", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/oauth/device-flow.ts:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90a341a7477f92ab", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/device-flow.ts:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/device-flow.ts:87"}, "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-773eee8f59b39c13", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/refresh.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/refresh.ts:23"}, "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-bcc62f558b9ac898", "name": "Commented-code block (6 lines) in src/runtime/identity/types.ts:100", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/identity/types.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75a0a4895c319e7f", "name": "Commented-code block (6 lines) in src/runtime/control-plane/protocol.ts:545", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/protocol.ts:545"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23248e8243c3251c", "name": "Commented-code block (6 lines) in src/runtime/control-plane/uds-server.ts:75", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/uds-server.ts:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc3bdc5a87903477", "name": "Commented-code block (6 lines) in src/runtime/control-plane/server.ts:139", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/server.ts:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65c9f3850071a90f", "name": "Commented-code block (6 lines) in src/runtime/extensions/install.ts:532", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/extensions/install.ts:532"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee88da420da65eb3", "name": "Commented-code block (5 lines) in src/runtime/onboarding/script-loader.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/onboarding/script-loader.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f84b893fa718de4", "name": "Commented-code block (5 lines) in src/runtime/onboarding/session.ts:408", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/onboarding/session.ts:408"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95d2ad3ae48f2254", "name": "Commented-code block (6 lines) in src/runtime/onboarding/identity-from-interview.ts:87", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/onboarding/identity-from-interview.ts:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ad5a868e49b2b10", "name": "Commented-code block (6 lines) in src/runtime/tools/dispatcher.ts:208", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/tools/dispatcher.ts:208"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-557386c179240503", "name": "Commented-code block (5 lines) in src/runtime/tools/perm/checks/commons-scope.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/tools/perm/checks/commons-scope.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b61d8eccd6bb730d", "name": "Commented-code block (5 lines) in src/runtime/tools/baseline/brain.ts:409", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/brain.ts:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ea59121f42897d8", "name": "Commented-code block (6 lines) in src/runtime/tools/baseline/notification.ts:56", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/notification.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e5da6fdaea947f3", "name": "Commented-code block (5 lines) in src/runtime/tools/baseline/schedule.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/schedule.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3daa0719cf2da13", "name": "Commented-code block (6 lines) in src/runtime/tools/baseline/index.ts:101", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/index.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecc845498f002381", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/web.ts:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/web.ts:5"}, "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-862d8e0d0dc238d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/http.ts:171", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/http.ts:171"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61840cb6863332e3", "name": "Legacy-named symbol `credential_request_v1` in src/runtime/tools/baseline/credential.ts:452", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/tools/baseline/credential.ts:452"}, "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-aa4b99e9e7cad4f6", "name": "Commented-code block (6 lines) in src/runtime/tools/baseline/credential.ts:136", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/credential.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-328e011257c68b74", "name": "Commented-code block (5 lines) in src/runtime/tools/baseline/shelf.ts:490", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/shelf.ts:490"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e23fc36fdbcc577a", "name": "Commented-code block (7 lines) in src/runtime/tools/platform/spotify/tools.ts:40", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/tools/platform/spotify/tools.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-65d3395e689be70e", "name": "Commented-code block (5 lines) in src/runtime/brain/store.ts:201", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/brain/store.ts:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35156223fa833134", "name": "Commented-code block (5 lines) in src/runtime/scheduler/service.ts:259", "shortDescription": {"text": "Commented-code block (5 lines) in src/runtime/scheduler/service.ts:259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea8ae392281e900a", "name": "Legacy-named symbol `credential_request_v1` in src/runtime/credentials/request-types.ts:132", "shortDescription": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/credentials/request-types.ts:132"}, "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-25720cad5df5162d", "name": "Commented-code block (6 lines) in src/runtime/llm/registry.ts:70", "shortDescription": {"text": "Commented-code block (6 lines) in src/runtime/llm/registry.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e573c7281d3efd4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/llm/registry.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/llm/registry.ts:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c98af62b0e0a27b0", "name": "Commented-code block (7 lines) in src/runtime/llm/openai.ts:103", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/llm/openai.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-292b04491230e580", "name": "Commented-code block (7 lines) in src/runtime/llm/anthropic.ts:187", "shortDescription": {"text": "Commented-code block (7 lines) in src/runtime/llm/anthropic.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-645d834a1659de70", "name": "Frontend route `/agent/:name` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5604197b01a56591", "name": "Frontend route `/agent/:name/chat/:chatId` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name/chat/:chatId` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-63f0be093ed8a002", "name": "Frontend route `/agent/:name/chat` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name/chat` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5650be80033188ac", "name": "Frontend route `/agent/:name/brain` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name/brain` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-023fbcf15105abc4", "name": "Frontend route `/agent/:name/schedules` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name/schedules` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed079f0b8f147d05", "name": "Frontend route `/agent/:name/tools` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/agent/:name/tools` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b57631ec343a0f9", "name": "Frontend route `/studio/:pub` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/studio/:pub` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42af93f74c5316d6", "name": "Frontend route `/fleet` has no Link/navigate to it \u2014 apps/web/src/router.tsx", "shortDescription": {"text": "Frontend route `/fleet` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-176db52f079d3acd", "name": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:178)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:178)"}, "fullDescription": {"text": "`tests/runtime/mcp/connector/listener.test.ts:178` calls `POST http://127.0.0.1:${String(handle.port)}/mcp` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/mcp`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3477a7287ab8a4f6", "name": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:205)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:205)"}, "fullDescription": {"text": "`tests/runtime/mcp/connector/listener.test.ts:205` calls `POST http://127.0.0.1:${String(handle.port)}/mcp` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/mcp`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed463ee09c8d0a2e", "name": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:533)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:533)"}, "fullDescription": {"text": "`tests/runtime/mcp/connector/listener.test.ts:533` calls `POST http://127.0.0.1:${String(handle.port)}/mcp` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/mcp`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c78ef4f3c5001fe9", "name": "Dangling fetch: GET http://127.0.0.1:${String(handle.port)}/somethingelse (tests/runtime/oauth/redirect-server.test.ts:4", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${String(handle.port)}/somethingelse (tests/runtime/oauth/redirect-server.test.ts:48)"}, "fullDescription": {"text": "`tests/runtime/oauth/redirect-server.test.ts:48` calls `GET http://127.0.0.1:${String(handle.port)}/somethingelse` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/somethingelse`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-12bbf766d6d6d96f", "name": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:884)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:884)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:884` calls `GET /api/v1/agents/${encodeURIComponent(name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-09b5e1d45c6856a2", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/start (apps/web/src/lib/api.ts:886)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/start (apps/web/src/lib/api.ts:886)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:886` calls `POST /api/v1/agents/${encodeURIComponent(name)}/start` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/start`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b67fde22dd1fa1c5", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/stop (apps/web/src/lib/api.ts:888)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/stop (apps/web/src/lib/api.ts:888)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:888` calls `POST /api/v1/agents/${encodeURIComponent(name)}/stop` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/stop`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d538bbcff07ebf5f", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/archive (apps/web/src/lib/api.ts:899)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/archive (apps/web/src/lib/api.ts:899)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:899` calls `POST /api/v1/agents/${encodeURIComponent(name)}/archive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/archive`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3d9c18e10871c66c", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/unarchive (apps/web/src/lib/api.ts:910)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/unarchive (apps/web/src/lib/api.ts:910)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:910` calls `POST /api/v1/agents/${encodeURIComponent(name)}/unarchive` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/unarchive`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a9bc1c523a532a5", "name": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:915)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:915)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:915` calls `GET /api/v1/agents/${encodeURIComponent(name)}/budget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/budget`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd0cb5ad1f1b9dfe", "name": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:923)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:923)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:923` calls `PUT /api/v1/agents/${encodeURIComponent(name)}/budget` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/budget`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1344ab7c27c60e16", "name": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/tools (apps/web/src/lib/api.ts:933)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/tools (apps/web/src/lib/api.ts:933)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:933` calls `GET /api/v1/agents/${encodeURIComponent(name)}/tools` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/tools`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e6035cf17b4a3775", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/brain (apps/web/src/lib/api.ts:969)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/brain (apps/web/src/lib/api.ts:969)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:969` calls `POST /api/v1/agents/${encodeURIComponent(name)}/brain` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/brain`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c47672a5cbd3a740", "name": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/brain/note/${encodeURIComponent(slug)} (apps/web/src/li", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/brain/note/${encodeURIComponent(slug)} (apps/web/src/lib/api.ts:978)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:978` calls `PATCH /api/v1/agents/${encodeURIComponent(name)}/brain/note/${encodeURIComponent(slug)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/brain/note/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-709e009869b82ac9", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/chats (apps/web/src/lib/api.ts:997)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/chats (apps/web/src/lib/api.ts:997)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:997` calls `POST /api/v1/agents/${encodeURIComponent(name)}/chats` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/chats`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f69d97ea0a506ab1", "name": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/chats/${encodeURIComponent(chatId)} (apps/web/src/lib/a", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/chats/${encodeURIComponent(chatId)} (apps/web/src/lib/api.ts:1006)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1006` calls `PATCH /api/v1/agents/${encodeURIComponent(name)}/chats/${encodeURIComponent(chatId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/chats/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04cc9f69b990ed41", "name": "Dangling fetch: PATCH /api/v1/settings/endpoints/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1067)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/settings/endpoints/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1067)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1067` calls `PATCH /api/v1/settings/endpoints/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/endpoints/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b88514614ffc1fe4", "name": "Dangling fetch: GET /api/v1/settings/endpoints/${encodeURIComponent(id)}/models (apps/web/src/lib/api.ts:1088)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/settings/endpoints/${encodeURIComponent(id)}/models (apps/web/src/lib/api.ts:1088)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1088` calls `GET /api/v1/settings/endpoints/${encodeURIComponent(id)}/models` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/endpoints/<p>/models`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-987ee6b5ff74c21e", "name": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/identity (apps/web/src/lib/api.ts:1123)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/identity (apps/web/src/lib/api.ts:1123)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1123` calls `PUT /api/v1/agents/${encodeURIComponent(name)}/identity` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/identity`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d9c01c9d1f6d6db3", "name": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/avatar/image (apps/web/src/lib/api.ts:1133)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/avatar/image (apps/web/src/lib/api.ts:1133)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1133` calls `PUT /api/v1/agents/${encodeURIComponent(name)}/avatar/image` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/avatar/image`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0a6c61eaa3e67793", "name": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/model (apps/web/src/lib/api.ts:1145)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/model (apps/web/src/lib/api.ts:1145)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1145` calls `PUT /api/v1/agents/${encodeURIComponent(name)}/model` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/model`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98adb3482234e50b", "name": "Dangling fetch: PUT /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1158)", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1158)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1158` calls `PUT /api/v1/settings/providers/${encodeURIComponent(id)}/key` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/providers/<p>/key`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5380cf61199d072a", "name": "Dangling fetch: DELETE /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1169)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1169)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1169` calls `DELETE /api/v1/settings/providers/${encodeURIComponent(id)}/key` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/settings/providers/<p>/key`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-958d367047ebc807", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/tasks (apps/web/src/lib/api.ts:1185)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/tasks (apps/web/src/lib/api.ts:1185)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1185` calls `POST /api/v1/agents/${encodeURIComponent(name)}/tasks` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/tasks`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cbd9a67dd107a433", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/schedules (apps/web/src/lib/api.ts:1192)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/schedules (apps/web/src/lib/api.ts:1192)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1192` calls `POST /api/v1/agents/${encodeURIComponent(name)}/schedules` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/schedules`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95b27c4b13004631", "name": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/schedules/${encodeURIComponent(id)} (apps/web/src/lib/a", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/schedules/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1197)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1197` calls `PATCH /api/v1/agents/${encodeURIComponent(name)}/schedules/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/schedules/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b0d5edb03a0978c", "name": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/respond (apps/web/src/lib/api.ts:1215)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/respond (apps/web/src/lib/api.ts:1215)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1215` calls `POST /api/v1/notifications/${encodeURIComponent(id)}/respond` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/notifications/<p>/respond`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-db7911ac6fbd2160", "name": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/dismiss (apps/web/src/lib/api.ts:1220)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/dismiss (apps/web/src/lib/api.ts:1220)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1220` calls `POST /api/v1/notifications/${encodeURIComponent(id)}/dismiss` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/notifications/<p>/dismiss`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1730538b7b20637a", "name": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(agent)}/credential-requests/${encodeURIComponent(id)}/fulfill (", "shortDescription": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(agent)}/credential-requests/${encodeURIComponent(id)}/fulfill (apps/web/src/lib/api.ts:1236)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1236` calls `POST /api/v1/agents/${encodeURIComponent(agent)}/credential-requests/${encodeURIComponent(id)}/fulfill` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/agents/<p>/credential-requests/<p>/fulfill`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e279076637ac7bd", "name": "Dangling fetch: GET /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1254)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1254)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1254` calls `GET /api/v1/onboarding/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e04f7e4127f9c910", "name": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/answer (apps/web/src/lib/api.ts:1256)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/answer (apps/web/src/lib/api.ts:1256)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1256` calls `POST /api/v1/onboarding/${encodeURIComponent(id)}/answer` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/<p>/answer`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aed47539ef983390", "name": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/confirm (apps/web/src/lib/api.ts:1261)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/confirm (apps/web/src/lib/api.ts:1261)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1261` calls `POST /api/v1/onboarding/${encodeURIComponent(id)}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/<p>/confirm`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef5439ce1e98eab7", "name": "Dangling fetch: DELETE /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1266)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1266)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1266` calls `DELETE /api/v1/onboarding/${encodeURIComponent(id)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/onboarding/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8094673db1a134a2", "name": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/messages (apps/web/src/lib/api.ts:1291)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/messages (apps/web/src/lib/api.ts:1291)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1291` calls `POST /api/v1/pubs/${encodeURIComponent(name)}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/pubs/<p>/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6c0d401cd97be26", "name": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/reactions (apps/web/src/lib/api.ts:1296)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/reactions (apps/web/src/lib/api.ts:1296)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1296` calls `POST /api/v1/pubs/${encodeURIComponent(name)}/reactions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/pubs/<p>/reactions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7fdd7724cc8f013d", "name": "Dangling fetch: PATCH /api/v1/pubs/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1323)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/pubs/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1323)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1323` calls `PATCH /api/v1/pubs/${encodeURIComponent(name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/pubs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-801d844295a90938", "name": "Dangling fetch: DELETE /api/v1/pubs/${encodeURIComponent(name)}?confirm=DESTROY (apps/web/src/lib/api.ts:1335)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/pubs/${encodeURIComponent(name)}?confirm=DESTROY (apps/web/src/lib/api.ts:1335)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1335` calls `DELETE /api/v1/pubs/${encodeURIComponent(name)}?confirm=DESTROY` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/pubs/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-481cd9dc57082d98", "name": "Dangling fetch: DELETE /api/v1/skills/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1368)", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/skills/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1368)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1368` calls `DELETE /api/v1/skills/${encodeURIComponent(name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/skills/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6ea793d147a63b24", "name": "Dangling fetch: GET /api/v1/skills/${encodeURIComponent(name)}/credentials (apps/web/src/lib/api.ts:1373)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/skills/${encodeURIComponent(name)}/credentials (apps/web/src/lib/api.ts:1373)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1373` calls `GET /api/v1/skills/${encodeURIComponent(name)}/credentials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/skills/<p>/credentials`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5746a800f0313904", "name": "Dangling fetch: PUT /api/v1/skills/${encodeURIComponent(name)}/credentials/${encodeURIComponent(agent)}/${encodeURICompo", "shortDescription": {"text": "Dangling fetch: PUT /api/v1/skills/${encodeURIComponent(name)}/credentials/${encodeURIComponent(agent)}/${encodeURIComponent(envKey)} (apps/web/src/lib/api.ts:1375)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1375` calls `PUT /api/v1/skills/${encodeURIComponent(name)}/credentials/${encodeURIComponent(agent)}/${encodeURIComponent(envKey)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/skills/<p>/credentials/<p>/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-becb18ca9f014ad2", "name": "Dangling fetch: POST /api/v1/system/update (apps/web/src/lib/api.ts:1634)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/system/update (apps/web/src/lib/api.ts:1634)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1634` calls `POST /api/v1/system/update` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/system/update`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-659de5a3dd468f75", "name": "Dangling fetch: POST /api/v1/connector/oauth-clients/${encodeURIComponent(clientId)}/revoke (apps/web/src/lib/api.ts:178", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connector/oauth-clients/${encodeURIComponent(clientId)}/revoke (apps/web/src/lib/api.ts:1783)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1783` calls `POST /api/v1/connector/oauth-clients/${encodeURIComponent(clientId)}/revoke` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connector/oauth-clients/<p>/revoke`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b5198618dde0155c", "name": "Dangling fetch: POST /api/v1/connector/conduits/${encodeURIComponent(clientId)}/retire (apps/web/src/lib/api.ts:1848)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/connector/conduits/${encodeURIComponent(clientId)}/retire (apps/web/src/lib/api.ts:1848)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1848` calls `POST /api/v1/connector/conduits/${encodeURIComponent(clientId)}/retire` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/connector/conduits/<p>/retire`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1a25bdf678c2f492", "name": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/pair/start${qs} (apps/web/src/lib/api.ts:1900)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/pair/start${qs} (apps/web/src/lib/api.ts:1900)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1900` calls `POST /api/v1/extensions/${encodeURIComponent(id)}/pair/start${qs}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/extensions/<p>/pair/start/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-61928f9aab48b917", "name": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/setup (apps/web/sr", "shortDescription": {"text": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/setup (apps/web/src/lib/api.ts:1932)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1932` calls `POST /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/extensions/<p>/agents/<p>/setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-34aa95a48bf247f8", "name": "Dangling fetch: PATCH /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/policy (apps/web/", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/policy (apps/web/src/lib/api.ts:1951)"}, "fullDescription": {"text": "`apps/web/src/lib/api.ts:1951` calls `PATCH /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/policy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/v1/extensions/<p>/agents/<p>/policy`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a04d1662ae614bf", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (scripts/smoke/walkthrough-cheap-model.ts:156)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (scripts/smoke/walkthrough-cheap-model.ts:156)"}, "fullDescription": {"text": "`scripts/smoke/walkthrough-cheap-model.ts:156` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94f1036daafb6cd3", "name": "Dangling fetch: POST https://api.deepseek.com/v1/chat/completions (scripts/smoke/walkthrough-cheap-model.ts:309)", "shortDescription": {"text": "Dangling fetch: POST https://api.deepseek.com/v1/chat/completions (scripts/smoke/walkthrough-cheap-model.ts:309)"}, "fullDescription": {"text": "`scripts/smoke/walkthrough-cheap-model.ts:309` calls `POST https://api.deepseek.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.deepseek.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-909b2d8531c6c935", "name": "Dangling fetch: GET http://127.0.0.1:${String(port)}/api/v1/runtime/health (src/runtime/install/first-run.ts:527)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${String(port)}/api/v1/runtime/health (src/runtime/install/first-run.ts:527)"}, "fullDescription": {"text": "`src/runtime/install/first-run.ts:527` calls `GET http://127.0.0.1:${String(port)}/api/v1/runtime/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/runtime/health`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bb36bac7be2481f3", "name": "Dangling fetch: POST http://127.0.0.1:${String(port)}/api/v1/extensions/discord/agents/${agentName}/setup (src/runtime/i", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(port)}/api/v1/extensions/discord/agents/${agentName}/setup (src/runtime/install/first-run.ts:563)"}, "fullDescription": {"text": "`src/runtime/install/first-run.ts:563` calls `POST http://127.0.0.1:${String(port)}/api/v1/extensions/discord/agents/${agentName}/setup` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/api/v1/extensions/discord/agents/<p>/setup`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a9a0d288dd353355", "name": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/discord.ts:77)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/discord.ts:77)"}, "fullDescription": {"text": "`src/runtime/tools/baseline/discord.ts:77` calls `POST http://127.0.0.1:${String(info.port)}/outbound` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/outbound`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-959f49c8c50343c7", "name": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/whatsapp.ts:65)", "shortDescription": {"text": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/whatsapp.ts:65)"}, "fullDescription": {"text": "`src/runtime/tools/baseline/whatsapp.ts:65` calls `POST http://127.0.0.1:${String(info.port)}/outbound` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/outbound`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-efbc80312c5027b5", "name": "Unused endpoint: ALL /mcp", "shortDescription": {"text": "Unused endpoint: ALL /mcp"}, "fullDescription": {"text": "`src/runtime/mcp/connector/listener.ts` declares `ALL /mcp` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-130c908644586adf", "name": "Unused endpoint: GET /api/v1/system/version", "shortDescription": {"text": "Unused endpoint: GET /api/v1/system/version"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/system/version` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0d7d56e5486e518", "name": "Unused endpoint: GET /api/v1/connector/grok-redirect-uri", "shortDescription": {"text": "Unused endpoint: GET /api/v1/connector/grok-redirect-uri"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/connector/grok-redirect-uri` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8822599d5f7642d", "name": "Unused endpoint: GET /api/v1/connector/conduits", "shortDescription": {"text": "Unused endpoint: GET /api/v1/connector/conduits"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/connector/conduits` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82b3e8775d14762b", "name": "Unused endpoint: GET /api/v1/schema", "shortDescription": {"text": "Unused endpoint: GET /api/v1/schema"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/schema` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bfef88486aab3374", "name": "Unused endpoint: PUT /api/v1/settings/providers/local/url", "shortDescription": {"text": "Unused endpoint: PUT /api/v1/settings/providers/local/url"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `PUT /api/v1/settings/providers/local/url` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb1b647f880a1f80", "name": "Unused endpoint: GET /api/v1/settings/web-search", "shortDescription": {"text": "Unused endpoint: GET /api/v1/settings/web-search"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/settings/web-search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3250e26facdf84d3", "name": "Unused endpoint: PUT /api/v1/settings/web-search", "shortDescription": {"text": "Unused endpoint: PUT /api/v1/settings/web-search"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `PUT /api/v1/settings/web-search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74beb73c17606337", "name": "Unused endpoint: GET /api/v1/settings/endpoints", "shortDescription": {"text": "Unused endpoint: GET /api/v1/settings/endpoints"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/settings/endpoints` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8a415e6299a47c3d", "name": "Unused endpoint: GET /api/v1/agents", "shortDescription": {"text": "Unused endpoint: GET /api/v1/agents"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/agents` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab8bc598651e69de", "name": "Unused endpoint: GET /api/v1/skills", "shortDescription": {"text": "Unused endpoint: GET /api/v1/skills"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/skills` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-adc1e714fff60dce", "name": "Unused endpoint: GET /api/v1/fleet", "shortDescription": {"text": "Unused endpoint: GET /api/v1/fleet"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/fleet` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f266465740268c8f", "name": "Unused endpoint: GET /api/v1/pubs", "shortDescription": {"text": "Unused endpoint: GET /api/v1/pubs"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/pubs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8a41cf73af37529", "name": "Unused endpoint: GET /api/v1/notifications", "shortDescription": {"text": "Unused endpoint: GET /api/v1/notifications"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/notifications` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-184d53db46fbd26c", "name": "Unused endpoint: GET /api/v1/doctor/diagnose", "shortDescription": {"text": "Unused endpoint: GET /api/v1/doctor/diagnose"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /api/v1/doctor/diagnose` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2a80d71f728d413", "name": "Unused endpoint: POST /api/v1/doctor/fix", "shortDescription": {"text": "Unused endpoint: POST /api/v1/doctor/fix"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `POST /api/v1/doctor/fix` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/runtime/http/server.ts` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21769"}, "properties": {"repository": "twentytwohundred/2200", "repoUrl": "https://github.com/twentytwohundred/2200", "branch": "main"}, "results": [{"ruleId": "scanner-1f2fefa048b6cea0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/chaos/supervisor-bounce-survival.test.ts:207"}, "properties": {"repobilityId": "1190d086fea66457", "scanner": "scanner-primary", "fingerprint": "1f2fefa048b6cea0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fe7f4921a978c0c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/web/scripts/generate-tokens.ts:389"}, "properties": {"repobilityId": "8b6faff1a153af61", "scanner": "scanner-primary", "fingerprint": "fe7f4921a978c0c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c115c553951c2e4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/validate-catalog.ts:35"}, "properties": {"repobilityId": "d9fac61f562c4884", "scanner": "scanner-primary", "fingerprint": "0c115c553951c2e4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e945965515355e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke-http-mcp.ts:18"}, "properties": {"repobilityId": "7af1841e08b9a71a", "scanner": "scanner-primary", "fingerprint": "0e945965515355e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65d4b119153cf8b4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/manual-wire-pub.ts:37"}, "properties": {"repobilityId": "d79618ec60089e96", "scanner": "scanner-primary", "fingerprint": "65d4b119153cf8b4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3cf40690c4b21020", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/smoke/walkthrough-cheap-model.ts:357"}, "properties": {"repobilityId": "5c325c9a8e8509a6", "scanner": "scanner-primary", "fingerprint": "3cf40690c4b21020", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-64ac8939def8adb6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/usage-formatter.ts:70"}, "properties": {"repobilityId": "21f35d25589c6d42", "scanner": "scanner-primary", "fingerprint": "64ac8939def8adb6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c8f92bda15ac5b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/main.ts:239"}, "properties": {"repobilityId": "c82c289b52327cdc", "scanner": "scanner-primary", "fingerprint": "5c8f92bda15ac5b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5090d2c65997b6c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/runtime/onboarding/preview.ts:10"}, "properties": {"repobilityId": "08a992aedbab7602", "scanner": "scanner-primary", "fingerprint": "5090d2c65997b6c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dacf08a2297c2e53", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/update.ts:27"}, "properties": {"repobilityId": "c95bbd806e3bebe2", "scanner": "scanner-primary", "fingerprint": "dacf08a2297c2e53", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/install/update.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-813de0cf380e2e8d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-trigger.ts:18"}, "properties": {"repobilityId": "4968de338ca9507f", "scanner": "scanner-primary", "fingerprint": "813de0cf380e2e8d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/install/upgrade-trigger.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-36d53895b25b689c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/install/upgrade-runner.ts:30"}, "properties": {"repobilityId": "a531c222064587d5", "scanner": "scanner-primary", "fingerprint": "36d53895b25b689c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/install/upgrade-runner.ts"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-4d73ec79a3491316", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/connectors/gateway-manager.ts:22"}, "properties": {"repobilityId": "483f5a77377273ca", "scanner": "scanner-primary", "fingerprint": "4d73ec79a3491316", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/connectors/gateway-manager.ts"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-20f1f3644af16a26", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/supervisor/daemon.ts:19"}, "properties": {"repobilityId": "ed1ccc0faf00060d", "scanner": "scanner-primary", "fingerprint": "20f1f3644af16a26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/supervisor/daemon.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ffb63daf71c70a0e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/source.ts:38"}, "properties": {"repobilityId": "bbbd5a84ba88a7cf", "scanner": "scanner-primary", "fingerprint": "ffb63daf71c70a0e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/extensions/source.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-d2fce54d0c1763d2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/hooks.ts:48"}, "properties": {"repobilityId": "77c0c6da6c134db3", "scanner": "scanner-primary", "fingerprint": "d2fce54d0c1763d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/extensions/hooks.ts"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-44728720ddf0b52e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/extensions/install-pipeline.ts:20"}, "properties": {"repobilityId": "7822baffc58b5f82", "scanner": "scanner-primary", "fingerprint": "44728720ddf0b52e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/extensions/install-pipeline.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-8b9919906a56cc43", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/runtime/tools/baseline/shell.ts:15"}, "properties": {"repobilityId": "e9864a00a518458f", "scanner": "scanner-primary", "fingerprint": "8b9919906a56cc43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/runtime/tools/baseline/shell.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-8ecdc3efdd4aa236", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6ad40a9f40f1f00f", "scanner": "scanner-primary", "fingerprint": "8ecdc3efdd4aa236", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cla.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-2fdcc3aac10df7e9", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8790272a56f5e9ce", "scanner": "scanner-primary", "fingerprint": "2fdcc3aac10df7e9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/cla.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "97a9a5de61d82fcd", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9e5617d449b061f6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4a63b1fd6887cae9", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f6c832d67a7838", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9dfacdabb01880ef", "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": 58}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b28f2eb9ce3eea56", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f0c3d4499b6cd885", "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": 145}}}]}, {"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-15235f7efa7574fb", "level": "note", "message": {"text": "Very large file: apps/web/src/lib/api.ts (1960 lines)"}, "properties": {"repobilityId": "9237f51e75e634c0", "scanner": "scanner-primary", "fingerprint": "15235f7efa7574fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-09a34b31cc78539a", "level": "note", "message": {"text": "Very large file: src/cli/main.ts (4814 lines)"}, "properties": {"repobilityId": "fa90c6349ff40fb0", "scanner": "scanner-primary", "fingerprint": "09a34b31cc78539a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d8eaaad42efa3092", "level": "note", "message": {"text": "Very large file: src/runtime/supervisor/supervisor.ts (4103 lines)"}, "properties": {"repobilityId": "d6e1198d4257c71b", "scanner": "scanner-primary", "fingerprint": "d8eaaad42efa3092", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-48a7f6192d8d02e5", "level": "note", "message": {"text": "Very large file: src/runtime/agent/loop.ts (2243 lines)"}, "properties": {"repobilityId": "048608417d1525da", "scanner": "scanner-primary", "fingerprint": "48a7f6192d8d02e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3175aba1553182de", "level": "note", "message": {"text": "Very large file: src/runtime/http/server.ts (6676 lines)"}, "properties": {"repobilityId": "865a0aae590b90bb", "scanner": "scanner-primary", "fingerprint": "3175aba1553182de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3cd7ac8ac7e42deb", "level": "note", "message": {"text": "Very large file: src/runtime/onboarding/starter-pack.ts (1532 lines)"}, "properties": {"repobilityId": "936babd6aeac4894", "scanner": "scanner-primary", "fingerprint": "3cd7ac8ac7e42deb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-57ae48dea9732fa6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/discord-connector/package.json"}, "properties": {"repobilityId": "aa4fb99460d19aea", "scanner": "scanner-primary", "fingerprint": "57ae48dea9732fa6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/discord-connector/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63300588a30a6722", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/whatsapp-connector/package.json"}, "properties": {"repobilityId": "a5f38427b49b75e5", "scanner": "scanner-primary", "fingerprint": "63300588a30a6722", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/whatsapp-connector/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4a9eb7dc7c6e3880", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/web/package.json"}, "properties": {"repobilityId": "6c1704bf24cf19ac", "scanner": "scanner-primary", "fingerprint": "4a9eb7dc7c6e3880", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/web/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0a1f5de6ba39e978", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "526c147c92e574ce", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "c4adf6d1ef0d9e33", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "9efc1b413446f7fd", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "319a5cbf873dbfe8", "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": "8c4b43982f830b6f", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-bb2ddc642c71d527", "level": "none", "message": {"text": "Commented-code block (5 lines) in tsup.config.ts:27"}, "properties": {"repobilityId": "196a59bda9b42499", "scanner": "scanner-primary", "fingerprint": "bb2ddc642c71d527", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf0e6c4f5a5c7d02", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/poe-smoke.test.ts:197"}, "properties": {"repobilityId": "274ef221c55083e9", "scanner": "scanner-primary", "fingerprint": "cf0e6c4f5a5c7d02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43fb2fff0ce94748", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/cli/load-cli-env-files.test.ts:103"}, "properties": {"repobilityId": "a01f6d065e167833", "scanner": "scanner-primary", "fingerprint": "43fb2fff0ce94748", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16bcbc380a6fb2d9", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/runtime/install/upgrade-trigger.test.ts:125"}, "properties": {"repobilityId": "ee44b33407f20f5e", "scanner": "scanner-primary", "fingerprint": "16bcbc380a6fb2d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a5413479720e720", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/install/first-run.test.ts:92"}, "properties": {"repobilityId": "d849f2f05e590d83", "scanner": "scanner-primary", "fingerprint": "7a5413479720e720", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84f939221b7a7a7c", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/runtime/supervisor/agent-pub-identity.test.ts:167"}, "properties": {"repobilityId": "842f52c688732860", "scanner": "scanner-primary", "fingerprint": "84f939221b7a7a7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dff25f0db0498e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/daemon.test.ts:44"}, "properties": {"repobilityId": "f6327ed7710e3b92", "scanner": "scanner-primary", "fingerprint": "8dff25f0db0498e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27aa1854f2d226cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/stop-agent-orphans.test.ts:146"}, "properties": {"repobilityId": "1ea68ed7d08af325", "scanner": "scanner-primary", "fingerprint": "27aa1854f2d226cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a9c224f3b7a9ad5", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/supervisor/scheduler-integration.test.ts:131"}, "properties": {"repobilityId": "ed984f0d65d8b049", "scanner": "scanner-primary", "fingerprint": "1a9c224f3b7a9ad5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-123cf48233df1b0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/agent/loop.test.ts:195"}, "properties": {"repobilityId": "400ccd88ef35539e", "scanner": "scanner-primary", "fingerprint": "123cf48233df1b0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2014b0578737192e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/agent/incomplete-turn-integration.test.ts:193"}, "properties": {"repobilityId": "e88eaef7811c29a2", "scanner": "scanner-primary", "fingerprint": "2014b0578737192e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2582a46b47139c2f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/agent/audit/kick-back.test.ts:253"}, "properties": {"repobilityId": "eab435cade46f994", "scanner": "scanner-primary", "fingerprint": "2582a46b47139c2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-267335c1ff2d3290", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/runtime/http/server.test.ts:424"}, "properties": {"repobilityId": "f4f6c9c9be1ce609", "scanner": "scanner-primary", "fingerprint": "267335c1ff2d3290", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86e4ed27e1c43130", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/runtime/onboarding/session.test.ts:545"}, "properties": {"repobilityId": "5012572ff13201b0", "scanner": "scanner-primary", "fingerprint": "86e4ed27e1c43130", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e7b0d6a044d2c45", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/runtime/tools/dispatcher.test.ts:212"}, "properties": {"repobilityId": "19997cb651b690a2", "scanner": "scanner-primary", "fingerprint": "1e7b0d6a044d2c45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad5a013feaf59b2f", "level": "none", "message": {"text": "Commented-code block (19 lines) in tests/runtime/tools/baseline.test.ts:58"}, "properties": {"repobilityId": "ef66a64411c71d94", "scanner": "scanner-primary", "fingerprint": "ad5a013feaf59b2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12795d34c36ea6fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/tools/baseline/http.test.ts:190"}, "properties": {"repobilityId": "5e27eb7e68836423", "scanner": "scanner-primary", "fingerprint": "12795d34c36ea6fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b19d96982390240", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in tests/runtime/tools/baseline/credential.test.ts:298"}, "properties": {"repobilityId": "ad33aa43fcf8dccb", "scanner": "scanner-primary", "fingerprint": "7b19d96982390240", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1091f2b0fd349e2b", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/runtime/scheduler/service.test.ts:235"}, "properties": {"repobilityId": "16db7e62d1ba1f3a", "scanner": "scanner-primary", "fingerprint": "1091f2b0fd349e2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab41c13a1d4681fc", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in tests/runtime/credentials/requests.test.ts:314"}, "properties": {"repobilityId": "b9b355c6ca5f3805", "scanner": "scanner-primary", "fingerprint": "ab41c13a1d4681fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-14eb838edb59ff4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/runtime/llm/pricing.test.ts:172"}, "properties": {"repobilityId": "d7a828e648e5577b", "scanner": "scanner-primary", "fingerprint": "14eb838edb59ff4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89f1796efeb4aeea", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/chaos/supervisor-bounce-survival.test.ts:123"}, "properties": {"repobilityId": "b183a6f658186264", "scanner": "scanner-primary", "fingerprint": "89f1796efeb4aeea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d964d2191c0adcc", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/discord-connector/src/gateway.ts:187"}, "properties": {"repobilityId": "1daf7659c6a72bf6", "scanner": "scanner-primary", "fingerprint": "0d964d2191c0adcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f683edc80bb529d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/discord-connector/src/gateway.ts:254"}, "properties": {"repobilityId": "f7a2b2e27d5f07d4", "scanner": "scanner-primary", "fingerprint": "7f683edc80bb529d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5f360f2df0a7abc3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/eslint.config.js:34"}, "properties": {"repobilityId": "5ceb56efaa170e56", "scanner": "scanner-primary", "fingerprint": "5f360f2df0a7abc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c61c40d903dbed01", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/screens/settings/SystemUpdateSection.tsx:67"}, "properties": {"repobilityId": "4888d110742d227f", "scanner": "scanner-primary", "fingerprint": "c61c40d903dbed01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ba28a391ee4b4f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/screens/settings/EndpointsSection.tsx:146"}, "properties": {"repobilityId": "6f5db32ec08f59c5", "scanner": "scanner-primary", "fingerprint": "0ba28a391ee4b4f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fdbc7cf080f80e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/screens/budget/BudgetScreen.tsx:70"}, "properties": {"repobilityId": "356adddb167be426", "scanner": "scanner-primary", "fingerprint": "8fdbc7cf080f80e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-729dcafc253d2546", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/screens/agent/ModelPicker.tsx:127"}, "properties": {"repobilityId": "8b3d0aa4a8083509", "scanner": "scanner-primary", "fingerprint": "729dcafc253d2546", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b233991b30f26a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/screens/agent/AgentDetailScreen.tsx:106"}, "properties": {"repobilityId": "4d8187cae62d2d75", "scanner": "scanner-primary", "fingerprint": "7b233991b30f26a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fd6bdc5eaf0cfaf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/web/src/screens/agent/AgentDetailScreen.tsx:933"}, "properties": {"repobilityId": "e487323c2507a6bb", "scanner": "scanner-primary", "fingerprint": "6fd6bdc5eaf0cfaf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56f86f138fd2adf1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/screens/extensions/ExtensionsScreen.tsx:459"}, "properties": {"repobilityId": "098d939c16652bd5", "scanner": "scanner-primary", "fingerprint": "56f86f138fd2adf1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a78d6baacba867e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/screens/onboarding/OnboardingScreen.tsx:90"}, "properties": {"repobilityId": "726ea502105e8aa0", "scanner": "scanner-primary", "fingerprint": "a78d6baacba867e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2133d1f2bffd3e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/screens/studio/StudioScreen.tsx:514"}, "properties": {"repobilityId": "afb49a779c947bd1", "scanner": "scanner-primary", "fingerprint": "f2133d1f2bffd3e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-032735678c55eb91", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in apps/web/src/chat/CredentialRequestCard.tsx:342"}, "properties": {"repobilityId": "5f18a9888ca1d167", "scanner": "scanner-primary", "fingerprint": "032735678c55eb91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-26874330ea81bfa3", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/web/src/chat/CredentialRequestCard.tsx:80"}, "properties": {"repobilityId": "3e67dac92666d043", "scanner": "scanner-primary", "fingerprint": "26874330ea81bfa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-428164a65723ce09", "level": "note", "message": {"text": "Legacy-named symbol `audit_card_v1` in apps/web/src/chat/AuditCard.tsx:92"}, "properties": {"repobilityId": "723b651a742c7f1c", "scanner": "scanner-primary", "fingerprint": "428164a65723ce09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-468d3cc127e582d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/web/src/ws/useLiveSignal.tsx:95"}, "properties": {"repobilityId": "93ce562a23fb0a2f", "scanner": "scanner-primary", "fingerprint": "468d3cc127e582d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56765f6c1947e463", "level": "note", "message": {"text": "Legacy-named symbol `audit_card_v1` in apps/web/src/lib/api.ts:451"}, "properties": {"repobilityId": "5144ec18ac6dc04d", "scanner": "scanner-primary", "fingerprint": "56765f6c1947e463", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b2782be8c25ebe3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/web/src/favicon/LiveFavicon.tsx:53"}, "properties": {"repobilityId": "1bc8fcfae7ea10f7", "scanner": "scanner-primary", "fingerprint": "6b2782be8c25ebe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e35f553312a6a3b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/bundle-connectors.mjs:1"}, "properties": {"repobilityId": "13dad3693950e9fe", "scanner": "scanner-primary", "fingerprint": "e35f553312a6a3b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-160835bdf3b798db", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/smoke/walkthrough-cheap-model.ts:181"}, "properties": {"repobilityId": "22516f2e753457ef", "scanner": "scanner-primary", "fingerprint": "160835bdf3b798db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-325dbbb1c282c964", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/smoke/walkthrough-cheap-model.ts:156"}, "properties": {"repobilityId": "181ad4f6031ae2e2", "scanner": "scanner-primary", "fingerprint": "325dbbb1c282c964", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c03a993d0fbe5b6f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/index.ts:20"}, "properties": {"repobilityId": "3c07451fc46352dc", "scanner": "scanner-primary", "fingerprint": "c03a993d0fbe5b6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9524f0ea71a00f4d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/cli/main.ts:195"}, "properties": {"repobilityId": "da103007b785dc37", "scanner": "scanner-primary", "fingerprint": "9524f0ea71a00f4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6125d4b09554c08", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/pub/wake-source.ts:115"}, "properties": {"repobilityId": "73bf28e48850c6db", "scanner": "scanner-primary", "fingerprint": "d6125d4b09554c08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ead37cefa6b6ac3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/pub/identity-client.ts:243"}, "properties": {"repobilityId": "55cfca283f1bf592", "scanner": "scanner-primary", "fingerprint": "2ead37cefa6b6ac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd49048226df2780", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/runtime/pub/keypair.ts:265"}, "properties": {"repobilityId": "f0718ca44b09b28c", "scanner": "scanner-primary", "fingerprint": "bd49048226df2780", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7e3dd7bc4ea5aab", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/pub/client.ts:278"}, "properties": {"repobilityId": "b979c989d212e183", "scanner": "scanner-primary", "fingerprint": "a7e3dd7bc4ea5aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-856c71b9b44de53c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/pub/directed-to.ts:126"}, "properties": {"repobilityId": "4122d297c1a26b8e", "scanner": "scanner-primary", "fingerprint": "856c71b9b44de53c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c4c59b1f5f60f9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/install/first-run.ts:165"}, "properties": {"repobilityId": "a42482803276b8bd", "scanner": "scanner-primary", "fingerprint": "0c4c59b1f5f60f9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a9aaf51e4e56c6a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/first-run.ts:563"}, "properties": {"repobilityId": "0eb571eceda0853e", "scanner": "scanner-primary", "fingerprint": "9a9aaf51e4e56c6a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-358bb3f8a6b8b46b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/install/quick-setup.ts:179"}, "properties": {"repobilityId": "a6eee1f4e8d02438", "scanner": "scanner-primary", "fingerprint": "358bb3f8a6b8b46b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aff22672d87acfa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/install/upgrade-trigger.ts:64"}, "properties": {"repobilityId": "798dac1eac671723", "scanner": "scanner-primary", "fingerprint": "6aff22672d87acfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-81dc1975399c1b9a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/mcp/restart-manager.ts:177"}, "properties": {"repobilityId": "b493281ce87e6a8c", "scanner": "scanner-primary", "fingerprint": "81dc1975399c1b9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44d68725e1a800af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/mcp/http-transport.ts:46"}, "properties": {"repobilityId": "94c01452cb3b3a5a", "scanner": "scanner-primary", "fingerprint": "44d68725e1a800af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c85587bc1df5689e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/runtime/mcp/stdio-transport.ts:137"}, "properties": {"repobilityId": "a0d367670be2a1fb", "scanner": "scanner-primary", "fingerprint": "c85587bc1df5689e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edac9d7e11886c31", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/mcp/connector/work-package.ts:131"}, "properties": {"repobilityId": "5e902a825cedfa97", "scanner": "scanner-primary", "fingerprint": "edac9d7e11886c31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80549440ec1c04ed", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/runtime/mcp/connector/listener.ts:63"}, "properties": {"repobilityId": "dd16d942910e1d3b", "scanner": "scanner-primary", "fingerprint": "80549440ec1c04ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3f7ba828bd52b80", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/contributions.ts:146"}, "properties": {"repobilityId": "ce434e265b9e787c", "scanner": "scanner-primary", "fingerprint": "f3f7ba828bd52b80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b17081f74d4fc7c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/server.ts:277"}, "properties": {"repobilityId": "55da4208a66de2dd", "scanner": "scanner-primary", "fingerprint": "6b17081f74d4fc7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93acdd9a32885dc3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/fleet-context.ts:186"}, "properties": {"repobilityId": "4c5dc93c984d0177", "scanner": "scanner-primary", "fingerprint": "93acdd9a32885dc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51a986fd02781771", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/mcp/connector/oauth/server.ts:81"}, "properties": {"repobilityId": "61a44a8d491a7061", "scanner": "scanner-primary", "fingerprint": "51a986fd02781771", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4969fd3284176e79", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/supervisor/pub-bridge.ts:201"}, "properties": {"repobilityId": "313065e5dbbe73b8", "scanner": "scanner-primary", "fingerprint": "4969fd3284176e79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be6b836a51d4e0cb", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/runtime/supervisor/pub-lifecycle.ts:116"}, "properties": {"repobilityId": "2491c922cc228f2c", "scanner": "scanner-primary", "fingerprint": "be6b836a51d4e0cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3cb9db85e679ca6", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in src/runtime/supervisor/daemon.ts:196"}, "properties": {"repobilityId": "848f06b814c13fba", "scanner": "scanner-primary", "fingerprint": "c3cb9db85e679ca6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a7d4aa9f94b8c94", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/supervisor/daemon.ts:90"}, "properties": {"repobilityId": "5a6b51bb754d232e", "scanner": "scanner-primary", "fingerprint": "3a7d4aa9f94b8c94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a44fe466241461f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/supervisor/bootstrap.ts:141"}, "properties": {"repobilityId": "211b2137594675c7", "scanner": "scanner-primary", "fingerprint": "4a44fe466241461f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d7ad588889bc848", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/supervisor/supervisor.ts:3224"}, "properties": {"repobilityId": "9192a4c00efd3a7c", "scanner": "scanner-primary", "fingerprint": "5d7ad588889bc848", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ecb1a481569f9724", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/runtime/supervisor/supervisor.ts:533"}, "properties": {"repobilityId": "a10226874e9932e2", "scanner": "scanner-primary", "fingerprint": "ecb1a481569f9724", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78c0871500ba2b8b", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/agent/loop.ts:100"}, "properties": {"repobilityId": "f1a2622a4347ccc9", "scanner": "scanner-primary", "fingerprint": "78c0871500ba2b8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20203c6dc4a253aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/agent/bootstrap.ts:44"}, "properties": {"repobilityId": "778f20842eb7a28f", "scanner": "scanner-primary", "fingerprint": "20203c6dc4a253aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23bd6874b7b11198", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/agent/process.ts:123"}, "properties": {"repobilityId": "6c45bd15cc1bae6c", "scanner": "scanner-primary", "fingerprint": "23bd6874b7b11198", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56c819d91b76a931", "level": "note", "message": {"text": "Legacy-named symbol `audit_card_v1` in src/runtime/http/server.ts:6576"}, "properties": {"repobilityId": "19c3eb36fd6af717", "scanner": "scanner-primary", "fingerprint": "56c819d91b76a931", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-160c0f3ba9da5c1f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/runtime/http/server.ts:224"}, "properties": {"repobilityId": "2f65b88a125227bf", "scanner": "scanner-primary", "fingerprint": "160c0f3ba9da5c1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-473ba7651103c262", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/migration/openclaw.ts:118"}, "properties": {"repobilityId": "26a5a04181605497", "scanner": "scanner-primary", "fingerprint": "473ba7651103c262", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aaa7f713edb5235", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/migration/orchestrator.ts:160"}, "properties": {"repobilityId": "89397718de4d31e0", "scanner": "scanner-primary", "fingerprint": "5aaa7f713edb5235", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e3ce529f2f9f60a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/migration/identity-from-handoff.ts:85"}, "properties": {"repobilityId": "b6b6f030db285c17", "scanner": "scanner-primary", "fingerprint": "0e3ce529f2f9f60a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-054afa731982056d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/oauth/device-flow.ts:156"}, "properties": {"repobilityId": "65a7ed6f4f73c731", "scanner": "scanner-primary", "fingerprint": "054afa731982056d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90a341a7477f92ab", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/device-flow.ts:87"}, "properties": {"repobilityId": "d02785ed2b729a61", "scanner": "scanner-primary", "fingerprint": "90a341a7477f92ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-773eee8f59b39c13", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/oauth/refresh.ts:23"}, "properties": {"repobilityId": "71c2ced410df46c7", "scanner": "scanner-primary", "fingerprint": "773eee8f59b39c13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bcc62f558b9ac898", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/identity/types.ts:100"}, "properties": {"repobilityId": "506221aba9ff11ee", "scanner": "scanner-primary", "fingerprint": "bcc62f558b9ac898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75a0a4895c319e7f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/protocol.ts:545"}, "properties": {"repobilityId": "171ae7abc7658ea4", "scanner": "scanner-primary", "fingerprint": "75a0a4895c319e7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23248e8243c3251c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/uds-server.ts:75"}, "properties": {"repobilityId": "2ce22b8c14a32e05", "scanner": "scanner-primary", "fingerprint": "23248e8243c3251c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc3bdc5a87903477", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/control-plane/server.ts:139"}, "properties": {"repobilityId": "bea16107932fb277", "scanner": "scanner-primary", "fingerprint": "fc3bdc5a87903477", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65c9f3850071a90f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/extensions/install.ts:532"}, "properties": {"repobilityId": "020cab128fb86b5d", "scanner": "scanner-primary", "fingerprint": "65c9f3850071a90f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee88da420da65eb3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/onboarding/script-loader.ts:85"}, "properties": {"repobilityId": "f8b02bc2461c4d85", "scanner": "scanner-primary", "fingerprint": "ee88da420da65eb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f84b893fa718de4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/onboarding/session.ts:408"}, "properties": {"repobilityId": "79b315b6d36a7f8a", "scanner": "scanner-primary", "fingerprint": "1f84b893fa718de4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95d2ad3ae48f2254", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/onboarding/identity-from-interview.ts:87"}, "properties": {"repobilityId": "12e7df26f9bd5d3f", "scanner": "scanner-primary", "fingerprint": "95d2ad3ae48f2254", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ad5a868e49b2b10", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/tools/dispatcher.ts:208"}, "properties": {"repobilityId": "3f03dc6541997eb3", "scanner": "scanner-primary", "fingerprint": "3ad5a868e49b2b10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-557386c179240503", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/tools/perm/checks/commons-scope.ts:45"}, "properties": {"repobilityId": "2b1a43e87d21bfbd", "scanner": "scanner-primary", "fingerprint": "557386c179240503", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b61d8eccd6bb730d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/brain.ts:409"}, "properties": {"repobilityId": "6c968d43e39f844b", "scanner": "scanner-primary", "fingerprint": "b61d8eccd6bb730d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ea59121f42897d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/notification.ts:56"}, "properties": {"repobilityId": "34be792699c8ff2b", "scanner": "scanner-primary", "fingerprint": "1ea59121f42897d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e5da6fdaea947f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/schedule.ts:27"}, "properties": {"repobilityId": "3704531db3c1b3b7", "scanner": "scanner-primary", "fingerprint": "5e5da6fdaea947f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3daa0719cf2da13", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/index.ts:101"}, "properties": {"repobilityId": "8bb706a58749be96", "scanner": "scanner-primary", "fingerprint": "e3daa0719cf2da13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecc845498f002381", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/web.ts:5"}, "properties": {"repobilityId": "045eda4b232c721d", "scanner": "scanner-primary", "fingerprint": "ecc845498f002381", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-862d8e0d0dc238d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/tools/baseline/http.ts:171"}, "properties": {"repobilityId": "ec311d4b1236e1c5", "scanner": "scanner-primary", "fingerprint": "862d8e0d0dc238d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61840cb6863332e3", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/tools/baseline/credential.ts:452"}, "properties": {"repobilityId": "f2a4a077b7ad2379", "scanner": "scanner-primary", "fingerprint": "61840cb6863332e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa4b99e9e7cad4f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/tools/baseline/credential.ts:136"}, "properties": {"repobilityId": "5315a66f73d28cda", "scanner": "scanner-primary", "fingerprint": "aa4b99e9e7cad4f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-328e011257c68b74", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/tools/baseline/shelf.ts:490"}, "properties": {"repobilityId": "3a39352eb875415d", "scanner": "scanner-primary", "fingerprint": "328e011257c68b74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e23fc36fdbcc577a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/tools/platform/spotify/tools.ts:40"}, "properties": {"repobilityId": "7fe5204e55782bd9", "scanner": "scanner-primary", "fingerprint": "e23fc36fdbcc577a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65d3395e689be70e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/brain/store.ts:201"}, "properties": {"repobilityId": "4742718c15abd1df", "scanner": "scanner-primary", "fingerprint": "65d3395e689be70e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35156223fa833134", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/runtime/scheduler/service.ts:259"}, "properties": {"repobilityId": "e93734dc9378ab60", "scanner": "scanner-primary", "fingerprint": "35156223fa833134", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea8ae392281e900a", "level": "note", "message": {"text": "Legacy-named symbol `credential_request_v1` in src/runtime/credentials/request-types.ts:132"}, "properties": {"repobilityId": "2fd0d2bf4959b063", "scanner": "scanner-primary", "fingerprint": "ea8ae392281e900a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-25720cad5df5162d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/runtime/llm/registry.ts:70"}, "properties": {"repobilityId": "a64b4693638615de", "scanner": "scanner-primary", "fingerprint": "25720cad5df5162d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e573c7281d3efd4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/runtime/llm/registry.ts:43"}, "properties": {"repobilityId": "644194570c29da06", "scanner": "scanner-primary", "fingerprint": "3e573c7281d3efd4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c98af62b0e0a27b0", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/llm/openai.ts:103"}, "properties": {"repobilityId": "1a2b367ab696b4e7", "scanner": "scanner-primary", "fingerprint": "c98af62b0e0a27b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-292b04491230e580", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/runtime/llm/anthropic.ts:187"}, "properties": {"repobilityId": "ab14b9c42fcbbcfb", "scanner": "scanner-primary", "fingerprint": "292b04491230e580", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-645d834a1659de70", "level": "warning", "message": {"text": "Frontend route `/agent/:name` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "6c1338fa99dd5631", "scanner": "scanner-primary", "fingerprint": "645d834a1659de70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5604197b01a56591", "level": "warning", "message": {"text": "Frontend route `/agent/:name/chat/:chatId` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "ed5ad54f93239d78", "scanner": "scanner-primary", "fingerprint": "5604197b01a56591", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-63f0be093ed8a002", "level": "warning", "message": {"text": "Frontend route `/agent/:name/chat` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "2148eac443e4b162", "scanner": "scanner-primary", "fingerprint": "63f0be093ed8a002", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5650be80033188ac", "level": "warning", "message": {"text": "Frontend route `/agent/:name/brain` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "240d79fa131edf49", "scanner": "scanner-primary", "fingerprint": "5650be80033188ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-023fbcf15105abc4", "level": "warning", "message": {"text": "Frontend route `/agent/:name/schedules` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "468687b73f4227c0", "scanner": "scanner-primary", "fingerprint": "023fbcf15105abc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ed079f0b8f147d05", "level": "warning", "message": {"text": "Frontend route `/agent/:name/tools` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "dacb72227ba1cf12", "scanner": "scanner-primary", "fingerprint": "ed079f0b8f147d05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0b57631ec343a0f9", "level": "warning", "message": {"text": "Frontend route `/studio/:pub` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "6877196d31a8a01c", "scanner": "scanner-primary", "fingerprint": "0b57631ec343a0f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-42af93f74c5316d6", "level": "warning", "message": {"text": "Frontend route `/fleet` has no Link/navigate to it \u2014 apps/web/src/router.tsx"}, "properties": {"repobilityId": "fae461bd43b4e3fb", "scanner": "scanner-primary", "fingerprint": "42af93f74c5316d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-176db52f079d3acd", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:178)"}, "properties": {"repobilityId": "8120735397d497f1", "scanner": "scanner-primary", "fingerprint": "176db52f079d3acd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3477a7287ab8a4f6", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:205)"}, "properties": {"repobilityId": "f188336e8dccb75c", "scanner": "scanner-primary", "fingerprint": "3477a7287ab8a4f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ed463ee09c8d0a2e", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(handle.port)}/mcp (tests/runtime/mcp/connector/listener.test.ts:533)"}, "properties": {"repobilityId": "ee91b45c18c7aeb1", "scanner": "scanner-primary", "fingerprint": "ed463ee09c8d0a2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c78ef4f3c5001fe9", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${String(handle.port)}/somethingelse (tests/runtime/oauth/redirect-server.test.ts:48)"}, "properties": {"repobilityId": "28e4d8166113feb9", "scanner": "scanner-primary", "fingerprint": "c78ef4f3c5001fe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-12bbf766d6d6d96f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:884)"}, "properties": {"repobilityId": "dd693e915e1deee8", "scanner": "scanner-primary", "fingerprint": "12bbf766d6d6d96f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-09b5e1d45c6856a2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/start (apps/web/src/lib/api.ts:886)"}, "properties": {"repobilityId": "c4242161167e2b82", "scanner": "scanner-primary", "fingerprint": "09b5e1d45c6856a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b67fde22dd1fa1c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/stop (apps/web/src/lib/api.ts:888)"}, "properties": {"repobilityId": "b01cc482ed732d4d", "scanner": "scanner-primary", "fingerprint": "b67fde22dd1fa1c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d538bbcff07ebf5f", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/archive (apps/web/src/lib/api.ts:899)"}, "properties": {"repobilityId": "a90b740c0d793927", "scanner": "scanner-primary", "fingerprint": "d538bbcff07ebf5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3d9c18e10871c66c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/unarchive (apps/web/src/lib/api.ts:910)"}, "properties": {"repobilityId": "7f0f660c1efe9204", "scanner": "scanner-primary", "fingerprint": "3d9c18e10871c66c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a9bc1c523a532a5", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:915)"}, "properties": {"repobilityId": "423567eb79257a5d", "scanner": "scanner-primary", "fingerprint": "0a9bc1c523a532a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd0cb5ad1f1b9dfe", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/budget (apps/web/src/lib/api.ts:923)"}, "properties": {"repobilityId": "84e3b597d6a0cb74", "scanner": "scanner-primary", "fingerprint": "dd0cb5ad1f1b9dfe", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1344ab7c27c60e16", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/agents/${encodeURIComponent(name)}/tools (apps/web/src/lib/api.ts:933)"}, "properties": {"repobilityId": "14cb11f63e09fb6f", "scanner": "scanner-primary", "fingerprint": "1344ab7c27c60e16", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e6035cf17b4a3775", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/brain (apps/web/src/lib/api.ts:969)"}, "properties": {"repobilityId": "812c439eded2c3a0", "scanner": "scanner-primary", "fingerprint": "e6035cf17b4a3775", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c47672a5cbd3a740", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/brain/note/${encodeURIComponent(slug)} (apps/web/src/lib/api.ts:978)"}, "properties": {"repobilityId": "58822785e6ac7f07", "scanner": "scanner-primary", "fingerprint": "c47672a5cbd3a740", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-709e009869b82ac9", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/chats (apps/web/src/lib/api.ts:997)"}, "properties": {"repobilityId": "ced67fd9f08de930", "scanner": "scanner-primary", "fingerprint": "709e009869b82ac9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f69d97ea0a506ab1", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/chats/${encodeURIComponent(chatId)} (apps/web/src/lib/api.ts:1006)"}, "properties": {"repobilityId": "c921f62b859d31e5", "scanner": "scanner-primary", "fingerprint": "f69d97ea0a506ab1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-04cc9f69b990ed41", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/settings/endpoints/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1067)"}, "properties": {"repobilityId": "b79b3943edfa8650", "scanner": "scanner-primary", "fingerprint": "04cc9f69b990ed41", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b88514614ffc1fe4", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/settings/endpoints/${encodeURIComponent(id)}/models (apps/web/src/lib/api.ts:1088)"}, "properties": {"repobilityId": "7a887b80821e55eb", "scanner": "scanner-primary", "fingerprint": "b88514614ffc1fe4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-987ee6b5ff74c21e", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/identity (apps/web/src/lib/api.ts:1123)"}, "properties": {"repobilityId": "7440a5cdedaafc3c", "scanner": "scanner-primary", "fingerprint": "987ee6b5ff74c21e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d9c01c9d1f6d6db3", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/avatar/image (apps/web/src/lib/api.ts:1133)"}, "properties": {"repobilityId": "c7371f131a9599fc", "scanner": "scanner-primary", "fingerprint": "d9c01c9d1f6d6db3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-0a6c61eaa3e67793", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/agents/${encodeURIComponent(name)}/model (apps/web/src/lib/api.ts:1145)"}, "properties": {"repobilityId": "f670b50475df2ff4", "scanner": "scanner-primary", "fingerprint": "0a6c61eaa3e67793", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-98adb3482234e50b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1158)"}, "properties": {"repobilityId": "3245bfd52c6a5467", "scanner": "scanner-primary", "fingerprint": "98adb3482234e50b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5380cf61199d072a", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/settings/providers/${encodeURIComponent(id)}/key (apps/web/src/lib/api.ts:1169)"}, "properties": {"repobilityId": "0da8b4b5c5bb4986", "scanner": "scanner-primary", "fingerprint": "5380cf61199d072a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-958d367047ebc807", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/tasks (apps/web/src/lib/api.ts:1185)"}, "properties": {"repobilityId": "503a74be26b6cb71", "scanner": "scanner-primary", "fingerprint": "958d367047ebc807", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cbd9a67dd107a433", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(name)}/schedules (apps/web/src/lib/api.ts:1192)"}, "properties": {"repobilityId": "f328b533d77d4614", "scanner": "scanner-primary", "fingerprint": "cbd9a67dd107a433", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-95b27c4b13004631", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/agents/${encodeURIComponent(name)}/schedules/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1197)"}, "properties": {"repobilityId": "213d302b1d514ab3", "scanner": "scanner-primary", "fingerprint": "95b27c4b13004631", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7b0d5edb03a0978c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/respond (apps/web/src/lib/api.ts:1215)"}, "properties": {"repobilityId": "dbf6794badf87062", "scanner": "scanner-primary", "fingerprint": "7b0d5edb03a0978c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-db7911ac6fbd2160", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/notifications/${encodeURIComponent(id)}/dismiss (apps/web/src/lib/api.ts:1220)"}, "properties": {"repobilityId": "bb612d5c2cf3daa5", "scanner": "scanner-primary", "fingerprint": "db7911ac6fbd2160", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1730538b7b20637a", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/agents/${encodeURIComponent(agent)}/credential-requests/${encodeURIComponent(id)}/fulfill (apps/web/src/lib/api.ts:1236)"}, "properties": {"repobilityId": "fae676d94069c456", "scanner": "scanner-primary", "fingerprint": "1730538b7b20637a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5e279076637ac7bd", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1254)"}, "properties": {"repobilityId": "c55435e994bb6150", "scanner": "scanner-primary", "fingerprint": "5e279076637ac7bd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e04f7e4127f9c910", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/answer (apps/web/src/lib/api.ts:1256)"}, "properties": {"repobilityId": "afba76e7cd1658ee", "scanner": "scanner-primary", "fingerprint": "e04f7e4127f9c910", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aed47539ef983390", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/onboarding/${encodeURIComponent(id)}/confirm (apps/web/src/lib/api.ts:1261)"}, "properties": {"repobilityId": "9b9934e6064c4bdb", "scanner": "scanner-primary", "fingerprint": "aed47539ef983390", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef5439ce1e98eab7", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/onboarding/${encodeURIComponent(id)} (apps/web/src/lib/api.ts:1266)"}, "properties": {"repobilityId": "bd1158aeca5a2d56", "scanner": "scanner-primary", "fingerprint": "ef5439ce1e98eab7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8094673db1a134a2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/messages (apps/web/src/lib/api.ts:1291)"}, "properties": {"repobilityId": "f1dbf0440f8aa410", "scanner": "scanner-primary", "fingerprint": "8094673db1a134a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d6c0d401cd97be26", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/pubs/${encodeURIComponent(name)}/reactions (apps/web/src/lib/api.ts:1296)"}, "properties": {"repobilityId": "5d679e01af6f5e3b", "scanner": "scanner-primary", "fingerprint": "d6c0d401cd97be26", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7fdd7724cc8f013d", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/pubs/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1323)"}, "properties": {"repobilityId": "f4c8bb40b595f183", "scanner": "scanner-primary", "fingerprint": "7fdd7724cc8f013d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-801d844295a90938", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/pubs/${encodeURIComponent(name)}?confirm=DESTROY (apps/web/src/lib/api.ts:1335)"}, "properties": {"repobilityId": "a6f02cc0368e2364", "scanner": "scanner-primary", "fingerprint": "801d844295a90938", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-481cd9dc57082d98", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/skills/${encodeURIComponent(name)} (apps/web/src/lib/api.ts:1368)"}, "properties": {"repobilityId": "f68bf5c2cea856a2", "scanner": "scanner-primary", "fingerprint": "481cd9dc57082d98", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6ea793d147a63b24", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/skills/${encodeURIComponent(name)}/credentials (apps/web/src/lib/api.ts:1373)"}, "properties": {"repobilityId": "44f6e09944944352", "scanner": "scanner-primary", "fingerprint": "6ea793d147a63b24", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5746a800f0313904", "level": "error", "message": {"text": "Dangling fetch: PUT /api/v1/skills/${encodeURIComponent(name)}/credentials/${encodeURIComponent(agent)}/${encodeURIComponent(envKey)} (apps/web/src/lib/api.ts:1375)"}, "properties": {"repobilityId": "70a0252e97196e53", "scanner": "scanner-primary", "fingerprint": "5746a800f0313904", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-becb18ca9f014ad2", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/system/update (apps/web/src/lib/api.ts:1634)"}, "properties": {"repobilityId": "d960475e7b309401", "scanner": "scanner-primary", "fingerprint": "becb18ca9f014ad2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-659de5a3dd468f75", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connector/oauth-clients/${encodeURIComponent(clientId)}/revoke (apps/web/src/lib/api.ts:1783)"}, "properties": {"repobilityId": "01bcbeb8615e142f", "scanner": "scanner-primary", "fingerprint": "659de5a3dd468f75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5198618dde0155c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/connector/conduits/${encodeURIComponent(clientId)}/retire (apps/web/src/lib/api.ts:1848)"}, "properties": {"repobilityId": "f954a95c7e4522c8", "scanner": "scanner-primary", "fingerprint": "b5198618dde0155c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1a25bdf678c2f492", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/pair/start${qs} (apps/web/src/lib/api.ts:1900)"}, "properties": {"repobilityId": "acd8cf90315e7e7b", "scanner": "scanner-primary", "fingerprint": "1a25bdf678c2f492", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-61928f9aab48b917", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/setup (apps/web/src/lib/api.ts:1932)"}, "properties": {"repobilityId": "64b08dc0bb5bc560", "scanner": "scanner-primary", "fingerprint": "61928f9aab48b917", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-34aa95a48bf247f8", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/extensions/${encodeURIComponent(id)}/agents/${encodeURIComponent(agent)}/policy (apps/web/src/lib/api.ts:1951)"}, "properties": {"repobilityId": "cd3600e435213331", "scanner": "scanner-primary", "fingerprint": "34aa95a48bf247f8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9a04d1662ae614bf", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (scripts/smoke/walkthrough-cheap-model.ts:156)"}, "properties": {"repobilityId": "6508ecf5f5c93e1e", "scanner": "scanner-primary", "fingerprint": "9a04d1662ae614bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94f1036daafb6cd3", "level": "error", "message": {"text": "Dangling fetch: POST https://api.deepseek.com/v1/chat/completions (scripts/smoke/walkthrough-cheap-model.ts:309)"}, "properties": {"repobilityId": "71f7057d66a7985c", "scanner": "scanner-primary", "fingerprint": "94f1036daafb6cd3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-909b2d8531c6c935", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${String(port)}/api/v1/runtime/health (src/runtime/install/first-run.ts:527)"}, "properties": {"repobilityId": "2b81e70656d06b53", "scanner": "scanner-primary", "fingerprint": "909b2d8531c6c935", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bb36bac7be2481f3", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(port)}/api/v1/extensions/discord/agents/${agentName}/setup (src/runtime/install/first-run.ts:563)"}, "properties": {"repobilityId": "581d5b7378397bee", "scanner": "scanner-primary", "fingerprint": "bb36bac7be2481f3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a9a0d288dd353355", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/discord.ts:77)"}, "properties": {"repobilityId": "94027735bd4a51fa", "scanner": "scanner-primary", "fingerprint": "a9a0d288dd353355", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-959f49c8c50343c7", "level": "error", "message": {"text": "Dangling fetch: POST http://127.0.0.1:${String(info.port)}/outbound (src/runtime/tools/baseline/whatsapp.ts:65)"}, "properties": {"repobilityId": "6f4aa015ac78586e", "scanner": "scanner-primary", "fingerprint": "959f49c8c50343c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-efbc80312c5027b5", "level": "note", "message": {"text": "Unused endpoint: ALL /mcp"}, "properties": {"repobilityId": "19b2d30444ca164d", "scanner": "scanner-primary", "fingerprint": "efbc80312c5027b5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-130c908644586adf", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/system/version"}, "properties": {"repobilityId": "e8570d5bcdae23fc", "scanner": "scanner-primary", "fingerprint": "130c908644586adf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a0d7d56e5486e518", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/connector/grok-redirect-uri"}, "properties": {"repobilityId": "f1c411ebad05b12d", "scanner": "scanner-primary", "fingerprint": "a0d7d56e5486e518", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8822599d5f7642d", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/connector/conduits"}, "properties": {"repobilityId": "ad93b88048c9bf1e", "scanner": "scanner-primary", "fingerprint": "f8822599d5f7642d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-82b3e8775d14762b", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/schema"}, "properties": {"repobilityId": "d772090b345e5f9e", "scanner": "scanner-primary", "fingerprint": "82b3e8775d14762b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bfef88486aab3374", "level": "note", "message": {"text": "Unused endpoint: PUT /api/v1/settings/providers/local/url"}, "properties": {"repobilityId": "3af4a32121000d54", "scanner": "scanner-primary", "fingerprint": "bfef88486aab3374", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cb1b647f880a1f80", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/settings/web-search"}, "properties": {"repobilityId": "3435abc49bead0f0", "scanner": "scanner-primary", "fingerprint": "cb1b647f880a1f80", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3250e26facdf84d3", "level": "note", "message": {"text": "Unused endpoint: PUT /api/v1/settings/web-search"}, "properties": {"repobilityId": "ead5e5876510f795", "scanner": "scanner-primary", "fingerprint": "3250e26facdf84d3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74beb73c17606337", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/settings/endpoints"}, "properties": {"repobilityId": "a7c9ed8a84ae2520", "scanner": "scanner-primary", "fingerprint": "74beb73c17606337", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a415e6299a47c3d", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/agents"}, "properties": {"repobilityId": "2946e94e198649a6", "scanner": "scanner-primary", "fingerprint": "8a415e6299a47c3d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ab8bc598651e69de", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/skills"}, "properties": {"repobilityId": "18bd5d85b71bfb1a", "scanner": "scanner-primary", "fingerprint": "ab8bc598651e69de", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-adc1e714fff60dce", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/fleet"}, "properties": {"repobilityId": "edb02d4702f83dfa", "scanner": "scanner-primary", "fingerprint": "adc1e714fff60dce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f266465740268c8f", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/pubs"}, "properties": {"repobilityId": "14f999d76891a0ae", "scanner": "scanner-primary", "fingerprint": "f266465740268c8f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8a41cf73af37529", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/notifications"}, "properties": {"repobilityId": "719d7280f371ddf4", "scanner": "scanner-primary", "fingerprint": "e8a41cf73af37529", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-184d53db46fbd26c", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/doctor/diagnose"}, "properties": {"repobilityId": "7b0bf81ea8d32fb3", "scanner": "scanner-primary", "fingerprint": "184d53db46fbd26c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2a80d71f728d413", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/doctor/fix"}, "properties": {"repobilityId": "e2bf9a9044be4f61", "scanner": "scanner-primary", "fingerprint": "b2a80d71f728d413", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "a64d427656f02a5b", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}