{"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-2df793a6f77eeeb0", "name": "Stray `console.log` in TS/JS \u2014 tests/eval/waifu.eval.test.ts:333", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/eval/waifu.eval.test.ts:333"}, "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-e25743856147432c", "name": "Stray `console.log` in TS/JS \u2014 tests/eval/orchestrator.eval.test.ts:384", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/eval/orchestrator.eval.test.ts:384"}, "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-f1725741a0d6e1fc", "name": "Stray `console.log` in TS/JS \u2014 src/cli/commands.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/commands.ts:99"}, "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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5650f9cb0e91b8b", "name": "Insecure pattern 'node_child_process' in scripts/eval-report.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/eval-report.mjs:17"}, "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-404b4825192a5e64", "name": "Insecure pattern 'node_child_process' in scripts/release.mjs:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/release.mjs:9"}, "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-3d0a8c07d848e606", "name": "Insecure pattern 'node_child_process' in src/orchestration/ocr.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/orchestration/ocr.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1a63e4e0ecd1557", "name": "Insecure pattern 'node_child_process' in src/cli/commands.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/cli/commands.ts:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-536db2f374f29961", "name": "Very large file: tests/pipelines.test.ts (2925 lines)", "shortDescription": {"text": "Very large file: tests/pipelines.test.ts (2925 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-ca029901092d98cf", "name": "Very large file: tests/runtime.test.ts (7876 lines)", "shortDescription": {"text": "Very large file: tests/runtime.test.ts (7876 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-510dcf27ad8b277f", "name": "Very large file: src/orchestration/runtime.ts (4300 lines)", "shortDescription": {"text": "Very large file: src/orchestration/runtime.ts (4300 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-136ad25c7c0ce723", "name": "Very large file: src/api/server.ts (1577 lines)", "shortDescription": {"text": "Very large file: src/api/server.ts (1577 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-71fce2981e16c5da", "name": "Very large file: src/providers/pipelines.ts (2247 lines)", "shortDescription": {"text": "Very large file: src/providers/pipelines.ts (2247 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-c3ebf339f8d9fbb1", "name": "Very large file: src/discord/client.ts (1589 lines)", "shortDescription": {"text": "Very large file: src/discord/client.ts (1589 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 55 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 21 placeholder/mock markers across 9 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-59aacc0d5057e52d", "name": "Commented-code block (6 lines) in tests/gatewayPipeline.test.ts:282", "shortDescription": {"text": "Commented-code block (6 lines) in tests/gatewayPipeline.test.ts:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dca2c6a810b0db97", "name": "Commented-code block (6 lines) in scripts/eval-report.mjs:7", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/eval-report.mjs:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5d3058d929ba233", "name": "Commented-code block (8 lines) in src/frontend/utils/promptLayout.ts:82", "shortDescription": {"text": "Commented-code block (8 lines) in src/frontend/utils/promptLayout.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e7f97576bcf25f6", "name": "Commented-code block (5 lines) in src/orchestration/ocr.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in src/orchestration/ocr.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-139e7a3eaddb2bc1", "name": "Commented-code block (6 lines) in src/orchestration/runtime.ts:2232", "shortDescription": {"text": "Commented-code block (6 lines) in src/orchestration/runtime.ts:2232"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b2bed3a01445649", "name": "Commented-code block (6 lines) in src/orchestration/dream.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/orchestration/dream.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04ad48a32c844371", "name": "Commented-code block (5 lines) in src/orchestration/pipeline/params.ts:80", "shortDescription": {"text": "Commented-code block (5 lines) in src/orchestration/pipeline/params.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b84a936733bd03", "name": "Commented-code block (5 lines) in src/api/server.ts:1354", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/server.ts:1354"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1837d94bfb29285", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/server.ts:1284", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/server.ts:1284"}, "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-3da752a62c0d9e7a", "name": "Commented-code block (5 lines) in src/shared/schemas/domain.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in src/shared/schemas/domain.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-dc114201f5c57b99", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli/commands.ts:483", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli/commands.ts:483"}, "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-a54ccd2ae34dccc0", "name": "Legacy-named symbol `filterOld` in src/discord/client.ts:216", "shortDescription": {"text": "Legacy-named symbol `filterOld` in src/discord/client.ts:216"}, "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-ff26c493d80fd447", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/discord/client.ts:213", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/discord/client.ts:213"}, "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-03c56d912d81b1b7", "name": "Legacy-named symbol `retriggerPacing_old` in src/backend/migrations.ts:292", "shortDescription": {"text": "Legacy-named symbol `retriggerPacing_old` in src/backend/migrations.ts:292"}, "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-565e0d6933700d70", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/backend/server.ts:675", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/backend/server.ts:675"}, "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-460c6252e0a5dfc3", "name": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/api/server.ts:1284)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/api/server.ts:1284)"}, "fullDescription": {"text": "`src/api/server.ts:1284` calls `GET https://discord.com/api/v10${pathAndQuery}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<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-e191cd7cfeced43e", "name": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/backend/server.ts:675)", "shortDescription": {"text": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/backend/server.ts:675)"}, "fullDescription": {"text": "`src/backend/server.ts:675` calls `GET https://discord.com/api/v10${pathAndQuery}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/discord.com/api/v10/<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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/api/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}}, {"id": "scanner-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/health` 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-963710f42a2c8219", "name": "Unused endpoint: GET /api/status", "shortDescription": {"text": "Unused endpoint: GET /api/status"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/status` 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-43c79d621148648d", "name": "Unused endpoint: GET /api/runtime", "shortDescription": {"text": "Unused endpoint: GET /api/runtime"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/runtime` 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-7aa4b2518cbbbfa2", "name": "Unused endpoint: GET /api/config", "shortDescription": {"text": "Unused endpoint: GET /api/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/config` 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-22923df0fba6d7e8", "name": "Unused endpoint: PUT /api/config", "shortDescription": {"text": "Unused endpoint: PUT /api/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/config` 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-1c9b46c21a24dadb", "name": "Unused endpoint: POST /api/cache/ocr/clear", "shortDescription": {"text": "Unused endpoint: POST /api/cache/ocr/clear"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/cache/ocr/clear` 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-2fe35aca439811e4", "name": "Unused endpoint: GET /api/discord-bots", "shortDescription": {"text": "Unused endpoint: GET /api/discord-bots"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/discord-bots` 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-ba31c88d00038105", "name": "Unused endpoint: PUT /api/discord-bots", "shortDescription": {"text": "Unused endpoint: PUT /api/discord-bots"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/discord-bots` 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-dae4b1bd85b06ec1", "name": "Unused endpoint: GET /api/orchestrator/config", "shortDescription": {"text": "Unused endpoint: GET /api/orchestrator/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/orchestrator/config` 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-dc5fe73efa318fe9", "name": "Unused endpoint: PUT /api/orchestrator/config", "shortDescription": {"text": "Unused endpoint: PUT /api/orchestrator/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/orchestrator/config` 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-2524e3c874e33ee5", "name": "Unused endpoint: GET /api/orchestrator/history", "shortDescription": {"text": "Unused endpoint: GET /api/orchestrator/history"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/orchestrator/history` 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-afdd15507a973a41", "name": "Unused endpoint: GET /api/stage-manager/config", "shortDescription": {"text": "Unused endpoint: GET /api/stage-manager/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/stage-manager/config` 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-595c2473fb9f52ea", "name": "Unused endpoint: PUT /api/stage-manager/config", "shortDescription": {"text": "Unused endpoint: PUT /api/stage-manager/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/stage-manager/config` 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-1ebb589cded4186c", "name": "Unused endpoint: GET /api/stage-manager/history", "shortDescription": {"text": "Unused endpoint: GET /api/stage-manager/history"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/stage-manager/history` 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-e884a0809b242c90", "name": "Unused endpoint: GET /api/reviewer/config", "shortDescription": {"text": "Unused endpoint: GET /api/reviewer/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/reviewer/config` 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-fad09fd00d5de109", "name": "Unused endpoint: PUT /api/reviewer/config", "shortDescription": {"text": "Unused endpoint: PUT /api/reviewer/config"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/reviewer/config` 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-db85f114a0df1b03", "name": "Unused endpoint: GET /api/reviewer/history", "shortDescription": {"text": "Unused endpoint: GET /api/reviewer/history"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/reviewer/history` 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-78cca46f4f7224cf", "name": "Unused endpoint: GET /api/providers", "shortDescription": {"text": "Unused endpoint: GET /api/providers"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/providers` 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-0a18448a5b2148a0", "name": "Unused endpoint: PUT /api/providers/:providerId/credentials", "shortDescription": {"text": "Unused endpoint: PUT /api/providers/:providerId/credentials"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/providers/:providerId/credentials` 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-d5d0d48c53eebbe2", "name": "Unused endpoint: GET /api/models", "shortDescription": {"text": "Unused endpoint: GET /api/models"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/models` 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-78d748b51dca0802", "name": "Unused endpoint: GET /api/waifus", "shortDescription": {"text": "Unused endpoint: GET /api/waifus"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/waifus` 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-e4ddafc77b48dcf4", "name": "Unused endpoint: POST /api/waifus", "shortDescription": {"text": "Unused endpoint: POST /api/waifus"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/waifus` 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-610d73edce5931ea", "name": "Unused endpoint: GET /api/waifus/:waifuId", "shortDescription": {"text": "Unused endpoint: GET /api/waifus/:waifuId"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/waifus/:waifuId` 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-1175197ff2d7fc9f", "name": "Unused endpoint: PUT /api/waifus/:waifuId", "shortDescription": {"text": "Unused endpoint: PUT /api/waifus/:waifuId"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/waifus/:waifuId` 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-f9205527d5a56e75", "name": "Unused endpoint: POST /api/waifus/:waifuId/digest", "shortDescription": {"text": "Unused endpoint: POST /api/waifus/:waifuId/digest"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/waifus/:waifuId/digest` 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-fde96b2b584c9caa", "name": "Unused endpoint: DELETE /api/waifus/:waifuId", "shortDescription": {"text": "Unused endpoint: DELETE /api/waifus/:waifuId"}, "fullDescription": {"text": "`src/api/server.ts` declares `DELETE /api/waifus/:waifuId` 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-ea9a799032848df3", "name": "Unused endpoint: POST /api/waifus/:waifuId/assets/pfp", "shortDescription": {"text": "Unused endpoint: POST /api/waifus/:waifuId/assets/pfp"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/waifus/:waifuId/assets/pfp` 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-673cf5438cb3e886", "name": "Unused endpoint: POST /api/waifus/:waifuId/assets/banner", "shortDescription": {"text": "Unused endpoint: POST /api/waifus/:waifuId/assets/banner"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/waifus/:waifuId/assets/banner` 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-ee3024ecbb71f73d", "name": "Unused endpoint: GET /api/servers", "shortDescription": {"text": "Unused endpoint: GET /api/servers"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/servers` 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-1d47981b9c508951", "name": "Unused endpoint: PUT /api/servers/:guildId", "shortDescription": {"text": "Unused endpoint: PUT /api/servers/:guildId"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/servers/:guildId` 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-56236d9a0c2886b3", "name": "Unused endpoint: GET /api/servers/:guildId/members", "shortDescription": {"text": "Unused endpoint: GET /api/servers/:guildId/members"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/servers/:guildId/members` 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-5ee5501cf07e28a2", "name": "Unused endpoint: POST /api/servers/:guildId/members/refresh", "shortDescription": {"text": "Unused endpoint: POST /api/servers/:guildId/members/refresh"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/servers/:guildId/members/refresh` 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-f81aae8484e94eb5", "name": "Unused endpoint: GET /api/servers/:guildId/emojis", "shortDescription": {"text": "Unused endpoint: GET /api/servers/:guildId/emojis"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/servers/:guildId/emojis` 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-dc9eed922f687a11", "name": "Unused endpoint: POST /api/servers/:guildId/emojis/refresh", "shortDescription": {"text": "Unused endpoint: POST /api/servers/:guildId/emojis/refresh"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/servers/:guildId/emojis/refresh` 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-a4cebd37663c904b", "name": "Unused endpoint: GET /api/servers/:guildId/roles", "shortDescription": {"text": "Unused endpoint: GET /api/servers/:guildId/roles"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/servers/:guildId/roles` 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-4df4d239d4419a93", "name": "Unused endpoint: POST /api/servers/:guildId/roles/refresh", "shortDescription": {"text": "Unused endpoint: POST /api/servers/:guildId/roles/refresh"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/servers/:guildId/roles/refresh` 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-734a8371cc9c3633", "name": "Unused endpoint: PUT /api/servers/:guildId/channels/:channelId", "shortDescription": {"text": "Unused endpoint: PUT /api/servers/:guildId/channels/:channelId"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/servers/:guildId/channels/:channelId` 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-94760304cb683d43", "name": "Unused endpoint: GET /api/memories", "shortDescription": {"text": "Unused endpoint: GET /api/memories"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/memories` 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-31e48ae9233f0b61", "name": "Unused endpoint: POST /api/memories", "shortDescription": {"text": "Unused endpoint: POST /api/memories"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/memories` 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-7930482220ce5005", "name": "Unused endpoint: PUT /api/memories/:memoryId", "shortDescription": {"text": "Unused endpoint: PUT /api/memories/:memoryId"}, "fullDescription": {"text": "`src/api/server.ts` declares `PUT /api/memories/:memoryId` 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-f139654d0ea37cea", "name": "Unused endpoint: DELETE /api/memories/:memoryId", "shortDescription": {"text": "Unused endpoint: DELETE /api/memories/:memoryId"}, "fullDescription": {"text": "`src/api/server.ts` declares `DELETE /api/memories/:memoryId` 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-bc89d40f2e862130", "name": "Unused endpoint: POST /api/runtime/pause", "shortDescription": {"text": "Unused endpoint: POST /api/runtime/pause"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/runtime/pause` 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-590b43be0e7a3476", "name": "Unused endpoint: POST /api/runtime/resume", "shortDescription": {"text": "Unused endpoint: POST /api/runtime/resume"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/runtime/resume` 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-7714f53d7ed9ba2a", "name": "Unused endpoint: POST /api/runtime/reload", "shortDescription": {"text": "Unused endpoint: POST /api/runtime/reload"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/runtime/reload` 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-85b0d800e6929bde", "name": "Unused endpoint: POST /api/runtime/trigger/orchestrator", "shortDescription": {"text": "Unused endpoint: POST /api/runtime/trigger/orchestrator"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/runtime/trigger/orchestrator` 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-41e45e35bc4bea32", "name": "Unused endpoint: POST /api/runtime/trigger/stage-manager", "shortDescription": {"text": "Unused endpoint: POST /api/runtime/trigger/stage-manager"}, "fullDescription": {"text": "`src/api/server.ts` declares `POST /api/runtime/trigger/stage-manager` 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-8908835d470a4f95", "name": "Unused endpoint: GET /api/diagnostics/bundle", "shortDescription": {"text": "Unused endpoint: GET /api/diagnostics/bundle"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/diagnostics/bundle` 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-32af5edd087acbbc", "name": "Unused endpoint: GET /api/events", "shortDescription": {"text": "Unused endpoint: GET /api/events"}, "fullDescription": {"text": "`src/api/server.ts` declares `GET /api/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22489"}, "properties": {"repository": "waifucave/discord-waifus", "repoUrl": "https://github.com/waifucave/discord-waifus", "branch": "main"}, "results": [{"ruleId": "scanner-2df793a6f77eeeb0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/eval/waifu.eval.test.ts:333"}, "properties": {"repobilityId": "7019c92061f74728", "scanner": "scanner-primary", "fingerprint": "2df793a6f77eeeb0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e25743856147432c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/eval/orchestrator.eval.test.ts:384"}, "properties": {"repobilityId": "d1a3f7b869585259", "scanner": "scanner-primary", "fingerprint": "e25743856147432c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1725741a0d6e1fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/cli/commands.ts:99"}, "properties": {"repobilityId": "07eff5174a66b8db", "scanner": "scanner-primary", "fingerprint": "f1725741a0d6e1fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-f5650f9cb0e91b8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/eval-report.mjs:17"}, "properties": {"repobilityId": "f5855d67da0de79e", "scanner": "scanner-primary", "fingerprint": "f5650f9cb0e91b8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/eval-report.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-404b4825192a5e64", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/release.mjs:9"}, "properties": {"repobilityId": "b54b635c778fb88f", "scanner": "scanner-primary", "fingerprint": "404b4825192a5e64", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/release.mjs"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-3d0a8c07d848e606", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/orchestration/ocr.ts:2"}, "properties": {"repobilityId": "853daa291e98e721", "scanner": "scanner-primary", "fingerprint": "3d0a8c07d848e606", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/orchestration/ocr.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-e1a63e4e0ecd1557", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/cli/commands.ts:1"}, "properties": {"repobilityId": "443df4ee06b84f88", "scanner": "scanner-primary", "fingerprint": "e1a63e4e0ecd1557", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/cli/commands.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-536db2f374f29961", "level": "note", "message": {"text": "Very large file: tests/pipelines.test.ts (2925 lines)"}, "properties": {"repobilityId": "9dbd0b8ec150a426", "scanner": "scanner-primary", "fingerprint": "536db2f374f29961", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ca029901092d98cf", "level": "note", "message": {"text": "Very large file: tests/runtime.test.ts (7876 lines)"}, "properties": {"repobilityId": "d7b8fc51de21d352", "scanner": "scanner-primary", "fingerprint": "ca029901092d98cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-510dcf27ad8b277f", "level": "note", "message": {"text": "Very large file: src/orchestration/runtime.ts (4300 lines)"}, "properties": {"repobilityId": "38fa573adc51affb", "scanner": "scanner-primary", "fingerprint": "510dcf27ad8b277f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-136ad25c7c0ce723", "level": "note", "message": {"text": "Very large file: src/api/server.ts (1577 lines)"}, "properties": {"repobilityId": "10f13c817b312435", "scanner": "scanner-primary", "fingerprint": "136ad25c7c0ce723", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71fce2981e16c5da", "level": "note", "message": {"text": "Very large file: src/providers/pipelines.ts (2247 lines)"}, "properties": {"repobilityId": "f571157580b47d15", "scanner": "scanner-primary", "fingerprint": "71fce2981e16c5da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c3ebf339f8d9fbb1", "level": "note", "message": {"text": "Very large file: src/discord/client.ts (1589 lines)"}, "properties": {"repobilityId": "5f877f0f166e454c", "scanner": "scanner-primary", "fingerprint": "c3ebf339f8d9fbb1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "56800d2e8a17fb66", "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": "40cd4fe78dbeb3d7", "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": "74369d19be00c172", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "0fc2609d17a5f24b", "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": "e89ebf8f5b63d034", "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-59aacc0d5057e52d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/gatewayPipeline.test.ts:282"}, "properties": {"repobilityId": "b10bdcf2ee0cd6d0", "scanner": "scanner-primary", "fingerprint": "59aacc0d5057e52d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dca2c6a810b0db97", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/eval-report.mjs:7"}, "properties": {"repobilityId": "3ec81dba77a12c15", "scanner": "scanner-primary", "fingerprint": "dca2c6a810b0db97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5d3058d929ba233", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/frontend/utils/promptLayout.ts:82"}, "properties": {"repobilityId": "68ee13e56b5664cb", "scanner": "scanner-primary", "fingerprint": "e5d3058d929ba233", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e7f97576bcf25f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/orchestration/ocr.ts:16"}, "properties": {"repobilityId": "0ccc5639e781bca3", "scanner": "scanner-primary", "fingerprint": "1e7f97576bcf25f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-139e7a3eaddb2bc1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/orchestration/runtime.ts:2232"}, "properties": {"repobilityId": "18807d557a87e162", "scanner": "scanner-primary", "fingerprint": "139e7a3eaddb2bc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b2bed3a01445649", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/orchestration/dream.ts:10"}, "properties": {"repobilityId": "a92bee0f9758ea25", "scanner": "scanner-primary", "fingerprint": "8b2bed3a01445649", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04ad48a32c844371", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/orchestration/pipeline/params.ts:80"}, "properties": {"repobilityId": "5d198a9cb35a4d76", "scanner": "scanner-primary", "fingerprint": "04ad48a32c844371", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b84a936733bd03", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/server.ts:1354"}, "properties": {"repobilityId": "16dedd099047c04f", "scanner": "scanner-primary", "fingerprint": "d1b84a936733bd03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1837d94bfb29285", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/server.ts:1284"}, "properties": {"repobilityId": "89c162ec52c6113f", "scanner": "scanner-primary", "fingerprint": "d1837d94bfb29285", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3da752a62c0d9e7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/shared/schemas/domain.ts:123"}, "properties": {"repobilityId": "ec741c267c9806cb", "scanner": "scanner-primary", "fingerprint": "3da752a62c0d9e7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc114201f5c57b99", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/cli/commands.ts:483"}, "properties": {"repobilityId": "fb93febdf871ade2", "scanner": "scanner-primary", "fingerprint": "dc114201f5c57b99", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a54ccd2ae34dccc0", "level": "note", "message": {"text": "Legacy-named symbol `filterOld` in src/discord/client.ts:216"}, "properties": {"repobilityId": "fc40f2919a5880ce", "scanner": "scanner-primary", "fingerprint": "a54ccd2ae34dccc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ff26c493d80fd447", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/discord/client.ts:213"}, "properties": {"repobilityId": "75391d6c6ff42bc3", "scanner": "scanner-primary", "fingerprint": "ff26c493d80fd447", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-03c56d912d81b1b7", "level": "note", "message": {"text": "Legacy-named symbol `retriggerPacing_old` in src/backend/migrations.ts:292"}, "properties": {"repobilityId": "91800fd9d66421e3", "scanner": "scanner-primary", "fingerprint": "03c56d912d81b1b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-565e0d6933700d70", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/backend/server.ts:675"}, "properties": {"repobilityId": "926cce1be058c6c4", "scanner": "scanner-primary", "fingerprint": "565e0d6933700d70", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-460c6252e0a5dfc3", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/api/server.ts:1284)"}, "properties": {"repobilityId": "8d959d26b31e3222", "scanner": "scanner-primary", "fingerprint": "460c6252e0a5dfc3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e191cd7cfeced43e", "level": "error", "message": {"text": "Dangling fetch: GET https://discord.com/api/v10${pathAndQuery} (src/backend/server.ts:675)"}, "properties": {"repobilityId": "a8682d5cca2987a2", "scanner": "scanner-primary", "fingerprint": "e191cd7cfeced43e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "de34e2832f4d0353", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "a232d9d8b9b89c38", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-963710f42a2c8219", "level": "note", "message": {"text": "Unused endpoint: GET /api/status"}, "properties": {"repobilityId": "5e88dd9b835c1ff2", "scanner": "scanner-primary", "fingerprint": "963710f42a2c8219", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-43c79d621148648d", "level": "note", "message": {"text": "Unused endpoint: GET /api/runtime"}, "properties": {"repobilityId": "11757dbb6d495b77", "scanner": "scanner-primary", "fingerprint": "43c79d621148648d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7aa4b2518cbbbfa2", "level": "note", "message": {"text": "Unused endpoint: GET /api/config"}, "properties": {"repobilityId": "7bec1ebd4d082c4a", "scanner": "scanner-primary", "fingerprint": "7aa4b2518cbbbfa2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-22923df0fba6d7e8", "level": "note", "message": {"text": "Unused endpoint: PUT /api/config"}, "properties": {"repobilityId": "70b1ab4091b8a4a6", "scanner": "scanner-primary", "fingerprint": "22923df0fba6d7e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c9b46c21a24dadb", "level": "note", "message": {"text": "Unused endpoint: POST /api/cache/ocr/clear"}, "properties": {"repobilityId": "59108e4e2fe6917c", "scanner": "scanner-primary", "fingerprint": "1c9b46c21a24dadb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2fe35aca439811e4", "level": "note", "message": {"text": "Unused endpoint: GET /api/discord-bots"}, "properties": {"repobilityId": "f24c6367a476d026", "scanner": "scanner-primary", "fingerprint": "2fe35aca439811e4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba31c88d00038105", "level": "note", "message": {"text": "Unused endpoint: PUT /api/discord-bots"}, "properties": {"repobilityId": "d578e37741c29cf3", "scanner": "scanner-primary", "fingerprint": "ba31c88d00038105", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dae4b1bd85b06ec1", "level": "note", "message": {"text": "Unused endpoint: GET /api/orchestrator/config"}, "properties": {"repobilityId": "153867b5ea30be86", "scanner": "scanner-primary", "fingerprint": "dae4b1bd85b06ec1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dc5fe73efa318fe9", "level": "note", "message": {"text": "Unused endpoint: PUT /api/orchestrator/config"}, "properties": {"repobilityId": "3f8a77d4d359e1e2", "scanner": "scanner-primary", "fingerprint": "dc5fe73efa318fe9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2524e3c874e33ee5", "level": "note", "message": {"text": "Unused endpoint: GET /api/orchestrator/history"}, "properties": {"repobilityId": "cb856e38d774dabb", "scanner": "scanner-primary", "fingerprint": "2524e3c874e33ee5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afdd15507a973a41", "level": "note", "message": {"text": "Unused endpoint: GET /api/stage-manager/config"}, "properties": {"repobilityId": "bbea34765a2cd93e", "scanner": "scanner-primary", "fingerprint": "afdd15507a973a41", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-595c2473fb9f52ea", "level": "note", "message": {"text": "Unused endpoint: PUT /api/stage-manager/config"}, "properties": {"repobilityId": "537d5155cf419751", "scanner": "scanner-primary", "fingerprint": "595c2473fb9f52ea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1ebb589cded4186c", "level": "note", "message": {"text": "Unused endpoint: GET /api/stage-manager/history"}, "properties": {"repobilityId": "25a89924016719c9", "scanner": "scanner-primary", "fingerprint": "1ebb589cded4186c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e884a0809b242c90", "level": "note", "message": {"text": "Unused endpoint: GET /api/reviewer/config"}, "properties": {"repobilityId": "8c1be28e14c687bc", "scanner": "scanner-primary", "fingerprint": "e884a0809b242c90", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fad09fd00d5de109", "level": "note", "message": {"text": "Unused endpoint: PUT /api/reviewer/config"}, "properties": {"repobilityId": "3fc533ac9fbcfa79", "scanner": "scanner-primary", "fingerprint": "fad09fd00d5de109", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db85f114a0df1b03", "level": "note", "message": {"text": "Unused endpoint: GET /api/reviewer/history"}, "properties": {"repobilityId": "e8001c9dea3d005b", "scanner": "scanner-primary", "fingerprint": "db85f114a0df1b03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-78cca46f4f7224cf", "level": "note", "message": {"text": "Unused endpoint: GET /api/providers"}, "properties": {"repobilityId": "f642855b8e9a88c7", "scanner": "scanner-primary", "fingerprint": "78cca46f4f7224cf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a18448a5b2148a0", "level": "note", "message": {"text": "Unused endpoint: PUT /api/providers/:providerId/credentials"}, "properties": {"repobilityId": "f174a5491e55e999", "scanner": "scanner-primary", "fingerprint": "0a18448a5b2148a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d5d0d48c53eebbe2", "level": "note", "message": {"text": "Unused endpoint: GET /api/models"}, "properties": {"repobilityId": "5cde18d44784a208", "scanner": "scanner-primary", "fingerprint": "d5d0d48c53eebbe2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-78d748b51dca0802", "level": "note", "message": {"text": "Unused endpoint: GET /api/waifus"}, "properties": {"repobilityId": "41327b0dc515243c", "scanner": "scanner-primary", "fingerprint": "78d748b51dca0802", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4ddafc77b48dcf4", "level": "note", "message": {"text": "Unused endpoint: POST /api/waifus"}, "properties": {"repobilityId": "2620af6a8b7eb38e", "scanner": "scanner-primary", "fingerprint": "e4ddafc77b48dcf4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-610d73edce5931ea", "level": "note", "message": {"text": "Unused endpoint: GET /api/waifus/:waifuId"}, "properties": {"repobilityId": "81d8814d5264804a", "scanner": "scanner-primary", "fingerprint": "610d73edce5931ea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1175197ff2d7fc9f", "level": "note", "message": {"text": "Unused endpoint: PUT /api/waifus/:waifuId"}, "properties": {"repobilityId": "34f46d88dfb3a154", "scanner": "scanner-primary", "fingerprint": "1175197ff2d7fc9f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f9205527d5a56e75", "level": "note", "message": {"text": "Unused endpoint: POST /api/waifus/:waifuId/digest"}, "properties": {"repobilityId": "e09368bef159c14d", "scanner": "scanner-primary", "fingerprint": "f9205527d5a56e75", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fde96b2b584c9caa", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/waifus/:waifuId"}, "properties": {"repobilityId": "e31f87d112ae3ab2", "scanner": "scanner-primary", "fingerprint": "fde96b2b584c9caa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea9a799032848df3", "level": "note", "message": {"text": "Unused endpoint: POST /api/waifus/:waifuId/assets/pfp"}, "properties": {"repobilityId": "0a6a9ac12843e87c", "scanner": "scanner-primary", "fingerprint": "ea9a799032848df3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-673cf5438cb3e886", "level": "note", "message": {"text": "Unused endpoint: POST /api/waifus/:waifuId/assets/banner"}, "properties": {"repobilityId": "c00700427fb6aad4", "scanner": "scanner-primary", "fingerprint": "673cf5438cb3e886", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee3024ecbb71f73d", "level": "note", "message": {"text": "Unused endpoint: GET /api/servers"}, "properties": {"repobilityId": "74c458b5402ce2b0", "scanner": "scanner-primary", "fingerprint": "ee3024ecbb71f73d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d47981b9c508951", "level": "note", "message": {"text": "Unused endpoint: PUT /api/servers/:guildId"}, "properties": {"repobilityId": "a482e02e80b97b9e", "scanner": "scanner-primary", "fingerprint": "1d47981b9c508951", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-56236d9a0c2886b3", "level": "note", "message": {"text": "Unused endpoint: GET /api/servers/:guildId/members"}, "properties": {"repobilityId": "20afafc3c8d76d96", "scanner": "scanner-primary", "fingerprint": "56236d9a0c2886b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ee5501cf07e28a2", "level": "note", "message": {"text": "Unused endpoint: POST /api/servers/:guildId/members/refresh"}, "properties": {"repobilityId": "a1042d90a27df5c3", "scanner": "scanner-primary", "fingerprint": "5ee5501cf07e28a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f81aae8484e94eb5", "level": "note", "message": {"text": "Unused endpoint: GET /api/servers/:guildId/emojis"}, "properties": {"repobilityId": "465197c27586a2e4", "scanner": "scanner-primary", "fingerprint": "f81aae8484e94eb5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dc9eed922f687a11", "level": "note", "message": {"text": "Unused endpoint: POST /api/servers/:guildId/emojis/refresh"}, "properties": {"repobilityId": "de044051cd50d17a", "scanner": "scanner-primary", "fingerprint": "dc9eed922f687a11", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a4cebd37663c904b", "level": "note", "message": {"text": "Unused endpoint: GET /api/servers/:guildId/roles"}, "properties": {"repobilityId": "366cde400746dd5c", "scanner": "scanner-primary", "fingerprint": "a4cebd37663c904b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4df4d239d4419a93", "level": "note", "message": {"text": "Unused endpoint: POST /api/servers/:guildId/roles/refresh"}, "properties": {"repobilityId": "e2dd9f950e324351", "scanner": "scanner-primary", "fingerprint": "4df4d239d4419a93", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-734a8371cc9c3633", "level": "note", "message": {"text": "Unused endpoint: PUT /api/servers/:guildId/channels/:channelId"}, "properties": {"repobilityId": "d38a940cb5089619", "scanner": "scanner-primary", "fingerprint": "734a8371cc9c3633", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-94760304cb683d43", "level": "note", "message": {"text": "Unused endpoint: GET /api/memories"}, "properties": {"repobilityId": "97aaebca13fd1ade", "scanner": "scanner-primary", "fingerprint": "94760304cb683d43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-31e48ae9233f0b61", "level": "note", "message": {"text": "Unused endpoint: POST /api/memories"}, "properties": {"repobilityId": "a0bba45e608a16db", "scanner": "scanner-primary", "fingerprint": "31e48ae9233f0b61", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7930482220ce5005", "level": "note", "message": {"text": "Unused endpoint: PUT /api/memories/:memoryId"}, "properties": {"repobilityId": "4bac55e242b64141", "scanner": "scanner-primary", "fingerprint": "7930482220ce5005", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f139654d0ea37cea", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/memories/:memoryId"}, "properties": {"repobilityId": "36ce21ab2cf0f008", "scanner": "scanner-primary", "fingerprint": "f139654d0ea37cea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc89d40f2e862130", "level": "note", "message": {"text": "Unused endpoint: POST /api/runtime/pause"}, "properties": {"repobilityId": "1765fe5068540a86", "scanner": "scanner-primary", "fingerprint": "bc89d40f2e862130", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-590b43be0e7a3476", "level": "note", "message": {"text": "Unused endpoint: POST /api/runtime/resume"}, "properties": {"repobilityId": "0f99e95a35e25469", "scanner": "scanner-primary", "fingerprint": "590b43be0e7a3476", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7714f53d7ed9ba2a", "level": "note", "message": {"text": "Unused endpoint: POST /api/runtime/reload"}, "properties": {"repobilityId": "63a7b9d0cc736fda", "scanner": "scanner-primary", "fingerprint": "7714f53d7ed9ba2a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-85b0d800e6929bde", "level": "note", "message": {"text": "Unused endpoint: POST /api/runtime/trigger/orchestrator"}, "properties": {"repobilityId": "896966629cfe0996", "scanner": "scanner-primary", "fingerprint": "85b0d800e6929bde", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-41e45e35bc4bea32", "level": "note", "message": {"text": "Unused endpoint: POST /api/runtime/trigger/stage-manager"}, "properties": {"repobilityId": "ffe02b4bc42117d3", "scanner": "scanner-primary", "fingerprint": "41e45e35bc4bea32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8908835d470a4f95", "level": "note", "message": {"text": "Unused endpoint: GET /api/diagnostics/bundle"}, "properties": {"repobilityId": "788865fd1fed37a9", "scanner": "scanner-primary", "fingerprint": "8908835d470a4f95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-32af5edd087acbbc", "level": "note", "message": {"text": "Unused endpoint: GET /api/events"}, "properties": {"repobilityId": "ec014b25a6604e91", "scanner": "scanner-primary", "fingerprint": "32af5edd087acbbc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}