{"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-c7e5ce9acd9ecbb9", "name": "Stray `console.log` in TS/JS \u2014 tests/web/console-errors-all-pages.spec.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/console-errors-all-pages.spec.ts:48"}, "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-5e1afd8e32c0ba59", "name": "Stray `console.log` in TS/JS \u2014 tests/web/admin-console-errors.spec.ts:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/admin-console-errors.spec.ts:156"}, "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-0fd2371ffe6841d1", "name": "Stray `console.log` in TS/JS \u2014 tests/web/global-setup.ts:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/global-setup.ts:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1d8e6cf194e2312", "name": "Stray `console.log` in TS/JS \u2014 scripts/translate-strings.js:174", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/translate-strings.js:174"}, "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-b68d4ec343643eee", "name": "Stray `console.log` in TS/JS \u2014 scripts/translate-admin-strings.js:522", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/translate-admin-strings.js:522"}, "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-0857694a22e9d71a", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-roadmap-json.js:184", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-roadmap-json.js:184"}, "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-9f822ec4a7e1ed4a", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-index.js:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-index.js:255"}, "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-9b266d13094bcfe4", "name": "Stray `console.log` in TS/JS \u2014 scripts/ensure-testflight-auto-distribution.js:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-testflight-auto-distribution.js:89"}, "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-13a794ff06ca76fe", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-landing.js:201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-landing.js:201"}, "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-f263043e9e6ef2bf", "name": "Stray `console.log` in TS/JS \u2014 assets/generate-mipmaps.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 assets/generate-mipmaps.js:121"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f9835abb89e8fdb4", "name": "Stray `console.log` in TS/JS \u2014 assets/generate.js:315", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 assets/generate.js:315"}, "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-151a3218a6611ec5", "name": "Stray `console.log` in TS/JS \u2014 local/seed.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 local/seed.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cc683be88ae1ec3f", "name": "Stray `console.log` in TS/JS \u2014 express-api/tests/utils/consoleLogger.test.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/tests/utils/consoleLogger.test.js:43"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31bc079aa56d5c65", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/seed-personas-local.js:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/seed-personas-local.js:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-485ec258927fd506", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/driver-surface-report.js:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/driver-surface-report.js:133"}, "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-cfa36f285d3dbf0f", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/dev-osa-data-probe.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/dev-osa-data-probe.js:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e7cc969d55fecc4", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/provision-test-personas.js:572", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/provision-test-personas.js:572"}, "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-81a7c17d989c059a", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/manual-qa-runner.js:15897", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/manual-qa-runner.js:15897"}, "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-7a2c0b8de0264102", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-allure-emit.js:165", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-allure-emit.js:165"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52b92e2992d71b6c", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/personas-csv-export.js:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/personas-csv-export.js:138"}, "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-7970aada3b67a094", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-html-report.js:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-html-report.js:143"}, "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-c82d70c6e62fe7c5", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/migrate-participant-ids.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/migrate-participant-ids.js:65"}, "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-5f95614c1f393ebd", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/device-journey-runner.js:306", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/device-journey-runner.js:306"}, "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-53d7cc44f2d234a3", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-result-diff.js:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-result-diff.js:173"}, "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-0d7be8eb3d1f76fa", "name": "Stray `console.log` in TS/JS \u2014 express-api/scripts/env-health-check.js:12", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/env-health-check.js:12"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34a41297fc490b22", "name": "Stray `console.log` in TS/JS \u2014 express-api/src/index.js:302", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 express-api/src/index.js:302"}, "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-cc0a4e65eeb921d2", "name": "Privileged port 12 in use", "shortDescription": {"text": "Privileged port 12 in use"}, "fullDescription": {"text": "Port 12 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-623c618848554776", "name": "Privileged port 34 in use", "shortDescription": {"text": "Privileged port 34 in use"}, "fullDescription": {"text": "Port 34 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-449c235cdd534f40", "name": "Privileged port 587 in use", "shortDescription": {"text": "Privileged port 587 in use"}, "fullDescription": {"text": "Port 587 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1df2c54834ccc1da", "name": "Insecure pattern 'node_child_process' in express-api/scripts/device-journey-runner.js:59", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/device-journey-runner.js:59"}, "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-5fb75835cdc6e713", "name": "Insecure pattern 'node_child_process' in express-api/scripts/env-health-check.js:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/env-health-check.js:21"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f616ab2903f8e219", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/web-mobile-firefox-android-driver.js:42", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/web-mobile-firefox-android-driver.js:42"}, "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-02bc2da3e72fee32", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-cdp-helpers.js:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-cdp-helpers.js:24"}, "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-c88c0089bd2a68b8", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-simctl-driver.js:33", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-simctl-driver.js:33"}, "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-61d1824e410af48a", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-devicectl-driver.js:46", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-devicectl-driver.js:46"}, "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-5e3b6d8d6d9cb58a", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-appium-driver.js:48", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-appium-driver.js: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-8adbeb9c22f3f57e", "name": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-adb-driver.js:36", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-adb-driver.js:36"}, "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-8338318c96fe6e86", "name": "Insecure pattern 'node_child_process' in express-api/src/cron/serverHealth.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in express-api/src/cron/serverHealth.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b0984ed8cb8c55f", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/preview-watermark.js:133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/preview-watermark.js:133"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3458a0d8fc77d44", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/event-translations.js:735", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/event-translations.js:735"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d36e496745fb3c17", "name": "Insecure pattern 'local_storage_auth_token' in public/js/logger.js:30", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in public/js/logger.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0c1386fed9dd042", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/suggestions-board.js:675", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/suggestions-board.js:675"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69128a9371f0df5b", "name": "Insecure pattern 'insert_adjacent_html' in public/js/suggestions-board.js:457", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in public/js/suggestions-board.js:457"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82c84fb992e816d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-app.js:560", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-app.js:560"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f2a15de23245c7fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/seasonal-theme.js:105", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/seasonal-theme.js:105"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcadc01ff38aefff", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-auth.js:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-auth.js:49"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98e982b1e09148fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/language-selector.js:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/language-selector.js:124"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a57210a8fa2c33ac", "name": "Insecure pattern 'insert_adjacent_html' in public/js/shared-header.js:88", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in public/js/shared-header.js:88"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8da1265c521dec85", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/js/legal-translations.js:139", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/legal-translations.js:139"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7c09b66c14144af", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/nuclear-reset.js:178", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/nuclear-reset.js:178"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e86fd48ef644659", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/economy-config.js:231", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/economy-config.js:231"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb86e86f2f33c228", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/spin-monitor.js:339", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/spin-monitor.js:339"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2c82c9824abf031", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/suggestions.js:260", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/suggestions.js:260"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faedb38f28d37a89", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/audit-log.js:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/audit-log.js:59"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e3af8a36f4f11ca", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/starting-screens.js:162", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/starting-screens.js:162"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbc9580f2423a71a", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/reports.js:397", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/reports.js:397"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97d5e895ad067352", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/appeals.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/appeals.js:53"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de8b6f6dc28edf37", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/gifts.js:112", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/gifts.js:112"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a436065cbf06280", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/users.js:94", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/users.js:94"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8868319de9522176", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/logs.js:862", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/logs.js:862"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20bf101acaac2677", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/devices.js:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/devices.js:115"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74fc28cfcc7fa675", "name": "Insecure pattern 'direct_innerhtml_assignment' in public/portal/portal.js:449", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/portal/portal.js:449"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0194e604f96b951f", "name": "Possible secret in public/portal/portal-translations.js", "shortDescription": {"text": "Possible secret in public/portal/portal-translations.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3d18870e0a4543e6", "name": "Possible secret in .github/workflows/manual-qa-matrix.yml", "shortDescription": {"text": "Possible secret in .github/workflows/manual-qa-matrix.yml"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a05db0dfa99744ac", "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-370b01afff921c20", "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-17303272d61e0956", "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-768e8f28c1850d98", "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-82d48e0424c53dc6", "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-6eb947f7a3cacc6b", "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-83b71ff23a7ff611", "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-cfca0d81824acfa1", "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-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-84012fa5b95d5abb", "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-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5aec6d0d40efad6b", "name": "Very large file: tests/integration/10-firestore-cohort-rules.spec.ts (2149 lines)", "shortDescription": {"text": "Very large file: tests/integration/10-firestore-cohort-rules.spec.ts (2149 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-48c32116e5763822", "name": "Very large file: tests/web/roadmap-auth.spec.ts (1353 lines)", "shortDescription": {"text": "Very large file: tests/web/roadmap-auth.spec.ts (1353 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-c7778c1e328fa3d8", "name": "Very large file: tests/web/admin-suggestions.spec.ts (1784 lines)", "shortDescription": {"text": "Very large file: tests/web/admin-suggestions.spec.ts (1784 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-2e23be84264b0a94", "name": "Very large file: tests/web/suggestions-board.spec.ts (2332 lines)", "shortDescription": {"text": "Very large file: tests/web/suggestions-board.spec.ts (2332 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-4786a1cec81e2494", "name": "Very large file: tests/web/dev-smoke.spec.ts (1300 lines)", "shortDescription": {"text": "Very large file: tests/web/dev-smoke.spec.ts (1300 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-e7f83f346b28d96e", "name": "Very large file: scripts/sync-stories-to-issues.sh (1676 lines)", "shortDescription": {"text": "Very large file: scripts/sync-stories-to-issues.sh (1676 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-a3916154019dfb53", "name": "Very large file: express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js (2307 lines)", "shortDescription": {"text": "Very large file: express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js (2307 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-e9700c920311c2b4", "name": "Very large file: express-api/tests/scripts/migrate-segregation-relationships.test.js (2409 lines)", "shortDescription": {"text": "Very large file: express-api/tests/scripts/migrate-segregation-relationships.test.js (2409 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-0850a64ecf39ceec", "name": "Very large file: express-api/tests/scripts/manual-qa-runner.test.js (26582 lines)", "shortDescription": {"text": "Very large file: express-api/tests/scripts/manual-qa-runner.test.js (26582 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-23ae0d32abbf2b6a", "name": "Very large file: express-api/tests/scripts/drivers/android-adb-driver.test.js (17315 lines)", "shortDescription": {"text": "Very large file: express-api/tests/scripts/drivers/android-adb-driver.test.js (17315 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-9221a9ac3c3e1fa9", "name": "Very large file: express-api/tests/scripts/drivers/ios-devicectl-driver.test.js (4981 lines)", "shortDescription": {"text": "Very large file: express-api/tests/scripts/drivers/ios-devicectl-driver.test.js (4981 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-4ee525af2fd8b999", "name": "Very large file: express-api/tests/utils/data-export-builder.test.js (1522 lines)", "shortDescription": {"text": "Very large file: express-api/tests/utils/data-export-builder.test.js (1522 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-27d78f404c9b7bf3", "name": "Very large file: express-api/tests/routes/suggestions-contracts-b.test.js (1444 lines)", "shortDescription": {"text": "Very large file: express-api/tests/routes/suggestions-contracts-b.test.js (1444 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-d970ccd1e1d7dba7", "name": "Very large file: express-api/tests/routes/reports-coverage-reports-core-a.test.js (2000 lines)", "shortDescription": {"text": "Very large file: express-api/tests/routes/reports-coverage-reports-core-a.test.js (2000 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-2b720e2e948cacc9", "name": "Very large file: express-api/tests/routes/admin-users-write.test.js (1488 lines)", "shortDescription": {"text": "Very large file: express-api/tests/routes/admin-users-write.test.js (1488 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-ae66e7ea49929536", "name": "Very large file: express-api/tests/routes/room-mutations.test.js (1821 lines)", "shortDescription": {"text": "Very large file: express-api/tests/routes/room-mutations.test.js (1821 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-1b3735a190f34bf7", "name": "Very large file: express-api/scripts/manual-qa-runner.js (16467 lines)", "shortDescription": {"text": "Very large file: express-api/scripts/manual-qa-runner.js (16467 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-a42a8e372a32ad1a", "name": "Very large file: express-api/scripts/device-journey-runner.js (1513 lines)", "shortDescription": {"text": "Very large file: express-api/scripts/device-journey-runner.js (1513 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-7a755977ad45ce46", "name": "Very large file: express-api/scripts/drivers/android-adb-driver.js (2848 lines)", "shortDescription": {"text": "Very large file: express-api/scripts/drivers/android-adb-driver.js (2848 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-e4b94f2badccd593", "name": "Very large file: express-api/src/routes/suggestions.js (1954 lines)", "shortDescription": {"text": "Very large file: express-api/src/routes/suggestions.js (1954 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-93a1d746d8b5e52b", "name": "Very large file: express-api/src/routes/reports.js (1561 lines)", "shortDescription": {"text": "Very large file: express-api/src/routes/reports.js (1561 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-51f9c09ac1aa6a17", "name": "Very large file: express-api/src/routes/admin-users.js (1801 lines)", "shortDescription": {"text": "Very large file: express-api/src/routes/admin-users.js (1801 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-ae6c85e6f6c2364e", "name": "Very large file: express-api/src/routes/users.js (1498 lines)", "shortDescription": {"text": "Very large file: express-api/src/routes/users.js (1498 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-902f559670c8c20b", "name": "Very large file: express-api/src/routes/economy.js (2026 lines)", "shortDescription": {"text": "Very large file: express-api/src/routes/economy.js (2026 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-4a5153f05892d971", "name": "Very large file: public/js/suggestions-board.js (1547 lines)", "shortDescription": {"text": "Very large file: public/js/suggestions-board.js (1547 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-d96412515dca2df3", "name": "Very large file: public/js/roadmap-app.js (1334 lines)", "shortDescription": {"text": "Very large file: public/js/roadmap-app.js (1334 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-3f0909cfbea66574", "name": "Very large file: public/admin/translations.js (3452 lines)", "shortDescription": {"text": "Very large file: public/admin/translations.js (3452 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-cf5df803a01a3490", "name": "Very large file: public/admin/js/tabs/users.js (1965 lines)", "shortDescription": {"text": "Very large file: public/admin/js/tabs/users.js (1965 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-158f04345414c474", "name": "Very large file: public/portal/portal-translations.js (2283 lines)", "shortDescription": {"text": "Very large file: public/portal/portal-translations.js (2283 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 183 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 69 placeholder/mock markers across 31 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d8e5fc0dc32cf0d", "name": "Commented-code block (10 lines) in functions/_middleware.js:26", "shortDescription": {"text": "Commented-code block (10 lines) in functions/_middleware.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03aa708ae4408ec9", "name": "Commented-code block (5 lines) in functions/_lib/lockdown.js:114", "shortDescription": {"text": "Commented-code block (5 lines) in functions/_lib/lockdown.js:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35e533926a04ac05", "name": "Commented-code block (5 lines) in tests/integration/08-fcm-message-shape.spec.ts:148", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/08-fcm-message-shape.spec.ts:148"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16ef261f8ca0af29", "name": "Commented-code block (6 lines) in tests/integration/02-livekit-token-issuance.spec.ts:60", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/02-livekit-token-issuance.spec.ts:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1528d4a1bb896150", "name": "Commented-code block (5 lines) in tests/integration/07-firestore-rules-enforcement.spec.ts:55", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/07-firestore-rules-enforcement.spec.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f313470aee35549", "name": "Commented-code block (8 lines) in tests/integration/06-pm-realtime-delivery.spec.ts:120", "shortDescription": {"text": "Commented-code block (8 lines) in tests/integration/06-pm-realtime-delivery.spec.ts:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-974f50adbbd24772", "name": "Commented-code block (6 lines) in tests/integration/10-firestore-cohort-rules.spec.ts:159", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/10-firestore-cohort-rules.spec.ts:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eae27614e062adc9", "name": "Commented-code block (5 lines) in tests/integration/04-gift-direct-cascade.spec.ts:34", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/04-gift-direct-cascade.spec.ts: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-bb5a682f013e9fba", "name": "Commented-code block (5 lines) in tests/integration/01-express-firestore-roundtrip.spec.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/01-express-firestore-roundtrip.spec.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03c6a3232eb79f58", "name": "Commented-code block (9 lines) in tests/integration/05-iap-replay-protection.spec.ts:99", "shortDescription": {"text": "Commented-code block (9 lines) in tests/integration/05-iap-replay-protection.spec.ts:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3666055dff485dc9", "name": "Commented-code block (7 lines) in tests/integration/03-photo-upload-r2-roundtrip.spec.ts:30", "shortDescription": {"text": "Commented-code block (7 lines) in tests/integration/03-photo-upload-r2-roundtrip.spec.ts:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b2ebb1a66fc8e9f", "name": "Commented-code block (13 lines) in tests/web/admin-keyboard.spec.ts:40", "shortDescription": {"text": "Commented-code block (13 lines) in tests/web/admin-keyboard.spec.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-444b6abb65c20b91", "name": "Commented-code block (7 lines) in tests/web/admin-funfacts.spec.ts:396", "shortDescription": {"text": "Commented-code block (7 lines) in tests/web/admin-funfacts.spec.ts:396"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d16a2dc85e857e8b", "name": "Commented-code block (8 lines) in tests/web/admin-appeals.spec.ts:81", "shortDescription": {"text": "Commented-code block (8 lines) in tests/web/admin-appeals.spec.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-f6653ba510bed7b8", "name": "Commented-code block (5 lines) in tests/web/admin-core-modules.spec.ts:133", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/admin-core-modules.spec.ts:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48b4d6cf485d8256", "name": "Legacy-named symbol `footer_copy` in tests/web/legal-footer-i18n.spec.ts:91", "shortDescription": {"text": "Legacy-named symbol `footer_copy` in tests/web/legal-footer-i18n.spec.ts:91"}, "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-a08c7c6d863ee7ea", "name": "Commented-code block (8 lines) in tests/web/console-errors-all-pages.spec.ts:34", "shortDescription": {"text": "Commented-code block (8 lines) in tests/web/console-errors-all-pages.spec.ts: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-8d954f633d59ccf8", "name": "Commented-code block (5 lines) in tests/web/roadmap-auth.spec.ts:1209", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/roadmap-auth.spec.ts:1209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-601fc33565003090", "name": "Commented-code block (5 lines) in tests/web/admin-suggestions.spec.ts:95", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/admin-suggestions.spec.ts: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-ac865659b2e4ab7b", "name": "Commented-code block (6 lines) in tests/web/roadmap-shy-items.spec.ts:81", "shortDescription": {"text": "Commented-code block (6 lines) in tests/web/roadmap-shy-items.spec.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-2b7dc59596921345", "name": "Legacy-named symbol `enroll_copy` in tests/web/portal-totp-status-i18n.spec.ts:20", "shortDescription": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-totp-status-i18n.spec.ts:20"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30228e4d34be7038", "name": "Commented-code block (10 lines) in tests/web/admin-users-moderation.spec.ts:22", "shortDescription": {"text": "Commented-code block (10 lines) in tests/web/admin-users-moderation.spec.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e1accb5dd703898", "name": "Commented-code block (9 lines) in tests/web/admin-reports.spec.ts:84", "shortDescription": {"text": "Commented-code block (9 lines) in tests/web/admin-reports.spec.ts:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7200379174d9af15", "name": "Commented-code block (5 lines) in tests/web/portal-auth.spec.ts:499", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/portal-auth.spec.ts:499"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-679f660c6320b676", "name": "Commented-code block (7 lines) in tests/web/admin-users-extra.spec.ts:36", "shortDescription": {"text": "Commented-code block (7 lines) in tests/web/admin-users-extra.spec.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79b0476bdf254678", "name": "Commented-code block (7 lines) in tests/web/suggestions-board.spec.ts:1254", "shortDescription": {"text": "Commented-code block (7 lines) in tests/web/suggestions-board.spec.ts:1254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-281fa81a3194f9bc", "name": "Legacy-named symbol `enroll_copy` in tests/web/portal-aria-label-i18n.spec.ts:16", "shortDescription": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-aria-label-i18n.spec.ts:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e3b2eced9c72c21", "name": "Commented-code block (6 lines) in tests/web/dev-smoke.spec.ts:40", "shortDescription": {"text": "Commented-code block (6 lines) in tests/web/dev-smoke.spec.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-fe66a560b39a03ad", "name": "Commented-code block (9 lines) in tests/web/admin-maintenance.spec.ts:75", "shortDescription": {"text": "Commented-code block (9 lines) in tests/web/admin-maintenance.spec.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-264f051ce52ff2e6", "name": "Commented-code block (6 lines) in tests/web/preview-watermark.spec.ts:111", "shortDescription": {"text": "Commented-code block (6 lines) in tests/web/preview-watermark.spec.ts:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa10e54c85b608d5", "name": "Commented-code block (5 lines) in tests/web/suggestions-board-aria-i18n.spec.ts:74", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/suggestions-board-aria-i18n.spec.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-faba71dac70ecfd7", "name": "Commented-code block (6 lines) in tests/web/admin-users-security.spec.ts:36", "shortDescription": {"text": "Commented-code block (6 lines) in tests/web/admin-users-security.spec.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e596f1a37ab9f952", "name": "Commented-code block (9 lines) in tests/web/admin-validation.spec.ts:254", "shortDescription": {"text": "Commented-code block (9 lines) in tests/web/admin-validation.spec.ts:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f869d52c5689914", "name": "Commented-code block (5 lines) in tests/web/shared-header.spec.ts:74", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/shared-header.spec.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b646bd9d1c9a94b6", "name": "Commented-code block (5 lines) in tests/web/security-headers.spec.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/security-headers.spec.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4051075d4488f98f", "name": "Commented-code block (5 lines) in tests/web/suggestions-subscribe-dialog-i18n.spec.ts:87", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/suggestions-subscribe-dialog-i18n.spec.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-be41f78fc32bedab", "name": "Commented-code block (8 lines) in tests/web/landing-page.spec.ts:94", "shortDescription": {"text": "Commented-code block (8 lines) in tests/web/landing-page.spec.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-432a34130b846fd0", "name": "Commented-code block (5 lines) in tests/web/admin-tadmin-helper-i18n.spec.ts:107", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/admin-tadmin-helper-i18n.spec.ts:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d32e293969841ff0", "name": "Commented-code block (5 lines) in tests/web/admin-age-verif-i18n.spec.ts:90", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/admin-age-verif-i18n.spec.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-de2d4c31be48971f", "name": "Legacy-named symbol `footer_copy` in tests/web/homepage-footer-links-i18n.spec.ts:48", "shortDescription": {"text": "Legacy-named symbol `footer_copy` in tests/web/homepage-footer-links-i18n.spec.ts:48"}, "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-053f65d0a4cd3a0b", "name": "Commented-code block (5 lines) in tests/web/dev-sanity.spec.ts:65", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/dev-sanity.spec.ts:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fd35520a01af3c2", "name": "Commented-code block (5 lines) in tests/web/legal-pages.spec.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/legal-pages.spec.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-196268479bfe6183", "name": "Legacy-named symbol `enroll_copy` in tests/web/portal-a11y.spec.ts:228", "shortDescription": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-a11y.spec.ts:228"}, "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-15d039d58b474c42", "name": "Commented-code block (6 lines) in tests/web/admin-init-idempotency.spec.ts:48", "shortDescription": {"text": "Commented-code block (6 lines) in tests/web/admin-init-idempotency.spec.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cd53b33f6f93897", "name": "Commented-code block (5 lines) in tests/web/kny-scroll-top-aria-i18n.spec.ts:64", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/kny-scroll-top-aria-i18n.spec.ts:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c803c6f5326cc63", "name": "Commented-code block (11 lines) in tests/web/admin-cross-tab.spec.ts:88", "shortDescription": {"text": "Commented-code block (11 lines) in tests/web/admin-cross-tab.spec.ts:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-905059b3814ae3e7", "name": "Commented-code block (7 lines) in tests/web/global-setup.ts:19", "shortDescription": {"text": "Commented-code block (7 lines) in tests/web/global-setup.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42aeea840151d9a8", "name": "Commented-code block (5 lines) in tests/web/admin-age-segregation.spec.ts:48", "shortDescription": {"text": "Commented-code block (5 lines) in tests/web/admin-age-segregation.spec.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e46b12cbff1342f", "name": "Commented-code block (17 lines) in tests/web/fixtures/admin.ts:51", "shortDescription": {"text": "Commented-code block (17 lines) in tests/web/fixtures/admin.ts:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58f668373596c9ac", "name": "Commented-code block (6 lines) in scripts/translate-strings.js:196", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/translate-strings.js:196"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41e6b0729d03deff", "name": "Commented-code block (7 lines) in scripts/translate-admin-strings.js:64", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/translate-admin-strings.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39403183aae37fb2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-dns-records.mjs:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-dns-records.mjs: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-4b8a554f807a6c14", "name": "Commented-code block (5 lines) in scripts/sync-shy-to-roadmap-data.mjs:281", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sync-shy-to-roadmap-data.mjs:281"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-904027c728109134", "name": "Commented-code block (5 lines) in scripts/generate-roadmap-json.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/generate-roadmap-json.js:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-712fdf4b74b55163", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ensure-testflight-auto-distribution.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ensure-testflight-auto-distribution.js:71"}, "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-cda4258642913b96", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/google-translate.js:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/google-translate.js:28"}, "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-eb6f83b7b3d02c22", "name": "Commented-code block (5 lines) in local/seed.js:146", "shortDescription": {"text": "Commented-code block (5 lines) in local/seed.js: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-4e605acb1f7a1330", "name": "Commented-code block (9 lines) in express-api/jest.config.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/jest.config.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2a99435d5e5c2e1", "name": "Commented-code block (5 lines) in express-api/eslint.config.mjs:40", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/eslint.config.mjs: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-ba1aed0244fe0098", "name": "Commented-code block (6 lines) in express-api/tests/rtdb-rules/owner-left-rules.test.js:57", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/rtdb-rules/owner-left-rules.test.js:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-425af4c14d32fc09", "name": "Commented-code block (5 lines) in express-api/tests/middleware/rateLimit.test.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/middleware/rateLimit.test.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-332497fad59533e4", "name": "Commented-code block (7 lines) in express-api/tests/middleware/sameCohort.test.js:473", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/middleware/sameCohort.test.js:473"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3580109827ef9ff7", "name": "Commented-code block (6 lines) in express-api/tests/scripts/sync-roadmap-data-workflow.test.js:93", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-roadmap-data-workflow.test.js:93"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b52861f16f7020b5", "name": "Commented-code block (6 lines) in express-api/tests/scripts/runner-driver-name-pin.test.js:100", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/runner-driver-name-pin.test.js: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-a4c03022c01fb720", "name": "Commented-code block (5 lines) in express-api/tests/scripts/ios-26-xcode-bump.test.js:70", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-26-xcode-bump.test.js: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-3a648ffd85e46b3d", "name": "Commented-code block (5 lines) in express-api/tests/scripts/check-story-frontmatter.test.js:718", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/check-story-frontmatter.test.js:718"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65b7d9b3adb940de", "name": "Legacy-named symbol `claude_old` in express-api/tests/scripts/translate-strings.test.js:72", "shortDescription": {"text": "Legacy-named symbol `claude_old` in express-api/tests/scripts/translate-strings.test.js:72"}, "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-6630f9ad7269754e", "name": "Commented-code block (6 lines) in express-api/tests/scripts/admin-click-handler-reentrancy.test.js:217", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/admin-click-handler-reentrancy.test.js:217"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f358a8a611044683", "name": "Commented-code block (9 lines) in express-api/tests/scripts/check-kmp-compat.test.js:181", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/check-kmp-compat.test.js: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-b9606c748f687370", "name": "Commented-code block (6 lines) in express-api/tests/scripts/ios-warnings-pass2-script-phases.test.js:64", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-warnings-pass2-script-phases.test.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85438380b282f483", "name": "Commented-code block (5 lines) in express-api/tests/scripts/qa-runner-driver-checks-pin.test.js:55", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/qa-runner-driver-checks-pin.test.js:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88edd0f23de7f7b2", "name": "Commented-code block (7 lines) in express-api/tests/scripts/sonar-source-encoding-pin.test.js:83", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/sonar-source-encoding-pin.test.js:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-802c78c0ba549def", "name": "Commented-code block (6 lines) in express-api/tests/scripts/ios-local-xcconfig.test.js:123", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-local-xcconfig.test.js: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-69829af32af594c2", "name": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-retry-flag.test.js:107", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-retry-flag.test.js:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb599c1771aaefd5", "name": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-screenshot-on-fail.test.js:266", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-screenshot-on-fail.test.js:266"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0470c4963cf07f26", "name": "Commented-code block (9 lines) in express-api/tests/scripts/sync-stories-to-issues.test.js:29", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/sync-stories-to-issues.test.js:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d119637b61b9d826", "name": "Commented-code block (7 lines) in express-api/tests/scripts/release-workflow-pin.test.js:96", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/release-workflow-pin.test.js:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-997bcb46047a42cd", "name": "Commented-code block (6 lines) in express-api/tests/scripts/ios-livekit-spm-pin.test.js:128", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-livekit-spm-pin.test.js:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a8966309dcfa297", "name": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js:524", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js:524"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fee25076e4eacbef", "name": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-app-changed-split.test.js:155", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-app-changed-split.test.js:155"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1141359f80d524b", "name": "Commented-code block (6 lines) in express-api/tests/scripts/reusable-workflow-concurrency.test.js:68", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/reusable-workflow-concurrency.test.js:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfae9c734862b3ca", "name": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-matrix-workflow-pin.test.js:51", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-matrix-workflow-pin.test.js:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ea5ddc6062a543c", "name": "Commented-code block (7 lines) in express-api/tests/scripts/driver-health-check.test.js:279", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/driver-health-check.test.js:279"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e00b53a466167e24", "name": "Commented-code block (6 lines) in express-api/tests/scripts/large-file-guard-pin.test.js:82", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/large-file-guard-pin.test.js: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-e03b002df200da6f", "name": "Commented-code block (5 lines) in express-api/tests/scripts/web-i18n-coverage.test.js:199", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/web-i18n-coverage.test.js:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-543ebeeb0ef8685c", "name": "Commented-code block (5 lines) in express-api/tests/scripts/android-smoke-verify.test.js:118", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/android-smoke-verify.test.js: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-473c8da44763c2f3", "name": "Commented-code block (7 lines) in express-api/tests/scripts/pr-checks-ios-gating.test.js:32", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/pr-checks-ios-gating.test.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6faeebcd3fedd008", "name": "Commented-code block (9 lines) in express-api/tests/scripts/manual-qa-runner-filter-flag.test.js:197", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/manual-qa-runner-filter-flag.test.js: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-ebf42c1047050228", "name": "Commented-code block (7 lines) in express-api/tests/scripts/manual-qa-runner-check-env.test.js:21", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/manual-qa-runner-check-env.test.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dbbbc28378d4653", "name": "Commented-code block (5 lines) in express-api/tests/scripts/ios-tests-build-cache.test.js:173", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-tests-build-cache.test.js:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5431dbab2fcc569a", "name": "Commented-code block (5 lines) in express-api/tests/scripts/android-e2e-emulator-boot-headroom.test.js:52", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/android-e2e-emulator-boot-headroom.test.js:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da708508d8eac259", "name": "Commented-code block (7 lines) in express-api/tests/scripts/afk-install-artifacts.test.js:103", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/afk-install-artifacts.test.js: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-66cb1205540da118", "name": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-prod-single-gate-and-smoke.test.js:90", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-prod-single-gate-and-smoke.test.js: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-bcf4191723cd1857", "name": "Commented-code block (10 lines) in express-api/tests/scripts/ios-pods-integration-pin.test.js:58", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/tests/scripts/ios-pods-integration-pin.test.js: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-dd223ff893577ca2", "name": "Commented-code block (6 lines) in express-api/tests/scripts/dev-lockdown-middleware.test.js:80", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/dev-lockdown-middleware.test.js: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-07653207984e484a", "name": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-ios-cache-share.test.js:83", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-ios-cache-share.test.js:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b57139929ecd253", "name": "Commented-code block (7 lines) in express-api/tests/scripts/provision-test-personas.test.js:65", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/provision-test-personas.test.js:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9429caaaf0cd76e2", "name": "Commented-code block (8 lines) in express-api/tests/scripts/manual-qa-runner-shard-flag.test.js:91", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/tests/scripts/manual-qa-runner-shard-flag.test.js:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40c6eb95fb940622", "name": "Commented-code block (5 lines) in express-api/tests/scripts/ios-warnings-cleanup-pass1.test.js:61", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-warnings-cleanup-pass1.test.js:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-991e26b429a2536f", "name": "Commented-code block (5 lines) in express-api/tests/scripts/ios-local-configurations.test.js:173", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-local-configurations.test.js:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbbd1017851370ee", "name": "Commented-code block (5 lines) in express-api/tests/scripts/migrate-segregation-relationships.test.js:139", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/migrate-segregation-relationships.test.js: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-ae55cc327a33421d", "name": "Commented-code block (5 lines) in express-api/tests/scripts/ios-entitlements.test.js:51", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-entitlements.test.js:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-720c2ee92c9d90bf", "name": "Commented-code block (6 lines) in express-api/tests/scripts/release-workflow-jq-pattern.test.js:47", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/release-workflow-jq-pattern.test.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87bf5fb3fc0ebc5a", "name": "Commented-code block (5 lines) in express-api/tests/scripts/local-stack-resource-diet.test.js:154", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/local-stack-resource-diet.test.js:154"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7117b5031d941e26", "name": "Commented-code block (6 lines) in express-api/tests/scripts/ios-konan-cache-no-hang.test.js:52", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-konan-cache-no-hang.test.js:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62acf2d3b5ab2970", "name": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-concurrency.test.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-concurrency.test.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd722f1387b89d99", "name": "Commented-code block (7 lines) in express-api/tests/scripts/ios-deploy-archive-signing.test.js:71", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/ios-deploy-archive-signing.test.js:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9932b0da60a4735", "name": "Commented-code block (5 lines) in express-api/tests/scripts/matrix-dispatch.test.js:563", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/matrix-dispatch.test.js:563"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37dfc0cbf6099dd6", "name": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-seed-personas.test.js:58", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-seed-personas.test.js: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-1816a86ab107d731", "name": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-comprehensive.test.js:283", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-comprehensive.test.js:283"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cefa8b88ccdfca40", "name": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-roadmap-data-exclusion.test.js:147", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-roadmap-data-exclusion.test.js:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e23210ab97270e6", "name": "Commented-code block (5 lines) in express-api/tests/scripts/qa-cleanup-orphans-pin.test.js:134", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/qa-cleanup-orphans-pin.test.js:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-286c935353afe0e5", "name": "Commented-code block (5 lines) in express-api/tests/scripts/sync-shy-to-roadmap-data.test.js:540", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/sync-shy-to-roadmap-data.test.js:540"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ed83a552aa6c772", "name": "Commented-code block (6 lines) in express-api/tests/scripts/ios-xcodebuild-log-artifact.test.js:107", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-xcodebuild-log-artifact.test.js:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4ec7ceb3958b8bb", "name": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-runner.test.js:330", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-runner.test.js:330"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ee6722ef6a77190", "name": "Commented-code block (5 lines) in express-api/tests/scripts/translate-admin-strings.test.js:210", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/translate-admin-strings.test.js:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fff0bfffbe1044ab", "name": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/android-cdp-helpers.test.js:112", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/android-cdp-helpers.test.js:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6a9672c3057e8eb", "name": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/driver-screenshot-delegation.test.js:32", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/driver-screenshot-delegation.test.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-817b4ede6c98878e", "name": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/web-playwright-driver.test.js:23", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/web-playwright-driver.test.js:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1476fed833af092e", "name": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/driver-interface-pin.test.js:60", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/driver-interface-pin.test.js:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2467d338859549e2", "name": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/android-adb-driver.test.js:194", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/android-adb-driver.test.js:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bb44b63b27e58aa", "name": "Commented-code block (9 lines) in express-api/tests/scripts/drivers/ios-devicectl-driver.test.js:163", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/drivers/ios-devicectl-driver.test.js:163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-331d1c7acaa7d3f9", "name": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/web-mobile-chrome-android-driver.test.js:598", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/web-mobile-chrome-android-driver.test.js:598"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf78593f3eabca51", "name": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/web-mobile-firefox-android-driver.test.js:615", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/web-mobile-firefox-android-driver.test.js:615"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93b96ce7818d499a", "name": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-handler.test.js:8", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-handler.test.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c85d3d6df1fa1aec", "name": "Commented-code block (6 lines) in express-api/tests/utils/process-shutdown.test.js:71", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/utils/process-shutdown.test.js:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f15d64a41710916a", "name": "Commented-code block (7 lines) in express-api/tests/utils/firestore-helpers.test.js:68", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/utils/firestore-helpers.test.js:68"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f140fc90d773dae", "name": "Commented-code block (6 lines) in express-api/tests/utils/data-export-builder.test.js:17", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/utils/data-export-builder.test.js:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-684ed4a01728e993", "name": "Commented-code block (5 lines) in express-api/tests/utils/age-verification-audit.test.js:81", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/utils/age-verification-audit.test.js: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-28749af3a12373cd", "name": "Commented-code block (6 lines) in express-api/tests/utils/seed-user-invariants.test.js:64", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/utils/seed-user-invariants.test.js:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74ea115ad8fc7d08", "name": "Commented-code block (6 lines) in express-api/tests/utils/appleStore.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/utils/appleStore.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5990104243b6360", "name": "Commented-code block (5 lines) in express-api/tests/utils/evict-suspended-user.test.js:510", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/utils/evict-suspended-user.test.js:510"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c409199b32b1e65", "name": "Commented-code block (9 lines) in express-api/tests/utils/owner-left-orchestrator.test.js:7", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/utils/owner-left-orchestrator.test.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aea78784291bf25f", "name": "Commented-code block (6 lines) in express-api/tests/utils/system-pm.test.js:290", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/utils/system-pm.test.js:290"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81669349d78af24f", "name": "Commented-code block (5 lines) in express-api/tests/utils/data-export-readme-i18n.test.js:37", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/utils/data-export-readme-i18n.test.js:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42eccae4541c08cb", "name": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-listener.test.js:4", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-listener.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd346fdffd3173c1", "name": "Commented-code block (9 lines) in express-api/tests/_helpers/jest-git-env-isolation.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/_helpers/jest-git-env-isolation.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9764c68086cada31", "name": "Commented-code block (5 lines) in express-api/tests/admin-client/suggestions-bulk-partial-failure-static.test.js:26", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/admin-client/suggestions-bulk-partial-failure-static.test.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02a8bd41af25852a", "name": "Commented-code block (6 lines) in express-api/tests/admin-client/users-stale-write-guard-static.test.js:25", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/admin-client/users-stale-write-guard-static.test.js:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48dc5322a299ac2c", "name": "Commented-code block (9 lines) in express-api/tests/routes/suggestions-integration-a-flows.test.js:621", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/tests/routes/suggestions-integration-a-flows.test.js:621"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8bbf580eefc04f61", "name": "Commented-code block (5 lines) in express-api/tests/routes/users.test.js:179", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/users.test.js: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-c9fa058fd5d7bdda", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-queries.test.js:86", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-queries.test.js:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f9bd1123db70c09", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-core.test.js:318", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-core.test.js:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccaeb9b820c6f9ed", "name": "Commented-code block (5 lines) in express-api/tests/routes/device-info.test.js:261", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/device-info.test.js:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ae51e1b0a0cfd1e", "name": "Commented-code block (6 lines) in express-api/tests/routes/conversations-coverage.test.js:217", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/routes/conversations-coverage.test.js:217"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-189a1724d7df420b", "name": "Commented-code block (5 lines) in express-api/tests/routes/system.test.js:65", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/system.test.js:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5da97b325594b5cc", "name": "Commented-code block (6 lines) in express-api/tests/routes/economy-gacha.test.js:118", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/routes/economy-gacha.test.js: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-e60d53c0eddaf91d", "name": "Commented-code block (5 lines) in express-api/tests/routes/admin-age-verification.test.js:318", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-age-verification.test.js:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9e2fa419757322e", "name": "Commented-code block (5 lines) in express-api/tests/routes/auth-otp.test.js:91", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/auth-otp.test.js:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7162456b1d6ea00", "name": "Commented-code block (5 lines) in express-api/tests/routes/users-same-cohort.test.js:462", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/users-same-cohort.test.js:462"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15b61cf578371bc4", "name": "Commented-code block (6 lines) in express-api/tests/routes/reports-coverage-reports-core-a.test.js:54", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/routes/reports-coverage-reports-core-a.test.js:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f608c6b3909fcbd", "name": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-warnings.test.js:411", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-warnings.test.js:411"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1895bf0a8e3101e", "name": "Commented-code block (8 lines) in express-api/tests/routes/admin-cleanup-user.test.js:500", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/tests/routes/admin-cleanup-user.test.js:500"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-308381e0e8330b04", "name": "Commented-code block (5 lines) in express-api/tests/routes/suggestions-integration-b.test.js:817", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/suggestions-integration-b.test.js:817"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79cf84206260ee44", "name": "Commented-code block (7 lines) in express-api/tests/routes/admin-cohort.test.js:516", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/routes/admin-cohort.test.js:516"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4793e881abab1294", "name": "Commented-code block (8 lines) in express-api/tests/routes/portal-change-role.test.js:187", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/tests/routes/portal-change-role.test.js: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-c006c5587f98af26", "name": "Commented-code block (5 lines) in express-api/tests/routes/livekit-cohort.test.js:70", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/livekit-cohort.test.js: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-3ebf8c0e0c2e4ef1", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-gifts.test.js:381", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-gifts.test.js:381"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0830e6019b2234c9", "name": "Commented-code block (6 lines) in express-api/tests/routes/conversations.test.js:58", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/routes/conversations.test.js: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-dbb711cf79b7923e", "name": "Commented-code block (5 lines) in express-api/tests/routes/conversations-cohort.test.js:337", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/conversations-cohort.test.js:337"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e286f97c6ae77ef5", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-send.test.js:234", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-send.test.js:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78c9d06309cf603f", "name": "Commented-code block (12 lines) in express-api/tests/routes/suggestions-read.test.js:458", "shortDescription": {"text": "Commented-code block (12 lines) in express-api/tests/routes/suggestions-read.test.js:458"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-acd3c9fd74d9104c", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-core.test.js:344", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-core.test.js:344"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75f60f523194532d", "name": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-warn-room-cascade.test.js:219", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-warn-room-cascade.test.js:219"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abda50df0a7f998d", "name": "Legacy-named symbol `test_old` in express-api/tests/routes/test-helpers-lifecycle.test.js:304", "shortDescription": {"text": "Legacy-named symbol `test_old` in express-api/tests/routes/test-helpers-lifecycle.test.js:304"}, "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-2c52230d4b9cd09f", "name": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-misc.test.js:167", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-misc.test.js: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-d881aa8dbbc6c4b0", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-rewards.test.js:428", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-rewards.test.js:428"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-038f37bdf1daadb1", "name": "Commented-code block (5 lines) in express-api/tests/routes/pm-lock-check.test.js:144", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/pm-lock-check.test.js:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85b9e0c80cbfd6a4", "name": "Commented-code block (6 lines) in express-api/tests/routes/livekit.test.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/routes/livekit.test.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8601d3201457686f", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-reads.test.js:230", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-reads.test.js:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac6a5127a1e4b073", "name": "Commented-code block (5 lines) in express-api/tests/routes/economy-purchase.test.js:107", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-purchase.test.js:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ba96280a3d7afd8", "name": "Commented-code block (7 lines) in express-api/tests/routes/room-mutations.test.js:376", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/routes/room-mutations.test.js:376"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9d3eb99b3dde02b", "name": "Commented-code block (5 lines) in express-api/tests/routes/admin-devices.test.js:190", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-devices.test.js: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-14062a9882bcc9e9", "name": "Commented-code block (5 lines) in express-api/tests/routes/roadmap-auth.test.js:551", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/tests/routes/roadmap-auth.test.js:551"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b4dcab732587ffb", "name": "Commented-code block (6 lines) in express-api/tests/cron/index.test.js:121", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/cron/index.test.js:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7b1724b5174afbb", "name": "Commented-code block (6 lines) in express-api/tests/cron/serverHealth.test.js:584", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/cron/serverHealth.test.js:584"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-425d822eacb9483c", "name": "Commented-code block (6 lines) in express-api/tests/cron/accountDeletion.test.js:438", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/tests/cron/accountDeletion.test.js:438"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b4c9c2f0889c4c5", "name": "Commented-code block (7 lines) in express-api/tests/cron/rotateLogs.test.js:204", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/cron/rotateLogs.test.js:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72003889acdc943d", "name": "Commented-code block (7 lines) in express-api/tests/firestore-rules/room-rules.test.js:158", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/tests/firestore-rules/room-rules.test.js:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71d882f8b25d0775", "name": "Commented-code block (6 lines) in express-api/scripts/driver-health-check.js:73", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/scripts/driver-health-check.js:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1d5200fb80149c0", "name": "Commented-code block (5 lines) in express-api/scripts/provision-test-personas.js:119", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/provision-test-personas.js:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04ab90a46e4fed3f", "name": "Commented-code block (15 lines) in express-api/scripts/manual-qa-runner.js:38", "shortDescription": {"text": "Commented-code block (15 lines) in express-api/scripts/manual-qa-runner.js:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d498ce84f45fd293", "name": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/manual-qa-runner.js:928", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/manual-qa-runner.js:928"}, "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-40aa103d33f71524", "name": "Commented-code block (5 lines) in express-api/scripts/qa-allure-emit.js:59", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/qa-allure-emit.js:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec8f16e2bb0ed74f", "name": "Commented-code block (5 lines) in express-api/scripts/migrate-pm-lock.js:67", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/migrate-pm-lock.js: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-40bd952d1dd8c5a7", "name": "Commented-code block (8 lines) in express-api/scripts/browser-allowlist.js:39", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/scripts/browser-allowlist.js:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5ca2185432c5d11", "name": "Commented-code block (8 lines) in express-api/scripts/device-journey-runner.js:667", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/scripts/device-journey-runner.js:667"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45df3c60cbba69c5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/device-journey-runner.js:717", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/device-journey-runner.js:717"}, "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-71466fac2db78d73", "name": "Commented-code block (19 lines) in express-api/scripts/migrate-segregation-relationships.js:102", "shortDescription": {"text": "Commented-code block (19 lines) in express-api/scripts/migrate-segregation-relationships.js:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f676afababd0acfa", "name": "Commented-code block (6 lines) in express-api/scripts/matrix-dispatch.js:86", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/scripts/matrix-dispatch.js:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f0ead153f746c9b", "name": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-simctl-driver.js:144", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-simctl-driver.js:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-daa6bbc4d0883605", "name": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-devicectl-driver.js:54", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-devicectl-driver.js:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86ac8ae862334660", "name": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-appium-driver.js:82", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-appium-driver.js: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-0cbd3df8b8d99cbf", "name": "Commented-code block (6 lines) in express-api/scripts/drivers/web-mobile-chrome-android-driver.js:131", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/scripts/drivers/web-mobile-chrome-android-driver.js: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-aaf9eeb337ee3336", "name": "Commented-code block (8 lines) in express-api/scripts/drivers/android-adb-driver.js:199", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/scripts/drivers/android-adb-driver.js:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e4d9d899c2b767e", "name": "Commented-code block (6 lines) in express-api/scripts/drivers/web-playwright-driver.js:32", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/scripts/drivers/web-playwright-driver.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2bfa70aa76a1ee7", "name": "Commented-code block (7 lines) in express-api/src/index.js:41", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/src/index.js:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-431159fe7d868858", "name": "Commented-code block (7 lines) in express-api/src/middleware/sameCohort.js:37", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/src/middleware/sameCohort.js:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af93d376b43715c1", "name": "Commented-code block (6 lines) in express-api/src/middleware/system-auth.js:70", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/middleware/system-auth.js: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-fff800aee4dba918", "name": "Commented-code block (5 lines) in express-api/src/middleware/rateLimit.js:74", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/middleware/rateLimit.js:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce7eccc74e8ce83d", "name": "Commented-code block (5 lines) in express-api/src/middleware/auth.js:22", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/middleware/auth.js:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9684ea65564780fc", "name": "Commented-code block (7 lines) in express-api/src/middleware/requestLogger.js:12", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/src/middleware/requestLogger.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36332f27b2dce1f5", "name": "Commented-code block (9 lines) in express-api/src/middleware/no-index.js:25", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/src/middleware/no-index.js:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70540fb500033162", "name": "Commented-code block (7 lines) in express-api/src/utils/data-export-builder.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/src/utils/data-export-builder.js:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fd4e56f6fee5ac8", "name": "Commented-code block (5 lines) in express-api/src/utils/owner-left-orchestrator.js:115", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/owner-left-orchestrator.js: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-4e8783f8c602787a", "name": "Commented-code block (8 lines) in express-api/src/utils/email-templates.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/src/utils/email-templates.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c71520224ce00a8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/utils/playStore.js:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/utils/playStore.js: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-e7836fb223b267c6", "name": "Commented-code block (9 lines) in express-api/src/utils/segregation-audit.js:58", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/src/utils/segregation-audit.js: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-d3048555e3be881c", "name": "Commented-code block (10 lines) in express-api/src/utils/r2.js:45", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/src/utils/r2.js: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-989a0e7e025d819c", "name": "Commented-code block (5 lines) in express-api/src/utils/fcm.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/fcm.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a04424d8e63e5dd", "name": "Commented-code block (6 lines) in express-api/src/utils/evict-suspended-user.js:101", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/utils/evict-suspended-user.js: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-44064c324bdeb605", "name": "Commented-code block (6 lines) in express-api/src/utils/stale-room-reap.js:34", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/utils/stale-room-reap.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-559004b442b8189b", "name": "Commented-code block (5 lines) in express-api/src/utils/system-pm.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/system-pm.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c66be2755eabc31", "name": "Commented-code block (8 lines) in express-api/src/utils/suggestion-email-templates.js:79", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/src/utils/suggestion-email-templates.js:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff7286140eb13664", "name": "Commented-code block (5 lines) in express-api/src/utils/age-verification-audit.js:41", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/age-verification-audit.js:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7b8947624f48a71", "name": "Commented-code block (6 lines) in express-api/src/utils/owner-left-listener.js:62", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/utils/owner-left-listener.js:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b93a0b0d0771cece", "name": "Commented-code block (5 lines) in express-api/src/utils/totp-crypto.js:27", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/totp-crypto.js:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31b7de4c3c5cb153", "name": "Commented-code block (5 lines) in express-api/src/utils/appleStore.js:75", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/utils/appleStore.js: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-b928dd68e3b6f8f5", "name": "Commented-code block (10 lines) in express-api/src/routes/room-mutations.js:100", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/src/routes/room-mutations.js: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-325b9ec43a50f69a", "name": "Commented-code block (9 lines) in express-api/src/routes/admin-gifts.js:13", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/src/routes/admin-gifts.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df7d9497ee493dcb", "name": "Commented-code block (5 lines) in express-api/src/routes/pm-lock-check.js:105", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/pm-lock-check.js:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae04303917c973e7", "name": "Commented-code block (9 lines) in express-api/src/routes/age-verification.js:139", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/src/routes/age-verification.js: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-3ac81d6e4007d56c", "name": "Commented-code block (5 lines) in express-api/src/routes/suggestions.js:133", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/suggestions.js:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afc23b9142d83844", "name": "Commented-code block (5 lines) in express-api/src/routes/portal.js:38", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/portal.js:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c306003ebd1afe0", "name": "Commented-code block (5 lines) in express-api/src/routes/rooms.js:135", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/rooms.js:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9f340a6c7ab5fa2", "name": "Commented-code block (6 lines) in express-api/src/routes/conversations.js:237", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/conversations.js:237"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c2a1f6fc0581ceb", "name": "Commented-code block (5 lines) in express-api/src/routes/auth.js:151", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/auth.js:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1be8010080da99dc", "name": "Commented-code block (6 lines) in express-api/src/routes/admin-age-verification.js:203", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/admin-age-verification.js:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e94f269bc4a8534", "name": "Commented-code block (8 lines) in express-api/src/routes/admin-cleanup.js:39", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/src/routes/admin-cleanup.js:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60489fbcabd0c656", "name": "Commented-code block (6 lines) in express-api/src/routes/reports.js:31", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/reports.js:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4238f001348c362", "name": "Commented-code block (9 lines) in express-api/src/routes/admin-economy.js:22", "shortDescription": {"text": "Commented-code block (9 lines) in express-api/src/routes/admin-economy.js:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21cffc1d305b5bda", "name": "Commented-code block (6 lines) in express-api/src/routes/subscriptions.js:109", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/subscriptions.js:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-264877bb7c9bc9db", "name": "Commented-code block (6 lines) in express-api/src/routes/config.js:815", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/config.js:815"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e0c52cb04f5e17b", "name": "Commented-code block (6 lines) in express-api/src/routes/livekit.js:25", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/livekit.js:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cceab0ec1cd74883", "name": "Commented-code block (7 lines) in express-api/src/routes/data-export.js:142", "shortDescription": {"text": "Commented-code block (7 lines) in express-api/src/routes/data-export.js:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88fec5151a36a50b", "name": "Commented-code block (5 lines) in express-api/src/routes/apple-notifications.js:123", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/apple-notifications.js: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-79521b559513fcbe", "name": "Commented-code block (6 lines) in express-api/src/routes/device-info.js:158", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/device-info.js:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f12d8adf159de69", "name": "Commented-code block (5 lines) in express-api/src/routes/admin-users.js:305", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/routes/admin-users.js:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb6f5d73408231da", "name": "Commented-code block (6 lines) in express-api/src/routes/users.js:46", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/users.js:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d3203a7832b373f", "name": "Commented-code block (6 lines) in express-api/src/routes/economy.js:106", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/economy.js: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-c93650f9e49fc450", "name": "Commented-code block (6 lines) in express-api/src/routes/system.js:33", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/routes/system.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2bd7ae3023da1e23", "name": "Commented-code block (8 lines) in express-api/src/routes/test-helpers.js:126", "shortDescription": {"text": "Commented-code block (8 lines) in express-api/src/routes/test-helpers.js: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-5db44bddf5c9fd35", "name": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/routes/test-helpers.js:502", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/routes/test-helpers.js:502"}, "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-4bacb809d186f386", "name": "Commented-code block (5 lines) in express-api/src/cron/serverHealth.js:20", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/cron/serverHealth.js:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec3f578cdc34b319", "name": "Commented-code block (6 lines) in express-api/src/cron/subscriptions.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in express-api/src/cron/subscriptions.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33d5d327f79357b5", "name": "Commented-code block (10 lines) in express-api/src/cron/index.js:49", "shortDescription": {"text": "Commented-code block (10 lines) in express-api/src/cron/index.js:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2595d49b877df27", "name": "Commented-code block (5 lines) in express-api/src/cron/ageVerificationAuditReconcile.js:35", "shortDescription": {"text": "Commented-code block (5 lines) in express-api/src/cron/ageVerificationAuditReconcile.js:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78c8b86b7af59137", "name": "Commented-code block (8 lines) in public/js/preview-watermark.js:91", "shortDescription": {"text": "Commented-code block (8 lines) in public/js/preview-watermark.js:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-560c6392f53ec2d0", "name": "Commented-code block (5 lines) in public/js/suggestions-board.js:55", "shortDescription": {"text": "Commented-code block (5 lines) in public/js/suggestions-board.js:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5016a6d0bae82b9", "name": "Commented-code block (11 lines) in public/js/roadmap-app.js:948", "shortDescription": {"text": "Commented-code block (11 lines) in public/js/roadmap-app.js:948"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d998fb0db86cc44", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/roadmap-app.js:1130", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/roadmap-app.js:1130"}, "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-1879cba8ff63419c", "name": "Commented-code block (9 lines) in public/js/roadmap-auth.js:160", "shortDescription": {"text": "Commented-code block (9 lines) in public/js/roadmap-auth.js: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-e34271135175ec17", "name": "Commented-code block (7 lines) in public/js/language-selector.js:49", "shortDescription": {"text": "Commented-code block (7 lines) in public/js/language-selector.js:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54f5d778c7c99804", "name": "Commented-code block (9 lines) in public/js/shared-header.js:21", "shortDescription": {"text": "Commented-code block (9 lines) in public/js/shared-header.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1322546b43e3b5aa", "name": "Legacy-named symbol `footer_copy` in public/js/legal-translations.js:10", "shortDescription": {"text": "Legacy-named symbol `footer_copy` in public/js/legal-translations.js:10"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d795fe233dcbf30", "name": "Commented-code block (6 lines) in public/js/core/api.js:40", "shortDescription": {"text": "Commented-code block (6 lines) in public/js/core/api.js: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-147312c81f10cb9c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/core/api.js:33", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/core/api.js:33"}, "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-79ef1f819f049ebd", "name": "Commented-code block (6 lines) in public/admin/translations.js:3376", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/translations.js:3376"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fad47e7f980e45ae", "name": "Commented-code block (6 lines) in public/admin/js/sync-prod.js:33", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/js/sync-prod.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a40d965e612adb6", "name": "Commented-code block (5 lines) in public/admin/js/main.js:314", "shortDescription": {"text": "Commented-code block (5 lines) in public/admin/js/main.js:314"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-551d85728fdb25bb", "name": "Commented-code block (6 lines) in public/admin/js/nuclear-reset.js:26", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/js/nuclear-reset.js:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-136593c01c440969", "name": "Commented-code block (5 lines) in public/admin/js/lib/partial-failure-toast.js:42", "shortDescription": {"text": "Commented-code block (5 lines) in public/admin/js/lib/partial-failure-toast.js:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4ccfb0c1b2ebf57", "name": "Commented-code block (6 lines) in public/admin/js/tabs/age-verification.js:57", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/age-verification.js:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec067daf0ca66ef5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/economy-config.js:121", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/economy-config.js:121"}, "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-4d3bf23f5e4a975c", "name": "Commented-code block (5 lines) in public/admin/js/tabs/spin-monitor.js:459", "shortDescription": {"text": "Commented-code block (5 lines) in public/admin/js/tabs/spin-monitor.js: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-7c7f2821aca00c12", "name": "Commented-code block (6 lines) in public/admin/js/tabs/suggestions.js:118", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/suggestions.js: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-e851a58a64d019c4", "name": "Commented-code block (6 lines) in public/admin/js/tabs/starting-screens.js:636", "shortDescription": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/starting-screens.js:636"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19972b15bc828b83", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/backups.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/backups.js: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-a466b95a3292a878", "name": "Commented-code block (9 lines) in public/admin/js/tabs/reports.js:117", "shortDescription": {"text": "Commented-code block (9 lines) in public/admin/js/tabs/reports.js:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4ff84acfaf03af6", "name": "Commented-code block (5 lines) in public/admin/js/tabs/users.js:1186", "shortDescription": {"text": "Commented-code block (5 lines) in public/admin/js/tabs/users.js:1186"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0bfb9c3b6bc4b40f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/logs.js:956", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/logs.js:956"}, "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-bc475239fd59aebc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/maintenance.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/maintenance.js: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-3fc87cddcf6ab102", "name": "Legacy-named symbol `enroll_copy` in public/portal/portal.js:1170", "shortDescription": {"text": "Legacy-named symbol `enroll_copy` in public/portal/portal.js:1170"}, "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-64529f2b18889ee9", "name": "Commented-code block (6 lines) in public/portal/portal.js:55", "shortDescription": {"text": "Commented-code block (6 lines) in public/portal/portal.js:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c97b0ad4c0316121", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/portal/portal.js:164", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/portal/portal.js:164"}, "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-59f484dffa0bd641", "name": "Legacy-named symbol `enroll_copy` in public/portal/portal-translations.js:40", "shortDescription": {"text": "Legacy-named symbol `enroll_copy` in public/portal/portal-translations.js:40"}, "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-ca8caa3bcad78c80", "name": "Commented-code block (8 lines) in public/portal/portal-translations.js:12", "shortDescription": {"text": "Commented-code block (8 lines) in public/portal/portal-translations.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c9d02364e09e13c", "name": "55 env vars used in code but missing from .env.example", "shortDescription": {"text": "55 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLURE_ENABLED`, `ALLURE_PROJECT`, `ANDROID_SERIAL`, `APPIUM_BASE_URL`, `APPLE_APP_STORE_APP_ID`, `APP_STORE_CONNECT_ISSUER_ID`, `APP_STORE_CONNECT_KEY_ID`, `APP_STORE_CONNECT_KEY_PATH` + 47 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61fa869837a6b8df", "name": "Dangling fetch: GET https://api.cloudflare.com/client/v4${path} (scripts/add-dns-records.mjs:23)", "shortDescription": {"text": "Dangling fetch: GET https://api.cloudflare.com/client/v4${path} (scripts/add-dns-records.mjs:23)"}, "fullDescription": {"text": "`scripts/add-dns-records.mjs:23` calls `GET https://api.cloudflare.com/client/v4${path}` 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.cloudflare.com/client/v4/<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-f6808745afc3dd22", "name": "Dangling fetch: GET https://api.appstoreconnect.apple.com${path} (scripts/ensure-testflight-auto-distribution.js:71)", "shortDescription": {"text": "Dangling fetch: GET https://api.appstoreconnect.apple.com${path} (scripts/ensure-testflight-auto-distribution.js:71)"}, "fullDescription": {"text": "`scripts/ensure-testflight-auto-distribution.js:71` calls `GET https://api.appstoreconnect.apple.com${path}` 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.appstoreconnect.apple.com/<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-41c57236cf8e9866", "name": "Dangling fetch: GET http://localhost:8080 (local/seed.js:67)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:8080 (local/seed.js:67)"}, "fullDescription": {"text": "`local/seed.js:67` calls `GET http://localhost:8080` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:8080`\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-a2e4ae5c03401b31", "name": "Dangling fetch: GET http://ip-api.com/json/${ip}?fields=isp,as,country,regionName (express-api/src/routes/device-info.js", "shortDescription": {"text": "Dangling fetch: GET http://ip-api.com/json/${ip}?fields=isp,as,country,regionName (express-api/src/routes/device-info.js:49)"}, "fullDescription": {"text": "`express-api/src/routes/device-info.js:49` calls `GET http://ip-api.com/json/${ip}?fields=isp,as,country,regionName` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/ip-api.com/json/<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-bc319cc11dd892cc", "name": "Dangling fetch: GET /roadmap-data.json (public/js/roadmap-app.js:1291)", "shortDescription": {"text": "Dangling fetch: GET /roadmap-data.json (public/js/roadmap-app.js:1291)"}, "fullDescription": {"text": "`public/js/roadmap-app.js:1291` calls `GET /roadmap-data.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/roadmap-data.json`\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-af7889bf9e0296f0", "name": "Dangling fetch: GET /events/events.json (public/js/seasonal-theme.js:32)", "shortDescription": {"text": "Dangling fetch: GET /events/events.json (public/js/seasonal-theme.js:32)"}, "fullDescription": {"text": "`public/js/seasonal-theme.js:32` calls `GET /events/events.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/events/events.json`\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-614d859d7f45aa35", "name": "Dangling fetch: GET /roadmap-data.json (public/admin/js/tabs/suggestions.js:849)", "shortDescription": {"text": "Dangling fetch: GET /roadmap-data.json (public/admin/js/tabs/suggestions.js:849)"}, "fullDescription": {"text": "`public/admin/js/tabs/suggestions.js:849` calls `GET /roadmap-data.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/roadmap-data.json`\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-452d3b9d7b1b6b52", "name": "Dangling fetch: GET /js/core/ui.js (tests/web/admin-core-modules.spec.ts:37)", "shortDescription": {"text": "Dangling fetch: GET /js/core/ui.js (tests/web/admin-core-modules.spec.ts:37)"}, "fullDescription": {"text": "`tests/web/admin-core-modules.spec.ts:37` calls `GET /js/core/ui.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/core/ui.js`\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-d8c6380cff6ee301", "name": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1288)", "shortDescription": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1288)"}, "fullDescription": {"text": "`tests/web/roadmap-auth.spec.ts:1288` calls `GET /js/roadmap-auth.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/roadmap-auth.js`\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-e1dbfaf31f6753ac", "name": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1298)", "shortDescription": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1298)"}, "fullDescription": {"text": "`tests/web/roadmap-auth.spec.ts:1298` calls `GET /js/roadmap-auth.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/roadmap-auth.js`\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-ca96a573db3c3bc1", "name": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1307)", "shortDescription": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1307)"}, "fullDescription": {"text": "`tests/web/roadmap-auth.spec.ts:1307` calls `GET /js/roadmap-auth.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/roadmap-auth.js`\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-55d822b09e454ac7", "name": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1317)", "shortDescription": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1317)"}, "fullDescription": {"text": "`tests/web/roadmap-auth.spec.ts:1317` calls `GET /js/roadmap-auth.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/roadmap-auth.js`\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-789bfc1ced3e922f", "name": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1337)", "shortDescription": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1337)"}, "fullDescription": {"text": "`tests/web/roadmap-auth.spec.ts:1337` calls `GET /js/roadmap-auth.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/roadmap-auth.js`\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-f171b33323c8f342", "name": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:507)", "shortDescription": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:507)"}, "fullDescription": {"text": "`tests/web/portal-auth.spec.ts:507` calls `GET /portal/portal.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/portal/portal.js`\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-ee96cc82758a23e8", "name": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:519)", "shortDescription": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:519)"}, "fullDescription": {"text": "`tests/web/portal-auth.spec.ts:519` calls `GET /portal/portal.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/portal/portal.js`\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-fa0591051e1634e9", "name": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:541)", "shortDescription": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:541)"}, "fullDescription": {"text": "`tests/web/portal-auth.spec.ts:541` calls `GET /portal/portal.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/portal/portal.js`\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-86a464843d697578", "name": "Dangling fetch: GET /js/suggestions-board.js (tests/web/suggestions-board.spec.ts:2322)", "shortDescription": {"text": "Dangling fetch: GET /js/suggestions-board.js (tests/web/suggestions-board.spec.ts:2322)"}, "fullDescription": {"text": "`tests/web/suggestions-board.spec.ts:2322` calls `GET /js/suggestions-board.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/js/suggestions-board.js`\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-136aa0811e7d545a", "name": "Dangling fetch: GET /favicon.ico (tests/web/logger-idempotency.spec.ts:71)", "shortDescription": {"text": "Dangling fetch: GET /favicon.ico (tests/web/logger-idempotency.spec.ts:71)"}, "fullDescription": {"text": "`tests/web/logger-idempotency.spec.ts:71` calls `GET /favicon.ico` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/favicon.ico`\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-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`express-api/src/index.js` 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-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c73e8bea8e1d1368", "name": "Unused endpoint: USE /api/conversations", "shortDescription": {"text": "Unused endpoint: USE /api/conversations"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/conversations` 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-52f85eab8587df28", "name": "Unused endpoint: USE /api/economy/gacha", "shortDescription": {"text": "Unused endpoint: USE /api/economy/gacha"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/gacha` 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-9695d7c7ace3cae4", "name": "Unused endpoint: USE /api/economy/gift", "shortDescription": {"text": "Unused endpoint: USE /api/economy/gift"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/gift` 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-0f72dce5c0e45e71", "name": "Unused endpoint: USE /api/economy/gift-direct", "shortDescription": {"text": "Unused endpoint: USE /api/economy/gift-direct"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/gift-direct` 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-6f67c7705221ca32", "name": "Unused endpoint: USE /api/economy/gift-batch", "shortDescription": {"text": "Unused endpoint: USE /api/economy/gift-batch"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/gift-batch` 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-f4e1aa2de5e2973c", "name": "Unused endpoint: USE /api/economy/backpack-send", "shortDescription": {"text": "Unused endpoint: USE /api/economy/backpack-send"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/backpack-send` 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-c3a8b7932f72b92f", "name": "Unused endpoint: USE /api/notifications", "shortDescription": {"text": "Unused endpoint: USE /api/notifications"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/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-3b4a376810bee148", "name": "Unused endpoint: USE /api/translate", "shortDescription": {"text": "Unused endpoint: USE /api/translate"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/translate` 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-cd00d4055a685b58", "name": "Unused endpoint: USE /api/users/discover", "shortDescription": {"text": "Unused endpoint: USE /api/users/discover"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/users/discover` 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-969d826b4b18d35e", "name": "Unused endpoint: USE /api/users/search", "shortDescription": {"text": "Unused endpoint: USE /api/users/search"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/users/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-8d63a6ec006ffbed", "name": "Unused endpoint: USE /api/economy/purchase", "shortDescription": {"text": "Unused endpoint: USE /api/economy/purchase"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/purchase` 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-e8a02e029ad22875", "name": "Unused endpoint: USE /api/economy/trial-claim", "shortDescription": {"text": "Unused endpoint: USE /api/economy/trial-claim"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/trial-claim` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5332ce35b85115b5", "name": "Unused endpoint: USE /api/economy/trial-activate", "shortDescription": {"text": "Unused endpoint: USE /api/economy/trial-activate"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/economy/trial-activate` 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-2a06e6d401449b82", "name": "Unused endpoint: USE /api/reports", "shortDescription": {"text": "Unused endpoint: USE /api/reports"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/reports` 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-bc090eaac3853bae", "name": "Unused endpoint: USE /api/appeals", "shortDescription": {"text": "Unused endpoint: USE /api/appeals"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/appeals` 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-7ee3bd93a66b4847", "name": "Unused endpoint: USE /api/users/:uniqueId/delete", "shortDescription": {"text": "Unused endpoint: USE /api/users/:uniqueId/delete"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/users/:uniqueId/delete` 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-118645c45ade9ffd", "name": "Unused endpoint: USE /api/users/:uniqueId/data-export", "shortDescription": {"text": "Unused endpoint: USE /api/users/:uniqueId/data-export"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/users/:uniqueId/data-export` 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-bb6eb888599aa5c5", "name": "Unused endpoint: USE /api/users/:uniqueId/pm-lock-check", "shortDescription": {"text": "Unused endpoint: USE /api/users/:uniqueId/pm-lock-check"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/users/:uniqueId/pm-lock-check` 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-5dce9d9c7fbe039e", "name": "Unused endpoint: USE /api/age-verification", "shortDescription": {"text": "Unused endpoint: USE /api/age-verification"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/age-verification` 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-88a3ae3b9d2fa35b", "name": "Unused endpoint: USE /api/user/:uniqueId/cohort-override", "shortDescription": {"text": "Unused endpoint: USE /api/user/:uniqueId/cohort-override"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/user/:uniqueId/cohort-override` 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-9962a2df99fa7781", "name": "Unused endpoint: USE /api/portal", "shortDescription": {"text": "Unused endpoint: USE /api/portal"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/portal` 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-586571a0bd97aa0d", "name": "Unused endpoint: USE /api/portal/totp-recovery", "shortDescription": {"text": "Unused endpoint: USE /api/portal/totp-recovery"}, "fullDescription": {"text": "`express-api/src/index.js` declares `USE /api/portal/totp-recovery` 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-a27e9509cc4a398b", "name": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/claim", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/claim"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/seats/:seatIndex/claim` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-298aec6a7bf815b4", "name": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/accept-invite", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/accept-invite"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/seats/:seatIndex/accept-invite` 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-10b0075b6567b696", "name": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/leave", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/leave"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/seats/:seatIndex/leave` 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-d06611ff97d0fc40", "name": "Unused endpoint: POST /rooms/:roomId/kick", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/kick"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/kick` 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-37c2ad82fb181cb5", "name": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/remove", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/remove"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/seats/:seatIndex/remove` 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-a7425175e7d029f1", "name": "Unused endpoint: PATCH /rooms/:roomId/seats/:seatIndex/mute", "shortDescription": {"text": "Unused endpoint: PATCH /rooms/:roomId/seats/:seatIndex/mute"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `PATCH /rooms/:roomId/seats/:seatIndex/mute` 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-c9023f70fa1f9561", "name": "Unused endpoint: POST /rooms/:roomId/hosts", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/hosts"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/hosts` 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-f2334e7682b39618", "name": "Unused endpoint: DELETE /rooms/:roomId/hosts/:userId", "shortDescription": {"text": "Unused endpoint: DELETE /rooms/:roomId/hosts/:userId"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `DELETE /rooms/:roomId/hosts/:userId` 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-c55c133f63a4f800", "name": "Unused endpoint: PATCH /rooms/:roomId/name", "shortDescription": {"text": "Unused endpoint: PATCH /rooms/:roomId/name"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `PATCH /rooms/:roomId/name` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fc3ecb6881028bae", "name": "Unused endpoint: PATCH /rooms/:roomId/require-approval", "shortDescription": {"text": "Unused endpoint: PATCH /rooms/:roomId/require-approval"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `PATCH /rooms/:roomId/require-approval` 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-5ed5b09453bfc5af", "name": "Unused endpoint: POST /rooms/:roomId/owner-returned", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/owner-returned"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/owner-returned` 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-a0fb9430bdaaca90", "name": "Unused endpoint: POST /rooms/:roomId/owner-away", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/owner-away"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/owner-away` 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-281214b8bb81a60e", "name": "Unused endpoint: POST /rooms/:roomId/close", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/close"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/close` 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-f510069e8939e17a", "name": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/move", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/move"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/seats/:seatIndex/move` 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-addacab83587c1ed", "name": "Unused endpoint: POST /rooms/:roomId/join", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/join"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/join` 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-5d18bbd27259354f", "name": "Unused endpoint: POST /rooms/:roomId/decline-invite", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/decline-invite"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/decline-invite` 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-fdc208fc1e9b932a", "name": "Unused endpoint: POST /rooms/:roomId/leave", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/leave"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/leave` 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-ce8916c4f36646d8", "name": "Unused endpoint: POST /rooms/:roomId/disconnect-user", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/disconnect-user"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/disconnect-user` 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-8235fb9baf153667", "name": "Unused endpoint: POST /rooms/:roomId/first-join", "shortDescription": {"text": "Unused endpoint: POST /rooms/:roomId/first-join"}, "fullDescription": {"text": "`express-api/src/routes/room-mutations.js` declares `POST /rooms/:roomId/first-join` 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-cebde18d82d285d1", "name": "Unused endpoint: USE /gifts", "shortDescription": {"text": "Unused endpoint: USE /gifts"}, "fullDescription": {"text": "`express-api/src/routes/admin-gifts.js` declares `USE /gifts` 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-003debd264fb4f8e", "name": "Unused endpoint: POST /gifts", "shortDescription": {"text": "Unused endpoint: POST /gifts"}, "fullDescription": {"text": "`express-api/src/routes/admin-gifts.js` declares `POST /gifts` 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-67a38c7af820dcbd", "name": "Unused endpoint: PUT /gifts/:id", "shortDescription": {"text": "Unused endpoint: PUT /gifts/:id"}, "fullDescription": {"text": "`express-api/src/routes/admin-gifts.js` declares `PUT /gifts/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7708dd49159fb94f", "name": "Unused endpoint: DELETE /gifts/:id", "shortDescription": {"text": "Unused endpoint: DELETE /gifts/:id"}, "fullDescription": {"text": "`express-api/src/routes/admin-gifts.js` declares `DELETE /gifts/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-814a02eb47459dad", "name": "Unused endpoint: USE /admin/maintenance", "shortDescription": {"text": "Unused endpoint: USE /admin/maintenance"}, "fullDescription": {"text": "`express-api/src/routes/suggestions-maintenance.js` declares `USE /admin/maintenance` 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-f0312e2a18adbe59", "name": "Unused endpoint: POST /admin/maintenance/clear-suggestions", "shortDescription": {"text": "Unused endpoint: POST /admin/maintenance/clear-suggestions"}, "fullDescription": {"text": "`express-api/src/routes/suggestions-maintenance.js` declares `POST /admin/maintenance/clear-suggestions` 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-b692c98b78ff77ca", "name": "Unused endpoint: POST /admin/maintenance/clear-subscriptions", "shortDescription": {"text": "Unused endpoint: POST /admin/maintenance/clear-subscriptions"}, "fullDescription": {"text": "`express-api/src/routes/suggestions-maintenance.js` declares `POST /admin/maintenance/clear-subscriptions` 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/19611"}, "properties": {"repository": "Shyden-Ltd/ShyTalk", "repoUrl": "https://github.com/Shyden-Ltd/ShyTalk", "branch": "main"}, "results": [{"ruleId": "scanner-c7e5ce9acd9ecbb9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/console-errors-all-pages.spec.ts:48"}, "properties": {"repobilityId": "bccc1be523267e60", "scanner": "scanner-primary", "fingerprint": "c7e5ce9acd9ecbb9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5e1afd8e32c0ba59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/admin-console-errors.spec.ts:156"}, "properties": {"repobilityId": "6efb44c0faf30a41", "scanner": "scanner-primary", "fingerprint": "5e1afd8e32c0ba59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0fd2371ffe6841d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/web/global-setup.ts:44"}, "properties": {"repobilityId": "71b62571e52fb4ad", "scanner": "scanner-primary", "fingerprint": "0fd2371ffe6841d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1d8e6cf194e2312", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/translate-strings.js:174"}, "properties": {"repobilityId": "b4e10443e43f7307", "scanner": "scanner-primary", "fingerprint": "f1d8e6cf194e2312", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b68d4ec343643eee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/translate-admin-strings.js:522"}, "properties": {"repobilityId": "fa1d4285966913db", "scanner": "scanner-primary", "fingerprint": "b68d4ec343643eee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0857694a22e9d71a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-roadmap-json.js:184"}, "properties": {"repobilityId": "fd331cf1fb231e93", "scanner": "scanner-primary", "fingerprint": "0857694a22e9d71a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f822ec4a7e1ed4a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-index.js:255"}, "properties": {"repobilityId": "75d2ef86659c3cab", "scanner": "scanner-primary", "fingerprint": "9f822ec4a7e1ed4a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9b266d13094bcfe4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ensure-testflight-auto-distribution.js:89"}, "properties": {"repobilityId": "9da35916764dbf64", "scanner": "scanner-primary", "fingerprint": "9b266d13094bcfe4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13a794ff06ca76fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-allure-landing.js:201"}, "properties": {"repobilityId": "59841417132b6b38", "scanner": "scanner-primary", "fingerprint": "13a794ff06ca76fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f263043e9e6ef2bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 assets/generate-mipmaps.js:121"}, "properties": {"repobilityId": "3cddfec159bf72d4", "scanner": "scanner-primary", "fingerprint": "f263043e9e6ef2bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9835abb89e8fdb4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 assets/generate.js:315"}, "properties": {"repobilityId": "6f2d879df24bd38e", "scanner": "scanner-primary", "fingerprint": "f9835abb89e8fdb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-151a3218a6611ec5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 local/seed.js:35"}, "properties": {"repobilityId": "d48008f9752390ad", "scanner": "scanner-primary", "fingerprint": "151a3218a6611ec5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc683be88ae1ec3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/tests/utils/consoleLogger.test.js:43"}, "properties": {"repobilityId": "8c5b567e2726bc5e", "scanner": "scanner-primary", "fingerprint": "cc683be88ae1ec3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-31bc079aa56d5c65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/seed-personas-local.js:46"}, "properties": {"repobilityId": "be78c7358e5e2508", "scanner": "scanner-primary", "fingerprint": "31bc079aa56d5c65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-485ec258927fd506", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/driver-surface-report.js:133"}, "properties": {"repobilityId": "e45f096c3541d3df", "scanner": "scanner-primary", "fingerprint": "485ec258927fd506", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cfa36f285d3dbf0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/dev-osa-data-probe.js:30"}, "properties": {"repobilityId": "5a957374e7a7873a", "scanner": "scanner-primary", "fingerprint": "cfa36f285d3dbf0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e7cc969d55fecc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/provision-test-personas.js:572"}, "properties": {"repobilityId": "2cfe25da960fc96e", "scanner": "scanner-primary", "fingerprint": "2e7cc969d55fecc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-81a7c17d989c059a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/manual-qa-runner.js:15897"}, "properties": {"repobilityId": "9c36b3040821280f", "scanner": "scanner-primary", "fingerprint": "81a7c17d989c059a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a2c0b8de0264102", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-allure-emit.js:165"}, "properties": {"repobilityId": "17b4fe584d973a7c", "scanner": "scanner-primary", "fingerprint": "7a2c0b8de0264102", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-52b92e2992d71b6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/personas-csv-export.js:138"}, "properties": {"repobilityId": "01ef9086f36c5410", "scanner": "scanner-primary", "fingerprint": "52b92e2992d71b6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7970aada3b67a094", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-html-report.js:143"}, "properties": {"repobilityId": "98942b433582bb14", "scanner": "scanner-primary", "fingerprint": "7970aada3b67a094", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c82d70c6e62fe7c5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/migrate-participant-ids.js:65"}, "properties": {"repobilityId": "89a5b8b5df8dbffb", "scanner": "scanner-primary", "fingerprint": "c82d70c6e62fe7c5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5f95614c1f393ebd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/device-journey-runner.js:306"}, "properties": {"repobilityId": "02c5f9aeaab9eb29", "scanner": "scanner-primary", "fingerprint": "5f95614c1f393ebd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-53d7cc44f2d234a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/qa-result-diff.js:173"}, "properties": {"repobilityId": "eb0ed99778c2e0ca", "scanner": "scanner-primary", "fingerprint": "53d7cc44f2d234a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0d7be8eb3d1f76fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/scripts/env-health-check.js:12"}, "properties": {"repobilityId": "c1f874b51d1fe1be", "scanner": "scanner-primary", "fingerprint": "0d7be8eb3d1f76fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34a41297fc490b22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 express-api/src/index.js:302"}, "properties": {"repobilityId": "dd2add2e29ed626a", "scanner": "scanner-primary", "fingerprint": "34a41297fc490b22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc0a4e65eeb921d2", "level": "warning", "message": {"text": "Privileged port 12 in use"}, "properties": {"repobilityId": "65e7eefa33f2def4", "scanner": "scanner-primary", "fingerprint": "cc0a4e65eeb921d2", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/branch-audit-snapshot.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-623c618848554776", "level": "warning", "message": {"text": "Privileged port 34 in use"}, "properties": {"repobilityId": "2febb579b1c7080d", "scanner": "scanner-primary", "fingerprint": "623c618848554776", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/branch-audit-snapshot.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-449c235cdd534f40", "level": "warning", "message": {"text": "Privileged port 587 in use"}, "properties": {"repobilityId": "a87a96c3b2e62c08", "scanner": "scanner-primary", "fingerprint": "449c235cdd534f40", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/tests/utils/email.test.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-1df2c54834ccc1da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/device-journey-runner.js:59"}, "properties": {"repobilityId": "d6ddb5857ce07e7f", "scanner": "scanner-primary", "fingerprint": "1df2c54834ccc1da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/device-journey-runner.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-5fb75835cdc6e713", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/env-health-check.js:21"}, "properties": {"repobilityId": "71252c9ffc610c06", "scanner": "scanner-primary", "fingerprint": "5fb75835cdc6e713", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/env-health-check.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-f616ab2903f8e219", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/web-mobile-firefox-android-driver.js:42"}, "properties": {"repobilityId": "3132b6265d94f312", "scanner": "scanner-primary", "fingerprint": "f616ab2903f8e219", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/web-mobile-firefox-android-driver.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-02bc2da3e72fee32", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-cdp-helpers.js:24"}, "properties": {"repobilityId": "7e0ff86c86881848", "scanner": "scanner-primary", "fingerprint": "02bc2da3e72fee32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/android-cdp-helpers.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c88c0089bd2a68b8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-simctl-driver.js:33"}, "properties": {"repobilityId": "19e630c7c9248fa6", "scanner": "scanner-primary", "fingerprint": "c88c0089bd2a68b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/ios-simctl-driver.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-61d1824e410af48a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-devicectl-driver.js:46"}, "properties": {"repobilityId": "9b482534e9796ece", "scanner": "scanner-primary", "fingerprint": "61d1824e410af48a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/ios-devicectl-driver.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-5e3b6d8d6d9cb58a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/ios-appium-driver.js:48"}, "properties": {"repobilityId": "e1fe3b4dd5c4af3f", "scanner": "scanner-primary", "fingerprint": "5e3b6d8d6d9cb58a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/ios-appium-driver.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-8adbeb9c22f3f57e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/scripts/drivers/android-adb-driver.js:36"}, "properties": {"repobilityId": "e0ff445144c5db47", "scanner": "scanner-primary", "fingerprint": "8adbeb9c22f3f57e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/scripts/drivers/android-adb-driver.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-8338318c96fe6e86", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in express-api/src/cron/serverHealth.js:11"}, "properties": {"repobilityId": "d4d4f4c1b4bc0d42", "scanner": "scanner-primary", "fingerprint": "8338318c96fe6e86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "express-api/src/cron/serverHealth.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-2b0984ed8cb8c55f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/preview-watermark.js:133"}, "properties": {"repobilityId": "b977db7c710bc267", "scanner": "scanner-primary", "fingerprint": "2b0984ed8cb8c55f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/preview-watermark.js"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-e3458a0d8fc77d44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/event-translations.js:735"}, "properties": {"repobilityId": "e943a477093d449c", "scanner": "scanner-primary", "fingerprint": "e3458a0d8fc77d44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/event-translations.js"}, "region": {"startLine": 735}}}]}, {"ruleId": "scanner-d36e496745fb3c17", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in public/js/logger.js:30"}, "properties": {"repobilityId": "2a18593b1a6d20f0", "scanner": "scanner-primary", "fingerprint": "d36e496745fb3c17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/logger.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-c0c1386fed9dd042", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/suggestions-board.js:675"}, "properties": {"repobilityId": "951f75b0c03cdc45", "scanner": "scanner-primary", "fingerprint": "c0c1386fed9dd042", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/suggestions-board.js"}, "region": {"startLine": 675}}}]}, {"ruleId": "scanner-69128a9371f0df5b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in public/js/suggestions-board.js:457"}, "properties": {"repobilityId": "55ecee5044efa1dd", "scanner": "scanner-primary", "fingerprint": "69128a9371f0df5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/suggestions-board.js"}, "region": {"startLine": 457}}}]}, {"ruleId": "scanner-82c84fb992e816d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-app.js:560"}, "properties": {"repobilityId": "70da793a43c8c630", "scanner": "scanner-primary", "fingerprint": "82c84fb992e816d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/roadmap-app.js"}, "region": {"startLine": 560}}}]}, {"ruleId": "scanner-f2a15de23245c7fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/seasonal-theme.js:105"}, "properties": {"repobilityId": "42d688a2f4c472d5", "scanner": "scanner-primary", "fingerprint": "f2a15de23245c7fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/seasonal-theme.js"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-fcadc01ff38aefff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/roadmap-auth.js:49"}, "properties": {"repobilityId": "b36c737c3d17d865", "scanner": "scanner-primary", "fingerprint": "fcadc01ff38aefff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/roadmap-auth.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-98e982b1e09148fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/language-selector.js:124"}, "properties": {"repobilityId": "679da44563e92216", "scanner": "scanner-primary", "fingerprint": "98e982b1e09148fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/language-selector.js"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-a57210a8fa2c33ac", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in public/js/shared-header.js:88"}, "properties": {"repobilityId": "989b430ac882205c", "scanner": "scanner-primary", "fingerprint": "a57210a8fa2c33ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/shared-header.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-8da1265c521dec85", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/js/legal-translations.js:139"}, "properties": {"repobilityId": "a5dd77d348c3c632", "scanner": "scanner-primary", "fingerprint": "8da1265c521dec85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/js/legal-translations.js"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-c7c09b66c14144af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/nuclear-reset.js:178"}, "properties": {"repobilityId": "8f9c54d98ed8ecd8", "scanner": "scanner-primary", "fingerprint": "c7c09b66c14144af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/nuclear-reset.js"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-7e86fd48ef644659", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/economy-config.js:231"}, "properties": {"repobilityId": "efaddb1ec87c23e9", "scanner": "scanner-primary", "fingerprint": "7e86fd48ef644659", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/economy-config.js"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-eb86e86f2f33c228", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/spin-monitor.js:339"}, "properties": {"repobilityId": "e1efa1222d353244", "scanner": "scanner-primary", "fingerprint": "eb86e86f2f33c228", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/spin-monitor.js"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-c2c82c9824abf031", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/suggestions.js:260"}, "properties": {"repobilityId": "8c3e5b34084df87c", "scanner": "scanner-primary", "fingerprint": "c2c82c9824abf031", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/suggestions.js"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-faedb38f28d37a89", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/audit-log.js:59"}, "properties": {"repobilityId": "7dc7340cf1e95b77", "scanner": "scanner-primary", "fingerprint": "faedb38f28d37a89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/audit-log.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-7e3af8a36f4f11ca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/starting-screens.js:162"}, "properties": {"repobilityId": "d977f04da1b20e9b", "scanner": "scanner-primary", "fingerprint": "7e3af8a36f4f11ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/starting-screens.js"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-fbc9580f2423a71a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/reports.js:397"}, "properties": {"repobilityId": "91e752ed98f011ac", "scanner": "scanner-primary", "fingerprint": "fbc9580f2423a71a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/reports.js"}, "region": {"startLine": 397}}}]}, {"ruleId": "scanner-97d5e895ad067352", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/appeals.js:53"}, "properties": {"repobilityId": "ea250c120605a5a2", "scanner": "scanner-primary", "fingerprint": "97d5e895ad067352", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/appeals.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-de8b6f6dc28edf37", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/gifts.js:112"}, "properties": {"repobilityId": "49037f569c02a6ce", "scanner": "scanner-primary", "fingerprint": "de8b6f6dc28edf37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/gifts.js"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-2a436065cbf06280", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/users.js:94"}, "properties": {"repobilityId": "7800565e3a5da53e", "scanner": "scanner-primary", "fingerprint": "2a436065cbf06280", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/users.js"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-8868319de9522176", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/logs.js:862"}, "properties": {"repobilityId": "c207827cc88373c9", "scanner": "scanner-primary", "fingerprint": "8868319de9522176", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/logs.js"}, "region": {"startLine": 862}}}]}, {"ruleId": "scanner-20bf101acaac2677", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/admin/js/tabs/devices.js:115"}, "properties": {"repobilityId": "0b680d73883ffd20", "scanner": "scanner-primary", "fingerprint": "20bf101acaac2677", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/admin/js/tabs/devices.js"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-74fc28cfcc7fa675", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in public/portal/portal.js:449"}, "properties": {"repobilityId": "ea04b3f7a7f7404c", "scanner": "scanner-primary", "fingerprint": "74fc28cfcc7fa675", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal.js"}, "region": {"startLine": 449}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 299}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 403}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 405}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 507}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 509}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 611}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 613}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 715}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 717}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 819}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 821}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 925}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1035}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1037}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1145}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1247}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1249}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1353}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1455}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1457}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1559}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1561}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1663}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1665}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1767}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1769}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1873}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1975}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 1977}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 2079}}}]}, {"ruleId": "scanner-0194e604f96b951f", "level": "error", "message": {"text": "Possible secret in public/portal/portal-translations.js"}, "properties": {"repobilityId": "ca3ac47e4cf74e91", "scanner": "scanner-primary", "fingerprint": "0194e604f96b951f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/portal/portal-translations.js"}, "region": {"startLine": 2081}}}]}, {"ruleId": "scanner-3d18870e0a4543e6", "level": "error", "message": {"text": "Possible secret in .github/workflows/manual-qa-matrix.yml"}, "properties": {"repobilityId": "6e78b22d34cd546f", "scanner": "scanner-primary", "fingerprint": "3d18870e0a4543e6", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/manual-qa-matrix.yml"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-a05db0dfa99744ac", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ebdde45509f73138", "scanner": "scanner-primary", "fingerprint": "a05db0dfa99744ac", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/playwright-tests.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-370b01afff921c20", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "462e8a94d05f8723", "scanner": "scanner-primary", "fingerprint": "370b01afff921c20", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/allure-report.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17303272d61e0956", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "7b9aae326d1e3027", "scanner": "scanner-primary", "fingerprint": "17303272d61e0956", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/pr-checks.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-768e8f28c1850d98", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "f3c306ca3743dfa1", "scanner": "scanner-primary", "fingerprint": "768e8f28c1850d98", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/dependabot-auto-merge.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-82d48e0424c53dc6", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "909931f781a7cd55", "scanner": "scanner-primary", "fingerprint": "82d48e0424c53dc6", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-tests.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6eb947f7a3cacc6b", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e173742589608108", "scanner": "scanner-primary", "fingerprint": "6eb947f7a3cacc6b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test-backend.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83b71ff23a7ff611", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "5ae0d3331c7515c7", "scanner": "scanner-primary", "fingerprint": "83b71ff23a7ff611", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release-tag.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cfca0d81824acfa1", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "160c19d4dd929dc9", "scanner": "scanner-primary", "fingerprint": "cfca0d81824acfa1", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/sync-roadmap-data.yml"}, "region": {"startLine": 1}}}]}, {"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-84012fa5b95d5abb", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "dd2bee753ea8fb9c", "scanner": "scanner-primary", "fingerprint": "84012fa5b95d5abb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-dev.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5aec6d0d40efad6b", "level": "note", "message": {"text": "Very large file: tests/integration/10-firestore-cohort-rules.spec.ts (2149 lines)"}, "properties": {"repobilityId": "213f5d96c2b43d68", "scanner": "scanner-primary", "fingerprint": "5aec6d0d40efad6b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-48c32116e5763822", "level": "note", "message": {"text": "Very large file: tests/web/roadmap-auth.spec.ts (1353 lines)"}, "properties": {"repobilityId": "af1d5a1686765337", "scanner": "scanner-primary", "fingerprint": "48c32116e5763822", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c7778c1e328fa3d8", "level": "note", "message": {"text": "Very large file: tests/web/admin-suggestions.spec.ts (1784 lines)"}, "properties": {"repobilityId": "225577b59dcf8ca2", "scanner": "scanner-primary", "fingerprint": "c7778c1e328fa3d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e23be84264b0a94", "level": "note", "message": {"text": "Very large file: tests/web/suggestions-board.spec.ts (2332 lines)"}, "properties": {"repobilityId": "4ee171a173d47040", "scanner": "scanner-primary", "fingerprint": "2e23be84264b0a94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4786a1cec81e2494", "level": "note", "message": {"text": "Very large file: tests/web/dev-smoke.spec.ts (1300 lines)"}, "properties": {"repobilityId": "bd09933becf23fb7", "scanner": "scanner-primary", "fingerprint": "4786a1cec81e2494", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7f83f346b28d96e", "level": "note", "message": {"text": "Very large file: scripts/sync-stories-to-issues.sh (1676 lines)"}, "properties": {"repobilityId": "9e7830c73399a7ba", "scanner": "scanner-primary", "fingerprint": "e7f83f346b28d96e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a3916154019dfb53", "level": "note", "message": {"text": "Very large file: express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js (2307 lines)"}, "properties": {"repobilityId": "1ed950c610f24702", "scanner": "scanner-primary", "fingerprint": "a3916154019dfb53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e9700c920311c2b4", "level": "note", "message": {"text": "Very large file: express-api/tests/scripts/migrate-segregation-relationships.test.js (2409 lines)"}, "properties": {"repobilityId": "eae176a9bd897975", "scanner": "scanner-primary", "fingerprint": "e9700c920311c2b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0850a64ecf39ceec", "level": "note", "message": {"text": "Very large file: express-api/tests/scripts/manual-qa-runner.test.js (26582 lines)"}, "properties": {"repobilityId": "aa9f2feff05e1861", "scanner": "scanner-primary", "fingerprint": "0850a64ecf39ceec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-23ae0d32abbf2b6a", "level": "note", "message": {"text": "Very large file: express-api/tests/scripts/drivers/android-adb-driver.test.js (17315 lines)"}, "properties": {"repobilityId": "93b35f7ae150f4e3", "scanner": "scanner-primary", "fingerprint": "23ae0d32abbf2b6a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9221a9ac3c3e1fa9", "level": "note", "message": {"text": "Very large file: express-api/tests/scripts/drivers/ios-devicectl-driver.test.js (4981 lines)"}, "properties": {"repobilityId": "e9788b21d63a6018", "scanner": "scanner-primary", "fingerprint": "9221a9ac3c3e1fa9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4ee525af2fd8b999", "level": "note", "message": {"text": "Very large file: express-api/tests/utils/data-export-builder.test.js (1522 lines)"}, "properties": {"repobilityId": "21fae3a4fecd9ae6", "scanner": "scanner-primary", "fingerprint": "4ee525af2fd8b999", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27d78f404c9b7bf3", "level": "note", "message": {"text": "Very large file: express-api/tests/routes/suggestions-contracts-b.test.js (1444 lines)"}, "properties": {"repobilityId": "3a882bb2a28bf669", "scanner": "scanner-primary", "fingerprint": "27d78f404c9b7bf3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d970ccd1e1d7dba7", "level": "note", "message": {"text": "Very large file: express-api/tests/routes/reports-coverage-reports-core-a.test.js (2000 lines)"}, "properties": {"repobilityId": "22be713f269467a6", "scanner": "scanner-primary", "fingerprint": "d970ccd1e1d7dba7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2b720e2e948cacc9", "level": "note", "message": {"text": "Very large file: express-api/tests/routes/admin-users-write.test.js (1488 lines)"}, "properties": {"repobilityId": "774889f288bd0591", "scanner": "scanner-primary", "fingerprint": "2b720e2e948cacc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae66e7ea49929536", "level": "note", "message": {"text": "Very large file: express-api/tests/routes/room-mutations.test.js (1821 lines)"}, "properties": {"repobilityId": "368458cd774563d6", "scanner": "scanner-primary", "fingerprint": "ae66e7ea49929536", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1b3735a190f34bf7", "level": "note", "message": {"text": "Very large file: express-api/scripts/manual-qa-runner.js (16467 lines)"}, "properties": {"repobilityId": "9f9e0f4c0951d700", "scanner": "scanner-primary", "fingerprint": "1b3735a190f34bf7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a42a8e372a32ad1a", "level": "note", "message": {"text": "Very large file: express-api/scripts/device-journey-runner.js (1513 lines)"}, "properties": {"repobilityId": "b4aed9bee7868d81", "scanner": "scanner-primary", "fingerprint": "a42a8e372a32ad1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7a755977ad45ce46", "level": "note", "message": {"text": "Very large file: express-api/scripts/drivers/android-adb-driver.js (2848 lines)"}, "properties": {"repobilityId": "a4366d3fc65768ed", "scanner": "scanner-primary", "fingerprint": "7a755977ad45ce46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e4b94f2badccd593", "level": "note", "message": {"text": "Very large file: express-api/src/routes/suggestions.js (1954 lines)"}, "properties": {"repobilityId": "5223c72845c34db2", "scanner": "scanner-primary", "fingerprint": "e4b94f2badccd593", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-93a1d746d8b5e52b", "level": "note", "message": {"text": "Very large file: express-api/src/routes/reports.js (1561 lines)"}, "properties": {"repobilityId": "13d615f19daa2e9d", "scanner": "scanner-primary", "fingerprint": "93a1d746d8b5e52b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-51f9c09ac1aa6a17", "level": "note", "message": {"text": "Very large file: express-api/src/routes/admin-users.js (1801 lines)"}, "properties": {"repobilityId": "06a0732a49722223", "scanner": "scanner-primary", "fingerprint": "51f9c09ac1aa6a17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae6c85e6f6c2364e", "level": "note", "message": {"text": "Very large file: express-api/src/routes/users.js (1498 lines)"}, "properties": {"repobilityId": "3ec6d0ea3e69c1da", "scanner": "scanner-primary", "fingerprint": "ae6c85e6f6c2364e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-902f559670c8c20b", "level": "note", "message": {"text": "Very large file: express-api/src/routes/economy.js (2026 lines)"}, "properties": {"repobilityId": "25b91c2fd4e868eb", "scanner": "scanner-primary", "fingerprint": "902f559670c8c20b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4a5153f05892d971", "level": "note", "message": {"text": "Very large file: public/js/suggestions-board.js (1547 lines)"}, "properties": {"repobilityId": "268e2020caf7b65b", "scanner": "scanner-primary", "fingerprint": "4a5153f05892d971", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d96412515dca2df3", "level": "note", "message": {"text": "Very large file: public/js/roadmap-app.js (1334 lines)"}, "properties": {"repobilityId": "b08c545a10eba100", "scanner": "scanner-primary", "fingerprint": "d96412515dca2df3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3f0909cfbea66574", "level": "note", "message": {"text": "Very large file: public/admin/translations.js (3452 lines)"}, "properties": {"repobilityId": "fbf4a01cb2d2d7a5", "scanner": "scanner-primary", "fingerprint": "3f0909cfbea66574", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cf5df803a01a3490", "level": "note", "message": {"text": "Very large file: public/admin/js/tabs/users.js (1965 lines)"}, "properties": {"repobilityId": "632fa04a5d0da391", "scanner": "scanner-primary", "fingerprint": "cf5df803a01a3490", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-158f04345414c474", "level": "note", "message": {"text": "Very large file: public/portal/portal-translations.js (2283 lines)"}, "properties": {"repobilityId": "c36a4c3369e4c05d", "scanner": "scanner-primary", "fingerprint": "158f04345414c474", "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": "19ff4f411445a2d1", "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": "06ea3413c4c562ac", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "b89b81871f65e7d1", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "4b68286d87257e0f", "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": "2e6ab81eb81b88cb", "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": "0b182c599869b087", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d8e5fc0dc32cf0d", "level": "none", "message": {"text": "Commented-code block (10 lines) in functions/_middleware.js:26"}, "properties": {"repobilityId": "6f04a7ea168a670b", "scanner": "scanner-primary", "fingerprint": "5d8e5fc0dc32cf0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03aa708ae4408ec9", "level": "none", "message": {"text": "Commented-code block (5 lines) in functions/_lib/lockdown.js:114"}, "properties": {"repobilityId": "2d6876b21154f9d9", "scanner": "scanner-primary", "fingerprint": "03aa708ae4408ec9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35e533926a04ac05", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/08-fcm-message-shape.spec.ts:148"}, "properties": {"repobilityId": "40dbaa10d16da8e6", "scanner": "scanner-primary", "fingerprint": "35e533926a04ac05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16ef261f8ca0af29", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/02-livekit-token-issuance.spec.ts:60"}, "properties": {"repobilityId": "2a7a0f90822971d6", "scanner": "scanner-primary", "fingerprint": "16ef261f8ca0af29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1528d4a1bb896150", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/07-firestore-rules-enforcement.spec.ts:55"}, "properties": {"repobilityId": "7d06c2db64d3b4dd", "scanner": "scanner-primary", "fingerprint": "1528d4a1bb896150", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f313470aee35549", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/integration/06-pm-realtime-delivery.spec.ts:120"}, "properties": {"repobilityId": "cd4adc08a44a5a24", "scanner": "scanner-primary", "fingerprint": "9f313470aee35549", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-974f50adbbd24772", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/10-firestore-cohort-rules.spec.ts:159"}, "properties": {"repobilityId": "7ac28d761664fcd7", "scanner": "scanner-primary", "fingerprint": "974f50adbbd24772", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eae27614e062adc9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/04-gift-direct-cascade.spec.ts:34"}, "properties": {"repobilityId": "885b6b9754767ef9", "scanner": "scanner-primary", "fingerprint": "eae27614e062adc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb5a682f013e9fba", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/01-express-firestore-roundtrip.spec.ts:46"}, "properties": {"repobilityId": "b626eea3835e863e", "scanner": "scanner-primary", "fingerprint": "bb5a682f013e9fba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03c6a3232eb79f58", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/integration/05-iap-replay-protection.spec.ts:99"}, "properties": {"repobilityId": "6c368c0759acfddc", "scanner": "scanner-primary", "fingerprint": "03c6a3232eb79f58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3666055dff485dc9", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/integration/03-photo-upload-r2-roundtrip.spec.ts:30"}, "properties": {"repobilityId": "e0e07a1fd451314c", "scanner": "scanner-primary", "fingerprint": "3666055dff485dc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b2ebb1a66fc8e9f", "level": "none", "message": {"text": "Commented-code block (13 lines) in tests/web/admin-keyboard.spec.ts:40"}, "properties": {"repobilityId": "5f88a2f3e82d3b93", "scanner": "scanner-primary", "fingerprint": "2b2ebb1a66fc8e9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-444b6abb65c20b91", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/web/admin-funfacts.spec.ts:396"}, "properties": {"repobilityId": "a0c39ce2324230eb", "scanner": "scanner-primary", "fingerprint": "444b6abb65c20b91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d16a2dc85e857e8b", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/web/admin-appeals.spec.ts:81"}, "properties": {"repobilityId": "d3270c6807196116", "scanner": "scanner-primary", "fingerprint": "d16a2dc85e857e8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6653ba510bed7b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/admin-core-modules.spec.ts:133"}, "properties": {"repobilityId": "28ebbaa55849d567", "scanner": "scanner-primary", "fingerprint": "f6653ba510bed7b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48b4d6cf485d8256", "level": "note", "message": {"text": "Legacy-named symbol `footer_copy` in tests/web/legal-footer-i18n.spec.ts:91"}, "properties": {"repobilityId": "bb4913fbe381acf6", "scanner": "scanner-primary", "fingerprint": "48b4d6cf485d8256", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a08c7c6d863ee7ea", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/web/console-errors-all-pages.spec.ts:34"}, "properties": {"repobilityId": "19a230d5d3380b18", "scanner": "scanner-primary", "fingerprint": "a08c7c6d863ee7ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d954f633d59ccf8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/roadmap-auth.spec.ts:1209"}, "properties": {"repobilityId": "bc84d142af2f9459", "scanner": "scanner-primary", "fingerprint": "8d954f633d59ccf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-601fc33565003090", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/admin-suggestions.spec.ts:95"}, "properties": {"repobilityId": "a0accc37c47e5b0d", "scanner": "scanner-primary", "fingerprint": "601fc33565003090", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac865659b2e4ab7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/web/roadmap-shy-items.spec.ts:81"}, "properties": {"repobilityId": "61706c1e0b0e77bf", "scanner": "scanner-primary", "fingerprint": "ac865659b2e4ab7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b7dc59596921345", "level": "note", "message": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-totp-status-i18n.spec.ts:20"}, "properties": {"repobilityId": "de3a9f2703cb36bc", "scanner": "scanner-primary", "fingerprint": "2b7dc59596921345", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-30228e4d34be7038", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/web/admin-users-moderation.spec.ts:22"}, "properties": {"repobilityId": "e5f11a2217265fc2", "scanner": "scanner-primary", "fingerprint": "30228e4d34be7038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e1accb5dd703898", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/web/admin-reports.spec.ts:84"}, "properties": {"repobilityId": "03a0e2bd5dab75b1", "scanner": "scanner-primary", "fingerprint": "9e1accb5dd703898", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7200379174d9af15", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/portal-auth.spec.ts:499"}, "properties": {"repobilityId": "742a88cb3750625c", "scanner": "scanner-primary", "fingerprint": "7200379174d9af15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-679f660c6320b676", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/web/admin-users-extra.spec.ts:36"}, "properties": {"repobilityId": "3f8395f432c1def2", "scanner": "scanner-primary", "fingerprint": "679f660c6320b676", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79b0476bdf254678", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/web/suggestions-board.spec.ts:1254"}, "properties": {"repobilityId": "a98d77bbaa96647e", "scanner": "scanner-primary", "fingerprint": "79b0476bdf254678", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-281fa81a3194f9bc", "level": "note", "message": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-aria-label-i18n.spec.ts:16"}, "properties": {"repobilityId": "b5f742f25b4f5ce7", "scanner": "scanner-primary", "fingerprint": "281fa81a3194f9bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e3b2eced9c72c21", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/web/dev-smoke.spec.ts:40"}, "properties": {"repobilityId": "017baaa212045d76", "scanner": "scanner-primary", "fingerprint": "1e3b2eced9c72c21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe66a560b39a03ad", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/web/admin-maintenance.spec.ts:75"}, "properties": {"repobilityId": "4510ea06e094c09d", "scanner": "scanner-primary", "fingerprint": "fe66a560b39a03ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-264f051ce52ff2e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/web/preview-watermark.spec.ts:111"}, "properties": {"repobilityId": "f65afc07476c7417", "scanner": "scanner-primary", "fingerprint": "264f051ce52ff2e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa10e54c85b608d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/suggestions-board-aria-i18n.spec.ts:74"}, "properties": {"repobilityId": "ff1a855695bcec27", "scanner": "scanner-primary", "fingerprint": "fa10e54c85b608d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-faba71dac70ecfd7", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/web/admin-users-security.spec.ts:36"}, "properties": {"repobilityId": "d1f62e5af5002989", "scanner": "scanner-primary", "fingerprint": "faba71dac70ecfd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e596f1a37ab9f952", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/web/admin-validation.spec.ts:254"}, "properties": {"repobilityId": "29dc628a995efcdb", "scanner": "scanner-primary", "fingerprint": "e596f1a37ab9f952", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f869d52c5689914", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/shared-header.spec.ts:74"}, "properties": {"repobilityId": "b67c691357c202ac", "scanner": "scanner-primary", "fingerprint": "9f869d52c5689914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b646bd9d1c9a94b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/security-headers.spec.ts:79"}, "properties": {"repobilityId": "5b4d4bf3b896ee18", "scanner": "scanner-primary", "fingerprint": "b646bd9d1c9a94b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4051075d4488f98f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/suggestions-subscribe-dialog-i18n.spec.ts:87"}, "properties": {"repobilityId": "b552b7c50bafc44d", "scanner": "scanner-primary", "fingerprint": "4051075d4488f98f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be41f78fc32bedab", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/web/landing-page.spec.ts:94"}, "properties": {"repobilityId": "5a78a9870a21645f", "scanner": "scanner-primary", "fingerprint": "be41f78fc32bedab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-432a34130b846fd0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/admin-tadmin-helper-i18n.spec.ts:107"}, "properties": {"repobilityId": "a0c0c492360617ed", "scanner": "scanner-primary", "fingerprint": "432a34130b846fd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d32e293969841ff0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/admin-age-verif-i18n.spec.ts:90"}, "properties": {"repobilityId": "05e1dd003344f9b5", "scanner": "scanner-primary", "fingerprint": "d32e293969841ff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de2d4c31be48971f", "level": "note", "message": {"text": "Legacy-named symbol `footer_copy` in tests/web/homepage-footer-links-i18n.spec.ts:48"}, "properties": {"repobilityId": "31416a9ccf8a5a97", "scanner": "scanner-primary", "fingerprint": "de2d4c31be48971f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-053f65d0a4cd3a0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/dev-sanity.spec.ts:65"}, "properties": {"repobilityId": "7c11a485e856c04a", "scanner": "scanner-primary", "fingerprint": "053f65d0a4cd3a0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fd35520a01af3c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/legal-pages.spec.ts:26"}, "properties": {"repobilityId": "ebe0ae5ee7af885b", "scanner": "scanner-primary", "fingerprint": "2fd35520a01af3c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-196268479bfe6183", "level": "note", "message": {"text": "Legacy-named symbol `enroll_copy` in tests/web/portal-a11y.spec.ts:228"}, "properties": {"repobilityId": "8364a08181c13de6", "scanner": "scanner-primary", "fingerprint": "196268479bfe6183", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-15d039d58b474c42", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/web/admin-init-idempotency.spec.ts:48"}, "properties": {"repobilityId": "6080947d5f3f4e6d", "scanner": "scanner-primary", "fingerprint": "15d039d58b474c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cd53b33f6f93897", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/kny-scroll-top-aria-i18n.spec.ts:64"}, "properties": {"repobilityId": "9470f478112aa255", "scanner": "scanner-primary", "fingerprint": "1cd53b33f6f93897", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c803c6f5326cc63", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/web/admin-cross-tab.spec.ts:88"}, "properties": {"repobilityId": "71fc421f02015095", "scanner": "scanner-primary", "fingerprint": "1c803c6f5326cc63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-905059b3814ae3e7", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/web/global-setup.ts:19"}, "properties": {"repobilityId": "52d637e23c068c91", "scanner": "scanner-primary", "fingerprint": "905059b3814ae3e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42aeea840151d9a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/web/admin-age-segregation.spec.ts:48"}, "properties": {"repobilityId": "efab0acfe3447d1d", "scanner": "scanner-primary", "fingerprint": "42aeea840151d9a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e46b12cbff1342f", "level": "none", "message": {"text": "Commented-code block (17 lines) in tests/web/fixtures/admin.ts:51"}, "properties": {"repobilityId": "bb7bcddecedf5685", "scanner": "scanner-primary", "fingerprint": "3e46b12cbff1342f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58f668373596c9ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/translate-strings.js:196"}, "properties": {"repobilityId": "506d923ed09fc440", "scanner": "scanner-primary", "fingerprint": "58f668373596c9ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41e6b0729d03deff", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/translate-admin-strings.js:64"}, "properties": {"repobilityId": "615ea7079d7507ce", "scanner": "scanner-primary", "fingerprint": "41e6b0729d03deff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39403183aae37fb2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/add-dns-records.mjs:23"}, "properties": {"repobilityId": "41d115b355aff115", "scanner": "scanner-primary", "fingerprint": "39403183aae37fb2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b8a554f807a6c14", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sync-shy-to-roadmap-data.mjs:281"}, "properties": {"repobilityId": "6394bdfd82cab31b", "scanner": "scanner-primary", "fingerprint": "4b8a554f807a6c14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-904027c728109134", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/generate-roadmap-json.js:48"}, "properties": {"repobilityId": "83d1506b194d2a30", "scanner": "scanner-primary", "fingerprint": "904027c728109134", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-712fdf4b74b55163", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/ensure-testflight-auto-distribution.js:71"}, "properties": {"repobilityId": "d2d6eb97923e4c40", "scanner": "scanner-primary", "fingerprint": "712fdf4b74b55163", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cda4258642913b96", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/lib/google-translate.js:28"}, "properties": {"repobilityId": "96f2e0bdeb0c0226", "scanner": "scanner-primary", "fingerprint": "cda4258642913b96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb6f83b7b3d02c22", "level": "none", "message": {"text": "Commented-code block (5 lines) in local/seed.js:146"}, "properties": {"repobilityId": "b4eff9be19bf21a1", "scanner": "scanner-primary", "fingerprint": "eb6f83b7b3d02c22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e605acb1f7a1330", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/jest.config.js:6"}, "properties": {"repobilityId": "21f492e80b23d4fa", "scanner": "scanner-primary", "fingerprint": "4e605acb1f7a1330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2a99435d5e5c2e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/eslint.config.mjs:40"}, "properties": {"repobilityId": "68515288211167f6", "scanner": "scanner-primary", "fingerprint": "f2a99435d5e5c2e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba1aed0244fe0098", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/rtdb-rules/owner-left-rules.test.js:57"}, "properties": {"repobilityId": "8fe745ae7b9cfd32", "scanner": "scanner-primary", "fingerprint": "ba1aed0244fe0098", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-425af4c14d32fc09", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/middleware/rateLimit.test.js:10"}, "properties": {"repobilityId": "94fea4d8b57b43b0", "scanner": "scanner-primary", "fingerprint": "425af4c14d32fc09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-332497fad59533e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/middleware/sameCohort.test.js:473"}, "properties": {"repobilityId": "11694d3ffd91c277", "scanner": "scanner-primary", "fingerprint": "332497fad59533e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3580109827ef9ff7", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-roadmap-data-workflow.test.js:93"}, "properties": {"repobilityId": "a5ef8851c8f5c72e", "scanner": "scanner-primary", "fingerprint": "3580109827ef9ff7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b52861f16f7020b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/runner-driver-name-pin.test.js:100"}, "properties": {"repobilityId": "3da2e8e92c779a5b", "scanner": "scanner-primary", "fingerprint": "b52861f16f7020b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4c03022c01fb720", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-26-xcode-bump.test.js:70"}, "properties": {"repobilityId": "79cafc20a376c5e3", "scanner": "scanner-primary", "fingerprint": "a4c03022c01fb720", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a648ffd85e46b3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/check-story-frontmatter.test.js:718"}, "properties": {"repobilityId": "253a1350d3e97a73", "scanner": "scanner-primary", "fingerprint": "3a648ffd85e46b3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65b7d9b3adb940de", "level": "note", "message": {"text": "Legacy-named symbol `claude_old` in express-api/tests/scripts/translate-strings.test.js:72"}, "properties": {"repobilityId": "6c04b6f9d3a4cb2c", "scanner": "scanner-primary", "fingerprint": "65b7d9b3adb940de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6630f9ad7269754e", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/admin-click-handler-reentrancy.test.js:217"}, "properties": {"repobilityId": "3048c3cee429d1c4", "scanner": "scanner-primary", "fingerprint": "6630f9ad7269754e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f358a8a611044683", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/check-kmp-compat.test.js:181"}, "properties": {"repobilityId": "16bd001f881dd171", "scanner": "scanner-primary", "fingerprint": "f358a8a611044683", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9606c748f687370", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-warnings-pass2-script-phases.test.js:64"}, "properties": {"repobilityId": "3bd4659eb22a5582", "scanner": "scanner-primary", "fingerprint": "b9606c748f687370", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85438380b282f483", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/qa-runner-driver-checks-pin.test.js:55"}, "properties": {"repobilityId": "5c2ac72ffaa6fb14", "scanner": "scanner-primary", "fingerprint": "85438380b282f483", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88edd0f23de7f7b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/sonar-source-encoding-pin.test.js:83"}, "properties": {"repobilityId": "a0d9312b5f2b526e", "scanner": "scanner-primary", "fingerprint": "88edd0f23de7f7b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-802c78c0ba549def", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-local-xcconfig.test.js:123"}, "properties": {"repobilityId": "eb28eeaee432cb7c", "scanner": "scanner-primary", "fingerprint": "802c78c0ba549def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69829af32af594c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-retry-flag.test.js:107"}, "properties": {"repobilityId": "56977f611b2ebf72", "scanner": "scanner-primary", "fingerprint": "69829af32af594c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb599c1771aaefd5", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/manual-qa-runner-screenshot-on-fail.test.js:266"}, "properties": {"repobilityId": "5724045549349434", "scanner": "scanner-primary", "fingerprint": "bb599c1771aaefd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0470c4963cf07f26", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/sync-stories-to-issues.test.js:29"}, "properties": {"repobilityId": "b8e3e82597b92fee", "scanner": "scanner-primary", "fingerprint": "0470c4963cf07f26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d119637b61b9d826", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/release-workflow-pin.test.js:96"}, "properties": {"repobilityId": "409d81b755c97393", "scanner": "scanner-primary", "fingerprint": "d119637b61b9d826", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-997bcb46047a42cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-livekit-spm-pin.test.js:128"}, "properties": {"repobilityId": "29c635f55c08feab", "scanner": "scanner-primary", "fingerprint": "997bcb46047a42cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a8966309dcfa297", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-board-fields.test.js:524"}, "properties": {"repobilityId": "f21b7ff7b0f6db13", "scanner": "scanner-primary", "fingerprint": "3a8966309dcfa297", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fee25076e4eacbef", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-app-changed-split.test.js:155"}, "properties": {"repobilityId": "80f7cc4ac177193c", "scanner": "scanner-primary", "fingerprint": "fee25076e4eacbef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1141359f80d524b", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/reusable-workflow-concurrency.test.js:68"}, "properties": {"repobilityId": "b93c7b0bbe6d6d6d", "scanner": "scanner-primary", "fingerprint": "c1141359f80d524b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfae9c734862b3ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-matrix-workflow-pin.test.js:51"}, "properties": {"repobilityId": "0fa870a69d71bfe0", "scanner": "scanner-primary", "fingerprint": "dfae9c734862b3ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ea5ddc6062a543c", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/driver-health-check.test.js:279"}, "properties": {"repobilityId": "cc92726dbc51af6d", "scanner": "scanner-primary", "fingerprint": "4ea5ddc6062a543c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e00b53a466167e24", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/large-file-guard-pin.test.js:82"}, "properties": {"repobilityId": "f19887db3a55bc65", "scanner": "scanner-primary", "fingerprint": "e00b53a466167e24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e03b002df200da6f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/web-i18n-coverage.test.js:199"}, "properties": {"repobilityId": "087db16bb6bef883", "scanner": "scanner-primary", "fingerprint": "e03b002df200da6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-543ebeeb0ef8685c", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/android-smoke-verify.test.js:118"}, "properties": {"repobilityId": "3d7226d627fd2583", "scanner": "scanner-primary", "fingerprint": "543ebeeb0ef8685c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-473c8da44763c2f3", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/pr-checks-ios-gating.test.js:32"}, "properties": {"repobilityId": "af59e5564f74f659", "scanner": "scanner-primary", "fingerprint": "473c8da44763c2f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6faeebcd3fedd008", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/manual-qa-runner-filter-flag.test.js:197"}, "properties": {"repobilityId": "d06f011a03400d95", "scanner": "scanner-primary", "fingerprint": "6faeebcd3fedd008", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebf42c1047050228", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/manual-qa-runner-check-env.test.js:21"}, "properties": {"repobilityId": "d3a4da3f54da86a4", "scanner": "scanner-primary", "fingerprint": "ebf42c1047050228", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dbbbc28378d4653", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-tests-build-cache.test.js:173"}, "properties": {"repobilityId": "8dc6ae6c17da3834", "scanner": "scanner-primary", "fingerprint": "4dbbbc28378d4653", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5431dbab2fcc569a", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/android-e2e-emulator-boot-headroom.test.js:52"}, "properties": {"repobilityId": "2db9405fa804242c", "scanner": "scanner-primary", "fingerprint": "5431dbab2fcc569a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da708508d8eac259", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/afk-install-artifacts.test.js:103"}, "properties": {"repobilityId": "a311a498b801e84d", "scanner": "scanner-primary", "fingerprint": "da708508d8eac259", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66cb1205540da118", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-prod-single-gate-and-smoke.test.js:90"}, "properties": {"repobilityId": "b6b76a6f0f19f586", "scanner": "scanner-primary", "fingerprint": "66cb1205540da118", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcf4191723cd1857", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/tests/scripts/ios-pods-integration-pin.test.js:58"}, "properties": {"repobilityId": "b68cc89a8139c945", "scanner": "scanner-primary", "fingerprint": "bcf4191723cd1857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd223ff893577ca2", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/dev-lockdown-middleware.test.js:80"}, "properties": {"repobilityId": "de9aaea82b9b809d", "scanner": "scanner-primary", "fingerprint": "dd223ff893577ca2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07653207984e484a", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-ios-cache-share.test.js:83"}, "properties": {"repobilityId": "d5f477f75b67a1bf", "scanner": "scanner-primary", "fingerprint": "07653207984e484a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b57139929ecd253", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/provision-test-personas.test.js:65"}, "properties": {"repobilityId": "2de542f0dee931ef", "scanner": "scanner-primary", "fingerprint": "9b57139929ecd253", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9429caaaf0cd76e2", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/tests/scripts/manual-qa-runner-shard-flag.test.js:91"}, "properties": {"repobilityId": "f308dbdcc4a76d1b", "scanner": "scanner-primary", "fingerprint": "9429caaaf0cd76e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40c6eb95fb940622", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-warnings-cleanup-pass1.test.js:61"}, "properties": {"repobilityId": "69d22e0a72532c63", "scanner": "scanner-primary", "fingerprint": "40c6eb95fb940622", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-991e26b429a2536f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-local-configurations.test.js:173"}, "properties": {"repobilityId": "f1d3d45aaeac9bf2", "scanner": "scanner-primary", "fingerprint": "991e26b429a2536f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbbd1017851370ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/migrate-segregation-relationships.test.js:139"}, "properties": {"repobilityId": "e2716b560fe5ce7b", "scanner": "scanner-primary", "fingerprint": "fbbd1017851370ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae55cc327a33421d", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/ios-entitlements.test.js:51"}, "properties": {"repobilityId": "98f350915c3e706f", "scanner": "scanner-primary", "fingerprint": "ae55cc327a33421d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-720c2ee92c9d90bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/release-workflow-jq-pattern.test.js:47"}, "properties": {"repobilityId": "10c3a76e13afe33b", "scanner": "scanner-primary", "fingerprint": "720c2ee92c9d90bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87bf5fb3fc0ebc5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/local-stack-resource-diet.test.js:154"}, "properties": {"repobilityId": "8de9aba1030e292e", "scanner": "scanner-primary", "fingerprint": "87bf5fb3fc0ebc5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7117b5031d941e26", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-konan-cache-no-hang.test.js:52"}, "properties": {"repobilityId": "e7b2ec3d1e241482", "scanner": "scanner-primary", "fingerprint": "7117b5031d941e26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62acf2d3b5ab2970", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-concurrency.test.js:32"}, "properties": {"repobilityId": "5374125a78e65684", "scanner": "scanner-primary", "fingerprint": "62acf2d3b5ab2970", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd722f1387b89d99", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/ios-deploy-archive-signing.test.js:71"}, "properties": {"repobilityId": "fa1200c79c89a400", "scanner": "scanner-primary", "fingerprint": "cd722f1387b89d99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9932b0da60a4735", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/matrix-dispatch.test.js:563"}, "properties": {"repobilityId": "4ed3e39814cd1409", "scanner": "scanner-primary", "fingerprint": "a9932b0da60a4735", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37dfc0cbf6099dd6", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/deploy-dev-seed-personas.test.js:58"}, "properties": {"repobilityId": "97d41b5afd87a0b6", "scanner": "scanner-primary", "fingerprint": "37dfc0cbf6099dd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1816a86ab107d731", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/sync-stories-to-issues-comprehensive.test.js:283"}, "properties": {"repobilityId": "32e18e0a9c613555", "scanner": "scanner-primary", "fingerprint": "1816a86ab107d731", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cefa8b88ccdfca40", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/pr-checks-roadmap-data-exclusion.test.js:147"}, "properties": {"repobilityId": "2c948d159323aee7", "scanner": "scanner-primary", "fingerprint": "cefa8b88ccdfca40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e23210ab97270e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/qa-cleanup-orphans-pin.test.js:134"}, "properties": {"repobilityId": "269b9f553e96b8ea", "scanner": "scanner-primary", "fingerprint": "9e23210ab97270e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-286c935353afe0e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/sync-shy-to-roadmap-data.test.js:540"}, "properties": {"repobilityId": "5431aebbfd063a82", "scanner": "scanner-primary", "fingerprint": "286c935353afe0e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ed83a552aa6c772", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/ios-xcodebuild-log-artifact.test.js:107"}, "properties": {"repobilityId": "458c7c88fe18cfe0", "scanner": "scanner-primary", "fingerprint": "6ed83a552aa6c772", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4ec7ceb3958b8bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/manual-qa-runner.test.js:330"}, "properties": {"repobilityId": "e4fdc6257e887ace", "scanner": "scanner-primary", "fingerprint": "f4ec7ceb3958b8bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ee6722ef6a77190", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/translate-admin-strings.test.js:210"}, "properties": {"repobilityId": "12b7e5c3b89285f9", "scanner": "scanner-primary", "fingerprint": "8ee6722ef6a77190", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fff0bfffbe1044ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/android-cdp-helpers.test.js:112"}, "properties": {"repobilityId": "bbcc5611dd563c08", "scanner": "scanner-primary", "fingerprint": "fff0bfffbe1044ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6a9672c3057e8eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/driver-screenshot-delegation.test.js:32"}, "properties": {"repobilityId": "250003096da44f8f", "scanner": "scanner-primary", "fingerprint": "d6a9672c3057e8eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-817b4ede6c98878e", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/web-playwright-driver.test.js:23"}, "properties": {"repobilityId": "c184334c8c047517", "scanner": "scanner-primary", "fingerprint": "817b4ede6c98878e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1476fed833af092e", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/driver-interface-pin.test.js:60"}, "properties": {"repobilityId": "43b0b157877b6f6c", "scanner": "scanner-primary", "fingerprint": "1476fed833af092e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2467d338859549e2", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/scripts/drivers/android-adb-driver.test.js:194"}, "properties": {"repobilityId": "f1cfd62037167fa3", "scanner": "scanner-primary", "fingerprint": "2467d338859549e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bb44b63b27e58aa", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/scripts/drivers/ios-devicectl-driver.test.js:163"}, "properties": {"repobilityId": "fb7389b1daba03c3", "scanner": "scanner-primary", "fingerprint": "4bb44b63b27e58aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-331d1c7acaa7d3f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/scripts/drivers/web-mobile-chrome-android-driver.test.js:598"}, "properties": {"repobilityId": "67c4cf8312b0a4c5", "scanner": "scanner-primary", "fingerprint": "331d1c7acaa7d3f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf78593f3eabca51", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/scripts/drivers/web-mobile-firefox-android-driver.test.js:615"}, "properties": {"repobilityId": "cf1f59b5b7cd50ef", "scanner": "scanner-primary", "fingerprint": "bf78593f3eabca51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93b96ce7818d499a", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-handler.test.js:8"}, "properties": {"repobilityId": "99267b8cf7e474b5", "scanner": "scanner-primary", "fingerprint": "93b96ce7818d499a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c85d3d6df1fa1aec", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/utils/process-shutdown.test.js:71"}, "properties": {"repobilityId": "d8fae90ceb90dc89", "scanner": "scanner-primary", "fingerprint": "c85d3d6df1fa1aec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f15d64a41710916a", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/utils/firestore-helpers.test.js:68"}, "properties": {"repobilityId": "ad1164f05956d1da", "scanner": "scanner-primary", "fingerprint": "f15d64a41710916a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f140fc90d773dae", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/utils/data-export-builder.test.js:17"}, "properties": {"repobilityId": "d617b5489da54e82", "scanner": "scanner-primary", "fingerprint": "6f140fc90d773dae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-684ed4a01728e993", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/utils/age-verification-audit.test.js:81"}, "properties": {"repobilityId": "c9998358e00f3c01", "scanner": "scanner-primary", "fingerprint": "684ed4a01728e993", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28749af3a12373cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/utils/seed-user-invariants.test.js:64"}, "properties": {"repobilityId": "46aab8384890b2db", "scanner": "scanner-primary", "fingerprint": "28749af3a12373cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ea115ad8fc7d08", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/utils/appleStore.test.js:1"}, "properties": {"repobilityId": "3cab0f44ac7755fe", "scanner": "scanner-primary", "fingerprint": "74ea115ad8fc7d08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5990104243b6360", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/utils/evict-suspended-user.test.js:510"}, "properties": {"repobilityId": "237b23f11deeed7a", "scanner": "scanner-primary", "fingerprint": "d5990104243b6360", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c409199b32b1e65", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/utils/owner-left-orchestrator.test.js:7"}, "properties": {"repobilityId": "f39b43ee3554cc4b", "scanner": "scanner-primary", "fingerprint": "6c409199b32b1e65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aea78784291bf25f", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/utils/system-pm.test.js:290"}, "properties": {"repobilityId": "ee8f8fe17394af1a", "scanner": "scanner-primary", "fingerprint": "aea78784291bf25f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81669349d78af24f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/utils/data-export-readme-i18n.test.js:37"}, "properties": {"repobilityId": "71d4182b4ea4985b", "scanner": "scanner-primary", "fingerprint": "81669349d78af24f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42eccae4541c08cb", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/tests/utils/owner-left-listener.test.js:4"}, "properties": {"repobilityId": "0f8a30ade137abd3", "scanner": "scanner-primary", "fingerprint": "42eccae4541c08cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd346fdffd3173c1", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/_helpers/jest-git-env-isolation.js:4"}, "properties": {"repobilityId": "b055be525df13583", "scanner": "scanner-primary", "fingerprint": "dd346fdffd3173c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9764c68086cada31", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/admin-client/suggestions-bulk-partial-failure-static.test.js:26"}, "properties": {"repobilityId": "454a66a617fdb38c", "scanner": "scanner-primary", "fingerprint": "9764c68086cada31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02a8bd41af25852a", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/admin-client/users-stale-write-guard-static.test.js:25"}, "properties": {"repobilityId": "4ed53d0b72d6b62b", "scanner": "scanner-primary", "fingerprint": "02a8bd41af25852a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48dc5322a299ac2c", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/tests/routes/suggestions-integration-a-flows.test.js:621"}, "properties": {"repobilityId": "cd37ff8f7240c41b", "scanner": "scanner-primary", "fingerprint": "48dc5322a299ac2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bbf580eefc04f61", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/users.test.js:179"}, "properties": {"repobilityId": "99fd19de3fd0f1b8", "scanner": "scanner-primary", "fingerprint": "8bbf580eefc04f61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9fa058fd5d7bdda", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-queries.test.js:86"}, "properties": {"repobilityId": "159153651dfbb783", "scanner": "scanner-primary", "fingerprint": "c9fa058fd5d7bdda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f9bd1123db70c09", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-core.test.js:318"}, "properties": {"repobilityId": "d6cbaa75a5c0e0e9", "scanner": "scanner-primary", "fingerprint": "8f9bd1123db70c09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccaeb9b820c6f9ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/device-info.test.js:261"}, "properties": {"repobilityId": "3a36b378821c774c", "scanner": "scanner-primary", "fingerprint": "ccaeb9b820c6f9ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ae51e1b0a0cfd1e", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/routes/conversations-coverage.test.js:217"}, "properties": {"repobilityId": "a49670a36495c062", "scanner": "scanner-primary", "fingerprint": "2ae51e1b0a0cfd1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-189a1724d7df420b", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/system.test.js:65"}, "properties": {"repobilityId": "3fb1e1f4881051ee", "scanner": "scanner-primary", "fingerprint": "189a1724d7df420b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5da97b325594b5cc", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/routes/economy-gacha.test.js:118"}, "properties": {"repobilityId": "d8dcd6ece2003f62", "scanner": "scanner-primary", "fingerprint": "5da97b325594b5cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e60d53c0eddaf91d", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-age-verification.test.js:318"}, "properties": {"repobilityId": "e79b074bfb515afe", "scanner": "scanner-primary", "fingerprint": "e60d53c0eddaf91d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9e2fa419757322e", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/auth-otp.test.js:91"}, "properties": {"repobilityId": "ca102f4af7a5f9c5", "scanner": "scanner-primary", "fingerprint": "d9e2fa419757322e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7162456b1d6ea00", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/users-same-cohort.test.js:462"}, "properties": {"repobilityId": "2c819818412f2bd0", "scanner": "scanner-primary", "fingerprint": "a7162456b1d6ea00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15b61cf578371bc4", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/routes/reports-coverage-reports-core-a.test.js:54"}, "properties": {"repobilityId": "72c5e39875cff151", "scanner": "scanner-primary", "fingerprint": "15b61cf578371bc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f608c6b3909fcbd", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-warnings.test.js:411"}, "properties": {"repobilityId": "c08f4787e67b73e3", "scanner": "scanner-primary", "fingerprint": "6f608c6b3909fcbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1895bf0a8e3101e", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/tests/routes/admin-cleanup-user.test.js:500"}, "properties": {"repobilityId": "0564e98a3d3da7b2", "scanner": "scanner-primary", "fingerprint": "c1895bf0a8e3101e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-308381e0e8330b04", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/suggestions-integration-b.test.js:817"}, "properties": {"repobilityId": "26cf818a14fa7feb", "scanner": "scanner-primary", "fingerprint": "308381e0e8330b04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79cf84206260ee44", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/routes/admin-cohort.test.js:516"}, "properties": {"repobilityId": "81d1afb483c666a1", "scanner": "scanner-primary", "fingerprint": "79cf84206260ee44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4793e881abab1294", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/tests/routes/portal-change-role.test.js:187"}, "properties": {"repobilityId": "1242cd36403b0e83", "scanner": "scanner-primary", "fingerprint": "4793e881abab1294", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c006c5587f98af26", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/livekit-cohort.test.js:70"}, "properties": {"repobilityId": "82b449bf7fe745d8", "scanner": "scanner-primary", "fingerprint": "c006c5587f98af26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ebf8c0e0c2e4ef1", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-gifts.test.js:381"}, "properties": {"repobilityId": "b646bacb6573f8d6", "scanner": "scanner-primary", "fingerprint": "3ebf8c0e0c2e4ef1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0830e6019b2234c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/routes/conversations.test.js:58"}, "properties": {"repobilityId": "5d7fd5b12e8f7e20", "scanner": "scanner-primary", "fingerprint": "0830e6019b2234c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbb711cf79b7923e", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/conversations-cohort.test.js:337"}, "properties": {"repobilityId": "6ba1d2623084c22f", "scanner": "scanner-primary", "fingerprint": "dbb711cf79b7923e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e286f97c6ae77ef5", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-send.test.js:234"}, "properties": {"repobilityId": "ffdbe3c79d75ae78", "scanner": "scanner-primary", "fingerprint": "e286f97c6ae77ef5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78c9d06309cf603f", "level": "none", "message": {"text": "Commented-code block (12 lines) in express-api/tests/routes/suggestions-read.test.js:458"}, "properties": {"repobilityId": "7aa198803487d304", "scanner": "scanner-primary", "fingerprint": "78c9d06309cf603f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acd3c9fd74d9104c", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-core.test.js:344"}, "properties": {"repobilityId": "a49146af348e5d34", "scanner": "scanner-primary", "fingerprint": "acd3c9fd74d9104c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75f60f523194532d", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-warn-room-cascade.test.js:219"}, "properties": {"repobilityId": "68c92daa8a8a6d3d", "scanner": "scanner-primary", "fingerprint": "75f60f523194532d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abda50df0a7f998d", "level": "note", "message": {"text": "Legacy-named symbol `test_old` in express-api/tests/routes/test-helpers-lifecycle.test.js:304"}, "properties": {"repobilityId": "942b615ce039a5c5", "scanner": "scanner-primary", "fingerprint": "abda50df0a7f998d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c52230d4b9cd09f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-users-missing-core-misc.test.js:167"}, "properties": {"repobilityId": "ca0438aa82b9289a", "scanner": "scanner-primary", "fingerprint": "2c52230d4b9cd09f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d881aa8dbbc6c4b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-gifts-rewards.test.js:428"}, "properties": {"repobilityId": "3dfb0ee0c1e1158b", "scanner": "scanner-primary", "fingerprint": "d881aa8dbbc6c4b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-038f37bdf1daadb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/pm-lock-check.test.js:144"}, "properties": {"repobilityId": "735ca2a4c16c4924", "scanner": "scanner-primary", "fingerprint": "038f37bdf1daadb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85b9e0c80cbfd6a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/routes/livekit.test.js:4"}, "properties": {"repobilityId": "4731ce23342d0d70", "scanner": "scanner-primary", "fingerprint": "85b9e0c80cbfd6a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8601d3201457686f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-coverage-reads.test.js:230"}, "properties": {"repobilityId": "de19fef8f845973d", "scanner": "scanner-primary", "fingerprint": "8601d3201457686f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac6a5127a1e4b073", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/economy-purchase.test.js:107"}, "properties": {"repobilityId": "4924c44cf7c0f088", "scanner": "scanner-primary", "fingerprint": "ac6a5127a1e4b073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ba96280a3d7afd8", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/routes/room-mutations.test.js:376"}, "properties": {"repobilityId": "432f9891e311f7f6", "scanner": "scanner-primary", "fingerprint": "1ba96280a3d7afd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9d3eb99b3dde02b", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/admin-devices.test.js:190"}, "properties": {"repobilityId": "76a26ca77b264b83", "scanner": "scanner-primary", "fingerprint": "f9d3eb99b3dde02b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14062a9882bcc9e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/tests/routes/roadmap-auth.test.js:551"}, "properties": {"repobilityId": "d20d438992bed8d0", "scanner": "scanner-primary", "fingerprint": "14062a9882bcc9e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b4dcab732587ffb", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/cron/index.test.js:121"}, "properties": {"repobilityId": "ab60a595d4ad1fc4", "scanner": "scanner-primary", "fingerprint": "3b4dcab732587ffb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b1724b5174afbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/cron/serverHealth.test.js:584"}, "properties": {"repobilityId": "d42298b665349d23", "scanner": "scanner-primary", "fingerprint": "a7b1724b5174afbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-425d822eacb9483c", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/tests/cron/accountDeletion.test.js:438"}, "properties": {"repobilityId": "1b7bd519faee6ea8", "scanner": "scanner-primary", "fingerprint": "425d822eacb9483c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b4c9c2f0889c4c5", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/cron/rotateLogs.test.js:204"}, "properties": {"repobilityId": "88bb9c6195c88d3c", "scanner": "scanner-primary", "fingerprint": "1b4c9c2f0889c4c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72003889acdc943d", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/tests/firestore-rules/room-rules.test.js:158"}, "properties": {"repobilityId": "33a75da12f370c8a", "scanner": "scanner-primary", "fingerprint": "72003889acdc943d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71d882f8b25d0775", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/scripts/driver-health-check.js:73"}, "properties": {"repobilityId": "2b3569f434e05d03", "scanner": "scanner-primary", "fingerprint": "71d882f8b25d0775", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1d5200fb80149c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/provision-test-personas.js:119"}, "properties": {"repobilityId": "2adc9734bb1bde36", "scanner": "scanner-primary", "fingerprint": "f1d5200fb80149c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04ab90a46e4fed3f", "level": "none", "message": {"text": "Commented-code block (15 lines) in express-api/scripts/manual-qa-runner.js:38"}, "properties": {"repobilityId": "e219a31a6074dd76", "scanner": "scanner-primary", "fingerprint": "04ab90a46e4fed3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d498ce84f45fd293", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/manual-qa-runner.js:928"}, "properties": {"repobilityId": "cb90a657deefd4ef", "scanner": "scanner-primary", "fingerprint": "d498ce84f45fd293", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40aa103d33f71524", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/qa-allure-emit.js:59"}, "properties": {"repobilityId": "55756eb60c02fdc8", "scanner": "scanner-primary", "fingerprint": "40aa103d33f71524", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec8f16e2bb0ed74f", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/migrate-pm-lock.js:67"}, "properties": {"repobilityId": "fa982140fdaae7bb", "scanner": "scanner-primary", "fingerprint": "ec8f16e2bb0ed74f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40bd952d1dd8c5a7", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/scripts/browser-allowlist.js:39"}, "properties": {"repobilityId": "447f9b78cec2dd3d", "scanner": "scanner-primary", "fingerprint": "40bd952d1dd8c5a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5ca2185432c5d11", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/scripts/device-journey-runner.js:667"}, "properties": {"repobilityId": "2d56f655be43554d", "scanner": "scanner-primary", "fingerprint": "a5ca2185432c5d11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45df3c60cbba69c5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/scripts/device-journey-runner.js:717"}, "properties": {"repobilityId": "cd55c46ca7eab46d", "scanner": "scanner-primary", "fingerprint": "45df3c60cbba69c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-71466fac2db78d73", "level": "none", "message": {"text": "Commented-code block (19 lines) in express-api/scripts/migrate-segregation-relationships.js:102"}, "properties": {"repobilityId": "b0a29260d9faf6d8", "scanner": "scanner-primary", "fingerprint": "71466fac2db78d73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f676afababd0acfa", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/scripts/matrix-dispatch.js:86"}, "properties": {"repobilityId": "69337b1ccc250bd3", "scanner": "scanner-primary", "fingerprint": "f676afababd0acfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f0ead153f746c9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-simctl-driver.js:144"}, "properties": {"repobilityId": "fd8a598c0acf4ef8", "scanner": "scanner-primary", "fingerprint": "1f0ead153f746c9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-daa6bbc4d0883605", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-devicectl-driver.js:54"}, "properties": {"repobilityId": "fcd7ac9f4ee70802", "scanner": "scanner-primary", "fingerprint": "daa6bbc4d0883605", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86ac8ae862334660", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/scripts/drivers/ios-appium-driver.js:82"}, "properties": {"repobilityId": "0350acc9a71227dc", "scanner": "scanner-primary", "fingerprint": "86ac8ae862334660", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cbd3df8b8d99cbf", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/scripts/drivers/web-mobile-chrome-android-driver.js:131"}, "properties": {"repobilityId": "aeb57d53bedab7db", "scanner": "scanner-primary", "fingerprint": "0cbd3df8b8d99cbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaf9eeb337ee3336", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/scripts/drivers/android-adb-driver.js:199"}, "properties": {"repobilityId": "92f0a7d15c99c18f", "scanner": "scanner-primary", "fingerprint": "aaf9eeb337ee3336", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e4d9d899c2b767e", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/scripts/drivers/web-playwright-driver.js:32"}, "properties": {"repobilityId": "7dd88ed54c91bdd6", "scanner": "scanner-primary", "fingerprint": "5e4d9d899c2b767e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2bfa70aa76a1ee7", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/src/index.js:41"}, "properties": {"repobilityId": "0c7331916e745e9c", "scanner": "scanner-primary", "fingerprint": "f2bfa70aa76a1ee7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-431159fe7d868858", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/src/middleware/sameCohort.js:37"}, "properties": {"repobilityId": "3a4ac4e249a9340f", "scanner": "scanner-primary", "fingerprint": "431159fe7d868858", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af93d376b43715c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/middleware/system-auth.js:70"}, "properties": {"repobilityId": "e5bda95de0614033", "scanner": "scanner-primary", "fingerprint": "af93d376b43715c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fff800aee4dba918", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/middleware/rateLimit.js:74"}, "properties": {"repobilityId": "7f7b2f51a81467ec", "scanner": "scanner-primary", "fingerprint": "fff800aee4dba918", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce7eccc74e8ce83d", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/middleware/auth.js:22"}, "properties": {"repobilityId": "ce7ca939b0551531", "scanner": "scanner-primary", "fingerprint": "ce7eccc74e8ce83d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9684ea65564780fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/src/middleware/requestLogger.js:12"}, "properties": {"repobilityId": "3c52cfbf7aa157c6", "scanner": "scanner-primary", "fingerprint": "9684ea65564780fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36332f27b2dce1f5", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/src/middleware/no-index.js:25"}, "properties": {"repobilityId": "bf9e7d321f7e7419", "scanner": "scanner-primary", "fingerprint": "36332f27b2dce1f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70540fb500033162", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/src/utils/data-export-builder.js:19"}, "properties": {"repobilityId": "d1e0318134c45120", "scanner": "scanner-primary", "fingerprint": "70540fb500033162", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fd4e56f6fee5ac8", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/owner-left-orchestrator.js:115"}, "properties": {"repobilityId": "4bfbf55c86b62c1a", "scanner": "scanner-primary", "fingerprint": "1fd4e56f6fee5ac8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e8783f8c602787a", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/src/utils/email-templates.js:1"}, "properties": {"repobilityId": "2fb3e39e87d2fbaa", "scanner": "scanner-primary", "fingerprint": "4e8783f8c602787a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c71520224ce00a8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/utils/playStore.js:64"}, "properties": {"repobilityId": "a3725f9c276a410e", "scanner": "scanner-primary", "fingerprint": "4c71520224ce00a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e7836fb223b267c6", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/src/utils/segregation-audit.js:58"}, "properties": {"repobilityId": "5b805611aa7b10e8", "scanner": "scanner-primary", "fingerprint": "e7836fb223b267c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3048555e3be881c", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/src/utils/r2.js:45"}, "properties": {"repobilityId": "190ff0bd26a65062", "scanner": "scanner-primary", "fingerprint": "d3048555e3be881c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-989a0e7e025d819c", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/fcm.js:12"}, "properties": {"repobilityId": "dafb16a5df544810", "scanner": "scanner-primary", "fingerprint": "989a0e7e025d819c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a04424d8e63e5dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/utils/evict-suspended-user.js:101"}, "properties": {"repobilityId": "b7f37f8e97e77129", "scanner": "scanner-primary", "fingerprint": "1a04424d8e63e5dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44064c324bdeb605", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/utils/stale-room-reap.js:34"}, "properties": {"repobilityId": "eebd55fd2914be68", "scanner": "scanner-primary", "fingerprint": "44064c324bdeb605", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-559004b442b8189b", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/system-pm.js:8"}, "properties": {"repobilityId": "f1b2f64a42fc606a", "scanner": "scanner-primary", "fingerprint": "559004b442b8189b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c66be2755eabc31", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/src/utils/suggestion-email-templates.js:79"}, "properties": {"repobilityId": "04486aab8e06f5f7", "scanner": "scanner-primary", "fingerprint": "6c66be2755eabc31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff7286140eb13664", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/age-verification-audit.js:41"}, "properties": {"repobilityId": "05dbc7291b4c6a55", "scanner": "scanner-primary", "fingerprint": "ff7286140eb13664", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7b8947624f48a71", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/utils/owner-left-listener.js:62"}, "properties": {"repobilityId": "723fcfc7c2354189", "scanner": "scanner-primary", "fingerprint": "b7b8947624f48a71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b93a0b0d0771cece", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/totp-crypto.js:27"}, "properties": {"repobilityId": "c911d4c48d8aa082", "scanner": "scanner-primary", "fingerprint": "b93a0b0d0771cece", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31b7de4c3c5cb153", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/utils/appleStore.js:75"}, "properties": {"repobilityId": "f606bf671b64e5d5", "scanner": "scanner-primary", "fingerprint": "31b7de4c3c5cb153", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b928dd68e3b6f8f5", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/src/routes/room-mutations.js:100"}, "properties": {"repobilityId": "38a5468c532a8f07", "scanner": "scanner-primary", "fingerprint": "b928dd68e3b6f8f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-325b9ec43a50f69a", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/src/routes/admin-gifts.js:13"}, "properties": {"repobilityId": "ae81164ac5117c96", "scanner": "scanner-primary", "fingerprint": "325b9ec43a50f69a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df7d9497ee493dcb", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/pm-lock-check.js:105"}, "properties": {"repobilityId": "10dc3f3967bad3ff", "scanner": "scanner-primary", "fingerprint": "df7d9497ee493dcb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae04303917c973e7", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/src/routes/age-verification.js:139"}, "properties": {"repobilityId": "6b7199b57344064e", "scanner": "scanner-primary", "fingerprint": "ae04303917c973e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ac81d6e4007d56c", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/suggestions.js:133"}, "properties": {"repobilityId": "f5e795f5792898ef", "scanner": "scanner-primary", "fingerprint": "3ac81d6e4007d56c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afc23b9142d83844", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/portal.js:38"}, "properties": {"repobilityId": "3cd0c6cd947621c3", "scanner": "scanner-primary", "fingerprint": "afc23b9142d83844", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c306003ebd1afe0", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/rooms.js:135"}, "properties": {"repobilityId": "42d6d5ee5d942fcd", "scanner": "scanner-primary", "fingerprint": "4c306003ebd1afe0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9f340a6c7ab5fa2", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/conversations.js:237"}, "properties": {"repobilityId": "d5474d094fb2481c", "scanner": "scanner-primary", "fingerprint": "c9f340a6c7ab5fa2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c2a1f6fc0581ceb", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/auth.js:151"}, "properties": {"repobilityId": "0b8e361fe993ce7d", "scanner": "scanner-primary", "fingerprint": "0c2a1f6fc0581ceb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1be8010080da99dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/admin-age-verification.js:203"}, "properties": {"repobilityId": "ec7b3dc7476a2b70", "scanner": "scanner-primary", "fingerprint": "1be8010080da99dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e94f269bc4a8534", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/src/routes/admin-cleanup.js:39"}, "properties": {"repobilityId": "9251bc973d90f0bc", "scanner": "scanner-primary", "fingerprint": "5e94f269bc4a8534", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60489fbcabd0c656", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/reports.js:31"}, "properties": {"repobilityId": "fd0386be351057b5", "scanner": "scanner-primary", "fingerprint": "60489fbcabd0c656", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4238f001348c362", "level": "none", "message": {"text": "Commented-code block (9 lines) in express-api/src/routes/admin-economy.js:22"}, "properties": {"repobilityId": "6d54af6327c605ca", "scanner": "scanner-primary", "fingerprint": "d4238f001348c362", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21cffc1d305b5bda", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/subscriptions.js:109"}, "properties": {"repobilityId": "c4c0d84cb9e683cb", "scanner": "scanner-primary", "fingerprint": "21cffc1d305b5bda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-264877bb7c9bc9db", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/config.js:815"}, "properties": {"repobilityId": "1989ebef120d545f", "scanner": "scanner-primary", "fingerprint": "264877bb7c9bc9db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e0c52cb04f5e17b", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/livekit.js:25"}, "properties": {"repobilityId": "5b226de160056b85", "scanner": "scanner-primary", "fingerprint": "2e0c52cb04f5e17b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cceab0ec1cd74883", "level": "none", "message": {"text": "Commented-code block (7 lines) in express-api/src/routes/data-export.js:142"}, "properties": {"repobilityId": "36196c593812c871", "scanner": "scanner-primary", "fingerprint": "cceab0ec1cd74883", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88fec5151a36a50b", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/apple-notifications.js:123"}, "properties": {"repobilityId": "830ef98f9b74af72", "scanner": "scanner-primary", "fingerprint": "88fec5151a36a50b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79521b559513fcbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/device-info.js:158"}, "properties": {"repobilityId": "e073ec31ff6ce8ea", "scanner": "scanner-primary", "fingerprint": "79521b559513fcbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f12d8adf159de69", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/routes/admin-users.js:305"}, "properties": {"repobilityId": "1a5eed23b8bea640", "scanner": "scanner-primary", "fingerprint": "1f12d8adf159de69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb6f5d73408231da", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/users.js:46"}, "properties": {"repobilityId": "883d877ddc6ddf7f", "scanner": "scanner-primary", "fingerprint": "eb6f5d73408231da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d3203a7832b373f", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/economy.js:106"}, "properties": {"repobilityId": "77c64978e4ee4b5e", "scanner": "scanner-primary", "fingerprint": "5d3203a7832b373f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c93650f9e49fc450", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/routes/system.js:33"}, "properties": {"repobilityId": "7e812e644591140d", "scanner": "scanner-primary", "fingerprint": "c93650f9e49fc450", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bd7ae3023da1e23", "level": "none", "message": {"text": "Commented-code block (8 lines) in express-api/src/routes/test-helpers.js:126"}, "properties": {"repobilityId": "0a485f1dbded5133", "scanner": "scanner-primary", "fingerprint": "2bd7ae3023da1e23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5db44bddf5c9fd35", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 express-api/src/routes/test-helpers.js:502"}, "properties": {"repobilityId": "96890f2af706dc01", "scanner": "scanner-primary", "fingerprint": "5db44bddf5c9fd35", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4bacb809d186f386", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/cron/serverHealth.js:20"}, "properties": {"repobilityId": "90f2fe0e3c88a9cf", "scanner": "scanner-primary", "fingerprint": "4bacb809d186f386", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec3f578cdc34b319", "level": "none", "message": {"text": "Commented-code block (6 lines) in express-api/src/cron/subscriptions.js:11"}, "properties": {"repobilityId": "28a311a0e5cf55aa", "scanner": "scanner-primary", "fingerprint": "ec3f578cdc34b319", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33d5d327f79357b5", "level": "none", "message": {"text": "Commented-code block (10 lines) in express-api/src/cron/index.js:49"}, "properties": {"repobilityId": "c30c8b0ad403e5e0", "scanner": "scanner-primary", "fingerprint": "33d5d327f79357b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2595d49b877df27", "level": "none", "message": {"text": "Commented-code block (5 lines) in express-api/src/cron/ageVerificationAuditReconcile.js:35"}, "properties": {"repobilityId": "1b45079d833a30fa", "scanner": "scanner-primary", "fingerprint": "b2595d49b877df27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78c8b86b7af59137", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/js/preview-watermark.js:91"}, "properties": {"repobilityId": "30bdc0fce9ed274a", "scanner": "scanner-primary", "fingerprint": "78c8b86b7af59137", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-560c6392f53ec2d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/js/suggestions-board.js:55"}, "properties": {"repobilityId": "16b639a11efdb84a", "scanner": "scanner-primary", "fingerprint": "560c6392f53ec2d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5016a6d0bae82b9", "level": "none", "message": {"text": "Commented-code block (11 lines) in public/js/roadmap-app.js:948"}, "properties": {"repobilityId": "2651fcfee22272ee", "scanner": "scanner-primary", "fingerprint": "b5016a6d0bae82b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d998fb0db86cc44", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/roadmap-app.js:1130"}, "properties": {"repobilityId": "7a3c8d8f2af762d6", "scanner": "scanner-primary", "fingerprint": "0d998fb0db86cc44", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1879cba8ff63419c", "level": "none", "message": {"text": "Commented-code block (9 lines) in public/js/roadmap-auth.js:160"}, "properties": {"repobilityId": "da0b4cda09b5d076", "scanner": "scanner-primary", "fingerprint": "1879cba8ff63419c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e34271135175ec17", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/js/language-selector.js:49"}, "properties": {"repobilityId": "022ee381eaf43516", "scanner": "scanner-primary", "fingerprint": "e34271135175ec17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54f5d778c7c99804", "level": "none", "message": {"text": "Commented-code block (9 lines) in public/js/shared-header.js:21"}, "properties": {"repobilityId": "941e9530071331a8", "scanner": "scanner-primary", "fingerprint": "54f5d778c7c99804", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1322546b43e3b5aa", "level": "note", "message": {"text": "Legacy-named symbol `footer_copy` in public/js/legal-translations.js:10"}, "properties": {"repobilityId": "63e9868ee0f22cbd", "scanner": "scanner-primary", "fingerprint": "1322546b43e3b5aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3d795fe233dcbf30", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/js/core/api.js:40"}, "properties": {"repobilityId": "0562a57a1f21fb02", "scanner": "scanner-primary", "fingerprint": "3d795fe233dcbf30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-147312c81f10cb9c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/js/core/api.js:33"}, "properties": {"repobilityId": "7402fb198329b6fb", "scanner": "scanner-primary", "fingerprint": "147312c81f10cb9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79ef1f819f049ebd", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/translations.js:3376"}, "properties": {"repobilityId": "76c5b58cbf179fca", "scanner": "scanner-primary", "fingerprint": "79ef1f819f049ebd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fad47e7f980e45ae", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/js/sync-prod.js:33"}, "properties": {"repobilityId": "36c0805fe7300236", "scanner": "scanner-primary", "fingerprint": "fad47e7f980e45ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a40d965e612adb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/admin/js/main.js:314"}, "properties": {"repobilityId": "b67d1d2d51ef7334", "scanner": "scanner-primary", "fingerprint": "3a40d965e612adb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-551d85728fdb25bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/js/nuclear-reset.js:26"}, "properties": {"repobilityId": "8c9007698e934eed", "scanner": "scanner-primary", "fingerprint": "551d85728fdb25bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-136593c01c440969", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/admin/js/lib/partial-failure-toast.js:42"}, "properties": {"repobilityId": "6af9f797d7efea2e", "scanner": "scanner-primary", "fingerprint": "136593c01c440969", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4ccfb0c1b2ebf57", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/age-verification.js:57"}, "properties": {"repobilityId": "cfff4d18eef93ac1", "scanner": "scanner-primary", "fingerprint": "a4ccfb0c1b2ebf57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec067daf0ca66ef5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/economy-config.js:121"}, "properties": {"repobilityId": "652cd7d948e4b10e", "scanner": "scanner-primary", "fingerprint": "ec067daf0ca66ef5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d3bf23f5e4a975c", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/admin/js/tabs/spin-monitor.js:459"}, "properties": {"repobilityId": "20efa3a46777de91", "scanner": "scanner-primary", "fingerprint": "4d3bf23f5e4a975c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c7f2821aca00c12", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/suggestions.js:118"}, "properties": {"repobilityId": "6eb619043faa1416", "scanner": "scanner-primary", "fingerprint": "7c7f2821aca00c12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e851a58a64d019c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/admin/js/tabs/starting-screens.js:636"}, "properties": {"repobilityId": "0386b0457d201eaf", "scanner": "scanner-primary", "fingerprint": "e851a58a64d019c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19972b15bc828b83", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/backups.js:5"}, "properties": {"repobilityId": "b0accf1370d35cbc", "scanner": "scanner-primary", "fingerprint": "19972b15bc828b83", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a466b95a3292a878", "level": "none", "message": {"text": "Commented-code block (9 lines) in public/admin/js/tabs/reports.js:117"}, "properties": {"repobilityId": "b9057591d5ef6424", "scanner": "scanner-primary", "fingerprint": "a466b95a3292a878", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4ff84acfaf03af6", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/admin/js/tabs/users.js:1186"}, "properties": {"repobilityId": "9373433d72588283", "scanner": "scanner-primary", "fingerprint": "a4ff84acfaf03af6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bfb9c3b6bc4b40f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/logs.js:956"}, "properties": {"repobilityId": "4f79d709886474d5", "scanner": "scanner-primary", "fingerprint": "0bfb9c3b6bc4b40f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc475239fd59aebc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/admin/js/tabs/maintenance.js:5"}, "properties": {"repobilityId": "c6aae1b3d2024c39", "scanner": "scanner-primary", "fingerprint": "bc475239fd59aebc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3fc87cddcf6ab102", "level": "note", "message": {"text": "Legacy-named symbol `enroll_copy` in public/portal/portal.js:1170"}, "properties": {"repobilityId": "e33e53fe03b479b6", "scanner": "scanner-primary", "fingerprint": "3fc87cddcf6ab102", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-64529f2b18889ee9", "level": "none", "message": {"text": "Commented-code block (6 lines) in public/portal/portal.js:55"}, "properties": {"repobilityId": "223a371c9caf7c7c", "scanner": "scanner-primary", "fingerprint": "64529f2b18889ee9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c97b0ad4c0316121", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/portal/portal.js:164"}, "properties": {"repobilityId": "3daff881db2a90c2", "scanner": "scanner-primary", "fingerprint": "c97b0ad4c0316121", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59f484dffa0bd641", "level": "note", "message": {"text": "Legacy-named symbol `enroll_copy` in public/portal/portal-translations.js:40"}, "properties": {"repobilityId": "867619923ae32797", "scanner": "scanner-primary", "fingerprint": "59f484dffa0bd641", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca8caa3bcad78c80", "level": "none", "message": {"text": "Commented-code block (8 lines) in public/portal/portal-translations.js:12"}, "properties": {"repobilityId": "245800ca371b3fc1", "scanner": "scanner-primary", "fingerprint": "ca8caa3bcad78c80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c9d02364e09e13c", "level": "note", "message": {"text": "55 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "fc70195b3e64b9a7", "scanner": "scanner-primary", "fingerprint": "0c9d02364e09e13c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-61fa869837a6b8df", "level": "error", "message": {"text": "Dangling fetch: GET https://api.cloudflare.com/client/v4${path} (scripts/add-dns-records.mjs:23)"}, "properties": {"repobilityId": "1cf30250ad2fe76f", "scanner": "scanner-primary", "fingerprint": "61fa869837a6b8df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f6808745afc3dd22", "level": "error", "message": {"text": "Dangling fetch: GET https://api.appstoreconnect.apple.com${path} (scripts/ensure-testflight-auto-distribution.js:71)"}, "properties": {"repobilityId": "a808fd708e033abe", "scanner": "scanner-primary", "fingerprint": "f6808745afc3dd22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-41c57236cf8e9866", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:8080 (local/seed.js:67)"}, "properties": {"repobilityId": "5b1737a6a722b279", "scanner": "scanner-primary", "fingerprint": "41c57236cf8e9866", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2e4ae5c03401b31", "level": "error", "message": {"text": "Dangling fetch: GET http://ip-api.com/json/${ip}?fields=isp,as,country,regionName (express-api/src/routes/device-info.js:49)"}, "properties": {"repobilityId": "097381081382ef35", "scanner": "scanner-primary", "fingerprint": "a2e4ae5c03401b31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bc319cc11dd892cc", "level": "error", "message": {"text": "Dangling fetch: GET /roadmap-data.json (public/js/roadmap-app.js:1291)"}, "properties": {"repobilityId": "1014259ed12a0247", "scanner": "scanner-primary", "fingerprint": "bc319cc11dd892cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af7889bf9e0296f0", "level": "error", "message": {"text": "Dangling fetch: GET /events/events.json (public/js/seasonal-theme.js:32)"}, "properties": {"repobilityId": "0a59b0d782b56a96", "scanner": "scanner-primary", "fingerprint": "af7889bf9e0296f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-614d859d7f45aa35", "level": "error", "message": {"text": "Dangling fetch: GET /roadmap-data.json (public/admin/js/tabs/suggestions.js:849)"}, "properties": {"repobilityId": "e26991c5a4454aea", "scanner": "scanner-primary", "fingerprint": "614d859d7f45aa35", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-452d3b9d7b1b6b52", "level": "error", "message": {"text": "Dangling fetch: GET /js/core/ui.js (tests/web/admin-core-modules.spec.ts:37)"}, "properties": {"repobilityId": "78f4a740948768ac", "scanner": "scanner-primary", "fingerprint": "452d3b9d7b1b6b52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d8c6380cff6ee301", "level": "error", "message": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1288)"}, "properties": {"repobilityId": "272b35c81dfa51b0", "scanner": "scanner-primary", "fingerprint": "d8c6380cff6ee301", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e1dbfaf31f6753ac", "level": "error", "message": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1298)"}, "properties": {"repobilityId": "793f53d5aa332dd4", "scanner": "scanner-primary", "fingerprint": "e1dbfaf31f6753ac", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ca96a573db3c3bc1", "level": "error", "message": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1307)"}, "properties": {"repobilityId": "004c463039b96bfa", "scanner": "scanner-primary", "fingerprint": "ca96a573db3c3bc1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-55d822b09e454ac7", "level": "error", "message": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1317)"}, "properties": {"repobilityId": "41d186ff7c779972", "scanner": "scanner-primary", "fingerprint": "55d822b09e454ac7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-789bfc1ced3e922f", "level": "error", "message": {"text": "Dangling fetch: GET /js/roadmap-auth.js (tests/web/roadmap-auth.spec.ts:1337)"}, "properties": {"repobilityId": "d7080dfbcd550b05", "scanner": "scanner-primary", "fingerprint": "789bfc1ced3e922f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f171b33323c8f342", "level": "error", "message": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:507)"}, "properties": {"repobilityId": "a5586baaa09e586b", "scanner": "scanner-primary", "fingerprint": "f171b33323c8f342", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ee96cc82758a23e8", "level": "error", "message": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:519)"}, "properties": {"repobilityId": "de925786856ff873", "scanner": "scanner-primary", "fingerprint": "ee96cc82758a23e8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fa0591051e1634e9", "level": "error", "message": {"text": "Dangling fetch: GET /portal/portal.js (tests/web/portal-auth.spec.ts:541)"}, "properties": {"repobilityId": "6dbd00af69847a4c", "scanner": "scanner-primary", "fingerprint": "fa0591051e1634e9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86a464843d697578", "level": "error", "message": {"text": "Dangling fetch: GET /js/suggestions-board.js (tests/web/suggestions-board.spec.ts:2322)"}, "properties": {"repobilityId": "1e03bcb148420c1d", "scanner": "scanner-primary", "fingerprint": "86a464843d697578", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-136aa0811e7d545a", "level": "error", "message": {"text": "Dangling fetch: GET /favicon.ico (tests/web/logger-idempotency.spec.ts:71)"}, "properties": {"repobilityId": "411812a7f6efbb5a", "scanner": "scanner-primary", "fingerprint": "136aa0811e7d545a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "e9c06844c9662621", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "72f811b840d02f4f", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c73e8bea8e1d1368", "level": "note", "message": {"text": "Unused endpoint: USE /api/conversations"}, "properties": {"repobilityId": "b19792b06b041eea", "scanner": "scanner-primary", "fingerprint": "c73e8bea8e1d1368", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52f85eab8587df28", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/gacha"}, "properties": {"repobilityId": "d881102752a6b717", "scanner": "scanner-primary", "fingerprint": "52f85eab8587df28", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9695d7c7ace3cae4", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/gift"}, "properties": {"repobilityId": "b749b53aeb75668d", "scanner": "scanner-primary", "fingerprint": "9695d7c7ace3cae4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0f72dce5c0e45e71", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/gift-direct"}, "properties": {"repobilityId": "ae9d10d625ffeea4", "scanner": "scanner-primary", "fingerprint": "0f72dce5c0e45e71", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f67c7705221ca32", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/gift-batch"}, "properties": {"repobilityId": "8f4a89e1f64e68f2", "scanner": "scanner-primary", "fingerprint": "6f67c7705221ca32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f4e1aa2de5e2973c", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/backpack-send"}, "properties": {"repobilityId": "c4b7d1a30913e473", "scanner": "scanner-primary", "fingerprint": "f4e1aa2de5e2973c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c3a8b7932f72b92f", "level": "note", "message": {"text": "Unused endpoint: USE /api/notifications"}, "properties": {"repobilityId": "e62cfd1b2a40067a", "scanner": "scanner-primary", "fingerprint": "c3a8b7932f72b92f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b4a376810bee148", "level": "note", "message": {"text": "Unused endpoint: USE /api/translate"}, "properties": {"repobilityId": "fc22945b64698dc2", "scanner": "scanner-primary", "fingerprint": "3b4a376810bee148", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd00d4055a685b58", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/discover"}, "properties": {"repobilityId": "4a7117f721b955cc", "scanner": "scanner-primary", "fingerprint": "cd00d4055a685b58", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-969d826b4b18d35e", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/search"}, "properties": {"repobilityId": "18e8a247e99ee54f", "scanner": "scanner-primary", "fingerprint": "969d826b4b18d35e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8d63a6ec006ffbed", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/purchase"}, "properties": {"repobilityId": "b371fb650f672615", "scanner": "scanner-primary", "fingerprint": "8d63a6ec006ffbed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8a02e029ad22875", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/trial-claim"}, "properties": {"repobilityId": "23a098c33a0346d6", "scanner": "scanner-primary", "fingerprint": "e8a02e029ad22875", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5332ce35b85115b5", "level": "note", "message": {"text": "Unused endpoint: USE /api/economy/trial-activate"}, "properties": {"repobilityId": "19b54217b933cb0c", "scanner": "scanner-primary", "fingerprint": "5332ce35b85115b5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2a06e6d401449b82", "level": "note", "message": {"text": "Unused endpoint: USE /api/reports"}, "properties": {"repobilityId": "3bcc958ecccfff22", "scanner": "scanner-primary", "fingerprint": "2a06e6d401449b82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc090eaac3853bae", "level": "note", "message": {"text": "Unused endpoint: USE /api/appeals"}, "properties": {"repobilityId": "f31f352d3cf73a2d", "scanner": "scanner-primary", "fingerprint": "bc090eaac3853bae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ee3bd93a66b4847", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/:uniqueId/delete"}, "properties": {"repobilityId": "baec75555f3e9688", "scanner": "scanner-primary", "fingerprint": "7ee3bd93a66b4847", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-118645c45ade9ffd", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/:uniqueId/data-export"}, "properties": {"repobilityId": "ec1f9f628f25fb86", "scanner": "scanner-primary", "fingerprint": "118645c45ade9ffd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb6eb888599aa5c5", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/:uniqueId/pm-lock-check"}, "properties": {"repobilityId": "a803e3478e13bd20", "scanner": "scanner-primary", "fingerprint": "bb6eb888599aa5c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5dce9d9c7fbe039e", "level": "note", "message": {"text": "Unused endpoint: USE /api/age-verification"}, "properties": {"repobilityId": "6f2f91c4927e6f5e", "scanner": "scanner-primary", "fingerprint": "5dce9d9c7fbe039e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-88a3ae3b9d2fa35b", "level": "note", "message": {"text": "Unused endpoint: USE /api/user/:uniqueId/cohort-override"}, "properties": {"repobilityId": "9c214fda19747e66", "scanner": "scanner-primary", "fingerprint": "88a3ae3b9d2fa35b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9962a2df99fa7781", "level": "note", "message": {"text": "Unused endpoint: USE /api/portal"}, "properties": {"repobilityId": "8c50a00617af58dc", "scanner": "scanner-primary", "fingerprint": "9962a2df99fa7781", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-586571a0bd97aa0d", "level": "note", "message": {"text": "Unused endpoint: USE /api/portal/totp-recovery"}, "properties": {"repobilityId": "7c3f944cce310dc8", "scanner": "scanner-primary", "fingerprint": "586571a0bd97aa0d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a27e9509cc4a398b", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/claim"}, "properties": {"repobilityId": "a046a1e2ab105cbd", "scanner": "scanner-primary", "fingerprint": "a27e9509cc4a398b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-298aec6a7bf815b4", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/accept-invite"}, "properties": {"repobilityId": "48ef0f2f6dac3e6e", "scanner": "scanner-primary", "fingerprint": "298aec6a7bf815b4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-10b0075b6567b696", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/leave"}, "properties": {"repobilityId": "7d88d3ebaa79f4da", "scanner": "scanner-primary", "fingerprint": "10b0075b6567b696", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d06611ff97d0fc40", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/kick"}, "properties": {"repobilityId": "87572e45514b06a9", "scanner": "scanner-primary", "fingerprint": "d06611ff97d0fc40", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-37c2ad82fb181cb5", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/remove"}, "properties": {"repobilityId": "23046a48a1671620", "scanner": "scanner-primary", "fingerprint": "37c2ad82fb181cb5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a7425175e7d029f1", "level": "note", "message": {"text": "Unused endpoint: PATCH /rooms/:roomId/seats/:seatIndex/mute"}, "properties": {"repobilityId": "a3606f9c0b340395", "scanner": "scanner-primary", "fingerprint": "a7425175e7d029f1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c9023f70fa1f9561", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/hosts"}, "properties": {"repobilityId": "663ddfdf31b08a87", "scanner": "scanner-primary", "fingerprint": "c9023f70fa1f9561", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f2334e7682b39618", "level": "note", "message": {"text": "Unused endpoint: DELETE /rooms/:roomId/hosts/:userId"}, "properties": {"repobilityId": "e933642c0333e64e", "scanner": "scanner-primary", "fingerprint": "f2334e7682b39618", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c55c133f63a4f800", "level": "note", "message": {"text": "Unused endpoint: PATCH /rooms/:roomId/name"}, "properties": {"repobilityId": "1e5a7a75644203a9", "scanner": "scanner-primary", "fingerprint": "c55c133f63a4f800", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fc3ecb6881028bae", "level": "note", "message": {"text": "Unused endpoint: PATCH /rooms/:roomId/require-approval"}, "properties": {"repobilityId": "71615ea010b66cae", "scanner": "scanner-primary", "fingerprint": "fc3ecb6881028bae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ed5b09453bfc5af", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/owner-returned"}, "properties": {"repobilityId": "9e71ab63953798cf", "scanner": "scanner-primary", "fingerprint": "5ed5b09453bfc5af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a0fb9430bdaaca90", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/owner-away"}, "properties": {"repobilityId": "54dfa7039e8eeb4d", "scanner": "scanner-primary", "fingerprint": "a0fb9430bdaaca90", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-281214b8bb81a60e", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/close"}, "properties": {"repobilityId": "a66a1570d8816151", "scanner": "scanner-primary", "fingerprint": "281214b8bb81a60e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f510069e8939e17a", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/seats/:seatIndex/move"}, "properties": {"repobilityId": "772ff470ebdb590c", "scanner": "scanner-primary", "fingerprint": "f510069e8939e17a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-addacab83587c1ed", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/join"}, "properties": {"repobilityId": "e863888ec7341a00", "scanner": "scanner-primary", "fingerprint": "addacab83587c1ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5d18bbd27259354f", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/decline-invite"}, "properties": {"repobilityId": "38dc656a06cca5c6", "scanner": "scanner-primary", "fingerprint": "5d18bbd27259354f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fdc208fc1e9b932a", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/leave"}, "properties": {"repobilityId": "335876903cfc7196", "scanner": "scanner-primary", "fingerprint": "fdc208fc1e9b932a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce8916c4f36646d8", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/disconnect-user"}, "properties": {"repobilityId": "6155009d6295bde8", "scanner": "scanner-primary", "fingerprint": "ce8916c4f36646d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8235fb9baf153667", "level": "note", "message": {"text": "Unused endpoint: POST /rooms/:roomId/first-join"}, "properties": {"repobilityId": "58a4d54945ae6543", "scanner": "scanner-primary", "fingerprint": "8235fb9baf153667", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cebde18d82d285d1", "level": "note", "message": {"text": "Unused endpoint: USE /gifts"}, "properties": {"repobilityId": "3dd2eda2b0460a29", "scanner": "scanner-primary", "fingerprint": "cebde18d82d285d1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-003debd264fb4f8e", "level": "note", "message": {"text": "Unused endpoint: POST /gifts"}, "properties": {"repobilityId": "9e7e8f53ffbe358c", "scanner": "scanner-primary", "fingerprint": "003debd264fb4f8e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67a38c7af820dcbd", "level": "note", "message": {"text": "Unused endpoint: PUT /gifts/:id"}, "properties": {"repobilityId": "625e8e168207fbe9", "scanner": "scanner-primary", "fingerprint": "67a38c7af820dcbd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7708dd49159fb94f", "level": "note", "message": {"text": "Unused endpoint: DELETE /gifts/:id"}, "properties": {"repobilityId": "a480c4aa2e5f63bc", "scanner": "scanner-primary", "fingerprint": "7708dd49159fb94f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-814a02eb47459dad", "level": "note", "message": {"text": "Unused endpoint: USE /admin/maintenance"}, "properties": {"repobilityId": "155baa0381c99cd9", "scanner": "scanner-primary", "fingerprint": "814a02eb47459dad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f0312e2a18adbe59", "level": "note", "message": {"text": "Unused endpoint: POST /admin/maintenance/clear-suggestions"}, "properties": {"repobilityId": "d51046961c8cf292", "scanner": "scanner-primary", "fingerprint": "f0312e2a18adbe59", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b692c98b78ff77ca", "level": "note", "message": {"text": "Unused endpoint: POST /admin/maintenance/clear-subscriptions"}, "properties": {"repobilityId": "7fb46065c1eab5a8", "scanner": "scanner-primary", "fingerprint": "b692c98b78ff77ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}