{"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-118ca04185cb0ce2", "name": "Stray `console.log` in TS/JS \u2014 metro.config.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 metro.config.js:90"}, "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-54c9d69013a58b92", "name": "Stray `console.log` in TS/JS \u2014 api/proxy/[method].js:3142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/proxy/[method].js:3142"}, "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-ac7629aa3e8c3b76", "name": "Stray `console.log` in TS/JS \u2014 api/proxy/_handler.ts:220", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 api/proxy/_handler.ts:220"}, "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-a492c8cebead36ba", "name": "Stray `console.log` in TS/JS \u2014 scripts/lanip.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lanip.ts:54"}, "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-41d9106bb675e213", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyReduceMotion.ts:200", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyReduceMotion.ts:200"}, "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-72f14289c81b7a46", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourRoutine.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourRoutine.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac0cc8383e051dc6", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeNight.ts:282", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeNight.ts:282"}, "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-3abec3c8cac9e68a", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourSkin.ts:54", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourSkin.ts:54"}, "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-54d2df2dc5d6458b", "name": "Stray `console.log` in TS/JS \u2014 scripts/renderYourSkinShaders.ts:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/renderYourSkinShaders.ts:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c441b1f42ffd4e4e", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeRecommendation.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeRecommendation.ts: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-085fdc539a3b67bc", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyAi.ts:514", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyAi.ts:514"}, "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-8560f7b6882e9443", "name": "Stray `console.log` in TS/JS \u2014 scripts/patch-web-index.js:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/patch-web-index.js:90"}, "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-90dc2f9b87336c24", "name": "Stray `console.log` in TS/JS \u2014 scripts/checkLinkHealth.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/checkLinkHealth.ts:52"}, "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-19f9fbfb9a7ac423", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyShopHonesty.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyShopHonesty.ts:26"}, "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-07eb45cb7454a2ea", "name": "Stray `console.log` in TS/JS \u2014 scripts/design-shot.js:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/design-shot.js:151"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141cf3ed3d921766", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyDailyHome.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyDailyHome.ts:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7bd2304bcd3c6a3", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyScanQuality.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyScanQuality.ts:34"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68f6cb78d6f92dd5", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyRescanCompare.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyRescanCompare.ts:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fbbdd2dce680652", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyProductsTab.ts:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyProductsTab.ts:96"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6db88916b92418eb", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyAll.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyAll.ts:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1d37558da7e6274", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyFirstFinding.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyFirstFinding.ts:40"}, "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-71875df353ab7531", "name": "Stray `console.log` in TS/JS \u2014 scripts/verifyMoneyEngine.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyMoneyEngine.ts:25"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2bd64f532f8ddb73", "name": "Stray `console.log` in TS/JS \u2014 scripts/fetch-product-images.ts:345", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-product-images.ts:345"}, "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-7433a427d1d3ff6e", "name": "Stray `console.log` in TS/JS \u2014 src/api/scan.ts:154", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/api/scan.ts:154"}, "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-c5600aa9fc25cdbc", "name": "Stray `console.log` in TS/JS \u2014 src/api/skinRead.ts:165", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/api/skinRead.ts: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-f61f962f6eab713f", "name": "Stray `console.log` in TS/JS \u2014 src/utils/devConsole.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/devConsole.ts:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d0dbb5e1ffa2f769", "name": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanCaptureScreen.tsx:517", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanCaptureScreen.tsx:517"}, "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-8127876a0f8b8401", "name": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanResultsFaceScreen.tsx:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanResultsFaceScreen.tsx:84"}, "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-1a6eb4a2ffedcc97", "name": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanAnalyzing/index.tsx:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanAnalyzing/index.tsx: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-2758df405eebd7a6", "name": "Stray `console.log` in TS/JS \u2014 src/screens/onboarding/ColdOpenScreen.tsx:307", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/onboarding/ColdOpenScreen.tsx:307"}, "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-c365f54f78e092d1", "name": "Stray `console.log` in TS/JS \u2014 src/scanQuality/engine.web.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scanQuality/engine.web.ts:207"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-456b3a6e302a520b", "name": "Stray `console.log` in TS/JS \u2014 src/navigation/OnboardingNavigator.tsx:219", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/OnboardingNavigator.tsx:219"}, "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-9db2fb0b166f50c4", "name": "TODO/FIXME marker in shipping code \u2014 src/services/scanQualityService.ts:350", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/scanQualityService.ts:350"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6bb169f8ca8aa41", "name": "Stray `console.log` in TS/JS \u2014 src/services/scanResults/translateAnalysis.ts:255", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/scanResults/translateAnalysis.ts: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-6ac6c67d3557b97e", "name": "Stray `console.log` in TS/JS \u2014 server/aiProxy.ts:429", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/aiProxy.ts:429"}, "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-bbc1a33d4bccd81b", "name": "Stray `console.log` in TS/JS \u2014 server/lib/handlers.ts:596", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/lib/handlers.ts:596"}, "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-ffc86219f8a86e19", "name": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5a4f27cd0c51f3b", "name": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63b4c839a5de29e6", "name": "Insecure pattern 'cors_wildcard' in metro.config.js:146", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in metro.config.js:146"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de92565e9de472f6", "name": "Insecure pattern 'node_child_process' in scripts/verifyAll.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/verifyAll.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d15d01297b3fb9d", "name": "Insecure pattern 'new_function_used' in src/scanQuality/engine.web.ts:64", "shortDescription": {"text": "Insecure pattern 'new_function_used' in src/scanQuality/engine.web.ts:64"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-850c16e0df6622ae", "name": "Insecure pattern 'cors_wildcard' in server/aiProxy.ts:245", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in server/aiProxy.ts:245"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44999171214a96b5", "name": "Very large file: api/proxy/[method].js (14459 lines)", "shortDescription": {"text": "Very large file: api/proxy/[method].js (14459 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-b4eb9d57e82a1c0c", "name": "Very large file: src/api/liveProducts.ts (3619 lines)", "shortDescription": {"text": "Very large file: src/api/liveProducts.ts (3619 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-8408d415a2ff1cec", "name": "Very large file: src/screens/scan/reveal/ScanRevealScreen.tsx (1653 lines)", "shortDescription": {"text": "Very large file: src/screens/scan/reveal/ScanRevealScreen.tsx (1653 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-d5966c5d925551a5", "name": "Very large file: src/screens/assistant/AssistantChatScreen.tsx (1871 lines)", "shortDescription": {"text": "Very large file: src/screens/assistant/AssistantChatScreen.tsx (1871 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-8633c54a552a6f21", "name": "Very large file: src/theme/tokens.ts (2291 lines)", "shortDescription": {"text": "Very large file: src/theme/tokens.ts (2291 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-69d03e14a4d3677e", "name": "Very large file: src/components/AuroraOrb.tsx (1622 lines)", "shortDescription": {"text": "Very large file: src/components/AuroraOrb.tsx (1622 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-1e6594f922f648b8", "name": "Very large file: src/components/dev/AIDiagnosticsScreen.tsx (1901 lines)", "shortDescription": {"text": "Very large file: src/components/dev/AIDiagnosticsScreen.tsx (1901 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-089dc25decda50d2", "name": "Very large file: src/state/skinEdit.ts (1764 lines)", "shortDescription": {"text": "Very large file: src/state/skinEdit.ts (1764 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-c203ca0dc2dc15d1", "name": "Very large file: src/store/useAppStore.ts (1254 lines)", "shortDescription": {"text": "Very large file: src/store/useAppStore.ts (1254 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-a961dac05993ef5f", "name": "Very large file: src/ai/validation.ts (1715 lines)", "shortDescription": {"text": "Very large file: src/ai/validation.ts (1715 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-f76a65cfc5f6478e", "name": "Very large file: src/ai/ai-contracts.ts (1978 lines)", "shortDescription": {"text": "Very large file: src/ai/ai-contracts.ts (1978 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-bdf88fcb14ab9e14", "name": "Very large file: server/openai/openai-client.ts (2393 lines)", "shortDescription": {"text": "Very large file: server/openai/openai-client.ts (2393 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-6e28ec961f73b39e", "name": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 lines)", "shortDescription": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 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-85d91b4d14e8c629", "name": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 lines)", "shortDescription": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "3 test file(s) for 743 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-63c3ff968f92be2e", "name": "39 TODO/FIXME markers", "shortDescription": {"text": "39 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 340 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 204 placeholder/mock markers across 98 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1695de5021f75465", "name": "Commented-code block (9 lines) in index.ts:16", "shortDescription": {"text": "Commented-code block (9 lines) in index.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56b0a55d6bad8aae", "name": "Commented-code block (6 lines) in metro.config.js:78", "shortDescription": {"text": "Commented-code block (6 lines) in metro.config.js:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a4d2c14d88d9985", "name": "Commented-code block (7 lines) in App.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in App.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-018ad3173614e59e", "name": "Legacy-named symbol `isBatchingLegacy` in api/proxy/[method].js:1012", "shortDescription": {"text": "Legacy-named symbol `isBatchingLegacy` in api/proxy/[method].js:1012"}, "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-37f278dcbfbd442c", "name": "Commented-code block (7 lines) in api/proxy/[method].js:1537", "shortDescription": {"text": "Commented-code block (7 lines) in api/proxy/[method].js:1537"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3da07a9f56c4cb9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 api/proxy/[method].js:3262", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/proxy/[method].js:3262"}, "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-c1f048e0ae742d20", "name": "Commented-code block (5 lines) in api/proxy/_handler.ts:64", "shortDescription": {"text": "Commented-code block (5 lines) in api/proxy/_handler.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-1805e34c70bb4599", "name": "Commented-code block (5 lines) in scripts/renderYourSkinShaders.ts:426", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/renderYourSkinShaders.ts:426"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d865c8a812d879eb", "name": "Commented-code block (7 lines) in scripts/verifyAi.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/verifyAi.ts: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-fd4008628a9f1bbe", "name": "Commented-code block (9 lines) in scripts/patch-web-index.js:63", "shortDescription": {"text": "Commented-code block (9 lines) in scripts/patch-web-index.js:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e2574c9bbf3ac5c", "name": "Commented-code block (5 lines) in scripts/verifyScanQuality.ts:41", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/verifyScanQuality.ts: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-d7a16a6a34325834", "name": "Commented-code block (5 lines) in scripts/verifyProductsTab.ts:231", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/verifyProductsTab.ts:231"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d77b7957db64156", "name": "Commented-code block (5 lines) in src/api/probePlan.ts:56", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/probePlan.ts:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4cc2a663e735314", "name": "Commented-code block (6 lines) in src/api/products.ts:42", "shortDescription": {"text": "Commented-code block (6 lines) in src/api/products.ts: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-3d9019b06db338dd", "name": "Commented-code block (5 lines) in src/api/typedSearchDeterministic.ts:39", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/typedSearchDeterministic.ts: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-aa8382bc7363f640", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/openBeautyFactsSearch.ts:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/openBeautyFactsSearch.ts: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-f17524a32b6cf148", "name": "Commented-code block (5 lines) in src/api/candidateTrust.ts:101", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/candidateTrust.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f940e15550b97c93", "name": "Commented-code block (8 lines) in src/api/scan.ts:162", "shortDescription": {"text": "Commented-code block (8 lines) in src/api/scan.ts:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39f48094d9000e2b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/scan.ts:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/scan.ts:79"}, "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-df5b8d5291bd62b1", "name": "Commented-code block (5 lines) in src/api/summaryGuards.ts:64", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/summaryGuards.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-4f034294f6947658", "name": "Commented-code block (7 lines) in src/api/liveProducts.ts:117", "shortDescription": {"text": "Commented-code block (7 lines) in src/api/liveProducts.ts: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-7e9ea02e257d82f0", "name": "Commented-code block (7 lines) in src/api/skinRead.ts:34", "shortDescription": {"text": "Commented-code block (7 lines) in src/api/skinRead.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-6b74f7af014975ee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/skinRead.ts:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/skinRead.ts:49"}, "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-0b708cb2ca677956", "name": "Commented-code block (6 lines) in src/api/seedRetrieval.ts:32", "shortDescription": {"text": "Commented-code block (6 lines) in src/api/seedRetrieval.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dead41c9e5d67550", "name": "Commented-code block (6 lines) in src/api/assistant.ts:139", "shortDescription": {"text": "Commented-code block (6 lines) in src/api/assistant.ts:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b303fea57525813", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/searchProductsBackend.ts:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/searchProductsBackend.ts:144"}, "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-94bc702def3a51b0", "name": "Commented-code block (5 lines) in src/utils/haptics.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/haptics.ts: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-77d0c3a1ca35fee9", "name": "Commented-code block (5 lines) in src/utils/concerns.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/concerns.ts: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-16870e00fa8feb0c", "name": "Commented-code block (6 lines) in src/types/index.ts:77", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/index.ts:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd384859baff394b", "name": "Commented-code block (6 lines) in src/types/canonical.ts:470", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/canonical.ts:470"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab5f65855059d3d8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/types/canonical.ts:306", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/types/canonical.ts:306"}, "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-480841bc5de6846e", "name": "Commented-code block (5 lines) in src/types/skinRead.ts:22", "shortDescription": {"text": "Commented-code block (5 lines) in src/types/skinRead.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-1848768e20e2ae08", "name": "Commented-code block (6 lines) in src/types/scanResults.ts:158", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/scanResults.ts: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-464a6185dd89042f", "name": "Commented-code block (6 lines) in src/screens/progress/SkinScoreHero.tsx:371", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/progress/SkinScoreHero.tsx:371"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f816a51cab6c587", "name": "Commented-code block (5 lines) in src/screens/plan/PlanScreen.tsx:98", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/plan/PlanScreen.tsx:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-184edb5aacc1f1e1", "name": "Commented-code block (5 lines) in src/screens/scan/ScanResultsV2Screen.tsx:178", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/ScanResultsV2Screen.tsx:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8f2d660ffcc8545", "name": "Commented-code block (6 lines) in src/screens/scan/BarcodeResultScreen.tsx:83", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/BarcodeResultScreen.tsx: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-bf5c39fe1d0e5188", "name": "Commented-code block (6 lines) in src/screens/scan/ScanCaptureScreen.tsx:159", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/ScanCaptureScreen.tsx: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-782e81d92c751f80", "name": "Commented-code block (7 lines) in src/screens/scan/scanController.ts:78", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/scan/scanController.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3646f55f51879529", "name": "Commented-code block (6 lines) in src/screens/scan/ScanResultsFaceScreen.tsx:243", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/ScanResultsFaceScreen.tsx:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92872aa428bb9f6d", "name": "Commented-code block (8 lines) in src/screens/scan/ScanResultDetailScreen.tsx:60", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/scan/ScanResultDetailScreen.tsx: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-e7d1a8b5c7065ac8", "name": "Commented-code block (5 lines) in src/screens/scan/seenIntoFocus/motion.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/seenIntoFocus/motion.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-11e8a137a46a100c", "name": "Commented-code block (8 lines) in src/screens/scan/ScanAnalyzing/constants.ts:80", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/scan/ScanAnalyzing/constants.ts:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6851a7e05959f256", "name": "Commented-code block (5 lines) in src/screens/scan/ScanAnalyzing/index.tsx:169", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/ScanAnalyzing/index.tsx:169"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb1b8e66eacbf205", "name": "Commented-code block (9 lines) in src/screens/scan/ScanAnalyzing/components/PhotoStage.tsx:79", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/scan/ScanAnalyzing/components/PhotoStage.tsx: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-ce47d9a592497271", "name": "Commented-code block (6 lines) in src/screens/scan/components/FaceSkinMap.tsx:109", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/components/FaceSkinMap.tsx: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-e057a2c2cddb30ed", "name": "Commented-code block (9 lines) in src/screens/scan/gaze/gazeMotion.ts:33", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/scan/gaze/gazeMotion.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b74c62eac4a9a84b", "name": "Commented-code block (5 lines) in src/screens/scan/gaze/GazeFrame.tsx:202", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/gaze/GazeFrame.tsx:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf37b67a627573d3", "name": "Commented-code block (7 lines) in src/screens/scan/reveal/revealContent.ts:37", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/scan/reveal/revealContent.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-710f9d46858764b7", "name": "Commented-code block (13 lines) in src/screens/scan/reveal/ScanRevealScreen.tsx:91", "shortDescription": {"text": "Commented-code block (13 lines) in src/screens/scan/reveal/ScanRevealScreen.tsx: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-3485c58cc2eceb84", "name": "Commented-code block (5 lines) in src/screens/scan/firstFinding/motion.ts:43", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/firstFinding/motion.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef37d0cf48321869", "name": "Commented-code block (5 lines) in src/screens/scan/firstFinding/faceRegions.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/firstFinding/faceRegions.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03c20bf834d3428a", "name": "Commented-code block (8 lines) in src/screens/scan/firstFinding/metricTint.ts:31", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/scan/firstFinding/metricTint.ts: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-b278e691cd2f2d2a", "name": "Commented-code block (5 lines) in src/screens/scan/yourSkin/fixtures.ts:374", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/yourSkin/fixtures.ts:374"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1038c608b46973d", "name": "Commented-code block (6 lines) in src/screens/scan/yourSkin/yourSkinMotion.ts:29", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/yourSkin/yourSkinMotion.ts: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-97396a94d0831104", "name": "Commented-code block (6 lines) in src/screens/scan/yourSkin/SkinMapCard.tsx:478", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/scan/yourSkin/SkinMapCard.tsx:478"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea5beb34429aa923", "name": "Commented-code block (5 lines) in src/screens/scan/yourSkin/skia/orbShaders.ts:75", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/scan/yourSkin/skia/orbShaders.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-1f0a2ca7fa5c9e29", "name": "Commented-code block (6 lines) in src/screens/onboarding/ColdOpenScreen.tsx:145", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/onboarding/ColdOpenScreen.tsx:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01a7cdf0c5f1fa1b", "name": "Commented-code block (6 lines) in src/screens/onboarding/SynthesisBeat.tsx:89", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/onboarding/SynthesisBeat.tsx:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c1358bed05784b1", "name": "Commented-code block (5 lines) in src/screens/onboarding/AuthChoice.tsx:213", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/onboarding/AuthChoice.tsx:213"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98737a2661b9434d", "name": "Commented-code block (5 lines) in src/screens/onboarding/SignIn.tsx:306", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/onboarding/SignIn.tsx:306"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4544c1329e07e63d", "name": "Commented-code block (6 lines) in src/screens/onboarding/QuestionScreen.tsx:155", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/onboarding/QuestionScreen.tsx: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-d5850bdc33bcb532", "name": "Commented-code block (6 lines) in src/screens/onboarding/questionConfig.ts:439", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/onboarding/questionConfig.ts:439"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7505bce7cb16666f", "name": "Commented-code block (6 lines) in src/screens/onboarding/orb/OrbHost.tsx:223", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/onboarding/orb/OrbHost.tsx:223"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c615faa3047cd07b", "name": "Commented-code block (5 lines) in src/screens/onboarding/orb/OrbSpeech.tsx:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/onboarding/orb/OrbSpeech.tsx: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-c001ddf6932aebef", "name": "Commented-code block (6 lines) in src/screens/shop/personalization.ts:70", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/shop/personalization.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecddcea12dd0a27f", "name": "Commented-code block (6 lines) in src/screens/shop/useShopViewModel.ts:404", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/shop/useShopViewModel.ts:404"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cab6390b18e1fc9b", "name": "Commented-code block (5 lines) in src/screens/shop/shopCatalog.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/shop/shopCatalog.ts: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-7db74ad065841c36", "name": "Commented-code block (5 lines) in src/screens/shop/components/CardStack.tsx:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/shop/components/CardStack.tsx:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fc8c914a609ec9e", "name": "Commented-code block (5 lines) in src/screens/shop/components/StatusSentence.tsx:45", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/shop/components/StatusSentence.tsx: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-3485ddd6a93c1ef8", "name": "Commented-code block (7 lines) in src/screens/shop/components/ShopFeed.tsx:51", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/shop/components/ShopFeed.tsx: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-64b157c5541466c2", "name": "Commented-code block (7 lines) in src/screens/shop/components/StackCard.tsx:75", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/shop/components/StackCard.tsx: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-c187eb47a872f55c", "name": "Commented-code block (6 lines) in src/screens/shop/components/HeroProductCard.tsx:101", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/shop/components/HeroProductCard.tsx: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-0751c7b39c31c5ba", "name": "Commented-code block (6 lines) in src/screens/shop/components/AddButton.tsx:32", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/shop/components/AddButton.tsx: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-ef3a0cab9d471a02", "name": "Commented-code block (5 lines) in src/screens/routine/v25/RoutineV25Screen.tsx:251", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/routine/v25/RoutineV25Screen.tsx:251"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-589b19aef7b7a779", "name": "Commented-code block (7 lines) in src/screens/routine/yourRoutine/fixtures.ts:44", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/routine/yourRoutine/fixtures.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97daf993e84d55a3", "name": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/model.ts:470", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/model.ts:470"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d63f40e909a0cb2b", "name": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/modes/RitualMode.tsx:193", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/modes/RitualMode.tsx:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fba8ac98a5ddb67", "name": "Commented-code block (5 lines) in src/screens/routine/pura/companion/RoutineCompanionScreen.tsx:212", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/routine/pura/companion/RoutineCompanionScreen.tsx:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-522552ae3eedefc6", "name": "Commented-code block (9 lines) in src/screens/routine/pura/companion/companionTokens.ts:35", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/routine/pura/companion/companionTokens.ts: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-9e2e663d66394cd3", "name": "Commented-code block (5 lines) in src/screens/pura27/components/index.tsx:744", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/pura27/components/index.tsx:744"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6ae4843112b9c48", "name": "Commented-code block (5 lines) in src/screens/assistant/AssistantAuroraOrb.tsx:249", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/assistant/AssistantAuroraOrb.tsx:249"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69fb14c1cd74bab1", "name": "Commented-code block (6 lines) in src/screens/assistant/AssistantChatScreen.tsx:735", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/assistant/AssistantChatScreen.tsx:735"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59a9fcc80d72b00f", "name": "Commented-code block (10 lines) in src/screens/assistant/PuraAssistConversationScreen.tsx:123", "shortDescription": {"text": "Commented-code block (10 lines) in src/screens/assistant/PuraAssistConversationScreen.tsx: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-6b894f67257b1064", "name": "Commented-code block (5 lines) in src/screens/assistant/home/dailyHomeModel.ts:187", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/assistant/home/dailyHomeModel.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6336ff4a0adfd018", "name": "Commented-code block (5 lines) in src/screens/assistant/components/StickyComposer.tsx:93", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/assistant/components/StickyComposer.tsx: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-203434a7fdb57e32", "name": "Commented-code block (5 lines) in src/theme/tokens.ts:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/theme/tokens.ts: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-ecc38b8b0b69d929", "name": "Commented-code block (6 lines) in src/theme/ds.ts:166", "shortDescription": {"text": "Commented-code block (6 lines) in src/theme/ds.ts:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f7658601b2ff8b3", "name": "Commented-code block (5 lines) in src/theme/routineAtmosphere.ts:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/theme/routineAtmosphere.ts: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-ba69161a17515914", "name": "Commented-code block (5 lines) in src/components/SkinScoreDial.tsx:325", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/SkinScoreDial.tsx:325"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e89d0e231d2475d9", "name": "Commented-code block (5 lines) in src/components/scan-results/FaceOverlayCanvas.tsx:87", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/scan-results/FaceOverlayCanvas.tsx: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-95779a65c21c9eca", "name": "Commented-code block (7 lines) in src/components/scan-results/FocusAreaResultCard.tsx:60", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/scan-results/FocusAreaResultCard.tsx: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-19d119de50461787", "name": "Commented-code block (5 lines) in src/components/scan/Reticle.tsx:102", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/scan/Reticle.tsx: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-5071e61eab68fcee", "name": "Commented-code block (7 lines) in src/components/dev/AIDiagnosticsScreen.tsx:118", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/dev/AIDiagnosticsScreen.tsx: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-02aa5de1019ed7f7", "name": "Commented-code block (5 lines) in src/components/onboarding/PrimaryButton.tsx:93", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/onboarding/PrimaryButton.tsx: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-a07fc7415b757fd9", "name": "Commented-code block (6 lines) in src/components/products/ProductPlaceholderImage.tsx:125", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/products/ProductPlaceholderImage.tsx:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d4aa0109d231747", "name": "Commented-code block (8 lines) in src/components/products/Accordion.tsx:113", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/products/Accordion.tsx:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ce28a3ef86968d8", "name": "Commented-code block (5 lines) in src/components/products/ProductHero.tsx:49", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/products/ProductHero.tsx: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-b10bf8b78052d39c", "name": "Commented-code block (8 lines) in src/components/products/WhyItWorksPanel.tsx:372", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/products/WhyItWorksPanel.tsx:372"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-883be2afc2ee5916", "name": "Commented-code block (5 lines) in src/components/products/LiveProductCard.tsx:47", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/products/LiveProductCard.tsx: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-6aa6745a448c3298", "name": "Commented-code block (5 lines) in src/components/products/CategoryFeed.tsx:57", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/products/CategoryFeed.tsx: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-4c920c5307134aae", "name": "Commented-code block (6 lines) in src/state/skinEdit.ts:1620", "shortDescription": {"text": "Commented-code block (6 lines) in src/state/skinEdit.ts:1620"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72d7297da5b28da6", "name": "Commented-code block (5 lines) in src/state/progressRoutineInsight.ts:426", "shortDescription": {"text": "Commented-code block (5 lines) in src/state/progressRoutineInsight.ts:426"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-879e6351e4c1f6ff", "name": "Commented-code block (6 lines) in src/state/productUiTrace.ts:108", "shortDescription": {"text": "Commented-code block (6 lines) in src/state/productUiTrace.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47fd43a15e0425e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/state/productUiTrace.ts:211", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/state/productUiTrace.ts:211"}, "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-0a6f012231ae8732", "name": "Commented-code block (6 lines) in src/state/homeNight.ts:184", "shortDescription": {"text": "Commented-code block (6 lines) in src/state/homeNight.ts:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6142a1fad40b994a", "name": "Commented-code block (6 lines) in src/state/tonightObservation.ts:230", "shortDescription": {"text": "Commented-code block (6 lines) in src/state/tonightObservation.ts: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-41ba38c8461a0da2", "name": "Commented-code block (12 lines) in src/store/useAppStore.ts:679", "shortDescription": {"text": "Commented-code block (12 lines) in src/store/useAppStore.ts:679"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2a5dc58c8ad1182", "name": "Commented-code block (5 lines) in src/scanQuality/thresholds.ts:77", "shortDescription": {"text": "Commented-code block (5 lines) in src/scanQuality/thresholds.ts:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-feb6bb29d396f41e", "name": "Commented-code block (5 lines) in src/navigation/TabNavigator.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/navigation/TabNavigator.tsx: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-d3bbd52d9f82c982", "name": "Commented-code block (12 lines) in src/navigation/FloatingTabBar.tsx:247", "shortDescription": {"text": "Commented-code block (12 lines) in src/navigation/FloatingTabBar.tsx:247"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43ee421b591c04fa", "name": "Commented-code block (8 lines) in src/navigation/ScanModalStack.tsx:228", "shortDescription": {"text": "Commented-code block (8 lines) in src/navigation/ScanModalStack.tsx:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55ea629bc08b65f9", "name": "Commented-code block (6 lines) in src/navigation/OnboardingNavigator.tsx:142", "shortDescription": {"text": "Commented-code block (6 lines) in src/navigation/OnboardingNavigator.tsx: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-076c7f06c4aed28d", "name": "Commented-code block (5 lines) in src/lib/exportUserData.ts:48", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/exportUserData.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-ae407fdc418aff3d", "name": "Commented-code block (6 lines) in src/lib/commerceEnrichment.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/commerceEnrichment.ts: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-84cd5ff744986d92", "name": "Commented-code block (9 lines) in src/services/scanResults/translateAnalysis.ts:119", "shortDescription": {"text": "Commented-code block (9 lines) in src/services/scanResults/translateAnalysis.ts: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-cc2a403255a69061", "name": "Commented-code block (5 lines) in src/services/scanResults/concernCatalog.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/scanResults/concernCatalog.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-f068cd8e09c813d8", "name": "Commented-code block (5 lines) in src/ai/translateAnalysis.ts:45", "shortDescription": {"text": "Commented-code block (5 lines) in src/ai/translateAnalysis.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02a4c5b5d882fa09", "name": "Commented-code block (6 lines) in src/ai/validation.ts:1168", "shortDescription": {"text": "Commented-code block (6 lines) in src/ai/validation.ts:1168"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2e9a71375547f0e", "name": "Commented-code block (8 lines) in src/ai/ai-contracts.ts:216", "shortDescription": {"text": "Commented-code block (8 lines) in src/ai/ai-contracts.ts:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c4724f7e98c4780", "name": "Commented-code block (8 lines) in src/ai/aiGateway.ts:172", "shortDescription": {"text": "Commented-code block (8 lines) in src/ai/aiGateway.ts:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92b5765420d469ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/ai/aiGateway.ts:490", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ai/aiGateway.ts:490"}, "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-d3250f35117c0e98", "name": "Commented-code block (7 lines) in src/ai/aiTelemetry.ts:168", "shortDescription": {"text": "Commented-code block (7 lines) in src/ai/aiTelemetry.ts:168"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eef457b8cd0f9aa5", "name": "Commented-code block (14 lines) in src/copy/strings.ts:63", "shortDescription": {"text": "Commented-code block (14 lines) in src/copy/strings.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb35f3ecfef10484", "name": "Commented-code block (7 lines) in server/aiProxy.ts:52", "shortDescription": {"text": "Commented-code block (7 lines) in server/aiProxy.ts:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-242b47f317b8d5e1", "name": "Legacy-named symbol `scan_result_v2` in server/openai/openai-client.ts:1252", "shortDescription": {"text": "Legacy-named symbol `scan_result_v2` in server/openai/openai-client.ts:1252"}, "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-205c0dc6a0178069", "name": "Commented-code block (7 lines) in server/openai/openai-client.ts:166", "shortDescription": {"text": "Commented-code block (7 lines) in server/openai/openai-client.ts:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5adc20f58b83f920", "name": "Commented-code block (6 lines) in server/lib/handlers.ts:212", "shortDescription": {"text": "Commented-code block (6 lines) in server/lib/handlers.ts:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef804588cf03aad4", "name": "Commented-code block (5 lines) in server/lib/searchProducts.ts:193", "shortDescription": {"text": "Commented-code block (5 lines) in server/lib/searchProducts.ts:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4eb45fabe3d35fe2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/vision_bundle.mjs:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/vision_bundle.mjs:1"}, "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-4036add49728a68b", "name": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143", "shortDescription": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143"}, "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-ccedad758f7c1e2e", "name": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:14", "shortDescription": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b876081f0e3c42b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140"}, "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-ae20fb0511e42254", "name": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143", "shortDescription": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143"}, "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-cdade13839f63082", "name": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.js:14", "shortDescription": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de74b22bfde1ed47", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140"}, "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-3482f7e5dd70cd1a", "name": "6 env vars used in code but missing from .env.example", "shortDescription": {"text": "6 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `EXPO_PUBLIC_SHOW_PRODUCT_DEBUG`, `NODE_ENV`, `PORT`, `PURA_AI_ALLOWED_ORIGINS`, `PURA_AI_PROXY_URL`, `PURA_WEB`. 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-a9c18f8146cbc8c2", "name": "Dangling fetch: POST /__pura_ai__/readSkin (scripts/_live_scan_test.mjs:46)", "shortDescription": {"text": "Dangling fetch: POST /__pura_ai__/readSkin (scripts/_live_scan_test.mjs:46)"}, "fullDescription": {"text": "`scripts/_live_scan_test.mjs:46` calls `POST /__pura_ai__/readSkin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/__pura_ai__/readskin`\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-046dda00f1450b3d", "name": "Unused endpoint: POST /chat/completions", "shortDescription": {"text": "Unused endpoint: POST /chat/completions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /chat/completions` 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-731e0756c2fefc2d", "name": "Unused endpoint: POST /audio/speech", "shortDescription": {"text": "Unused endpoint: POST /audio/speech"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /audio/speech` 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-0703b07fb8e8b6f0", "name": "Unused endpoint: POST /audio/transcriptions", "shortDescription": {"text": "Unused endpoint: POST /audio/transcriptions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /audio/transcriptions` 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-977b39ba4216e247", "name": "Unused endpoint: POST /audio/translations", "shortDescription": {"text": "Unused endpoint: POST /audio/translations"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /audio/translations` 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-9ed84d434d52c021", "name": "Unused endpoint: POST /batches", "shortDescription": {"text": "Unused endpoint: POST /batches"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /batches` 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-7732e5fbd854c6d4", "name": "Unused endpoint: POST /assistants", "shortDescription": {"text": "Unused endpoint: POST /assistants"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /assistants` 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-30495157336e2746", "name": "Unused endpoint: POST /realtime/sessions", "shortDescription": {"text": "Unused endpoint: POST /realtime/sessions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /realtime/sessions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc74f5339c055526", "name": "Unused endpoint: POST /realtime/transcription_sessions", "shortDescription": {"text": "Unused endpoint: POST /realtime/transcription_sessions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /realtime/transcription_sessions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47c404592e01220b", "name": "Unused endpoint: POST /chatkit/sessions", "shortDescription": {"text": "Unused endpoint: POST /chatkit/sessions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /chatkit/sessions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-686be4977a495430", "name": "Unused endpoint: POST /threads", "shortDescription": {"text": "Unused endpoint: POST /threads"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /threads` 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-9390b6aa85bd274e", "name": "Unused endpoint: POST /threads/runs", "shortDescription": {"text": "Unused endpoint: POST /threads/runs"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /threads/runs` 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-8f29cff29921a3be", "name": "Unused endpoint: POST /completions", "shortDescription": {"text": "Unused endpoint: POST /completions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /completions` 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-43887b06a6508e4f", "name": "Unused endpoint: POST /containers", "shortDescription": {"text": "Unused endpoint: POST /containers"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /containers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ee7ac4b5c5364e8", "name": "Unused endpoint: POST /conversations", "shortDescription": {"text": "Unused endpoint: POST /conversations"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /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-2494ea4326b03b3f", "name": "Unused endpoint: POST /embeddings", "shortDescription": {"text": "Unused endpoint: POST /embeddings"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /embeddings` 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-6bc94f0922e3a219", "name": "Unused endpoint: POST /evals", "shortDescription": {"text": "Unused endpoint: POST /evals"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /evals` 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-f1320a5ffe374dac", "name": "Unused endpoint: POST /files", "shortDescription": {"text": "Unused endpoint: POST /files"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /files` 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-c974b540a6ec79a6", "name": "Unused endpoint: POST /fine_tuning/alpha/graders/run", "shortDescription": {"text": "Unused endpoint: POST /fine_tuning/alpha/graders/run"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /fine_tuning/alpha/graders/run` 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-d3fded90dc607ec2", "name": "Unused endpoint: POST /fine_tuning/alpha/graders/validate", "shortDescription": {"text": "Unused endpoint: POST /fine_tuning/alpha/graders/validate"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /fine_tuning/alpha/graders/validate` 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-2439d65365ac9535", "name": "Unused endpoint: POST /fine_tuning/jobs", "shortDescription": {"text": "Unused endpoint: POST /fine_tuning/jobs"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /fine_tuning/jobs` 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-e6adff703d49c7d2", "name": "Unused endpoint: POST /images/variations", "shortDescription": {"text": "Unused endpoint: POST /images/variations"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /images/variations` 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-03133b2476295fb4", "name": "Unused endpoint: POST /images/edits", "shortDescription": {"text": "Unused endpoint: POST /images/edits"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /images/edits` 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-e4c5c41cb8097be5", "name": "Unused endpoint: POST /images/generations", "shortDescription": {"text": "Unused endpoint: POST /images/generations"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /images/generations` 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-dc2b015738c65b1b", "name": "Unused endpoint: POST /moderations", "shortDescription": {"text": "Unused endpoint: POST /moderations"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /moderations` 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-11e9757ab463439e", "name": "Unused endpoint: POST /realtime/client_secrets", "shortDescription": {"text": "Unused endpoint: POST /realtime/client_secrets"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /realtime/client_secrets` 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-d58c39d1475cdf14", "name": "Unused endpoint: POST /responses/input_tokens", "shortDescription": {"text": "Unused endpoint: POST /responses/input_tokens"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /responses/input_tokens` 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-90e52654c4efbe1d", "name": "Unused endpoint: POST /responses", "shortDescription": {"text": "Unused endpoint: POST /responses"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /responses` 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-2f40182428f41c6a", "name": "Unused endpoint: POST /responses/compact", "shortDescription": {"text": "Unused endpoint: POST /responses/compact"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /responses/compact` 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-ce7fe565b4caff57", "name": "Unused endpoint: POST /skills", "shortDescription": {"text": "Unused endpoint: POST /skills"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /skills` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f440e5eb48cf128b", "name": "Unused endpoint: POST /uploads", "shortDescription": {"text": "Unused endpoint: POST /uploads"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /uploads` 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-09e66fd1b47698ad", "name": "Unused endpoint: POST /vector_stores", "shortDescription": {"text": "Unused endpoint: POST /vector_stores"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /vector_stores` 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-83b40e43b99732cc", "name": "Unused endpoint: POST /videos", "shortDescription": {"text": "Unused endpoint: POST /videos"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /videos` 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-d2a3df2035caba6d", "name": "Unused endpoint: POST /videos/characters", "shortDescription": {"text": "Unused endpoint: POST /videos/characters"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /videos/characters` 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-c2459c17138e710d", "name": "Unused endpoint: POST /videos/edits", "shortDescription": {"text": "Unused endpoint: POST /videos/edits"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /videos/edits` 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-ed98da626305f0d1", "name": "Unused endpoint: POST /videos/extensions", "shortDescription": {"text": "Unused endpoint: POST /videos/extensions"}, "fullDescription": {"text": "`api/proxy/[method].js` declares `POST /videos/extensions` 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/23868"}, "properties": {"repository": "abieazizo/pura-ai", "repoUrl": "https://github.com/abieazizo/pura-ai", "branch": "main"}, "results": [{"ruleId": "scanner-118ca04185cb0ce2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 metro.config.js:90"}, "properties": {"repobilityId": "f02f00145fe06eb7", "scanner": "scanner-primary", "fingerprint": "118ca04185cb0ce2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54c9d69013a58b92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/proxy/[method].js:3142"}, "properties": {"repobilityId": "efd8152cf7395fd5", "scanner": "scanner-primary", "fingerprint": "54c9d69013a58b92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac7629aa3e8c3b76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 api/proxy/_handler.ts:220"}, "properties": {"repobilityId": "b4d3e3353bccf5eb", "scanner": "scanner-primary", "fingerprint": "ac7629aa3e8c3b76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a492c8cebead36ba", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/lanip.ts:54"}, "properties": {"repobilityId": "fd2e872e84cbe2ab", "scanner": "scanner-primary", "fingerprint": "a492c8cebead36ba", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41d9106bb675e213", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyReduceMotion.ts:200"}, "properties": {"repobilityId": "b6701f40ba6b2855", "scanner": "scanner-primary", "fingerprint": "41d9106bb675e213", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-72f14289c81b7a46", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourRoutine.ts:28"}, "properties": {"repobilityId": "645d54a0941189ea", "scanner": "scanner-primary", "fingerprint": "72f14289c81b7a46", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac0cc8383e051dc6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeNight.ts:282"}, "properties": {"repobilityId": "ab64bf16d3eafaf1", "scanner": "scanner-primary", "fingerprint": "ac0cc8383e051dc6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3abec3c8cac9e68a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyYourSkin.ts:54"}, "properties": {"repobilityId": "eba4e15e9811e026", "scanner": "scanner-primary", "fingerprint": "3abec3c8cac9e68a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54d2df2dc5d6458b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/renderYourSkinShaders.ts:66"}, "properties": {"repobilityId": "bef748b13d2c8333", "scanner": "scanner-primary", "fingerprint": "54d2df2dc5d6458b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c441b1f42ffd4e4e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyHomeRecommendation.ts:138"}, "properties": {"repobilityId": "22dfbed7986cb030", "scanner": "scanner-primary", "fingerprint": "c441b1f42ffd4e4e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-085fdc539a3b67bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyAi.ts:514"}, "properties": {"repobilityId": "bdca0d17ac4055cd", "scanner": "scanner-primary", "fingerprint": "085fdc539a3b67bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8560f7b6882e9443", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/patch-web-index.js:90"}, "properties": {"repobilityId": "f67390df6b6be7f7", "scanner": "scanner-primary", "fingerprint": "8560f7b6882e9443", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-90dc2f9b87336c24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/checkLinkHealth.ts:52"}, "properties": {"repobilityId": "f0a8e4f571360636", "scanner": "scanner-primary", "fingerprint": "90dc2f9b87336c24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19f9fbfb9a7ac423", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyShopHonesty.ts:26"}, "properties": {"repobilityId": "d357eabaa6d8c728", "scanner": "scanner-primary", "fingerprint": "19f9fbfb9a7ac423", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-07eb45cb7454a2ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/design-shot.js:151"}, "properties": {"repobilityId": "c5f828efa413a95c", "scanner": "scanner-primary", "fingerprint": "07eb45cb7454a2ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-141cf3ed3d921766", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyDailyHome.ts:30"}, "properties": {"repobilityId": "f86151c48f72749c", "scanner": "scanner-primary", "fingerprint": "141cf3ed3d921766", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7bd2304bcd3c6a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyScanQuality.ts:34"}, "properties": {"repobilityId": "5c8da66a264bc0fe", "scanner": "scanner-primary", "fingerprint": "f7bd2304bcd3c6a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68f6cb78d6f92dd5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyRescanCompare.ts:30"}, "properties": {"repobilityId": "7ed9e08d6a496806", "scanner": "scanner-primary", "fingerprint": "68f6cb78d6f92dd5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3fbbdd2dce680652", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyProductsTab.ts:96"}, "properties": {"repobilityId": "a61eb2be45ff1729", "scanner": "scanner-primary", "fingerprint": "3fbbdd2dce680652", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6db88916b92418eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyAll.ts:51"}, "properties": {"repobilityId": "4d8d2f0b333e838e", "scanner": "scanner-primary", "fingerprint": "6db88916b92418eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1d37558da7e6274", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyFirstFinding.ts:40"}, "properties": {"repobilityId": "d60933aea13183b8", "scanner": "scanner-primary", "fingerprint": "f1d37558da7e6274", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-71875df353ab7531", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/verifyMoneyEngine.ts:25"}, "properties": {"repobilityId": "8e42caaf5933d287", "scanner": "scanner-primary", "fingerprint": "71875df353ab7531", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2bd64f532f8ddb73", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/fetch-product-images.ts:345"}, "properties": {"repobilityId": "6aa74bbadd9af114", "scanner": "scanner-primary", "fingerprint": "2bd64f532f8ddb73", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7433a427d1d3ff6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/api/scan.ts:154"}, "properties": {"repobilityId": "24e42a18ff023918", "scanner": "scanner-primary", "fingerprint": "7433a427d1d3ff6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c5600aa9fc25cdbc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/api/skinRead.ts:165"}, "properties": {"repobilityId": "454a3187594cfdb7", "scanner": "scanner-primary", "fingerprint": "c5600aa9fc25cdbc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f61f962f6eab713f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/devConsole.ts:29"}, "properties": {"repobilityId": "26c6d422b7283304", "scanner": "scanner-primary", "fingerprint": "f61f962f6eab713f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0dbb5e1ffa2f769", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanCaptureScreen.tsx:517"}, "properties": {"repobilityId": "eb45d4fb22ea854d", "scanner": "scanner-primary", "fingerprint": "d0dbb5e1ffa2f769", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8127876a0f8b8401", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanResultsFaceScreen.tsx:84"}, "properties": {"repobilityId": "e5795d84302ec913", "scanner": "scanner-primary", "fingerprint": "8127876a0f8b8401", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1a6eb4a2ffedcc97", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/scan/ScanAnalyzing/index.tsx:65"}, "properties": {"repobilityId": "c807c79ea391d7e9", "scanner": "scanner-primary", "fingerprint": "1a6eb4a2ffedcc97", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2758df405eebd7a6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/onboarding/ColdOpenScreen.tsx:307"}, "properties": {"repobilityId": "394f2439445f8d6c", "scanner": "scanner-primary", "fingerprint": "2758df405eebd7a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c365f54f78e092d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scanQuality/engine.web.ts:207"}, "properties": {"repobilityId": "b518fff5396640be", "scanner": "scanner-primary", "fingerprint": "c365f54f78e092d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-456b3a6e302a520b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/OnboardingNavigator.tsx:219"}, "properties": {"repobilityId": "b9d443ed0939a9b8", "scanner": "scanner-primary", "fingerprint": "456b3a6e302a520b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9db2fb0b166f50c4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/scanQualityService.ts:350"}, "properties": {"repobilityId": "c153b86121d48dc3", "scanner": "scanner-primary", "fingerprint": "9db2fb0b166f50c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b6bb169f8ca8aa41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/scanResults/translateAnalysis.ts:255"}, "properties": {"repobilityId": "9bf0374ad853c67b", "scanner": "scanner-primary", "fingerprint": "b6bb169f8ca8aa41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6ac6c67d3557b97e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/aiProxy.ts:429"}, "properties": {"repobilityId": "01b993f891e0e1d4", "scanner": "scanner-primary", "fingerprint": "6ac6c67d3557b97e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bbc1a33d4bccd81b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/lib/handlers.ts:596"}, "properties": {"repobilityId": "e24c7d2cfd272ee9", "scanner": "scanner-primary", "fingerprint": "bbc1a33d4bccd81b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ffc86219f8a86e19", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:183"}, "properties": {"repobilityId": "b3c1a84cfce776bc", "scanner": "scanner-primary", "fingerprint": "ffc86219f8a86e19", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a5a4f27cd0c51f3b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 public/mediapipe/wasm/vision_wasm_internal.js:183"}, "properties": {"repobilityId": "10b080a34a6645c7", "scanner": "scanner-primary", "fingerprint": "a5a4f27cd0c51f3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-63b4c839a5de29e6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in metro.config.js:146"}, "properties": {"repobilityId": "fe0e00a0a44d641e", "scanner": "scanner-primary", "fingerprint": "63b4c839a5de29e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "metro.config.js"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-de92565e9de472f6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/verifyAll.ts:20"}, "properties": {"repobilityId": "513b838953a2a780", "scanner": "scanner-primary", "fingerprint": "de92565e9de472f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/verifyAll.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-1d15d01297b3fb9d", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in src/scanQuality/engine.web.ts:64"}, "properties": {"repobilityId": "9e58cd733d09f216", "scanner": "scanner-primary", "fingerprint": "1d15d01297b3fb9d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/scanQuality/engine.web.ts"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-850c16e0df6622ae", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in server/aiProxy.ts:245"}, "properties": {"repobilityId": "5dfc8a911532658a", "scanner": "scanner-primary", "fingerprint": "850c16e0df6622ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/aiProxy.ts"}, "region": {"startLine": 245}}}]}, {"ruleId": "scanner-44999171214a96b5", "level": "note", "message": {"text": "Very large file: api/proxy/[method].js (14459 lines)"}, "properties": {"repobilityId": "46d1a9b712ccc315", "scanner": "scanner-primary", "fingerprint": "44999171214a96b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b4eb9d57e82a1c0c", "level": "note", "message": {"text": "Very large file: src/api/liveProducts.ts (3619 lines)"}, "properties": {"repobilityId": "1574fa250b223e7b", "scanner": "scanner-primary", "fingerprint": "b4eb9d57e82a1c0c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8408d415a2ff1cec", "level": "note", "message": {"text": "Very large file: src/screens/scan/reveal/ScanRevealScreen.tsx (1653 lines)"}, "properties": {"repobilityId": "4def834370c46966", "scanner": "scanner-primary", "fingerprint": "8408d415a2ff1cec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5966c5d925551a5", "level": "note", "message": {"text": "Very large file: src/screens/assistant/AssistantChatScreen.tsx (1871 lines)"}, "properties": {"repobilityId": "e66aacda2b38ecbe", "scanner": "scanner-primary", "fingerprint": "d5966c5d925551a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8633c54a552a6f21", "level": "note", "message": {"text": "Very large file: src/theme/tokens.ts (2291 lines)"}, "properties": {"repobilityId": "bcf4367784915197", "scanner": "scanner-primary", "fingerprint": "8633c54a552a6f21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-69d03e14a4d3677e", "level": "note", "message": {"text": "Very large file: src/components/AuroraOrb.tsx (1622 lines)"}, "properties": {"repobilityId": "c51b728f37481562", "scanner": "scanner-primary", "fingerprint": "69d03e14a4d3677e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1e6594f922f648b8", "level": "note", "message": {"text": "Very large file: src/components/dev/AIDiagnosticsScreen.tsx (1901 lines)"}, "properties": {"repobilityId": "7c208a1b208b161d", "scanner": "scanner-primary", "fingerprint": "1e6594f922f648b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-089dc25decda50d2", "level": "note", "message": {"text": "Very large file: src/state/skinEdit.ts (1764 lines)"}, "properties": {"repobilityId": "5ef735009f19d84c", "scanner": "scanner-primary", "fingerprint": "089dc25decda50d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c203ca0dc2dc15d1", "level": "note", "message": {"text": "Very large file: src/store/useAppStore.ts (1254 lines)"}, "properties": {"repobilityId": "2c8a1c4ec7d6134c", "scanner": "scanner-primary", "fingerprint": "c203ca0dc2dc15d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a961dac05993ef5f", "level": "note", "message": {"text": "Very large file: src/ai/validation.ts (1715 lines)"}, "properties": {"repobilityId": "00bc74ba7c96f0b9", "scanner": "scanner-primary", "fingerprint": "a961dac05993ef5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f76a65cfc5f6478e", "level": "note", "message": {"text": "Very large file: src/ai/ai-contracts.ts (1978 lines)"}, "properties": {"repobilityId": "102b2844bd0a1723", "scanner": "scanner-primary", "fingerprint": "f76a65cfc5f6478e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bdf88fcb14ab9e14", "level": "note", "message": {"text": "Very large file: server/openai/openai-client.ts (2393 lines)"}, "properties": {"repobilityId": "bb8dd5defc490272", "scanner": "scanner-primary", "fingerprint": "bdf88fcb14ab9e14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6e28ec961f73b39e", "level": "note", "message": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_nosimd_internal.js (8818 lines)"}, "properties": {"repobilityId": "972982e1dc73a0a1", "scanner": "scanner-primary", "fingerprint": "6e28ec961f73b39e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85d91b4d14e8c629", "level": "note", "message": {"text": "Very large file: public/mediapipe/wasm/vision_wasm_internal.js (8827 lines)"}, "properties": {"repobilityId": "cd11362b784a584c", "scanner": "scanner-primary", "fingerprint": "85d91b4d14e8c629", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-63c3ff968f92be2e", "level": "note", "message": {"text": "39 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "63c3ff968f92be2e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "a782f0e4af254df2", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "786f157f0e16a0e7", "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": "ab542e7f29ad6859", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "8822a537db95b481", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b1cdfdf01cf4a777", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "0c70761486893629", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-1695de5021f75465", "level": "none", "message": {"text": "Commented-code block (9 lines) in index.ts:16"}, "properties": {"repobilityId": "3c57f9fa71ccfddf", "scanner": "scanner-primary", "fingerprint": "1695de5021f75465", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56b0a55d6bad8aae", "level": "none", "message": {"text": "Commented-code block (6 lines) in metro.config.js:78"}, "properties": {"repobilityId": "a33795c67db6cfe0", "scanner": "scanner-primary", "fingerprint": "56b0a55d6bad8aae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a4d2c14d88d9985", "level": "none", "message": {"text": "Commented-code block (7 lines) in App.tsx:5"}, "properties": {"repobilityId": "f1d75dabbc8f3244", "scanner": "scanner-primary", "fingerprint": "2a4d2c14d88d9985", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-018ad3173614e59e", "level": "note", "message": {"text": "Legacy-named symbol `isBatchingLegacy` in api/proxy/[method].js:1012"}, "properties": {"repobilityId": "3a37a307f320ec05", "scanner": "scanner-primary", "fingerprint": "018ad3173614e59e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-37f278dcbfbd442c", "level": "none", "message": {"text": "Commented-code block (7 lines) in api/proxy/[method].js:1537"}, "properties": {"repobilityId": "2dc5bbb5d628c927", "scanner": "scanner-primary", "fingerprint": "37f278dcbfbd442c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3da07a9f56c4cb9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 api/proxy/[method].js:3262"}, "properties": {"repobilityId": "ca6c7798482aedde", "scanner": "scanner-primary", "fingerprint": "e3da07a9f56c4cb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c1f048e0ae742d20", "level": "none", "message": {"text": "Commented-code block (5 lines) in api/proxy/_handler.ts:64"}, "properties": {"repobilityId": "8a9db8f198a22dda", "scanner": "scanner-primary", "fingerprint": "c1f048e0ae742d20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1805e34c70bb4599", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/renderYourSkinShaders.ts:426"}, "properties": {"repobilityId": "f17a8552d91a1ecc", "scanner": "scanner-primary", "fingerprint": "1805e34c70bb4599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d865c8a812d879eb", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/verifyAi.ts:54"}, "properties": {"repobilityId": "1d1c96839061006b", "scanner": "scanner-primary", "fingerprint": "d865c8a812d879eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd4008628a9f1bbe", "level": "none", "message": {"text": "Commented-code block (9 lines) in scripts/patch-web-index.js:63"}, "properties": {"repobilityId": "b89a8f55b318f9f4", "scanner": "scanner-primary", "fingerprint": "fd4008628a9f1bbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e2574c9bbf3ac5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/verifyScanQuality.ts:41"}, "properties": {"repobilityId": "fb6e10a4a9e6cbc1", "scanner": "scanner-primary", "fingerprint": "2e2574c9bbf3ac5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7a16a6a34325834", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/verifyProductsTab.ts:231"}, "properties": {"repobilityId": "fcab54419acf055a", "scanner": "scanner-primary", "fingerprint": "d7a16a6a34325834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d77b7957db64156", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/probePlan.ts:56"}, "properties": {"repobilityId": "f725aaf34790659b", "scanner": "scanner-primary", "fingerprint": "6d77b7957db64156", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4cc2a663e735314", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/api/products.ts:42"}, "properties": {"repobilityId": "6085ea495ab5a988", "scanner": "scanner-primary", "fingerprint": "f4cc2a663e735314", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d9019b06db338dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/typedSearchDeterministic.ts:39"}, "properties": {"repobilityId": "2d4ffa7ad5e90335", "scanner": "scanner-primary", "fingerprint": "3d9019b06db338dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa8382bc7363f640", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/openBeautyFactsSearch.ts:28"}, "properties": {"repobilityId": "a3e2f3207d28cfd7", "scanner": "scanner-primary", "fingerprint": "aa8382bc7363f640", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f17524a32b6cf148", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/candidateTrust.ts:101"}, "properties": {"repobilityId": "ceba0981a660ab68", "scanner": "scanner-primary", "fingerprint": "f17524a32b6cf148", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f940e15550b97c93", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/api/scan.ts:162"}, "properties": {"repobilityId": "2297d00f0aa56d25", "scanner": "scanner-primary", "fingerprint": "f940e15550b97c93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39f48094d9000e2b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/scan.ts:79"}, "properties": {"repobilityId": "05267357f81dcaf0", "scanner": "scanner-primary", "fingerprint": "39f48094d9000e2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df5b8d5291bd62b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/summaryGuards.ts:64"}, "properties": {"repobilityId": "ac187c4a4b90833d", "scanner": "scanner-primary", "fingerprint": "df5b8d5291bd62b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f034294f6947658", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/api/liveProducts.ts:117"}, "properties": {"repobilityId": "42f6195b2bf1168f", "scanner": "scanner-primary", "fingerprint": "4f034294f6947658", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e9ea02e257d82f0", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/api/skinRead.ts:34"}, "properties": {"repobilityId": "795a1f9eabf28d8e", "scanner": "scanner-primary", "fingerprint": "7e9ea02e257d82f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b74f7af014975ee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/skinRead.ts:49"}, "properties": {"repobilityId": "4cf632fe5a325e77", "scanner": "scanner-primary", "fingerprint": "6b74f7af014975ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b708cb2ca677956", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/api/seedRetrieval.ts:32"}, "properties": {"repobilityId": "c392d7cf1aa1f5b5", "scanner": "scanner-primary", "fingerprint": "0b708cb2ca677956", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dead41c9e5d67550", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/api/assistant.ts:139"}, "properties": {"repobilityId": "4b410daa826959ec", "scanner": "scanner-primary", "fingerprint": "dead41c9e5d67550", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b303fea57525813", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/searchProductsBackend.ts:144"}, "properties": {"repobilityId": "0958384b27460734", "scanner": "scanner-primary", "fingerprint": "4b303fea57525813", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-94bc702def3a51b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/haptics.ts:12"}, "properties": {"repobilityId": "2e3d8ed6a5fe35cf", "scanner": "scanner-primary", "fingerprint": "94bc702def3a51b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77d0c3a1ca35fee9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/concerns.ts:112"}, "properties": {"repobilityId": "6044ac5ed9f3d35c", "scanner": "scanner-primary", "fingerprint": "77d0c3a1ca35fee9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16870e00fa8feb0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/index.ts:77"}, "properties": {"repobilityId": "6e5f21c9e4d1aa6a", "scanner": "scanner-primary", "fingerprint": "16870e00fa8feb0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd384859baff394b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/canonical.ts:470"}, "properties": {"repobilityId": "116a3b9dfdff5672", "scanner": "scanner-primary", "fingerprint": "dd384859baff394b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab5f65855059d3d8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/types/canonical.ts:306"}, "properties": {"repobilityId": "27ba29227ee93dff", "scanner": "scanner-primary", "fingerprint": "ab5f65855059d3d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-480841bc5de6846e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/types/skinRead.ts:22"}, "properties": {"repobilityId": "5f78ec662eb43da3", "scanner": "scanner-primary", "fingerprint": "480841bc5de6846e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1848768e20e2ae08", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/scanResults.ts:158"}, "properties": {"repobilityId": "432c04eac54573a0", "scanner": "scanner-primary", "fingerprint": "1848768e20e2ae08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-464a6185dd89042f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/progress/SkinScoreHero.tsx:371"}, "properties": {"repobilityId": "2dea6e746eafcde5", "scanner": "scanner-primary", "fingerprint": "464a6185dd89042f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f816a51cab6c587", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/plan/PlanScreen.tsx:98"}, "properties": {"repobilityId": "484424736113de51", "scanner": "scanner-primary", "fingerprint": "6f816a51cab6c587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-184edb5aacc1f1e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/ScanResultsV2Screen.tsx:178"}, "properties": {"repobilityId": "f29baabfdf345449", "scanner": "scanner-primary", "fingerprint": "184edb5aacc1f1e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8f2d660ffcc8545", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/BarcodeResultScreen.tsx:83"}, "properties": {"repobilityId": "9c1f1ee1fa60819a", "scanner": "scanner-primary", "fingerprint": "e8f2d660ffcc8545", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf5c39fe1d0e5188", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/ScanCaptureScreen.tsx:159"}, "properties": {"repobilityId": "9ebb9cf15405262d", "scanner": "scanner-primary", "fingerprint": "bf5c39fe1d0e5188", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-782e81d92c751f80", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/scan/scanController.ts:78"}, "properties": {"repobilityId": "cefb68a3a470d980", "scanner": "scanner-primary", "fingerprint": "782e81d92c751f80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3646f55f51879529", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/ScanResultsFaceScreen.tsx:243"}, "properties": {"repobilityId": "1c62559f738c92b3", "scanner": "scanner-primary", "fingerprint": "3646f55f51879529", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92872aa428bb9f6d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/scan/ScanResultDetailScreen.tsx:60"}, "properties": {"repobilityId": "4b7bf5f198c60754", "scanner": "scanner-primary", "fingerprint": "92872aa428bb9f6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7d1a8b5c7065ac8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/seenIntoFocus/motion.ts:36"}, "properties": {"repobilityId": "0e07ccc01c5d04ba", "scanner": "scanner-primary", "fingerprint": "e7d1a8b5c7065ac8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11e8a137a46a100c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/scan/ScanAnalyzing/constants.ts:80"}, "properties": {"repobilityId": "b1f0378746431153", "scanner": "scanner-primary", "fingerprint": "11e8a137a46a100c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6851a7e05959f256", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/ScanAnalyzing/index.tsx:169"}, "properties": {"repobilityId": "1c6dfe802fe5bd37", "scanner": "scanner-primary", "fingerprint": "6851a7e05959f256", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb1b8e66eacbf205", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/scan/ScanAnalyzing/components/PhotoStage.tsx:79"}, "properties": {"repobilityId": "23852821c9e362e8", "scanner": "scanner-primary", "fingerprint": "bb1b8e66eacbf205", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce47d9a592497271", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/components/FaceSkinMap.tsx:109"}, "properties": {"repobilityId": "60376bfbac9114b2", "scanner": "scanner-primary", "fingerprint": "ce47d9a592497271", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e057a2c2cddb30ed", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/scan/gaze/gazeMotion.ts:33"}, "properties": {"repobilityId": "fa71706fd499941d", "scanner": "scanner-primary", "fingerprint": "e057a2c2cddb30ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b74c62eac4a9a84b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/gaze/GazeFrame.tsx:202"}, "properties": {"repobilityId": "dd3eeb925b83ba44", "scanner": "scanner-primary", "fingerprint": "b74c62eac4a9a84b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf37b67a627573d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/scan/reveal/revealContent.ts:37"}, "properties": {"repobilityId": "f405f84bbb70a364", "scanner": "scanner-primary", "fingerprint": "cf37b67a627573d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-710f9d46858764b7", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/screens/scan/reveal/ScanRevealScreen.tsx:91"}, "properties": {"repobilityId": "730168f4f41002df", "scanner": "scanner-primary", "fingerprint": "710f9d46858764b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3485c58cc2eceb84", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/firstFinding/motion.ts:43"}, "properties": {"repobilityId": "c71d85509b8c9a98", "scanner": "scanner-primary", "fingerprint": "3485c58cc2eceb84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef37d0cf48321869", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/firstFinding/faceRegions.ts:70"}, "properties": {"repobilityId": "719ce8fa0bb48cf5", "scanner": "scanner-primary", "fingerprint": "ef37d0cf48321869", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03c20bf834d3428a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/scan/firstFinding/metricTint.ts:31"}, "properties": {"repobilityId": "758dc3daee92cf33", "scanner": "scanner-primary", "fingerprint": "03c20bf834d3428a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b278e691cd2f2d2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/yourSkin/fixtures.ts:374"}, "properties": {"repobilityId": "079d707094dfb644", "scanner": "scanner-primary", "fingerprint": "b278e691cd2f2d2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1038c608b46973d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/yourSkin/yourSkinMotion.ts:29"}, "properties": {"repobilityId": "dce77f3f5e7a41a4", "scanner": "scanner-primary", "fingerprint": "a1038c608b46973d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97396a94d0831104", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/scan/yourSkin/SkinMapCard.tsx:478"}, "properties": {"repobilityId": "dc2be29607cd1165", "scanner": "scanner-primary", "fingerprint": "97396a94d0831104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea5beb34429aa923", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/scan/yourSkin/skia/orbShaders.ts:75"}, "properties": {"repobilityId": "cf49b6efb89fcd30", "scanner": "scanner-primary", "fingerprint": "ea5beb34429aa923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f0a2ca7fa5c9e29", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/onboarding/ColdOpenScreen.tsx:145"}, "properties": {"repobilityId": "3210d19bf5e92608", "scanner": "scanner-primary", "fingerprint": "1f0a2ca7fa5c9e29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01a7cdf0c5f1fa1b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/onboarding/SynthesisBeat.tsx:89"}, "properties": {"repobilityId": "fe6e7487daadafe3", "scanner": "scanner-primary", "fingerprint": "01a7cdf0c5f1fa1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c1358bed05784b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/onboarding/AuthChoice.tsx:213"}, "properties": {"repobilityId": "f939e35074b62291", "scanner": "scanner-primary", "fingerprint": "0c1358bed05784b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98737a2661b9434d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/onboarding/SignIn.tsx:306"}, "properties": {"repobilityId": "ce5ebe78d7bb83f2", "scanner": "scanner-primary", "fingerprint": "98737a2661b9434d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4544c1329e07e63d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/onboarding/QuestionScreen.tsx:155"}, "properties": {"repobilityId": "e35c4a3c69e5aea3", "scanner": "scanner-primary", "fingerprint": "4544c1329e07e63d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5850bdc33bcb532", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/onboarding/questionConfig.ts:439"}, "properties": {"repobilityId": "55bc2dddaf75774e", "scanner": "scanner-primary", "fingerprint": "d5850bdc33bcb532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7505bce7cb16666f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/onboarding/orb/OrbHost.tsx:223"}, "properties": {"repobilityId": "a171c3aa8aad4728", "scanner": "scanner-primary", "fingerprint": "7505bce7cb16666f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c615faa3047cd07b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/onboarding/orb/OrbSpeech.tsx:62"}, "properties": {"repobilityId": "88081d45e0ffae1f", "scanner": "scanner-primary", "fingerprint": "c615faa3047cd07b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c001ddf6932aebef", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/shop/personalization.ts:70"}, "properties": {"repobilityId": "0f03b18810a2975e", "scanner": "scanner-primary", "fingerprint": "c001ddf6932aebef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecddcea12dd0a27f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/shop/useShopViewModel.ts:404"}, "properties": {"repobilityId": "411f9dd9ed1e0725", "scanner": "scanner-primary", "fingerprint": "ecddcea12dd0a27f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cab6390b18e1fc9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/shop/shopCatalog.ts:62"}, "properties": {"repobilityId": "ec680b8a002b20e1", "scanner": "scanner-primary", "fingerprint": "cab6390b18e1fc9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7db74ad065841c36", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/shop/components/CardStack.tsx:50"}, "properties": {"repobilityId": "87ff7491685b815b", "scanner": "scanner-primary", "fingerprint": "7db74ad065841c36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fc8c914a609ec9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/shop/components/StatusSentence.tsx:45"}, "properties": {"repobilityId": "f444ddffbe08ba80", "scanner": "scanner-primary", "fingerprint": "6fc8c914a609ec9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3485ddd6a93c1ef8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/shop/components/ShopFeed.tsx:51"}, "properties": {"repobilityId": "c609931550f60902", "scanner": "scanner-primary", "fingerprint": "3485ddd6a93c1ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64b157c5541466c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/shop/components/StackCard.tsx:75"}, "properties": {"repobilityId": "e1931cc99b147803", "scanner": "scanner-primary", "fingerprint": "64b157c5541466c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c187eb47a872f55c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/shop/components/HeroProductCard.tsx:101"}, "properties": {"repobilityId": "fe34d1caa15f2c30", "scanner": "scanner-primary", "fingerprint": "c187eb47a872f55c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0751c7b39c31c5ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/shop/components/AddButton.tsx:32"}, "properties": {"repobilityId": "2e2b5c3b94e5b3da", "scanner": "scanner-primary", "fingerprint": "0751c7b39c31c5ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef3a0cab9d471a02", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/routine/v25/RoutineV25Screen.tsx:251"}, "properties": {"repobilityId": "817a5e2569d4e6c7", "scanner": "scanner-primary", "fingerprint": "ef3a0cab9d471a02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-589b19aef7b7a779", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/routine/yourRoutine/fixtures.ts:44"}, "properties": {"repobilityId": "0024bbab6cfb86c9", "scanner": "scanner-primary", "fingerprint": "589b19aef7b7a779", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97daf993e84d55a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/model.ts:470"}, "properties": {"repobilityId": "eecf672c93c7c9bf", "scanner": "scanner-primary", "fingerprint": "97daf993e84d55a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d63f40e909a0cb2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/routine/yourRoutine/modes/RitualMode.tsx:193"}, "properties": {"repobilityId": "d102db6b8a693fee", "scanner": "scanner-primary", "fingerprint": "d63f40e909a0cb2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fba8ac98a5ddb67", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/routine/pura/companion/RoutineCompanionScreen.tsx:212"}, "properties": {"repobilityId": "2d7c217ac7bb153e", "scanner": "scanner-primary", "fingerprint": "4fba8ac98a5ddb67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-522552ae3eedefc6", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/routine/pura/companion/companionTokens.ts:35"}, "properties": {"repobilityId": "dde4fdddf85e3702", "scanner": "scanner-primary", "fingerprint": "522552ae3eedefc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e2e663d66394cd3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/pura27/components/index.tsx:744"}, "properties": {"repobilityId": "1674d997b41e5034", "scanner": "scanner-primary", "fingerprint": "9e2e663d66394cd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6ae4843112b9c48", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/assistant/AssistantAuroraOrb.tsx:249"}, "properties": {"repobilityId": "e70c734531b48755", "scanner": "scanner-primary", "fingerprint": "d6ae4843112b9c48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69fb14c1cd74bab1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/assistant/AssistantChatScreen.tsx:735"}, "properties": {"repobilityId": "170673bac5d3e2fd", "scanner": "scanner-primary", "fingerprint": "69fb14c1cd74bab1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59a9fcc80d72b00f", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/screens/assistant/PuraAssistConversationScreen.tsx:123"}, "properties": {"repobilityId": "78c16fa8c8dbaabd", "scanner": "scanner-primary", "fingerprint": "59a9fcc80d72b00f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b894f67257b1064", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/assistant/home/dailyHomeModel.ts:187"}, "properties": {"repobilityId": "efdcdf2ca471757c", "scanner": "scanner-primary", "fingerprint": "6b894f67257b1064", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6336ff4a0adfd018", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/assistant/components/StickyComposer.tsx:93"}, "properties": {"repobilityId": "c6eb085de7909de1", "scanner": "scanner-primary", "fingerprint": "6336ff4a0adfd018", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-203434a7fdb57e32", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/theme/tokens.ts:29"}, "properties": {"repobilityId": "07d726a53c8e7a45", "scanner": "scanner-primary", "fingerprint": "203434a7fdb57e32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecc38b8b0b69d929", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/theme/ds.ts:166"}, "properties": {"repobilityId": "490ec2ac99186cfb", "scanner": "scanner-primary", "fingerprint": "ecc38b8b0b69d929", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f7658601b2ff8b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/theme/routineAtmosphere.ts:23"}, "properties": {"repobilityId": "341b625978d67936", "scanner": "scanner-primary", "fingerprint": "5f7658601b2ff8b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba69161a17515914", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/SkinScoreDial.tsx:325"}, "properties": {"repobilityId": "3744da22256ce6d4", "scanner": "scanner-primary", "fingerprint": "ba69161a17515914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e89d0e231d2475d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/scan-results/FaceOverlayCanvas.tsx:87"}, "properties": {"repobilityId": "79f954a7e328eac7", "scanner": "scanner-primary", "fingerprint": "e89d0e231d2475d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95779a65c21c9eca", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/scan-results/FocusAreaResultCard.tsx:60"}, "properties": {"repobilityId": "785ff8c906c237cf", "scanner": "scanner-primary", "fingerprint": "95779a65c21c9eca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19d119de50461787", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/scan/Reticle.tsx:102"}, "properties": {"repobilityId": "75658f1185c66170", "scanner": "scanner-primary", "fingerprint": "19d119de50461787", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5071e61eab68fcee", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/dev/AIDiagnosticsScreen.tsx:118"}, "properties": {"repobilityId": "a0355dd4c1977d02", "scanner": "scanner-primary", "fingerprint": "5071e61eab68fcee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02aa5de1019ed7f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/onboarding/PrimaryButton.tsx:93"}, "properties": {"repobilityId": "2fd2e2d4889337cd", "scanner": "scanner-primary", "fingerprint": "02aa5de1019ed7f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a07fc7415b757fd9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/products/ProductPlaceholderImage.tsx:125"}, "properties": {"repobilityId": "510b30255732b3ba", "scanner": "scanner-primary", "fingerprint": "a07fc7415b757fd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d4aa0109d231747", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/products/Accordion.tsx:113"}, "properties": {"repobilityId": "ed5abb397fe5a964", "scanner": "scanner-primary", "fingerprint": "5d4aa0109d231747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ce28a3ef86968d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/products/ProductHero.tsx:49"}, "properties": {"repobilityId": "8a7245232fd14b38", "scanner": "scanner-primary", "fingerprint": "3ce28a3ef86968d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b10bf8b78052d39c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/products/WhyItWorksPanel.tsx:372"}, "properties": {"repobilityId": "08e25c6ac5746768", "scanner": "scanner-primary", "fingerprint": "b10bf8b78052d39c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-883be2afc2ee5916", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/products/LiveProductCard.tsx:47"}, "properties": {"repobilityId": "4b2e9db69f312013", "scanner": "scanner-primary", "fingerprint": "883be2afc2ee5916", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aa6745a448c3298", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/products/CategoryFeed.tsx:57"}, "properties": {"repobilityId": "5836abe3c9635b26", "scanner": "scanner-primary", "fingerprint": "6aa6745a448c3298", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c920c5307134aae", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/state/skinEdit.ts:1620"}, "properties": {"repobilityId": "0872d67d06fab5cb", "scanner": "scanner-primary", "fingerprint": "4c920c5307134aae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72d7297da5b28da6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/state/progressRoutineInsight.ts:426"}, "properties": {"repobilityId": "d3d8078ba0490f9f", "scanner": "scanner-primary", "fingerprint": "72d7297da5b28da6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-879e6351e4c1f6ff", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/state/productUiTrace.ts:108"}, "properties": {"repobilityId": "5913194fdec12926", "scanner": "scanner-primary", "fingerprint": "879e6351e4c1f6ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47fd43a15e0425e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/state/productUiTrace.ts:211"}, "properties": {"repobilityId": "1e20fe3386ac4bf0", "scanner": "scanner-primary", "fingerprint": "47fd43a15e0425e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0a6f012231ae8732", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/state/homeNight.ts:184"}, "properties": {"repobilityId": "6cab20c6b2722818", "scanner": "scanner-primary", "fingerprint": "0a6f012231ae8732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6142a1fad40b994a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/state/tonightObservation.ts:230"}, "properties": {"repobilityId": "cb4f9a0fcf04f918", "scanner": "scanner-primary", "fingerprint": "6142a1fad40b994a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ba38c8461a0da2", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/store/useAppStore.ts:679"}, "properties": {"repobilityId": "a8922c88d45a61b5", "scanner": "scanner-primary", "fingerprint": "41ba38c8461a0da2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2a5dc58c8ad1182", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scanQuality/thresholds.ts:77"}, "properties": {"repobilityId": "64e09db656491c48", "scanner": "scanner-primary", "fingerprint": "e2a5dc58c8ad1182", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-feb6bb29d396f41e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/navigation/TabNavigator.tsx:8"}, "properties": {"repobilityId": "684a67bc1bbced9b", "scanner": "scanner-primary", "fingerprint": "feb6bb29d396f41e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3bbd52d9f82c982", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/navigation/FloatingTabBar.tsx:247"}, "properties": {"repobilityId": "ad58da385b8883c1", "scanner": "scanner-primary", "fingerprint": "d3bbd52d9f82c982", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43ee421b591c04fa", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/navigation/ScanModalStack.tsx:228"}, "properties": {"repobilityId": "0b00e05b13ee3ce0", "scanner": "scanner-primary", "fingerprint": "43ee421b591c04fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55ea629bc08b65f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/navigation/OnboardingNavigator.tsx:142"}, "properties": {"repobilityId": "3bf5db750a241e6d", "scanner": "scanner-primary", "fingerprint": "55ea629bc08b65f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-076c7f06c4aed28d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/exportUserData.ts:48"}, "properties": {"repobilityId": "bfd94a1c2c89afcb", "scanner": "scanner-primary", "fingerprint": "076c7f06c4aed28d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae407fdc418aff3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/commerceEnrichment.ts:21"}, "properties": {"repobilityId": "e9ebaea6ce6ff63b", "scanner": "scanner-primary", "fingerprint": "ae407fdc418aff3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84cd5ff744986d92", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/services/scanResults/translateAnalysis.ts:119"}, "properties": {"repobilityId": "fa65c095a520aa44", "scanner": "scanner-primary", "fingerprint": "84cd5ff744986d92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc2a403255a69061", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/scanResults/concernCatalog.ts:26"}, "properties": {"repobilityId": "69e247cf443b65d5", "scanner": "scanner-primary", "fingerprint": "cc2a403255a69061", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f068cd8e09c813d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/ai/translateAnalysis.ts:45"}, "properties": {"repobilityId": "09e6a462914ca6a7", "scanner": "scanner-primary", "fingerprint": "f068cd8e09c813d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02a4c5b5d882fa09", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/ai/validation.ts:1168"}, "properties": {"repobilityId": "f688594724155ef9", "scanner": "scanner-primary", "fingerprint": "02a4c5b5d882fa09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2e9a71375547f0e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/ai/ai-contracts.ts:216"}, "properties": {"repobilityId": "a1c20ec48da66661", "scanner": "scanner-primary", "fingerprint": "b2e9a71375547f0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c4724f7e98c4780", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/ai/aiGateway.ts:172"}, "properties": {"repobilityId": "3260d2f25a44b7b4", "scanner": "scanner-primary", "fingerprint": "3c4724f7e98c4780", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92b5765420d469ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/ai/aiGateway.ts:490"}, "properties": {"repobilityId": "81541420958db0ad", "scanner": "scanner-primary", "fingerprint": "92b5765420d469ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3250f35117c0e98", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/ai/aiTelemetry.ts:168"}, "properties": {"repobilityId": "53d2c33d4344fd0c", "scanner": "scanner-primary", "fingerprint": "d3250f35117c0e98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eef457b8cd0f9aa5", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/copy/strings.ts:63"}, "properties": {"repobilityId": "f4281b038f387111", "scanner": "scanner-primary", "fingerprint": "eef457b8cd0f9aa5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb35f3ecfef10484", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/aiProxy.ts:52"}, "properties": {"repobilityId": "0c4b71ec6c2ceca3", "scanner": "scanner-primary", "fingerprint": "fb35f3ecfef10484", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-242b47f317b8d5e1", "level": "note", "message": {"text": "Legacy-named symbol `scan_result_v2` in server/openai/openai-client.ts:1252"}, "properties": {"repobilityId": "8fb9c279924ad0fa", "scanner": "scanner-primary", "fingerprint": "242b47f317b8d5e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-205c0dc6a0178069", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/openai/openai-client.ts:166"}, "properties": {"repobilityId": "b0fb2b2d9c7fb36e", "scanner": "scanner-primary", "fingerprint": "205c0dc6a0178069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5adc20f58b83f920", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/lib/handlers.ts:212"}, "properties": {"repobilityId": "14ddc73b75f0b274", "scanner": "scanner-primary", "fingerprint": "5adc20f58b83f920", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef804588cf03aad4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/lib/searchProducts.ts:193"}, "properties": {"repobilityId": "d1e6c66cd9453a17", "scanner": "scanner-primary", "fingerprint": "ef804588cf03aad4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4eb45fabe3d35fe2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/vision_bundle.mjs:1"}, "properties": {"repobilityId": "a127ec6460f72e2c", "scanner": "scanner-primary", "fingerprint": "4eb45fabe3d35fe2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4036add49728a68b", "level": "note", "message": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:8143"}, "properties": {"repobilityId": "532bfe81a99eb705", "scanner": "scanner-primary", "fingerprint": "4036add49728a68b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ccedad758f7c1e2e", "level": "none", "message": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_nosimd_internal.js:14"}, "properties": {"repobilityId": "8887b8c2afdb6d7b", "scanner": "scanner-primary", "fingerprint": "ccedad758f7c1e2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b876081f0e3c42b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_nosimd_internal.js:140"}, "properties": {"repobilityId": "eeb7e7b0f8726b43", "scanner": "scanner-primary", "fingerprint": "3b876081f0e3c42b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ae20fb0511e42254", "level": "note", "message": {"text": "Legacy-named symbol `make_deep_copy` in public/mediapipe/wasm/vision_wasm_internal.js:8143"}, "properties": {"repobilityId": "7e23b949d66bab58", "scanner": "scanner-primary", "fingerprint": "ae20fb0511e42254", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cdade13839f63082", "level": "none", "message": {"text": "Commented-code block (16 lines) in public/mediapipe/wasm/vision_wasm_internal.js:14"}, "properties": {"repobilityId": "fedc6a891fa1edd2", "scanner": "scanner-primary", "fingerprint": "cdade13839f63082", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de74b22bfde1ed47", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/mediapipe/wasm/vision_wasm_internal.js:140"}, "properties": {"repobilityId": "d179cb9d919fb55c", "scanner": "scanner-primary", "fingerprint": "de74b22bfde1ed47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3482f7e5dd70cd1a", "level": "note", "message": {"text": "6 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1da70f25aa46f6e9", "scanner": "scanner-primary", "fingerprint": "3482f7e5dd70cd1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-a9c18f8146cbc8c2", "level": "error", "message": {"text": "Dangling fetch: POST /__pura_ai__/readSkin (scripts/_live_scan_test.mjs:46)"}, "properties": {"repobilityId": "5c3d98e0e1fa097c", "scanner": "scanner-primary", "fingerprint": "a9c18f8146cbc8c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-046dda00f1450b3d", "level": "note", "message": {"text": "Unused endpoint: POST /chat/completions"}, "properties": {"repobilityId": "a1157dcd29f40068", "scanner": "scanner-primary", "fingerprint": "046dda00f1450b3d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-731e0756c2fefc2d", "level": "note", "message": {"text": "Unused endpoint: POST /audio/speech"}, "properties": {"repobilityId": "439dbd083ffb1d79", "scanner": "scanner-primary", "fingerprint": "731e0756c2fefc2d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0703b07fb8e8b6f0", "level": "note", "message": {"text": "Unused endpoint: POST /audio/transcriptions"}, "properties": {"repobilityId": "2cf941f8de64ea16", "scanner": "scanner-primary", "fingerprint": "0703b07fb8e8b6f0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-977b39ba4216e247", "level": "note", "message": {"text": "Unused endpoint: POST /audio/translations"}, "properties": {"repobilityId": "29f8f67f037fd443", "scanner": "scanner-primary", "fingerprint": "977b39ba4216e247", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9ed84d434d52c021", "level": "note", "message": {"text": "Unused endpoint: POST /batches"}, "properties": {"repobilityId": "570070076947f07d", "scanner": "scanner-primary", "fingerprint": "9ed84d434d52c021", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7732e5fbd854c6d4", "level": "note", "message": {"text": "Unused endpoint: POST /assistants"}, "properties": {"repobilityId": "f924ff7a1b29351e", "scanner": "scanner-primary", "fingerprint": "7732e5fbd854c6d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30495157336e2746", "level": "note", "message": {"text": "Unused endpoint: POST /realtime/sessions"}, "properties": {"repobilityId": "cf237f171ee134ef", "scanner": "scanner-primary", "fingerprint": "30495157336e2746", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc74f5339c055526", "level": "note", "message": {"text": "Unused endpoint: POST /realtime/transcription_sessions"}, "properties": {"repobilityId": "efc8191c6f6e0324", "scanner": "scanner-primary", "fingerprint": "bc74f5339c055526", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47c404592e01220b", "level": "note", "message": {"text": "Unused endpoint: POST /chatkit/sessions"}, "properties": {"repobilityId": "d9b76a48b5c60a0f", "scanner": "scanner-primary", "fingerprint": "47c404592e01220b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-686be4977a495430", "level": "note", "message": {"text": "Unused endpoint: POST /threads"}, "properties": {"repobilityId": "61d3cf7185901911", "scanner": "scanner-primary", "fingerprint": "686be4977a495430", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9390b6aa85bd274e", "level": "note", "message": {"text": "Unused endpoint: POST /threads/runs"}, "properties": {"repobilityId": "0c9512dc789fdab8", "scanner": "scanner-primary", "fingerprint": "9390b6aa85bd274e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8f29cff29921a3be", "level": "note", "message": {"text": "Unused endpoint: POST /completions"}, "properties": {"repobilityId": "3c029ca28a8b2981", "scanner": "scanner-primary", "fingerprint": "8f29cff29921a3be", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-43887b06a6508e4f", "level": "note", "message": {"text": "Unused endpoint: POST /containers"}, "properties": {"repobilityId": "367d375e9562870c", "scanner": "scanner-primary", "fingerprint": "43887b06a6508e4f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8ee7ac4b5c5364e8", "level": "note", "message": {"text": "Unused endpoint: POST /conversations"}, "properties": {"repobilityId": "cc00981dd1b162d1", "scanner": "scanner-primary", "fingerprint": "8ee7ac4b5c5364e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2494ea4326b03b3f", "level": "note", "message": {"text": "Unused endpoint: POST /embeddings"}, "properties": {"repobilityId": "65ae24ace5601f0c", "scanner": "scanner-primary", "fingerprint": "2494ea4326b03b3f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bc94f0922e3a219", "level": "note", "message": {"text": "Unused endpoint: POST /evals"}, "properties": {"repobilityId": "77c76142f25b0b41", "scanner": "scanner-primary", "fingerprint": "6bc94f0922e3a219", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f1320a5ffe374dac", "level": "note", "message": {"text": "Unused endpoint: POST /files"}, "properties": {"repobilityId": "88f73a4d3c7aae56", "scanner": "scanner-primary", "fingerprint": "f1320a5ffe374dac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c974b540a6ec79a6", "level": "note", "message": {"text": "Unused endpoint: POST /fine_tuning/alpha/graders/run"}, "properties": {"repobilityId": "6a80947024b0764c", "scanner": "scanner-primary", "fingerprint": "c974b540a6ec79a6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d3fded90dc607ec2", "level": "note", "message": {"text": "Unused endpoint: POST /fine_tuning/alpha/graders/validate"}, "properties": {"repobilityId": "6da396673bbf3fe2", "scanner": "scanner-primary", "fingerprint": "d3fded90dc607ec2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2439d65365ac9535", "level": "note", "message": {"text": "Unused endpoint: POST /fine_tuning/jobs"}, "properties": {"repobilityId": "68355874969bab18", "scanner": "scanner-primary", "fingerprint": "2439d65365ac9535", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e6adff703d49c7d2", "level": "note", "message": {"text": "Unused endpoint: POST /images/variations"}, "properties": {"repobilityId": "ad6d17466ce23ff8", "scanner": "scanner-primary", "fingerprint": "e6adff703d49c7d2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03133b2476295fb4", "level": "note", "message": {"text": "Unused endpoint: POST /images/edits"}, "properties": {"repobilityId": "7df6d1c861d49e22", "scanner": "scanner-primary", "fingerprint": "03133b2476295fb4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4c5c41cb8097be5", "level": "note", "message": {"text": "Unused endpoint: POST /images/generations"}, "properties": {"repobilityId": "62d98c9fc1843229", "scanner": "scanner-primary", "fingerprint": "e4c5c41cb8097be5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dc2b015738c65b1b", "level": "note", "message": {"text": "Unused endpoint: POST /moderations"}, "properties": {"repobilityId": "0571a9a416b890fe", "scanner": "scanner-primary", "fingerprint": "dc2b015738c65b1b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-11e9757ab463439e", "level": "note", "message": {"text": "Unused endpoint: POST /realtime/client_secrets"}, "properties": {"repobilityId": "83cbb4c8fb111803", "scanner": "scanner-primary", "fingerprint": "11e9757ab463439e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d58c39d1475cdf14", "level": "note", "message": {"text": "Unused endpoint: POST /responses/input_tokens"}, "properties": {"repobilityId": "a5d91f749b47e925", "scanner": "scanner-primary", "fingerprint": "d58c39d1475cdf14", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-90e52654c4efbe1d", "level": "note", "message": {"text": "Unused endpoint: POST /responses"}, "properties": {"repobilityId": "e281e92a24c33409", "scanner": "scanner-primary", "fingerprint": "90e52654c4efbe1d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f40182428f41c6a", "level": "note", "message": {"text": "Unused endpoint: POST /responses/compact"}, "properties": {"repobilityId": "d0a1613185273afd", "scanner": "scanner-primary", "fingerprint": "2f40182428f41c6a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce7fe565b4caff57", "level": "note", "message": {"text": "Unused endpoint: POST /skills"}, "properties": {"repobilityId": "58bb7540e8dea2d6", "scanner": "scanner-primary", "fingerprint": "ce7fe565b4caff57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f440e5eb48cf128b", "level": "note", "message": {"text": "Unused endpoint: POST /uploads"}, "properties": {"repobilityId": "eeedf730f2d8e3db", "scanner": "scanner-primary", "fingerprint": "f440e5eb48cf128b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-09e66fd1b47698ad", "level": "note", "message": {"text": "Unused endpoint: POST /vector_stores"}, "properties": {"repobilityId": "ce810537d9dcb0a7", "scanner": "scanner-primary", "fingerprint": "09e66fd1b47698ad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-83b40e43b99732cc", "level": "note", "message": {"text": "Unused endpoint: POST /videos"}, "properties": {"repobilityId": "c34e96e2a373969c", "scanner": "scanner-primary", "fingerprint": "83b40e43b99732cc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2a3df2035caba6d", "level": "note", "message": {"text": "Unused endpoint: POST /videos/characters"}, "properties": {"repobilityId": "c6c7283cdd51518a", "scanner": "scanner-primary", "fingerprint": "d2a3df2035caba6d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c2459c17138e710d", "level": "note", "message": {"text": "Unused endpoint: POST /videos/edits"}, "properties": {"repobilityId": "7cd4f7b7497a1117", "scanner": "scanner-primary", "fingerprint": "c2459c17138e710d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed98da626305f0d1", "level": "note", "message": {"text": "Unused endpoint: POST /videos/extensions"}, "properties": {"repobilityId": "6d3974a11260619d", "scanner": "scanner-primary", "fingerprint": "ed98da626305f0d1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}